@mszr/idb-dux 1.0.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 (453) hide show
  1. package/LICENSE +194 -0
  2. package/README.md +84 -0
  3. package/dist/commonjs/admin/index.d.ts +18 -0
  4. package/dist/commonjs/admin/index.d.ts.map +1 -0
  5. package/dist/commonjs/admin/index.js +31 -0
  6. package/dist/commonjs/admin/index.js.map +1 -0
  7. package/dist/commonjs/admin/init.d.ts +67 -0
  8. package/dist/commonjs/admin/init.d.ts.map +1 -0
  9. package/dist/commonjs/admin/init.js +86 -0
  10. package/dist/commonjs/admin/init.js.map +1 -0
  11. package/dist/commonjs/admin/query.d.ts +21 -0
  12. package/dist/commonjs/admin/query.d.ts.map +1 -0
  13. package/dist/commonjs/admin/query.js +46 -0
  14. package/dist/commonjs/admin/query.js.map +1 -0
  15. package/dist/commonjs/admin/types.d.ts +124 -0
  16. package/dist/commonjs/admin/types.d.ts.map +1 -0
  17. package/dist/commonjs/admin/types.js +3 -0
  18. package/dist/commonjs/admin/types.js.map +1 -0
  19. package/dist/commonjs/admin/webhooks.d.ts +11 -0
  20. package/dist/commonjs/admin/webhooks.d.ts.map +1 -0
  21. package/dist/commonjs/admin/webhooks.js +8 -0
  22. package/dist/commonjs/admin/webhooks.js.map +1 -0
  23. package/dist/commonjs/errors.d.ts +13 -0
  24. package/dist/commonjs/errors.d.ts.map +1 -0
  25. package/dist/commonjs/errors.js +19 -0
  26. package/dist/commonjs/errors.js.map +1 -0
  27. package/dist/commonjs/index.d.ts +13 -0
  28. package/dist/commonjs/index.d.ts.map +1 -0
  29. package/dist/commonjs/index.js +29 -0
  30. package/dist/commonjs/index.js.map +1 -0
  31. package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts +15 -0
  32. package/dist/commonjs/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
  33. package/dist/commonjs/nuxt/defineAuthSyncHandler.js +44 -0
  34. package/dist/commonjs/nuxt/defineAuthSyncHandler.js.map +1 -0
  35. package/dist/commonjs/nuxt/defineServerKit.d.ts +5 -0
  36. package/dist/commonjs/nuxt/defineServerKit.d.ts.map +1 -0
  37. package/dist/commonjs/nuxt/defineServerKit.js +49 -0
  38. package/dist/commonjs/nuxt/defineServerKit.js.map +1 -0
  39. package/dist/commonjs/nuxt/defineWebhookHandler.d.ts +17 -0
  40. package/dist/commonjs/nuxt/defineWebhookHandler.d.ts.map +1 -0
  41. package/dist/commonjs/nuxt/defineWebhookHandler.js +24 -0
  42. package/dist/commonjs/nuxt/defineWebhookHandler.js.map +1 -0
  43. package/dist/commonjs/nuxt/index.d.ts +15 -0
  44. package/dist/commonjs/nuxt/index.d.ts.map +1 -0
  45. package/dist/commonjs/nuxt/index.js +24 -0
  46. package/dist/commonjs/nuxt/index.js.map +1 -0
  47. package/dist/commonjs/nuxt/types.d.ts +54 -0
  48. package/dist/commonjs/nuxt/types.d.ts.map +1 -0
  49. package/dist/commonjs/nuxt/types.js +3 -0
  50. package/dist/commonjs/nuxt/types.js.map +1 -0
  51. package/dist/commonjs/package.json +3 -0
  52. package/dist/commonjs/perms/ast.d.ts +98 -0
  53. package/dist/commonjs/perms/ast.d.ts.map +1 -0
  54. package/dist/commonjs/perms/ast.js +148 -0
  55. package/dist/commonjs/perms/ast.js.map +1 -0
  56. package/dist/commonjs/perms/builder.d.ts +18 -0
  57. package/dist/commonjs/perms/builder.d.ts.map +1 -0
  58. package/dist/commonjs/perms/builder.js +260 -0
  59. package/dist/commonjs/perms/builder.js.map +1 -0
  60. package/dist/commonjs/perms/context.d.ts +27 -0
  61. package/dist/commonjs/perms/context.d.ts.map +1 -0
  62. package/dist/commonjs/perms/context.js +96 -0
  63. package/dist/commonjs/perms/context.js.map +1 -0
  64. package/dist/commonjs/perms/index.d.ts +13 -0
  65. package/dist/commonjs/perms/index.d.ts.map +1 -0
  66. package/dist/commonjs/perms/index.js +6 -0
  67. package/dist/commonjs/perms/index.js.map +1 -0
  68. package/dist/commonjs/perms/types.d.ts +353 -0
  69. package/dist/commonjs/perms/types.d.ts.map +1 -0
  70. package/dist/commonjs/perms/types.js +3 -0
  71. package/dist/commonjs/perms/types.js.map +1 -0
  72. package/dist/commonjs/perms/validate.d.ts +31 -0
  73. package/dist/commonjs/perms/validate.d.ts.map +1 -0
  74. package/dist/commonjs/perms/validate.js +66 -0
  75. package/dist/commonjs/perms/validate.js.map +1 -0
  76. package/dist/commonjs/query/constants.d.ts +13 -0
  77. package/dist/commonjs/query/constants.d.ts.map +1 -0
  78. package/dist/commonjs/query/constants.js +16 -0
  79. package/dist/commonjs/query/constants.js.map +1 -0
  80. package/dist/commonjs/query/defineQuery.d.ts +33 -0
  81. package/dist/commonjs/query/defineQuery.d.ts.map +1 -0
  82. package/dist/commonjs/query/defineQuery.js +28 -0
  83. package/dist/commonjs/query/defineQuery.js.map +1 -0
  84. package/dist/commonjs/query/index.d.ts +9 -0
  85. package/dist/commonjs/query/index.d.ts.map +1 -0
  86. package/dist/commonjs/query/index.js +16 -0
  87. package/dist/commonjs/query/index.js.map +1 -0
  88. package/dist/commonjs/query/keys.d.ts +33 -0
  89. package/dist/commonjs/query/keys.d.ts.map +1 -0
  90. package/dist/commonjs/query/keys.js +3 -0
  91. package/dist/commonjs/query/keys.js.map +1 -0
  92. package/dist/commonjs/query/shapeResult.d.ts +36 -0
  93. package/dist/commonjs/query/shapeResult.d.ts.map +1 -0
  94. package/dist/commonjs/query/shapeResult.js +173 -0
  95. package/dist/commonjs/query/shapeResult.js.map +1 -0
  96. package/dist/commonjs/query/types.d.ts +187 -0
  97. package/dist/commonjs/query/types.d.ts.map +1 -0
  98. package/dist/commonjs/query/types.js +3 -0
  99. package/dist/commonjs/query/types.js.map +1 -0
  100. package/dist/commonjs/query/validation.d.ts +61 -0
  101. package/dist/commonjs/query/validation.d.ts.map +1 -0
  102. package/dist/commonjs/query/validation.js +3 -0
  103. package/dist/commonjs/query/validation.js.map +1 -0
  104. package/dist/commonjs/query/wire.d.ts +13 -0
  105. package/dist/commonjs/query/wire.d.ts.map +1 -0
  106. package/dist/commonjs/query/wire.js +77 -0
  107. package/dist/commonjs/query/wire.js.map +1 -0
  108. package/dist/commonjs/schema/defineSchema.d.ts +110 -0
  109. package/dist/commonjs/schema/defineSchema.d.ts.map +1 -0
  110. package/dist/commonjs/schema/defineSchema.js +72 -0
  111. package/dist/commonjs/schema/defineSchema.js.map +1 -0
  112. package/dist/commonjs/schema/fields.d.ts +33 -0
  113. package/dist/commonjs/schema/fields.d.ts.map +1 -0
  114. package/dist/commonjs/schema/fields.js +3 -0
  115. package/dist/commonjs/schema/fields.js.map +1 -0
  116. package/dist/commonjs/schema/index.d.ts +9 -0
  117. package/dist/commonjs/schema/index.d.ts.map +1 -0
  118. package/dist/commonjs/schema/index.js +10 -0
  119. package/dist/commonjs/schema/index.js.map +1 -0
  120. package/dist/commonjs/schema/namespace.d.ts +82 -0
  121. package/dist/commonjs/schema/namespace.d.ts.map +1 -0
  122. package/dist/commonjs/schema/namespace.js +37 -0
  123. package/dist/commonjs/schema/namespace.js.map +1 -0
  124. package/dist/commonjs/schema/register.d.ts +37 -0
  125. package/dist/commonjs/schema/register.d.ts.map +1 -0
  126. package/dist/commonjs/schema/register.js +3 -0
  127. package/dist/commonjs/schema/register.js.map +1 -0
  128. package/dist/commonjs/schema/singularize.d.ts +45 -0
  129. package/dist/commonjs/schema/singularize.d.ts.map +1 -0
  130. package/dist/commonjs/schema/singularize.js +47 -0
  131. package/dist/commonjs/schema/singularize.js.map +1 -0
  132. package/dist/commonjs/schema/types.d.ts +39 -0
  133. package/dist/commonjs/schema/types.d.ts.map +1 -0
  134. package/dist/commonjs/schema/types.js +3 -0
  135. package/dist/commonjs/schema/types.js.map +1 -0
  136. package/dist/commonjs/schema/util.d.ts +11 -0
  137. package/dist/commonjs/schema/util.d.ts.map +1 -0
  138. package/dist/commonjs/schema/util.js +3 -0
  139. package/dist/commonjs/schema/util.js.map +1 -0
  140. package/dist/commonjs/tx/index.d.ts +4 -0
  141. package/dist/commonjs/tx/index.d.ts.map +1 -0
  142. package/dist/commonjs/tx/index.js +11 -0
  143. package/dist/commonjs/tx/index.js.map +1 -0
  144. package/dist/commonjs/tx/typedTx.d.ts +15 -0
  145. package/dist/commonjs/tx/typedTx.d.ts.map +1 -0
  146. package/dist/commonjs/tx/typedTx.js +54 -0
  147. package/dist/commonjs/tx/typedTx.js.map +1 -0
  148. package/dist/commonjs/tx/types.d.ts +104 -0
  149. package/dist/commonjs/tx/types.d.ts.map +1 -0
  150. package/dist/commonjs/tx/types.js +3 -0
  151. package/dist/commonjs/tx/types.js.map +1 -0
  152. package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts +52 -0
  153. package/dist/commonjs/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
  154. package/dist/commonjs/vue/baseline/InstantDuxDatabase.js +157 -0
  155. package/dist/commonjs/vue/baseline/InstantDuxDatabase.js.map +1 -0
  156. package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts +72 -0
  157. package/dist/commonjs/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
  158. package/dist/commonjs/vue/baseline/InstantDuxRoom.js +211 -0
  159. package/dist/commonjs/vue/baseline/InstantDuxRoom.js.map +1 -0
  160. package/dist/commonjs/vue/baseline/components/Cursor.d.ts +15 -0
  161. package/dist/commonjs/vue/baseline/components/Cursor.d.ts.map +1 -0
  162. package/dist/commonjs/vue/baseline/components/Cursor.js +39 -0
  163. package/dist/commonjs/vue/baseline/components/Cursor.js.map +1 -0
  164. package/dist/commonjs/vue/baseline/components/Cursors.d.ts +65 -0
  165. package/dist/commonjs/vue/baseline/components/Cursors.d.ts.map +1 -0
  166. package/dist/commonjs/vue/baseline/components/Cursors.js +113 -0
  167. package/dist/commonjs/vue/baseline/components/Cursors.js.map +1 -0
  168. package/dist/commonjs/vue/baseline/components/auth.d.ts +37 -0
  169. package/dist/commonjs/vue/baseline/components/auth.d.ts.map +1 -0
  170. package/dist/commonjs/vue/baseline/components/auth.js +27 -0
  171. package/dist/commonjs/vue/baseline/components/auth.js.map +1 -0
  172. package/dist/commonjs/vue/baseline/index.d.ts +11 -0
  173. package/dist/commonjs/vue/baseline/index.d.ts.map +1 -0
  174. package/dist/commonjs/vue/baseline/index.js +29 -0
  175. package/dist/commonjs/vue/baseline/index.js.map +1 -0
  176. package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts +19 -0
  177. package/dist/commonjs/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
  178. package/dist/commonjs/vue/baseline/useInfiniteQuery.js +65 -0
  179. package/dist/commonjs/vue/baseline/useInfiniteQuery.js.map +1 -0
  180. package/dist/commonjs/vue/baseline/utils.d.ts +9 -0
  181. package/dist/commonjs/vue/baseline/utils.d.ts.map +1 -0
  182. package/dist/commonjs/vue/baseline/utils.js +29 -0
  183. package/dist/commonjs/vue/baseline/utils.js.map +1 -0
  184. package/dist/commonjs/vue/baseline/version.d.ts +3 -0
  185. package/dist/commonjs/vue/baseline/version.d.ts.map +1 -0
  186. package/dist/commonjs/vue/baseline/version.js +6 -0
  187. package/dist/commonjs/vue/baseline/version.js.map +1 -0
  188. package/dist/commonjs/vue/index.d.ts +21 -0
  189. package/dist/commonjs/vue/index.d.ts.map +1 -0
  190. package/dist/commonjs/vue/index.js +31 -0
  191. package/dist/commonjs/vue/index.js.map +1 -0
  192. package/dist/commonjs/vue/overlay/db.d.ts +106 -0
  193. package/dist/commonjs/vue/overlay/db.d.ts.map +1 -0
  194. package/dist/commonjs/vue/overlay/db.js +105 -0
  195. package/dist/commonjs/vue/overlay/db.js.map +1 -0
  196. package/dist/commonjs/vue/overlay/defineDb.d.ts +34 -0
  197. package/dist/commonjs/vue/overlay/defineDb.d.ts.map +1 -0
  198. package/dist/commonjs/vue/overlay/defineDb.js +48 -0
  199. package/dist/commonjs/vue/overlay/defineDb.js.map +1 -0
  200. package/dist/commonjs/vue/overlay/result.d.ts +29 -0
  201. package/dist/commonjs/vue/overlay/result.d.ts.map +1 -0
  202. package/dist/commonjs/vue/overlay/result.js +75 -0
  203. package/dist/commonjs/vue/overlay/result.js.map +1 -0
  204. package/dist/commonjs/vue/overlay/rooms/index.d.ts +79 -0
  205. package/dist/commonjs/vue/overlay/rooms/index.d.ts.map +1 -0
  206. package/dist/commonjs/vue/overlay/rooms/index.js +28 -0
  207. package/dist/commonjs/vue/overlay/rooms/index.js.map +1 -0
  208. package/dist/commonjs/vue/overlay/types.d.ts +73 -0
  209. package/dist/commonjs/vue/overlay/types.d.ts.map +1 -0
  210. package/dist/commonjs/vue/overlay/types.js +3 -0
  211. package/dist/commonjs/vue/overlay/types.js.map +1 -0
  212. package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts +27 -0
  213. package/dist/commonjs/webhooks/defineWebhookHandlers.d.ts.map +1 -0
  214. package/dist/commonjs/webhooks/defineWebhookHandlers.js +33 -0
  215. package/dist/commonjs/webhooks/defineWebhookHandlers.js.map +1 -0
  216. package/dist/commonjs/webhooks/index.d.ts +15 -0
  217. package/dist/commonjs/webhooks/index.d.ts.map +1 -0
  218. package/dist/commonjs/webhooks/index.js +21 -0
  219. package/dist/commonjs/webhooks/index.js.map +1 -0
  220. package/dist/commonjs/webhooks/init.d.ts +13 -0
  221. package/dist/commonjs/webhooks/init.d.ts.map +1 -0
  222. package/dist/commonjs/webhooks/init.js +39 -0
  223. package/dist/commonjs/webhooks/init.js.map +1 -0
  224. package/dist/commonjs/webhooks/types.d.ts +136 -0
  225. package/dist/commonjs/webhooks/types.d.ts.map +1 -0
  226. package/dist/commonjs/webhooks/types.js +3 -0
  227. package/dist/commonjs/webhooks/types.js.map +1 -0
  228. package/dist/esm/admin/index.d.ts +18 -0
  229. package/dist/esm/admin/index.d.ts.map +1 -0
  230. package/dist/esm/admin/index.js +21 -0
  231. package/dist/esm/admin/index.js.map +1 -0
  232. package/dist/esm/admin/init.d.ts +67 -0
  233. package/dist/esm/admin/init.d.ts.map +1 -0
  234. package/dist/esm/admin/init.js +81 -0
  235. package/dist/esm/admin/init.js.map +1 -0
  236. package/dist/esm/admin/query.d.ts +21 -0
  237. package/dist/esm/admin/query.d.ts.map +1 -0
  238. package/dist/esm/admin/query.js +42 -0
  239. package/dist/esm/admin/query.js.map +1 -0
  240. package/dist/esm/admin/types.d.ts +124 -0
  241. package/dist/esm/admin/types.d.ts.map +1 -0
  242. package/dist/esm/admin/types.js +2 -0
  243. package/dist/esm/admin/types.js.map +1 -0
  244. package/dist/esm/admin/webhooks.d.ts +11 -0
  245. package/dist/esm/admin/webhooks.d.ts.map +1 -0
  246. package/dist/esm/admin/webhooks.js +5 -0
  247. package/dist/esm/admin/webhooks.js.map +1 -0
  248. package/dist/esm/errors.d.ts +13 -0
  249. package/dist/esm/errors.d.ts.map +1 -0
  250. package/dist/esm/errors.js +16 -0
  251. package/dist/esm/errors.js.map +1 -0
  252. package/dist/esm/index.d.ts +13 -0
  253. package/dist/esm/index.d.ts.map +1 -0
  254. package/dist/esm/index.js +13 -0
  255. package/dist/esm/index.js.map +1 -0
  256. package/dist/esm/nuxt/defineAuthSyncHandler.d.ts +15 -0
  257. package/dist/esm/nuxt/defineAuthSyncHandler.d.ts.map +1 -0
  258. package/dist/esm/nuxt/defineAuthSyncHandler.js +41 -0
  259. package/dist/esm/nuxt/defineAuthSyncHandler.js.map +1 -0
  260. package/dist/esm/nuxt/defineServerKit.d.ts +5 -0
  261. package/dist/esm/nuxt/defineServerKit.d.ts.map +1 -0
  262. package/dist/esm/nuxt/defineServerKit.js +46 -0
  263. package/dist/esm/nuxt/defineServerKit.js.map +1 -0
  264. package/dist/esm/nuxt/defineWebhookHandler.d.ts +17 -0
  265. package/dist/esm/nuxt/defineWebhookHandler.d.ts.map +1 -0
  266. package/dist/esm/nuxt/defineWebhookHandler.js +21 -0
  267. package/dist/esm/nuxt/defineWebhookHandler.js.map +1 -0
  268. package/dist/esm/nuxt/index.d.ts +15 -0
  269. package/dist/esm/nuxt/index.d.ts.map +1 -0
  270. package/dist/esm/nuxt/index.js +17 -0
  271. package/dist/esm/nuxt/index.js.map +1 -0
  272. package/dist/esm/nuxt/types.d.ts +54 -0
  273. package/dist/esm/nuxt/types.d.ts.map +1 -0
  274. package/dist/esm/nuxt/types.js +2 -0
  275. package/dist/esm/nuxt/types.js.map +1 -0
  276. package/dist/esm/package.json +3 -0
  277. package/dist/esm/perms/ast.d.ts +98 -0
  278. package/dist/esm/perms/ast.d.ts.map +1 -0
  279. package/dist/esm/perms/ast.js +140 -0
  280. package/dist/esm/perms/ast.js.map +1 -0
  281. package/dist/esm/perms/builder.d.ts +18 -0
  282. package/dist/esm/perms/builder.d.ts.map +1 -0
  283. package/dist/esm/perms/builder.js +257 -0
  284. package/dist/esm/perms/builder.js.map +1 -0
  285. package/dist/esm/perms/context.d.ts +27 -0
  286. package/dist/esm/perms/context.d.ts.map +1 -0
  287. package/dist/esm/perms/context.js +93 -0
  288. package/dist/esm/perms/context.js.map +1 -0
  289. package/dist/esm/perms/index.d.ts +13 -0
  290. package/dist/esm/perms/index.d.ts.map +1 -0
  291. package/dist/esm/perms/index.js +2 -0
  292. package/dist/esm/perms/index.js.map +1 -0
  293. package/dist/esm/perms/types.d.ts +353 -0
  294. package/dist/esm/perms/types.d.ts.map +1 -0
  295. package/dist/esm/perms/types.js +2 -0
  296. package/dist/esm/perms/types.js.map +1 -0
  297. package/dist/esm/perms/validate.d.ts +31 -0
  298. package/dist/esm/perms/validate.d.ts.map +1 -0
  299. package/dist/esm/perms/validate.js +61 -0
  300. package/dist/esm/perms/validate.js.map +1 -0
  301. package/dist/esm/query/constants.d.ts +13 -0
  302. package/dist/esm/query/constants.d.ts.map +1 -0
  303. package/dist/esm/query/constants.js +13 -0
  304. package/dist/esm/query/constants.js.map +1 -0
  305. package/dist/esm/query/defineQuery.d.ts +33 -0
  306. package/dist/esm/query/defineQuery.d.ts.map +1 -0
  307. package/dist/esm/query/defineQuery.js +24 -0
  308. package/dist/esm/query/defineQuery.js.map +1 -0
  309. package/dist/esm/query/index.d.ts +9 -0
  310. package/dist/esm/query/index.d.ts.map +1 -0
  311. package/dist/esm/query/index.js +5 -0
  312. package/dist/esm/query/index.js.map +1 -0
  313. package/dist/esm/query/keys.d.ts +33 -0
  314. package/dist/esm/query/keys.d.ts.map +1 -0
  315. package/dist/esm/query/keys.js +2 -0
  316. package/dist/esm/query/keys.js.map +1 -0
  317. package/dist/esm/query/shapeResult.d.ts +36 -0
  318. package/dist/esm/query/shapeResult.d.ts.map +1 -0
  319. package/dist/esm/query/shapeResult.js +168 -0
  320. package/dist/esm/query/shapeResult.js.map +1 -0
  321. package/dist/esm/query/types.d.ts +187 -0
  322. package/dist/esm/query/types.d.ts.map +1 -0
  323. package/dist/esm/query/types.js +2 -0
  324. package/dist/esm/query/types.js.map +1 -0
  325. package/dist/esm/query/validation.d.ts +61 -0
  326. package/dist/esm/query/validation.d.ts.map +1 -0
  327. package/dist/esm/query/validation.js +2 -0
  328. package/dist/esm/query/validation.js.map +1 -0
  329. package/dist/esm/query/wire.d.ts +13 -0
  330. package/dist/esm/query/wire.d.ts.map +1 -0
  331. package/dist/esm/query/wire.js +74 -0
  332. package/dist/esm/query/wire.js.map +1 -0
  333. package/dist/esm/schema/defineSchema.d.ts +110 -0
  334. package/dist/esm/schema/defineSchema.d.ts.map +1 -0
  335. package/dist/esm/schema/defineSchema.js +69 -0
  336. package/dist/esm/schema/defineSchema.js.map +1 -0
  337. package/dist/esm/schema/fields.d.ts +33 -0
  338. package/dist/esm/schema/fields.d.ts.map +1 -0
  339. package/dist/esm/schema/fields.js +2 -0
  340. package/dist/esm/schema/fields.js.map +1 -0
  341. package/dist/esm/schema/index.d.ts +9 -0
  342. package/dist/esm/schema/index.d.ts.map +1 -0
  343. package/dist/esm/schema/index.js +4 -0
  344. package/dist/esm/schema/index.js.map +1 -0
  345. package/dist/esm/schema/namespace.d.ts +82 -0
  346. package/dist/esm/schema/namespace.d.ts.map +1 -0
  347. package/dist/esm/schema/namespace.js +34 -0
  348. package/dist/esm/schema/namespace.js.map +1 -0
  349. package/dist/esm/schema/register.d.ts +37 -0
  350. package/dist/esm/schema/register.d.ts.map +1 -0
  351. package/dist/esm/schema/register.js +2 -0
  352. package/dist/esm/schema/register.js.map +1 -0
  353. package/dist/esm/schema/singularize.d.ts +45 -0
  354. package/dist/esm/schema/singularize.d.ts.map +1 -0
  355. package/dist/esm/schema/singularize.js +44 -0
  356. package/dist/esm/schema/singularize.js.map +1 -0
  357. package/dist/esm/schema/types.d.ts +39 -0
  358. package/dist/esm/schema/types.d.ts.map +1 -0
  359. package/dist/esm/schema/types.js +2 -0
  360. package/dist/esm/schema/types.js.map +1 -0
  361. package/dist/esm/schema/util.d.ts +11 -0
  362. package/dist/esm/schema/util.d.ts.map +1 -0
  363. package/dist/esm/schema/util.js +2 -0
  364. package/dist/esm/schema/util.js.map +1 -0
  365. package/dist/esm/tx/index.d.ts +4 -0
  366. package/dist/esm/tx/index.d.ts.map +1 -0
  367. package/dist/esm/tx/index.js +5 -0
  368. package/dist/esm/tx/index.js.map +1 -0
  369. package/dist/esm/tx/typedTx.d.ts +15 -0
  370. package/dist/esm/tx/typedTx.d.ts.map +1 -0
  371. package/dist/esm/tx/typedTx.js +51 -0
  372. package/dist/esm/tx/typedTx.js.map +1 -0
  373. package/dist/esm/tx/types.d.ts +104 -0
  374. package/dist/esm/tx/types.d.ts.map +1 -0
  375. package/dist/esm/tx/types.js +2 -0
  376. package/dist/esm/tx/types.js.map +1 -0
  377. package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts +52 -0
  378. package/dist/esm/vue/baseline/InstantDuxDatabase.d.ts.map +1 -0
  379. package/dist/esm/vue/baseline/InstantDuxDatabase.js +149 -0
  380. package/dist/esm/vue/baseline/InstantDuxDatabase.js.map +1 -0
  381. package/dist/esm/vue/baseline/InstantDuxRoom.d.ts +72 -0
  382. package/dist/esm/vue/baseline/InstantDuxRoom.d.ts.map +1 -0
  383. package/dist/esm/vue/baseline/InstantDuxRoom.js +202 -0
  384. package/dist/esm/vue/baseline/InstantDuxRoom.js.map +1 -0
  385. package/dist/esm/vue/baseline/components/Cursor.d.ts +15 -0
  386. package/dist/esm/vue/baseline/components/Cursor.d.ts.map +1 -0
  387. package/dist/esm/vue/baseline/components/Cursor.js +36 -0
  388. package/dist/esm/vue/baseline/components/Cursor.js.map +1 -0
  389. package/dist/esm/vue/baseline/components/Cursors.d.ts +65 -0
  390. package/dist/esm/vue/baseline/components/Cursors.d.ts.map +1 -0
  391. package/dist/esm/vue/baseline/components/Cursors.js +107 -0
  392. package/dist/esm/vue/baseline/components/Cursors.js.map +1 -0
  393. package/dist/esm/vue/baseline/components/auth.d.ts +37 -0
  394. package/dist/esm/vue/baseline/components/auth.d.ts.map +1 -0
  395. package/dist/esm/vue/baseline/components/auth.js +24 -0
  396. package/dist/esm/vue/baseline/components/auth.js.map +1 -0
  397. package/dist/esm/vue/baseline/index.d.ts +11 -0
  398. package/dist/esm/vue/baseline/index.d.ts.map +1 -0
  399. package/dist/esm/vue/baseline/index.js +10 -0
  400. package/dist/esm/vue/baseline/index.js.map +1 -0
  401. package/dist/esm/vue/baseline/useInfiniteQuery.d.ts +19 -0
  402. package/dist/esm/vue/baseline/useInfiniteQuery.d.ts.map +1 -0
  403. package/dist/esm/vue/baseline/useInfiniteQuery.js +62 -0
  404. package/dist/esm/vue/baseline/useInfiniteQuery.js.map +1 -0
  405. package/dist/esm/vue/baseline/utils.d.ts +9 -0
  406. package/dist/esm/vue/baseline/utils.d.ts.map +1 -0
  407. package/dist/esm/vue/baseline/utils.js +25 -0
  408. package/dist/esm/vue/baseline/utils.js.map +1 -0
  409. package/dist/esm/vue/baseline/version.d.ts +3 -0
  410. package/dist/esm/vue/baseline/version.d.ts.map +1 -0
  411. package/dist/esm/vue/baseline/version.js +4 -0
  412. package/dist/esm/vue/baseline/version.js.map +1 -0
  413. package/dist/esm/vue/index.d.ts +21 -0
  414. package/dist/esm/vue/index.d.ts.map +1 -0
  415. package/dist/esm/vue/index.js +18 -0
  416. package/dist/esm/vue/index.js.map +1 -0
  417. package/dist/esm/vue/overlay/db.d.ts +106 -0
  418. package/dist/esm/vue/overlay/db.d.ts.map +1 -0
  419. package/dist/esm/vue/overlay/db.js +101 -0
  420. package/dist/esm/vue/overlay/db.js.map +1 -0
  421. package/dist/esm/vue/overlay/defineDb.d.ts +34 -0
  422. package/dist/esm/vue/overlay/defineDb.d.ts.map +1 -0
  423. package/dist/esm/vue/overlay/defineDb.js +44 -0
  424. package/dist/esm/vue/overlay/defineDb.js.map +1 -0
  425. package/dist/esm/vue/overlay/result.d.ts +29 -0
  426. package/dist/esm/vue/overlay/result.d.ts.map +1 -0
  427. package/dist/esm/vue/overlay/result.js +71 -0
  428. package/dist/esm/vue/overlay/result.js.map +1 -0
  429. package/dist/esm/vue/overlay/rooms/index.d.ts +79 -0
  430. package/dist/esm/vue/overlay/rooms/index.d.ts.map +1 -0
  431. package/dist/esm/vue/overlay/rooms/index.js +25 -0
  432. package/dist/esm/vue/overlay/rooms/index.js.map +1 -0
  433. package/dist/esm/vue/overlay/types.d.ts +73 -0
  434. package/dist/esm/vue/overlay/types.d.ts.map +1 -0
  435. package/dist/esm/vue/overlay/types.js +2 -0
  436. package/dist/esm/vue/overlay/types.js.map +1 -0
  437. package/dist/esm/webhooks/defineWebhookHandlers.d.ts +27 -0
  438. package/dist/esm/webhooks/defineWebhookHandlers.d.ts.map +1 -0
  439. package/dist/esm/webhooks/defineWebhookHandlers.js +30 -0
  440. package/dist/esm/webhooks/defineWebhookHandlers.js.map +1 -0
  441. package/dist/esm/webhooks/index.d.ts +15 -0
  442. package/dist/esm/webhooks/index.d.ts.map +1 -0
  443. package/dist/esm/webhooks/index.js +14 -0
  444. package/dist/esm/webhooks/index.js.map +1 -0
  445. package/dist/esm/webhooks/init.d.ts +13 -0
  446. package/dist/esm/webhooks/init.d.ts.map +1 -0
  447. package/dist/esm/webhooks/init.js +36 -0
  448. package/dist/esm/webhooks/init.js.map +1 -0
  449. package/dist/esm/webhooks/types.d.ts +136 -0
  450. package/dist/esm/webhooks/types.d.ts.map +1 -0
  451. package/dist/esm/webhooks/types.js +2 -0
  452. package/dist/esm/webhooks/types.js.map +1 -0
  453. package/package.json +149 -0
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The runtime context — the object every authoring callback receives.
3
+ *
4
+ * One full context is built and handed to every callback; the *types* (in
5
+ * `types.ts`) decide which helpers are visible where, so an action-only helper
6
+ * (`eu`, `el`) simply isn't in scope outside its action. At runtime each helper
7
+ * is a thin factory over the CEL globals the backend installs: `auth`, `data`,
8
+ * `newData`, `linkedData`, `ruleParams`, `request`, `rateLimit`.
9
+ *
10
+ * `s` (staged) inlines the stored expression; `b` (bindings) renders the bare
11
+ * alias the backend resolves from the emitted `bind` block.
12
+ */
13
+ import type { ExprNode } from './ast.js';
14
+ import type { Validator } from './validate.js';
15
+ /** The mutable state a namespace/defaults builder threads into its callbacks. */
16
+ export interface ContextState {
17
+ /** Staged name → its inlined expression. */
18
+ staged: Record<string, ExprNode>;
19
+ /** Bound name → its emitted expression (the alias renders bare). */
20
+ binds: Record<string, ExprNode>;
21
+ }
22
+ /**
23
+ * Build the full context. The same object serves common, write, update,
24
+ * link/unlink, default, and attrs callbacks — types gate visibility.
25
+ */
26
+ export declare function makeContext(state: ContextState, v?: Validator): any;
27
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/perms/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAI9C,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAChC,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAChC;AAyDD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,GAAE,SAAsB,GAAG,GAAG,CAkC/E"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeContext = makeContext;
4
+ const ast_js_1 = require("./ast.js");
5
+ const validate_js_1 = require("./validate.js");
6
+ /** Property access over a CEL root: `entityProxy('data').title` → `data.title`. */
7
+ function entityProxy(root, check) {
8
+ return new Proxy({}, {
9
+ get: (_t, key) => {
10
+ check?.(key);
11
+ return (0, ast_js_1.atom)(`${root}.${key}`);
12
+ },
13
+ });
14
+ }
15
+ /** `data.ref(...)` / `auth.ref(...)` / `linkedData.ref(...)` — always a list. */
16
+ function refFn(root, check) {
17
+ return (path) => {
18
+ check?.(path);
19
+ return (0, ast_js_1.atom)(`${root}.ref('${path}')`);
20
+ };
21
+ }
22
+ /** Functional composition helpers (`f` / `ops`). */
23
+ function makeFns() {
24
+ const fold = (op, empty) => (...exprs) => {
25
+ if (exprs.length === 0)
26
+ return (0, ast_js_1.atom)(empty);
27
+ return exprs.map(ast_js_1.coerce).reduce((acc, next) => acc[op](next));
28
+ };
29
+ return {
30
+ and: fold('and', 'true'),
31
+ or: fold('or', 'false'),
32
+ not: (expr) => (0, ast_js_1.coerce)(expr).not(),
33
+ eq: (a, b) => (0, ast_js_1.coerce)(a).eq(b),
34
+ neq: (a, b) => (0, ast_js_1.coerce)(a).neq(b),
35
+ gt: (a, b) => (0, ast_js_1.coerce)(a).gt(b),
36
+ gte: (a, b) => (0, ast_js_1.coerce)(a).gte(b),
37
+ lt: (a, b) => (0, ast_js_1.coerce)(a).lt(b),
38
+ lte: (a, b) => (0, ast_js_1.coerce)(a).lte(b),
39
+ in: (item, list) => (0, ast_js_1.coerce)(item).in(list),
40
+ contains: (list, item) => (0, ast_js_1.coerce)(list).contains(item),
41
+ size: (value) => (0, ast_js_1.coerce)(value).size(),
42
+ list: (...values) => (0, ast_js_1.atom)(`[${values.map(v => (0, ast_js_1.coerce)(v).cel).join(', ')}]`),
43
+ str: (value) => (0, ast_js_1.coerce)(value),
44
+ num: (value) => (0, ast_js_1.coerce)(value),
45
+ bool: (value) => (0, ast_js_1.coerce)(value),
46
+ null: () => (0, ast_js_1.atom)('null'),
47
+ };
48
+ }
49
+ /** Buckets resolve lazily: `rl.createTask.limit(auth.id)` → `rateLimit.createTask.limit(...)`. */
50
+ function rateLimitProxy() {
51
+ return new Proxy({}, {
52
+ get: (_t, bucket) => ({
53
+ limit: (key) => (0, ast_js_1.atom)(`rateLimit.${bucket}.limit(${(0, ast_js_1.coerce)(key).cel})`),
54
+ }),
55
+ });
56
+ }
57
+ /**
58
+ * Build the full context. The same object serves common, write, update,
59
+ * link/unlink, default, and attrs callbacks — types gate visibility.
60
+ */
61
+ function makeContext(state, v = validate_js_1.noValidate) {
62
+ const fns = makeFns();
63
+ return {
64
+ auth: entityProxy('auth'),
65
+ ar: refFn('auth', v.authRef),
66
+ e: entityProxy('data', v.field),
67
+ ef: (key) => {
68
+ v.field(key);
69
+ return (0, ast_js_1.atom)(`data.${key}`);
70
+ },
71
+ er: refFn('data', v.ref),
72
+ rp: (key) => {
73
+ v.ruleParam(key);
74
+ return (0, ast_js_1.atom)(`ruleParams.${key}`);
75
+ },
76
+ req: entityProxy('request'),
77
+ eu: entityProxy('newData', v.field),
78
+ euf: (key) => {
79
+ v.field(key);
80
+ return (0, ast_js_1.atom)(`newData.${key}`);
81
+ },
82
+ el: entityProxy('linkedData', v.linkedField),
83
+ elf: (key) => {
84
+ v.linkedField(key);
85
+ return (0, ast_js_1.atom)(`linkedData.${key}`);
86
+ },
87
+ elr: refFn('linkedData', v.linkedRef),
88
+ f: fns,
89
+ ops: fns,
90
+ raw: (cel) => (0, ast_js_1.raw)(cel),
91
+ rl: rateLimitProxy(),
92
+ s: state.staged,
93
+ b: new Proxy({}, { get: (_t, name) => (0, ast_js_1.atom)(name) }),
94
+ };
95
+ }
96
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/perms/context.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The runtime context — the object every authoring callback receives.\n *\n * One full context is built and handed to every callback; the *types* (in\n * `types.ts`) decide which helpers are visible where, so an action-only helper\n * (`eu`, `el`) simply isn't in scope outside its action. At runtime each helper\n * is a thin factory over the CEL globals the backend installs: `auth`, `data`,\n * `newData`, `linkedData`, `ruleParams`, `request`, `rateLimit`.\n *\n * `s` (staged) inlines the stored expression; `b` (bindings) renders the bare\n * alias the backend resolves from the emitted `bind` block.\n */\nimport type { ExprNode } from './ast.js'\nimport type { Validator } from './validate.js'\nimport { atom, coerce, raw as rawNode } from './ast.js'\nimport { noValidate } from './validate.js'\n\n/** The mutable state a namespace/defaults builder threads into its callbacks. */\nexport interface ContextState {\n /** Staged name → its inlined expression. */\n staged: Record<string, ExprNode>\n /** Bound name → its emitted expression (the alias renders bare). */\n binds: Record<string, ExprNode>\n}\n\n/** Property access over a CEL root: `entityProxy('data').title` → `data.title`. */\nfunction entityProxy(root: string, check?: (key: string) => void): any {\n return new Proxy({}, {\n get: (_t, key: string) => {\n check?.(key)\n return atom(`${root}.${key}`)\n },\n })\n}\n\n/** `data.ref(...)` / `auth.ref(...)` / `linkedData.ref(...)` — always a list. */\nfunction refFn(root: string, check?: (path: string) => void) {\n return (path: string) => {\n check?.(path)\n return atom(`${root}.ref('${path}')`)\n }\n}\n\n/** Functional composition helpers (`f` / `ops`). */\nfunction makeFns() {\n const fold = (op: 'and' | 'or', empty: string) => (...exprs: unknown[]): ExprNode => {\n if (exprs.length === 0)\n return atom(empty)\n return exprs.map(coerce).reduce((acc, next) => acc[op](next))\n }\n return {\n and: fold('and', 'true'),\n or: fold('or', 'false'),\n not: (expr: unknown) => coerce(expr).not(),\n eq: (a: unknown, b: unknown) => coerce(a).eq(b),\n neq: (a: unknown, b: unknown) => coerce(a).neq(b),\n gt: (a: unknown, b: unknown) => coerce(a).gt(b),\n gte: (a: unknown, b: unknown) => coerce(a).gte(b),\n lt: (a: unknown, b: unknown) => coerce(a).lt(b),\n lte: (a: unknown, b: unknown) => coerce(a).lte(b),\n in: (item: unknown, list: unknown) => coerce(item).in(list as any),\n contains: (list: unknown, item: unknown) => coerce(list).contains(item),\n size: (value: unknown) => coerce(value).size(),\n list: (...values: unknown[]) => atom(`[${values.map(v => coerce(v).cel).join(', ')}]`),\n str: (value: unknown) => coerce(value),\n num: (value: unknown) => coerce(value),\n bool: (value: unknown) => coerce(value),\n null: () => atom('null'),\n }\n}\n\n/** Buckets resolve lazily: `rl.createTask.limit(auth.id)` → `rateLimit.createTask.limit(...)`. */\nfunction rateLimitProxy(): any {\n return new Proxy({}, {\n get: (_t, bucket: string) => ({\n limit: (key: unknown) => atom(`rateLimit.${bucket}.limit(${coerce(key).cel})`),\n }),\n })\n}\n\n/**\n * Build the full context. The same object serves common, write, update,\n * link/unlink, default, and attrs callbacks — types gate visibility.\n */\nexport function makeContext(state: ContextState, v: Validator = noValidate): any {\n const fns = makeFns()\n return {\n auth: entityProxy('auth'),\n ar: refFn('auth', v.authRef),\n e: entityProxy('data', v.field),\n ef: (key: string) => {\n v.field(key)\n return atom(`data.${key}`)\n },\n er: refFn('data', v.ref),\n rp: (key: string) => {\n v.ruleParam(key)\n return atom(`ruleParams.${key}`)\n },\n req: entityProxy('request'),\n eu: entityProxy('newData', v.field),\n euf: (key: string) => {\n v.field(key)\n return atom(`newData.${key}`)\n },\n el: entityProxy('linkedData', v.linkedField),\n elf: (key: string) => {\n v.linkedField(key)\n return atom(`linkedData.${key}`)\n },\n elr: refFn('linkedData', v.linkedRef),\n f: fns,\n ops: fns,\n raw: (cel: string) => rawNode(cel),\n rl: rateLimitProxy(),\n s: state.staged,\n b: new Proxy({}, { get: (_t, name: string) => atom(name) }),\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@mszr/idb-dux/perms` — typed CEL authoring.
3
+ *
4
+ * `definePerms` and the expression/context machinery that compiles to the
5
+ * plain rules object Instant already accepts. Authoring-only: no client
6
+ * runtime, never bundled into client JS.
7
+ *
8
+ * Spec: `../../../docs/dux-spec-perms.md`.
9
+ */
10
+ export type { Expr, ExprArg, ItemExpr, ListExpr } from './ast.js';
11
+ export { definePerms } from './builder.js';
12
+ export type { ActionCtx, AllowBlock, AttrsBuilder, AuthExpr, CommonCtx, DefaultsBuilder, EntityAction, EntityExpr, Fns, IdbPerms, LinkAction, LinkCtx, NsBuilder, PermsBuilder, RateLimitCtx, RefPath, RefTerminal, RequestExpr, Rule, UpdateCtx, WriteCtx, WriteRequestExpr, } from './types.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/perms/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,YAAY,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,eAAe,EACf,YAAY,EACZ,UAAU,EACV,GAAG,EACH,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,EACX,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,gBAAgB,GACjB,MAAM,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.definePerms = void 0;
4
+ var builder_js_1 = require("./builder.js");
5
+ Object.defineProperty(exports, "definePerms", { enumerable: true, get: function () { return builder_js_1.definePerms; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/perms/index.ts"],"names":[],"mappings":";;;AAUA,2CAA0C;AAAjC,yGAAA,WAAW,OAAA","sourcesContent":["/**\n * `@mszr/idb-dux/perms` — typed CEL authoring.\n *\n * `definePerms` and the expression/context machinery that compiles to the\n * plain rules object Instant already accepts. Authoring-only: no client\n * runtime, never bundled into client JS.\n *\n * Spec: `../../../docs/dux-spec-perms.md`.\n */\nexport type { Expr, ExprArg, ItemExpr, ListExpr } from './ast.js'\nexport { definePerms } from './builder.js'\nexport type {\n ActionCtx,\n AllowBlock,\n AttrsBuilder,\n AuthExpr,\n CommonCtx,\n DefaultsBuilder,\n EntityAction,\n EntityExpr,\n Fns,\n IdbPerms,\n LinkAction,\n LinkCtx,\n NsBuilder,\n PermsBuilder,\n RateLimitCtx,\n RefPath,\n RefTerminal,\n RequestExpr,\n Rule,\n UpdateCtx,\n WriteCtx,\n WriteRequestExpr,\n} from './types.js'\n"]}
@@ -0,0 +1,353 @@
1
+ /**
2
+ * The perms-domain types: the schema-aware context every callback receives,
3
+ * the ref-path machinery, the allow/fields/bind/stage shapes, the chainable
4
+ * builders, and the compiled `IdbPerms` output.
5
+ *
6
+ * The context is **entity-rooted with current unmarked** (conventions §10):
7
+ * `e`/`ef`/`er` read the current entity (`data.*`), `eu`/`euf` the updated one
8
+ * (`newData.*`, update only), `el`/`elf`/`elr` the linked one (`linkedData.*`,
9
+ * link/unlink only). Action-only values exist only in the matching action
10
+ * callback, so misusing one (`eu` in `view`) fails at the cursor.
11
+ */
12
+ import type { DataAttrDef, InstantRules } from '@instantdb/core';
13
+ import type { IdbSchema } from '../schema/defineSchema.js';
14
+ import type { AttrsOf, AttrValue, FieldKeys, LinkLabels, LinkTarget } from '../schema/fields.js';
15
+ import type { IdbRegisteredSchema } from '../schema/register.js';
16
+ import type { IdbNamespaceName } from '../schema/types.js';
17
+ import type { Expand } from '../schema/util.js';
18
+ import type { Expr, ExprArg, ListExpr } from './ast.js';
19
+ /** The authoring value type of a field. */
20
+ export type FieldValue<S extends IdbSchema, NS extends string, K extends string> = K extends 'id' ? string : K extends FieldKeys<S, NS> ? AttrValue<AttrsOf<S, NS>[K]> : never;
21
+ /** Property-access view of an entity: `id` plus every field, each an `Expr`. */
22
+ export type EntityExpr<S extends IdbSchema, NS extends string> = Expand<{
23
+ id: Expr<string>;
24
+ } & {
25
+ [K in FieldKeys<S, NS>]: Expr<FieldValue<S, NS, K>>;
26
+ }>;
27
+ type RefDepth = readonly unknown[];
28
+ /** Ref-path autocomplete spans up to four link hops (spec §7), then `raw`. */
29
+ type RefMaxHops = 4;
30
+ type NextRef<D extends RefDepth> = [...D, unknown];
31
+ type RefAttr<S extends IdbSchema, NS extends string> = FieldKeys<S, NS> | 'id';
32
+ /**
33
+ * Every valid ref path from a namespace: one or more link hops ending in an
34
+ * attribute (`'memberships.user.id'`). Capped at `RefMaxHops` so the union
35
+ * stays tractable; deeper paths use `raw`.
36
+ */
37
+ export type RefPath<S extends IdbSchema, NS extends string, D extends RefDepth = []> = D['length'] extends RefMaxHops ? never : {
38
+ [L in LinkLabels<S, NS>]: `${L}.${RefAttr<S, LinkTarget<S, NS, L>>}` | `${L}.${RefPath<S, LinkTarget<S, NS, L>, NextRef<D>>}`;
39
+ }[LinkLabels<S, NS>];
40
+ /** The value type a ref path terminates in — a list of these is what `er` returns. */
41
+ export type RefTerminal<S extends IdbSchema, NS extends string, P extends string> = P extends `${infer L}.${infer Rest}` ? L extends LinkLabels<S, NS> ? Rest extends RefAttr<S, LinkTarget<S, NS, L>> ? FieldValue<S, LinkTarget<S, NS, L>, Rest> : RefTerminal<S, LinkTarget<S, NS, L>, Rest> : never : never;
42
+ /** Auth refs start from `$users`, spelled `$user.`-prefixed (Instant's form). */
43
+ export type AuthRefPath<S extends IdbSchema> = `$user.${RefPath<S, '$users'>}`;
44
+ type AuthRefTerminal<S extends IdbSchema, P extends string> = P extends `$user.${infer Rest}` ? RefTerminal<S, '$users', Rest> : never;
45
+ type RuleParamDefs<S extends IdbSchema, NS extends string> = NS extends keyof S['$dux']['namespaces'] ? S['$dux']['namespaces'][NS]['ruleParams'] extends infer RP ? RP extends Record<string, DataAttrDef<any, any, any, any>> ? RP : {} : {} : {};
46
+ type RuleParamKeys<S extends IdbSchema, NS extends string> = keyof RuleParamDefs<S, NS> & string;
47
+ type RuleParamValue<S extends IdbSchema, NS extends string, K extends string> = K extends keyof RuleParamDefs<S, NS> ? AttrValue<RuleParamDefs<S, NS>[K]> : never;
48
+ /** The authenticated user — a `$users` entity, plus `id`, read as `auth.*`. */
49
+ export type AuthExpr<S extends IdbSchema> = '$users' extends IdbNamespaceName<S> ? EntityExpr<S, '$users'> : {
50
+ id: Expr<string>;
51
+ };
52
+ /** Request metadata always in scope (`request.*`). */
53
+ export interface RequestExpr {
54
+ time: Expr<Date>;
55
+ ip: Expr<string>;
56
+ origin: Expr<string>;
57
+ }
58
+ /** The create/update request: the common metadata plus the modified-field set. */
59
+ export interface WriteRequestExpr extends RequestExpr {
60
+ modifiedFields: ListExpr<string>;
61
+ }
62
+ /** Functional composition — best for nested or n-ary rules (spec §8). */
63
+ export interface Fns {
64
+ and: (...exprs: ExprArg<boolean>[]) => Expr<boolean>;
65
+ or: (...exprs: ExprArg<boolean>[]) => Expr<boolean>;
66
+ not: (expr: ExprArg<boolean>) => Expr<boolean>;
67
+ eq: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
68
+ neq: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
69
+ gt: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
70
+ gte: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
71
+ lt: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
72
+ lte: <T>(a: ExprArg<T>, b: ExprArg<T>) => Expr<boolean>;
73
+ in: <T>(item: ExprArg<T>, list: readonly ExprArg<T>[] | ListExpr<T>) => Expr<boolean>;
74
+ contains: <T>(list: readonly ExprArg<T>[] | ListExpr<T>, item: ExprArg<T>) => Expr<boolean>;
75
+ size: (value: ListExpr<any> | ExprArg<string>) => Expr<number>;
76
+ list: <T>(...values: ExprArg<T>[]) => ListExpr<T>;
77
+ str: (value: ExprArg<string>) => Expr<string>;
78
+ num: (value: ExprArg<number>) => Expr<number>;
79
+ bool: (value: ExprArg<boolean>) => Expr<boolean>;
80
+ null: () => Expr<null>;
81
+ }
82
+ /** Configured rate-limit buckets, used as `rl.bucket.limit(key)`. */
83
+ export type RateLimitCtx<RL> = {
84
+ [K in keyof RL]: {
85
+ limit: (key: ExprArg<unknown>) => Expr<boolean>;
86
+ };
87
+ };
88
+ /** How a bucket refills — mirrors Instant's `$rateLimits` refill shape (spec §11). */
89
+ export interface IdbPermsRateLimitRefill {
90
+ amount?: number;
91
+ period?: string;
92
+ type?: 'interval' | 'greedy';
93
+ }
94
+ /** One token-bucket limit. */
95
+ export interface IdbPermsRateLimitLimit {
96
+ capacity: number;
97
+ refill?: IdbPermsRateLimitRefill;
98
+ }
99
+ /** A named rate-limit bucket — used in rules via `rl.<name>.limit(key)`. */
100
+ export interface IdbPermsRateLimit {
101
+ limits: IdbPermsRateLimitLimit[];
102
+ }
103
+ /** The `$rateLimits` configuration map (structurally Instant's shape). */
104
+ export type IdbPermsRateLimits = Record<string, IdbPermsRateLimit>;
105
+ /** The common context — every callback's baseline (spec §6). */
106
+ export interface CommonCtx<S extends IdbSchema, NS extends string, St, Bn, RL> {
107
+ auth: AuthExpr<S>;
108
+ ar: <P extends AuthRefPath<S>>(path: P) => ListExpr<AuthRefTerminal<S, P>>;
109
+ e: EntityExpr<S, NS>;
110
+ ef: <K extends FieldKeys<S, NS>>(key: K) => Expr<FieldValue<S, NS, K>>;
111
+ er: <P extends RefPath<S, NS>>(path: P) => ListExpr<RefTerminal<S, NS, P>>;
112
+ rp: <K extends RuleParamKeys<S, NS>>(key: K) => Expr<RuleParamValue<S, NS, K>>;
113
+ req: RequestExpr;
114
+ f: Fns;
115
+ ops: Fns;
116
+ raw: <T = boolean>(cel: string) => Expr<T>;
117
+ rl: RateLimitCtx<RL>;
118
+ s: St;
119
+ b: Bn;
120
+ }
121
+ /** Create/update context — common plus `request.modifiedFields`. */
122
+ export type WriteCtx<S extends IdbSchema, NS extends string, St, Bn, RL> = Omit<CommonCtx<S, NS, St, Bn, RL>, 'req'> & {
123
+ req: WriteRequestExpr;
124
+ };
125
+ /** Update context — write context plus the updated entity (`newData.*`). */
126
+ export type UpdateCtx<S extends IdbSchema, NS extends string, St, Bn, RL> = WriteCtx<S, NS, St, Bn, RL> & {
127
+ eu: EntityExpr<S, NS>;
128
+ euf: <K extends FieldKeys<S, NS>>(key: K) => Expr<FieldValue<S, NS, K>>;
129
+ };
130
+ /** Link/unlink context — common plus the linked entity, typed per link label. */
131
+ export type LinkCtx<S extends IdbSchema, NS extends string, L extends string, St, Bn, RL> = CommonCtx<S, NS, St, Bn, RL> & {
132
+ el: EntityExpr<S, LinkTarget<S, NS, L>>;
133
+ elf: <K extends FieldKeys<S, LinkTarget<S, NS, L>>>(key: K) => Expr<FieldValue<S, LinkTarget<S, NS, L>, K>>;
134
+ elr: <P extends RefPath<S, LinkTarget<S, NS, L>>>(path: P) => ListExpr<RefTerminal<S, LinkTarget<S, NS, L>, P>>;
135
+ };
136
+ /** The loose context for `.defaults` — no namespace, so reads are string-keyed. */
137
+ export interface DefaultCtx<S extends IdbSchema, St, Bn, RL> {
138
+ auth: AuthExpr<S>;
139
+ ar: <P extends AuthRefPath<S>>(path: P) => ListExpr<AuthRefTerminal<S, P>>;
140
+ ef: (key: string) => Expr<unknown>;
141
+ er: (path: string) => ListExpr<unknown>;
142
+ rp: (key: string) => Expr<unknown>;
143
+ req: RequestExpr;
144
+ f: Fns;
145
+ ops: Fns;
146
+ raw: <T = boolean>(cel: string) => Expr<T>;
147
+ rl: RateLimitCtx<RL>;
148
+ s: St;
149
+ b: Bn;
150
+ }
151
+ /** The narrow context for `.attrs` — no entity, no refs (spec §5). */
152
+ export interface AttrsCtx<S extends IdbSchema, RL> {
153
+ auth: AuthExpr<S>;
154
+ ar: <P extends AuthRefPath<S>>(path: P) => ListExpr<AuthRefTerminal<S, P>>;
155
+ req: RequestExpr;
156
+ f: Fns;
157
+ ops: Fns;
158
+ raw: <T = boolean>(cel: string) => Expr<T>;
159
+ rl: RateLimitCtx<RL>;
160
+ }
161
+ /** The four whole-entity actions a `stageFor`/`bindFor` can target. */
162
+ export type EntityAction = 'view' | 'create' | 'update' | 'delete';
163
+ /** The two link-label actions. */
164
+ export type LinkAction = 'link' | 'unlink';
165
+ /** One action's accumulated action-specific staged (`s`) and bind (`b`) names. */
166
+ export interface Scope {
167
+ s: object;
168
+ b: object;
169
+ }
170
+ interface EmptyScope {
171
+ s: {};
172
+ b: {};
173
+ }
174
+ /**
175
+ * The action-specific names a namespace builder has accumulated — threaded
176
+ * through the builder's type so each appears *only* in its own action's
177
+ * callback. Whole-entity actions hold one scope; link/unlink hold one per label.
178
+ */
179
+ export interface ActionScopes {
180
+ view: Scope;
181
+ create: Scope;
182
+ update: Scope;
183
+ delete: Scope;
184
+ link: Record<string, Scope>;
185
+ unlink: Record<string, Scope>;
186
+ }
187
+ /** The starting scopes — nothing action-specific yet. */
188
+ export interface EmptyScopes {
189
+ view: EmptyScope;
190
+ create: EmptyScope;
191
+ update: EmptyScope;
192
+ delete: EmptyScope;
193
+ link: {};
194
+ unlink: {};
195
+ }
196
+ type LinkScopeOf<AX extends ActionScopes, D extends LinkAction, L extends string> = L extends keyof AX[D] ? AX[D][L] : EmptyScope;
197
+ interface StageScope<Sc extends Scope, O> {
198
+ s: Expand<Sc['s'] & O>;
199
+ b: Sc['b'];
200
+ }
201
+ interface BindScope<Sc extends Scope, O> {
202
+ s: Sc['s'];
203
+ b: Expand<Sc['b'] & O>;
204
+ }
205
+ interface AddStage<AX extends ActionScopes, A extends EntityAction, O> {
206
+ view: A extends 'view' ? StageScope<AX['view'], O> : AX['view'];
207
+ create: A extends 'create' ? StageScope<AX['create'], O> : AX['create'];
208
+ update: A extends 'update' ? StageScope<AX['update'], O> : AX['update'];
209
+ delete: A extends 'delete' ? StageScope<AX['delete'], O> : AX['delete'];
210
+ link: AX['link'];
211
+ unlink: AX['unlink'];
212
+ }
213
+ interface AddBind<AX extends ActionScopes, A extends EntityAction, O> {
214
+ view: A extends 'view' ? BindScope<AX['view'], O> : AX['view'];
215
+ create: A extends 'create' ? BindScope<AX['create'], O> : AX['create'];
216
+ update: A extends 'update' ? BindScope<AX['update'], O> : AX['update'];
217
+ delete: A extends 'delete' ? BindScope<AX['delete'], O> : AX['delete'];
218
+ link: AX['link'];
219
+ unlink: AX['unlink'];
220
+ }
221
+ interface AddLinkStage<AX extends ActionScopes, D extends LinkAction, L extends string, O> {
222
+ view: AX['view'];
223
+ create: AX['create'];
224
+ update: AX['update'];
225
+ delete: AX['delete'];
226
+ link: D extends 'link' ? AX['link'] & {
227
+ [P in L]: StageScope<LinkScopeOf<AX, 'link', L>, O>;
228
+ } : AX['link'];
229
+ unlink: D extends 'unlink' ? AX['unlink'] & {
230
+ [P in L]: StageScope<LinkScopeOf<AX, 'unlink', L>, O>;
231
+ } : AX['unlink'];
232
+ }
233
+ interface AddLinkBind<AX extends ActionScopes, D extends LinkAction, L extends string, O> {
234
+ view: AX['view'];
235
+ create: AX['create'];
236
+ update: AX['update'];
237
+ delete: AX['delete'];
238
+ link: D extends 'link' ? AX['link'] & {
239
+ [P in L]: BindScope<LinkScopeOf<AX, 'link', L>, O>;
240
+ } : AX['link'];
241
+ unlink: D extends 'unlink' ? AX['unlink'] & {
242
+ [P in L]: BindScope<LinkScopeOf<AX, 'unlink', L>, O>;
243
+ } : AX['unlink'];
244
+ }
245
+ /** The context a whole-entity action callback (and its `stageFor`/`bindFor`) sees. */
246
+ export type ActionCtx<S extends IdbSchema, NS extends string, St, Bn, RL, A extends EntityAction> = A extends 'update' ? UpdateCtx<S, NS, St, Bn, RL> : A extends 'create' ? WriteCtx<S, NS, St, Bn, RL> : CommonCtx<S, NS, St, Bn, RL>;
247
+ /** A rule value: a boolean, an expression, or a callback returning one. */
248
+ export type Rule<Ctx> = boolean | Expr<boolean> | ((ctx: Ctx) => boolean | Expr<boolean>);
249
+ /**
250
+ * The allow block for a namespace. Each action's callback sees the common
251
+ * scope plus that action's `stageFor`/`bindFor` names (and, for link/unlink,
252
+ * the per-label ones) — so action-specific aliases resolve only where they
253
+ * make sense.
254
+ */
255
+ export interface AllowBlock<S extends IdbSchema, NS extends string, St, Bn, RL, AX extends ActionScopes = EmptyScopes> {
256
+ view?: Rule<CommonCtx<S, NS, St & AX['view']['s'], Bn & AX['view']['b'], RL>>;
257
+ create?: Rule<WriteCtx<S, NS, St & AX['create']['s'], Bn & AX['create']['b'], RL>>;
258
+ update?: Rule<UpdateCtx<S, NS, St & AX['update']['s'], Bn & AX['update']['b'], RL>>;
259
+ delete?: Rule<CommonCtx<S, NS, St & AX['delete']['s'], Bn & AX['delete']['b'], RL>>;
260
+ link?: {
261
+ [L in LinkLabels<S, NS>]?: Rule<LinkCtx<S, NS, L, St & LinkScopeOf<AX, 'link', L>['s'], Bn & LinkScopeOf<AX, 'link', L>['b'], RL>>;
262
+ };
263
+ unlink?: {
264
+ [L in LinkLabels<S, NS>]?: Rule<LinkCtx<S, NS, L, St & LinkScopeOf<AX, 'unlink', L>['s'], Bn & LinkScopeOf<AX, 'unlink', L>['b'], RL>>;
265
+ };
266
+ }
267
+ export type AllowInput<S extends IdbSchema, NS extends string, St, Bn, RL, AX extends ActionScopes = EmptyScopes> = AllowBlock<S, NS, St, Bn, RL, AX> | ((ctx: CommonCtx<S, NS, St, Bn, RL>) => AllowBlock<S, NS, St, Bn, RL, AX>);
268
+ /** Field-level rules — every field except `id`. */
269
+ export type FieldsBlock<S extends IdbSchema, NS extends string> = {
270
+ [F in Exclude<FieldKeys<S, NS>, 'id'>]?: boolean | Expr<boolean>;
271
+ };
272
+ export type FieldsInput<S extends IdbSchema, NS extends string, St, Bn, RL> = FieldsBlock<S, NS> | ((ctx: CommonCtx<S, NS, St, Bn, RL>) => FieldsBlock<S, NS>);
273
+ /** A stage/bind callback returns named expressions. */
274
+ export type NameObj = Record<string, Expr<any>>;
275
+ /**
276
+ * Maps duplicate names (already in `Existing`) to a diagnostic and leaves
277
+ * valid names untouched (intersection identity), so a clash lands on the
278
+ * offending key with an actionable message.
279
+ */
280
+ export type NoDuplicateNames<O, Existing> = {
281
+ [K in keyof O]: K extends keyof Existing ? `QERR_PERMS_DUPLICATE_NAME: ${K & string} is already defined — use .overrideStage/.overrideBind to replace it` : unknown;
282
+ };
283
+ export interface DefaultAllowBlock<S extends IdbSchema, St, Bn, RL> {
284
+ $default?: Rule<DefaultCtx<S, St, Bn, RL>>;
285
+ view?: Rule<DefaultCtx<S, St, Bn, RL>>;
286
+ create?: Rule<DefaultCtx<S, St, Bn, RL>>;
287
+ update?: Rule<DefaultCtx<S, St, Bn, RL>>;
288
+ delete?: Rule<DefaultCtx<S, St, Bn, RL>>;
289
+ }
290
+ export type DefaultAllowInput<S extends IdbSchema, St, Bn, RL> = DefaultAllowBlock<S, St, Bn, RL> | ((ctx: DefaultCtx<S, St, Bn, RL>) => DefaultAllowBlock<S, St, Bn, RL>);
291
+ /** The namespace builder — `ns` in `.namespaces({})` (spec §4). */
292
+ export interface NsBuilder<S extends IdbSchema, NS extends string, St = {}, Bn = {}, RL = {}, AX extends ActionScopes = EmptyScopes> {
293
+ stage: <O extends NameObj>(fn: (ctx: CommonCtx<S, NS, St, Bn, RL>) => O & NoDuplicateNames<O, St & Bn>) => NsBuilder<S, NS, Expand<St & O>, Bn, RL, AX>;
294
+ overrideStage: <O extends NameObj>(fn: (ctx: CommonCtx<S, NS, St, Bn, RL>) => O) => NsBuilder<S, NS, Expand<St & O>, Bn, RL, AX>;
295
+ bind: <O extends NameObj>(fn: (ctx: CommonCtx<S, NS, St, Bn, RL>) => O & NoDuplicateNames<O, St & Bn>) => NsBuilder<S, NS, St, Expand<Bn & O>, RL, AX>;
296
+ overrideBind: <O extends NameObj>(fn: (ctx: CommonCtx<S, NS, St, Bn, RL>) => O) => NsBuilder<S, NS, St, Expand<Bn & O>, RL, AX>;
297
+ /**
298
+ * Action-specific staged values — authoring-only, visible only in the
299
+ * matching action's callback. For link/unlink, pass the label too (spec §9).
300
+ */
301
+ stageFor: {
302
+ <A extends EntityAction, O extends NameObj>(action: A, fn: (ctx: ActionCtx<S, NS, St & AX[A]['s'], Bn & AX[A]['b'], RL, A>) => O & NoDuplicateNames<O, St & Bn>): NsBuilder<S, NS, St, Bn, RL, AddStage<AX, A, O>>;
303
+ <D extends LinkAction, L extends LinkLabels<S, NS>, O extends NameObj>(dir: D, label: L, fn: (ctx: LinkCtx<S, NS, L, St & LinkScopeOf<AX, D, L>['s'], Bn & LinkScopeOf<AX, D, L>['b'], RL>) => O & NoDuplicateNames<O, St & Bn>): NsBuilder<S, NS, St, Bn, RL, AddLinkStage<AX, D, L, O>>;
304
+ };
305
+ /**
306
+ * Action-specific bind aliases — emitted into the namespace `bind` block
307
+ * (the backend evaluates each only where referenced), visible only in the
308
+ * matching action's callback (spec §9).
309
+ */
310
+ bindFor: {
311
+ <A extends EntityAction, O extends NameObj>(action: A, fn: (ctx: ActionCtx<S, NS, St & AX[A]['s'], Bn & AX[A]['b'], RL, A>) => O & NoDuplicateNames<O, St & Bn>): NsBuilder<S, NS, St, Bn, RL, AddBind<AX, A, O>>;
312
+ <D extends LinkAction, L extends LinkLabels<S, NS>, O extends NameObj>(dir: D, label: L, fn: (ctx: LinkCtx<S, NS, L, St & LinkScopeOf<AX, D, L>['s'], Bn & LinkScopeOf<AX, D, L>['b'], RL>) => O & NoDuplicateNames<O, St & Bn>): NsBuilder<S, NS, St, Bn, RL, AddLinkBind<AX, D, L, O>>;
313
+ };
314
+ allow: (input: AllowInput<S, NS, St, Bn, RL, AX>) => NsBuilder<S, NS, St, Bn, RL, AX>;
315
+ fields: (input: FieldsInput<S, NS, St, Bn, RL>) => NsBuilder<S, NS, St, Bn, RL, AX>;
316
+ }
317
+ /** The defaults builder — `d` in `.defaults()` (spec §5). */
318
+ export interface DefaultsBuilder<S extends IdbSchema, St = {}, Bn = {}, RL = {}> {
319
+ stage: <O extends NameObj>(fn: (ctx: DefaultCtx<S, St, Bn, RL>) => O & NoDuplicateNames<O, St & Bn>) => DefaultsBuilder<S, Expand<St & O>, Bn, RL>;
320
+ bind: <O extends NameObj>(fn: (ctx: DefaultCtx<S, St, Bn, RL>) => O & NoDuplicateNames<O, St & Bn>) => DefaultsBuilder<S, St, Expand<Bn & O>, RL>;
321
+ allow: (input: DefaultAllowInput<S, St, Bn, RL>) => DefaultsBuilder<S, St, Bn, RL>;
322
+ readonly __binds?: Bn;
323
+ }
324
+ /** The attrs builder — create-only (spec §5). */
325
+ export interface AttrsBuilder<S extends IdbSchema, RL = {}> {
326
+ allow: (input: {
327
+ create?: boolean | Expr<boolean>;
328
+ } | ((ctx: AttrsCtx<S, RL>) => {
329
+ create?: boolean | Expr<boolean>;
330
+ })) => AttrsBuilder<S, RL>;
331
+ }
332
+ type DefaultStagedOf<D> = D extends DefaultsBuilder<any, infer St, any, any> ? St : {};
333
+ type DefaultBindsOf<D> = D extends DefaultsBuilder<any, any, infer Bn, any> ? Bn : {};
334
+ /** The `.namespaces({})` input — keys are schema namespaces, callbacks build each. */
335
+ export type NamespacesInput<S extends IdbSchema, St, Bn, RL> = {
336
+ [NS in IdbNamespaceName<S>]?: (ns: NsBuilder<S, NS, St, Bn, RL>) => NsBuilder<S, NS, any, any, RL, any>;
337
+ };
338
+ /** The top-level builder returned by `definePerms` (spec §3). */
339
+ export interface PermsBuilder<S extends IdbSchema, St = {}, Bn = {}, RL = {}> {
340
+ attrs: (fn: (a: AttrsBuilder<S, RL>) => AttrsBuilder<S, RL>) => PermsBuilder<S, St, Bn, RL>;
341
+ defaults: <D extends DefaultsBuilder<S, any, any, RL>>(fn: (d: DefaultsBuilder<S, {}, {}, RL>) => D) => PermsBuilder<S, DefaultStagedOf<D>, DefaultBindsOf<D>, RL>;
342
+ rateLimits: <R extends IdbPermsRateLimits>(config: R) => PermsBuilder<S, St, Bn, R>;
343
+ namespaces: (map: NamespacesInput<S, St, Bn, RL>) => PermsBuilder<S, St, Bn, RL>;
344
+ compile: () => IdbPerms<S>;
345
+ }
346
+ /**
347
+ * The compiled rules object — plain CEL strings, structurally assignable to
348
+ * the official `InstantRules<S>` (so CLI push and platform `pushPerms` accept
349
+ * it unchanged).
350
+ */
351
+ export type IdbPerms<S extends IdbSchema = IdbRegisteredSchema> = InstantRules<S>;
352
+ export {};
353
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/perms/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAKvD,2CAA2C;AAC3C,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAC3E,CAAC,SAAS,IAAI,GAAG,MAAM,GACrB,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAEvE,gFAAgF;AAChF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,IAAI,MAAM,CACrE;IAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CAAE,GAAG;KACpB,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CACpD,CACF,CAAA;AAED,KAAK,QAAQ,GAAG,SAAS,OAAO,EAAE,CAAA;AAClC,8EAA8E;AAC9E,KAAK,UAAU,GAAG,CAAC,CAAA;AACnB,KAAK,OAAO,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;AAElD,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,IAAI,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAA;AAE9E;;;;GAIG;AACH,MAAM,MAAM,OAAO,CACjB,CAAC,SAAS,SAAS,EACnB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,QAAQ,GAAG,EAAE,IACrB,CAAC,CAAC,QAAQ,CAAC,SAAS,UAAU,GAC9B,KAAK,GACL;KACG,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,GACnB,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAC1C,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;CAC3D,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAExB,sFAAsF;AACtF,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,SAAS,EACnB,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GACpC,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,GACzB,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAC3C,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GACzC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAC5C,KAAK,GACP,KAAK,CAAA;AAET,iFAAiF;AACjF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAA;AAC9E,KAAK,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,MAAM,IACtD,CAAC,SAAS,SAAS,MAAM,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;AAK5E,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,IACrD,EAAE,SAAS,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,GACtC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,EAAE,GACxD,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GACxD,EAAE,GACF,EAAE,GACJ,EAAE,GACJ,EAAE,CAAA;AAER,KAAK,aAAa,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,CAAA;AAChG,KAAK,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IACxE,CAAC,SAAS,MAAM,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;AAKrF,+EAA+E;AAC/E,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,IACpC,QAAQ,SAAS,gBAAgB,CAAC,CAAC,CAAC,GAClC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AAE1B,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CACrB;AAED,kFAAkF;AAClF,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;CACjC;AAED,yEAAyE;AACzE,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACnD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IACrF,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3F,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9D,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjD,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,qEAAqE;AACrE,MAAM,MAAM,YAAY,CAAC,EAAE,IAAI;KAC5B,CAAC,IAAI,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE;CACrE,CAAA;AAED,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAA;CAC7B;AAED,8BAA8B;AAC9B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,uBAAuB,CAAA;CACjC;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,sBAAsB,EAAE,CAAA;CACjC;AAED,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AAKlE,gEAAgE;AAChE,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,SAAS,EACnB,EAAE,SAAS,MAAM,EACjB,EAAE,EACF,EAAE,EACF,EAAE;IAEF,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjB,EAAE,EAAE,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpB,EAAE,EAAE,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,EAAE,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,EAAE,EAAE,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9E,GAAG,EAAE,WAAW,CAAA;IAChB,CAAC,EAAE,GAAG,CAAA;IACN,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1C,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,EAAE,EAAE,CAAA;IACL,CAAC,EAAE,EAAE,CAAA;CACN;AAED,oEAAoE;AACpE,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACnE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG;IAAE,GAAG,EAAE,gBAAgB,CAAA;CAAE,CAAA;AAEzE,4EAA4E;AAC5E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACpE,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;IAC9B,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACrB,GAAG,EAAE,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;CACxE,CAAA;AAEH,iFAAiF;AACjF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACpF,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG;IAC/B,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IACvC,GAAG,EAAE,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3G,GAAG,EAAE,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAChH,CAAA;AAEH,mFAAmF;AACnF,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACzD,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjB,EAAE,EAAE,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,GAAG,EAAE,WAAW,CAAA;IAChB,CAAC,EAAE,GAAG,CAAA;IACN,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1C,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,EAAE,EAAE,CAAA;IACL,CAAC,EAAE,EAAE,CAAA;CACN;AAED,sEAAsE;AACtE,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE;IAC/C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjB,EAAE,EAAE,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,GAAG,EAAE,WAAW,CAAA;IAChB,CAAC,EAAE,GAAG,CAAA;IACN,GAAG,EAAE,GAAG,CAAA;IACR,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;IAC1C,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,CAAA;CACrB;AAKD,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAClE,kCAAkC;AAClC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE1C,kFAAkF;AAClF,MAAM,WAAW,KAAK;IAAG,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE;AAC/C,UAAU,UAAU;IAAG,CAAC,EAAE,EAAE,CAAC;IAAC,CAAC,EAAE,EAAE,CAAA;CAAE;AAErC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAC9B;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,EAAE,UAAU,CAAA;IAClB,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,EAAE,CAAA;CACX;AAED,KAAK,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,IAC5E,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAA;AAEjD,UAAU,UAAU,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IAAI,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE;AAChF,UAAU,SAAS,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;CAAE;AAK/E,UAAU,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC;IACnE,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAC/D,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACvE,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACvE,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACvE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;CACrB;AACD,UAAU,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAAE,CAAC;IAClE,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAC9D,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACtE,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;IACtE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;CACrB;AACD,UAAU,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC;IACvF,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IAC1G,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;CACrH;AACD,UAAU,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC;IACtF,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAA;IACpB,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAA;IACzG,MAAM,EAAE,CAAC,SAAS,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAA;CACpH;AAED,sFAAsF;AACtF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,YAAY,IAC5F,CAAC,SAAS,QAAQ,GAChB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAC5B,CAAC,SAAS,QAAQ,GAChB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAC3B,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAKpC,2EAA2E;AAC3E,MAAM,MAAM,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;AAEzF;;;;;GAKG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,YAAY,GAAG,WAAW;IACnH,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC7E,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAClF,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACnF,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACnF,IAAI,CAAC,EAAE;SACJ,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;KACnI,CAAA;IACD,MAAM,CAAC,EAAE;SACN,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;KACvI,CAAA;CACF;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,YAAY,GAAG,WAAW,IAC5G,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AAElH,mDAAmD;AACnD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,IAAI;KAC/D,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;CACjE,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACtE,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAEpF,uDAAuD;AACvD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,QAAQ,IAAI;KACzC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,QAAQ,GACpC,8BAA8B,CAAC,GAAG,MAAM,sEAAsE,GAC9G,OAAO;CACZ,CAAA;AAKD,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAChE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC1C,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACtC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;CACzC;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IACzD,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AAK7G,mEAAmE;AACnE,MAAM,WAAW,SAAS,CACxB,CAAC,SAAS,SAAS,EACnB,EAAE,SAAS,MAAM,EACjB,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,EACP,EAAE,SAAS,YAAY,GAAG,WAAW;IAErC,KAAK,EAAE,CAAC,CAAC,SAAS,OAAO,EACvB,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KACxE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,aAAa,EAAE,CAAC,CAAC,SAAS,OAAO,EAC/B,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KACzC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,IAAI,EAAE,CAAC,CAAC,SAAS,OAAO,EACtB,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KACxE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD,YAAY,EAAE,CAAC,CAAC,SAAS,OAAO,EAC9B,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KACzC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACjD;;;OAGG;IACH,QAAQ,EAAE;QACR,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EACxC,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GACvG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,EACnE,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GACrI,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;KAC3D,CAAA;IACD;;;;OAIG;IACH,OAAO,EAAE;QACP,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,OAAO,EACxC,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GACvG,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAClD,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,OAAO,EACnE,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GACrI,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;KAC1D,CAAA;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IACrF,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;CACpF;AAED,6DAA6D;AAC7D,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,SAAS,EACnB,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE;IAEP,KAAK,EAAE,CAAC,CAAC,SAAS,OAAO,EACvB,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KACrE,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/C,IAAI,EAAE,CAAC,CAAC,SAAS,OAAO,EACtB,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KACrE,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAMlF,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,iDAAiD;AACjD,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,GAAG,EAAE;IACxD,KAAK,EAAE,CAAC,KAAK,EACT;QAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE,GACpC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;QAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CAC7F;AAED,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;AACtF,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;AAErF,sFAAsF;AACtF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI;KAC5D,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAC5B,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAC7B,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC;CACzC,CAAA;AAED,iEAAiE;AACjE,MAAM,WAAW,YAAY,CAC3B,CAAC,SAAS,SAAS,EACnB,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,EAAE;IAEP,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC3F,QAAQ,EAAE,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,EACnD,EAAE,EAAE,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KACzC,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC/D,UAAU,EAAE,CAAC,CAAC,SAAS,kBAAkB,EAAE,MAAM,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACnF,UAAU,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAChF,OAAO,EAAE,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAA;CAC3B;AAKD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,mBAAmB,IAAI,YAAY,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map