supython 0.5.0__py3-none-any.whl

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 (188) hide show
  1. supython/__init__.py +8 -0
  2. supython/admin/__init__.py +3 -0
  3. supython/admin/api/__init__.py +24 -0
  4. supython/admin/api/auth.py +118 -0
  5. supython/admin/api/auth_templates.py +67 -0
  6. supython/admin/api/auth_users.py +225 -0
  7. supython/admin/api/db.py +174 -0
  8. supython/admin/api/functions.py +92 -0
  9. supython/admin/api/jobs.py +192 -0
  10. supython/admin/api/ops.py +224 -0
  11. supython/admin/api/realtime.py +281 -0
  12. supython/admin/api/service_auth.py +49 -0
  13. supython/admin/api/service_auth_templates.py +83 -0
  14. supython/admin/api/service_auth_users.py +346 -0
  15. supython/admin/api/service_db.py +214 -0
  16. supython/admin/api/service_functions.py +287 -0
  17. supython/admin/api/service_jobs.py +282 -0
  18. supython/admin/api/service_ops.py +213 -0
  19. supython/admin/api/service_realtime.py +30 -0
  20. supython/admin/api/service_storage.py +220 -0
  21. supython/admin/api/storage.py +117 -0
  22. supython/admin/api/system.py +37 -0
  23. supython/admin/audit.py +29 -0
  24. supython/admin/deps.py +22 -0
  25. supython/admin/errors.py +16 -0
  26. supython/admin/schemas.py +310 -0
  27. supython/admin/session.py +52 -0
  28. supython/admin/spa.py +38 -0
  29. supython/admin/static/assets/Alert-dluGVkos.js +49 -0
  30. supython/admin/static/assets/Audit-Njung3HI.js +2 -0
  31. supython/admin/static/assets/Backups-DzPlFgrm.js +2 -0
  32. supython/admin/static/assets/Buckets-ByacGkU1.js +2 -0
  33. supython/admin/static/assets/Channels-BoIuTtam.js +353 -0
  34. supython/admin/static/assets/ChevronRight-CtQH1EQ1.js +2 -0
  35. supython/admin/static/assets/CodeViewer-Bqy7-wvH.js +2 -0
  36. supython/admin/static/assets/Crons-B67vc39F.js +2 -0
  37. supython/admin/static/assets/DashboardView-CUTFVL6k.js +2 -0
  38. supython/admin/static/assets/DataTable-COAAWEft.js +747 -0
  39. supython/admin/static/assets/DescriptionsItem-P8JUDaBs.js +75 -0
  40. supython/admin/static/assets/DrawerContent-TpYTFgF1.js +139 -0
  41. supython/admin/static/assets/Empty-cr2r7e2u.js +25 -0
  42. supython/admin/static/assets/EmptyState-DeDck-OL.js +2 -0
  43. supython/admin/static/assets/Grid-hFkp9F4P.js +2 -0
  44. supython/admin/static/assets/Input-DppYTq9C.js +259 -0
  45. supython/admin/static/assets/Invoke-DW3Nveeh.js +2 -0
  46. supython/admin/static/assets/JsonField-DibyJgun.js +2 -0
  47. supython/admin/static/assets/LoginView-BjLyE3Ds.css +1 -0
  48. supython/admin/static/assets/LoginView-CoOjECT_.js +111 -0
  49. supython/admin/static/assets/Logs-D9WYrnIT.js +2 -0
  50. supython/admin/static/assets/Logs-DS1XPa0h.css +1 -0
  51. supython/admin/static/assets/Migrations-DOSC2ddQ.js +2 -0
  52. supython/admin/static/assets/ObjectBrowser-_5w8vOX8.js +2 -0
  53. supython/admin/static/assets/Queue-CywZs6vI.js +2 -0
  54. supython/admin/static/assets/RefreshTokens-Ccjr53jg.js +2 -0
  55. supython/admin/static/assets/RlsEditor-BSlH9vSc.js +2 -0
  56. supython/admin/static/assets/Routes-BiLXE49D.js +2 -0
  57. supython/admin/static/assets/Routes-C-ianIGD.css +1 -0
  58. supython/admin/static/assets/SchemaBrowser-DKy2_KQi.css +1 -0
  59. supython/admin/static/assets/SchemaBrowser-XFvFbtDB.js +2 -0
  60. supython/admin/static/assets/Select-DIzZyRZb.js +434 -0
  61. supython/admin/static/assets/Space-n5-XcguU.js +400 -0
  62. supython/admin/static/assets/SqlEditor-b8pTsILY.js +3 -0
  63. supython/admin/static/assets/SqlWorkspace-BUS7IntH.js +104 -0
  64. supython/admin/static/assets/TableData-CQIagLKn.js +2 -0
  65. supython/admin/static/assets/Tag-D1fOKpTH.js +72 -0
  66. supython/admin/static/assets/Templates-BS-ugkdq.js +2 -0
  67. supython/admin/static/assets/Thing-CEAniuMg.js +107 -0
  68. supython/admin/static/assets/Users-wzwajhlh.js +2 -0
  69. supython/admin/static/assets/_plugin-vue_export-helper-DGA9ry_j.js +1 -0
  70. supython/admin/static/assets/dist-VXIJLCYq.js +13 -0
  71. supython/admin/static/assets/format-length-CGCY1rMh.js +2 -0
  72. supython/admin/static/assets/get-Ca6unauB.js +2 -0
  73. supython/admin/static/assets/index-CeE6v959.js +951 -0
  74. supython/admin/static/assets/pinia-COXwfrOX.js +2 -0
  75. supython/admin/static/assets/resources-Bt6thQCD.js +44 -0
  76. supython/admin/static/assets/use-locale-mtgM0a3a.js +2 -0
  77. supython/admin/static/assets/use-merged-state-BvhkaHNX.js +2 -0
  78. supython/admin/static/assets/useConfirm-tMjvBFXR.js +2 -0
  79. supython/admin/static/assets/useResource-C_rJCY8C.js +2 -0
  80. supython/admin/static/assets/useTable-CnZc5zhi.js +363 -0
  81. supython/admin/static/assets/useTable-Dg0XlRlq.css +1 -0
  82. supython/admin/static/assets/useToast-DsZKx0IX.js +2 -0
  83. supython/admin/static/assets/utils-sbXoq7Ir.js +2 -0
  84. supython/admin/static/favicon.svg +1 -0
  85. supython/admin/static/icons.svg +24 -0
  86. supython/admin/static/index.html +24 -0
  87. supython/app.py +149 -0
  88. supython/auth/__init__.py +3 -0
  89. supython/auth/_email_job.py +11 -0
  90. supython/auth/providers/__init__.py +34 -0
  91. supython/auth/providers/github.py +22 -0
  92. supython/auth/providers/google.py +19 -0
  93. supython/auth/providers/oauth.py +56 -0
  94. supython/auth/providers/registry.py +16 -0
  95. supython/auth/ratelimit.py +39 -0
  96. supython/auth/router.py +282 -0
  97. supython/auth/schemas.py +79 -0
  98. supython/auth/service.py +587 -0
  99. supython/body_size.py +184 -0
  100. supython/cli.py +1653 -0
  101. supython/client/__init__.py +67 -0
  102. supython/client/_auth.py +249 -0
  103. supython/client/_client.py +145 -0
  104. supython/client/_config.py +92 -0
  105. supython/client/_functions.py +69 -0
  106. supython/client/_storage.py +255 -0
  107. supython/client/py.typed +0 -0
  108. supython/db.py +151 -0
  109. supython/db_admin.py +8 -0
  110. supython/functions/__init__.py +19 -0
  111. supython/functions/context.py +262 -0
  112. supython/functions/loader.py +307 -0
  113. supython/functions/router.py +228 -0
  114. supython/functions/schemas.py +50 -0
  115. supython/gen/__init__.py +5 -0
  116. supython/gen/_introspect.py +137 -0
  117. supython/gen/types_py.py +270 -0
  118. supython/gen/types_ts.py +365 -0
  119. supython/health.py +229 -0
  120. supython/hooks.py +117 -0
  121. supython/jobs/__init__.py +31 -0
  122. supython/jobs/backends.py +97 -0
  123. supython/jobs/context.py +58 -0
  124. supython/jobs/cron.py +152 -0
  125. supython/jobs/cron_inproc.py +118 -0
  126. supython/jobs/decorators.py +76 -0
  127. supython/jobs/registry.py +79 -0
  128. supython/jobs/router.py +136 -0
  129. supython/jobs/schemas.py +92 -0
  130. supython/jobs/service.py +311 -0
  131. supython/jobs/worker.py +219 -0
  132. supython/jwks.py +257 -0
  133. supython/keyset.py +279 -0
  134. supython/logging_config.py +291 -0
  135. supython/mail.py +33 -0
  136. supython/mailer.py +65 -0
  137. supython/migrate.py +81 -0
  138. supython/migrations/0001_extensions_and_roles.sql +46 -0
  139. supython/migrations/0002_auth_schema.sql +66 -0
  140. supython/migrations/0003_demo_todos.sql +42 -0
  141. supython/migrations/0004_auth_v0_2.sql +47 -0
  142. supython/migrations/0005_storage_schema.sql +117 -0
  143. supython/migrations/0006_realtime_schema.sql +206 -0
  144. supython/migrations/0007_jobs_schema.sql +254 -0
  145. supython/migrations/0008_jobs_last_error.sql +56 -0
  146. supython/migrations/0009_auth_rate_limits.sql +33 -0
  147. supython/migrations/0010_worker_heartbeat.sql +14 -0
  148. supython/migrations/0011_admin_schema.sql +45 -0
  149. supython/migrations/0012_auth_banned_until.sql +10 -0
  150. supython/migrations/0013_email_templates.sql +19 -0
  151. supython/migrations/0014_realtime_payload_warning.sql +96 -0
  152. supython/migrations/0015_backups_schema.sql +14 -0
  153. supython/passwords.py +15 -0
  154. supython/realtime/__init__.py +6 -0
  155. supython/realtime/broker.py +814 -0
  156. supython/realtime/protocol.py +234 -0
  157. supython/realtime/router.py +184 -0
  158. supython/realtime/schemas.py +207 -0
  159. supython/realtime/service.py +261 -0
  160. supython/realtime/topics.py +175 -0
  161. supython/realtime/websocket.py +586 -0
  162. supython/scaffold/__init__.py +5 -0
  163. supython/scaffold/init_project.py +133 -0
  164. supython/scaffold/templates/Caddyfile.tmpl +4 -0
  165. supython/scaffold/templates/README.md.tmpl +22 -0
  166. supython/scaffold/templates/docker-compose.prod.yml.tmpl +84 -0
  167. supython/scaffold/templates/docker-compose.yml.tmpl +41 -0
  168. supython/scaffold/templates/docker_postgres_Dockerfile.tmpl +9 -0
  169. supython/scaffold/templates/docker_postgres_postgresql.conf.tmpl +3 -0
  170. supython/scaffold/templates/env.example.tmpl +149 -0
  171. supython/scaffold/templates/functions_README.md.tmpl +21 -0
  172. supython/scaffold/templates/gitignore.tmpl +14 -0
  173. supython/scaffold/templates/migrations/.gitkeep +0 -0
  174. supython/secretset.py +347 -0
  175. supython/security_headers.py +78 -0
  176. supython/settings.py +198 -0
  177. supython/storage/__init__.py +5 -0
  178. supython/storage/backends.py +392 -0
  179. supython/storage/router.py +341 -0
  180. supython/storage/schemas.py +50 -0
  181. supython/storage/service.py +445 -0
  182. supython/storage/signing.py +119 -0
  183. supython/tokens.py +85 -0
  184. supython-0.5.0.dist-info/METADATA +714 -0
  185. supython-0.5.0.dist-info/RECORD +188 -0
  186. supython-0.5.0.dist-info/WHEEL +4 -0
  187. supython-0.5.0.dist-info/entry_points.txt +2 -0
  188. supython-0.5.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,111 @@
1
+ import{A as e,At as t,Cn as n,Ct as r,En as i,Gn as a,Gt as o,In as s,Jt as c,Kt as l,Ln as u,Mn as d,O as f,Pn as p,Sn as m,Un as h,Yt as g,Zt as _,_n as v,_t as y,ar as b,bn as x,c as S,cn as C,gn as ee,lt as te,mn as w,nn as ne,r as T,sr as E,st as re,t as D,tr as O,ut as k,vn as ie,vt as A,wn as j,xn as M}from"./Space-n5-XcguU.js";import{o as ae,t as N}from"./Input-DppYTq9C.js";import{t as P}from"./format-length-CGCY1rMh.js";import{t as oe}from"./get-Ca6unauB.js";import{t as F}from"./Alert-dluGVkos.js";import{_ as se,i as I,o as ce,r as le,s as ue}from"./index-CeE6v959.js";import{t as de}from"./_plugin-vue_export-helper-DGA9ry_j.js";function fe(e,t,r){let a=i(e,null);if(a===null)return;let o=n()?.proxy;h(r,s),s(r.value),d(()=>{s(void 0,r.value)});function s(e,n){if(!a)return;let r=a[t];n!==void 0&&c(r,n),e!==void 0&&l(r,e)}function c(e,t){e[t]||(e[t]=[]),e[t].splice(e[t].findIndex(e=>e===o),1)}function l(e,t){e[t]||(e[t]=[]),~e[t].findIndex(e=>e===o)||e[t].push(o)}}var L=t(`n-form`),pe=t(`n-form-item-insts`),me=l(`form`,[g(`inline`,`
2
+ width: 100%;
3
+ display: inline-flex;
4
+ align-items: flex-start;
5
+ align-content: space-around;
6
+ `,[l(`form-item`,{width:`auto`,marginRight:`18px`},[o(`&:last-child`,{marginRight:0})])])]),he=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},ge=m({name:`Form`,props:Object.assign(Object.assign({},f.props),{inline:Boolean,labelWidth:[Number,String],labelAlign:String,labelPlacement:{type:String,default:`top`},model:{type:Object,default:()=>{}},rules:Object,disabled:Boolean,size:String,showRequireMark:{type:Boolean,default:void 0},requireMarkPlacement:String,showFeedback:{type:Boolean,default:!0},onSubmit:{type:Function,default:e=>{e.preventDefault()}},showLabel:{type:Boolean,default:void 0},validateMessages:Object}),setup(e){let{mergedClsPrefixRef:t}=k(e);f(`Form`,`-form`,me,se,e,t);let n={},r=O(void 0),i=e=>{let t=r.value;(t===void 0||e>=t)&&(r.value=e)};function a(){var e;for(let t of A(n)){let r=n[t];for(let t of r)(e=t.invalidateLabelWidth)==null||e.call(t)}}function o(e){return he(this,arguments,void 0,function*(e,t=()=>!0){return yield new Promise((r,i)=>{let a=[];for(let e of A(n)){let r=n[e];for(let e of r)e.path&&a.push(e.internalValidate(null,t))}Promise.all(a).then(t=>{let n=t.some(e=>!e.valid),a=[],o=[];t.forEach(e=>{e.errors?.length&&a.push(e.errors),e.warnings?.length&&o.push(e.warnings)}),e&&e(a.length?a:void 0,{warnings:o.length?o:void 0}),n?i(a.length?a:void 0):r({warnings:o.length?o:void 0})})})})}function s(){for(let e of A(n)){let t=n[e];for(let e of t)e.restoreValidation()}}return u(L,{props:e,maxChildLabelWidthRef:r,deriveMaxChildLabelWidth:i}),u(pe,{formItems:n}),Object.assign({validate:o,restoreValidation:s,invalidateLabelWidth:a},{mergedClsPrefix:t})},render(){let{mergedClsPrefix:e}=this;return j(`form`,{class:[`${e}-form`,this.inline&&`${e}-form--inline`],onSubmit:this.onSubmit},this.$slots)}});function R(){return R=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},R.apply(this,arguments)}function _e(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,B(e,t)}function z(e){return z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},z(e)}function B(e,t){return B=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},B(e,t)}function ve(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function V(e,t,n){return V=ve()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&B(i,n.prototype),i},V.apply(null,arguments)}function ye(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function H(e){var t=typeof Map==`function`?new Map:void 0;return H=function(e){if(e===null||!ye(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return V(e,arguments,z(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),B(n,e)},H(e)}var be=/%[sdj%]/g,xe=function(){};function U(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function W(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(be,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}break;default:return e}}):e}function Se(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function G(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||Se(t)&&typeof e==`string`&&!e)}function Ce(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function we(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length){n(o);return}var s=r;r+=1,s<i?t(e[s],a):n([])}a([])}function Te(e){var t=[];return Object.keys(e).forEach(function(n){t.push.apply(t,e[n]||[])}),t}var Ee=function(e){_e(t,e);function t(t,n){var r=e.call(this,`Async Validation Error`)||this;return r.errors=t,r.fields=n,r}return t}(H(Error));function De(e,t,n,r,i){if(t.first){var a=new Promise(function(t,a){we(Te(e),n,function(e){return r(e),e.length?a(new Ee(e,U(e))):t(i)})});return a.catch(function(e){return e}),a}var o=t.firstFields===!0?Object.keys(e):t.firstFields||[],s=Object.keys(e),c=s.length,l=0,u=[],d=new Promise(function(t,a){var d=function(e){if(u.push.apply(u,e),l++,l===c)return r(u),u.length?a(new Ee(u,U(u))):t(i)};s.length||(r(u),t(i)),s.forEach(function(t){var r=e[t];o.indexOf(t)===-1?Ce(r,n,d):we(r,n,d)})});return d.catch(function(e){return e}),d}function Oe(e){return!!(e&&e.message!==void 0)}function ke(e,t){for(var n=e,r=0;r<t.length;r++){if(n==null)return n;n=n[t[r]]}return n}function Ae(e,t){return function(n){var r=e.fullFields?ke(t,e.fullFields):t[n.field||e.fullField];return Oe(n)?(n.field=n.field||e.fullField,n.fieldValue=r,n):{message:typeof n==`function`?n():n,fieldValue:r,field:n.field||e.fullField}}}function je(e,t){if(t){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];typeof r==`object`&&typeof e[n]==`object`?e[n]=R({},e[n],r):e[n]=r}}return e}var Me=function(e,t,n,r,i,a){e.required&&(!n.hasOwnProperty(e.field)||G(t,a||e.type))&&r.push(W(i.messages.required,e.fullField))},Ne=function(e,t,n,r,i){(/^\s+$/.test(t)||t===``)&&r.push(W(i.messages.whitespace,e.fullField))},K,Pe=(function(){if(K)return K;var e=`[a-fA-F\\d:]`,t=function(t){return t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=`+e+`)|(?<=`+e+`)(?=\\s|$))`:``},n=`(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}`,r=`[a-fA-F\\d]{1,4}`,i=(`
7
+ (?:
8
+ (?:`+r+`:){7}(?:`+r+`|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
9
+ (?:`+r+`:){6}(?:`+n+`|:`+r+`|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
10
+ (?:`+r+`:){5}(?::`+n+`|(?::`+r+`){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
11
+ (?:`+r+`:){4}(?:(?::`+r+`){0,1}:`+n+`|(?::`+r+`){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
12
+ (?:`+r+`:){3}(?:(?::`+r+`){0,2}:`+n+`|(?::`+r+`){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
13
+ (?:`+r+`:){2}(?:(?::`+r+`){0,3}:`+n+`|(?::`+r+`){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
14
+ (?:`+r+`:){1}(?:(?::`+r+`){0,4}:`+n+`|(?::`+r+`){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
15
+ (?::(?:(?::`+r+`){0,5}:`+n+`|(?::`+r+`){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
16
+ )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
17
+ `).replace(/\s*\/\/.*$/gm,``).replace(/\n/g,``).trim(),a=RegExp(`(?:^`+n+`$)|(?:^`+i+`$)`),o=RegExp(`^`+n+`$`),s=RegExp(`^`+i+`$`),c=function(e){return e&&e.exact?a:RegExp(`(?:`+t(e)+n+t(e)+`)|(?:`+t(e)+i+t(e)+`)`,`g`)};c.v4=function(e){return e&&e.exact?o:RegExp(``+t(e)+n+t(e),`g`)},c.v6=function(e){return e&&e.exact?s:RegExp(``+t(e)+i+t(e),`g`)};var l=`(?:(?:[a-z]+:)?//)`,u=`(?:\\S+(?::\\S*)?@)?`,d=c.v4().source,f=c.v6().source,p=`(?:`+l+`|www\\.)`+u+`(?:localhost|`+d+`|`+f+`|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return K=RegExp(`(?:^`+p+`$)`,`i`),K}),Fe={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},q={integer:function(e){return q.number(e)&&parseInt(e,10)===e},float:function(e){return q.number(e)&&!q.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime==`function`&&typeof e.getMonth==`function`&&typeof e.getYear==`function`&&!isNaN(e.getTime())},number:function(e){return isNaN(e)?!1:typeof e==`number`},object:function(e){return typeof e==`object`&&!q.array(e)},method:function(e){return typeof e==`function`},email:function(e){return typeof e==`string`&&e.length<=320&&!!e.match(Fe.email)},url:function(e){return typeof e==`string`&&e.length<=2048&&!!e.match(Pe())},hex:function(e){return typeof e==`string`&&!!e.match(Fe.hex)}},Ie=function(e,t,n,r,i){if(e.required&&t===void 0){Me(e,t,n,r,i);return}var a=[`integer`,`float`,`array`,`regexp`,`object`,`method`,`email`,`number`,`date`,`url`,`hex`],o=e.type;a.indexOf(o)>-1?q[o](t)||r.push(W(i.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&r.push(W(i.messages.types[o],e.fullField,e.type))},Le=function(e,t,n,r,i){var a=typeof e.len==`number`,o=typeof e.min==`number`,s=typeof e.max==`number`,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=t,u=null,d=typeof t==`number`,f=typeof t==`string`,p=Array.isArray(t);if(d?u=`number`:f?u=`string`:p&&(u=`array`),!u)return!1;p&&(l=t.length),f&&(l=t.replace(c,`_`).length),a?l!==e.len&&r.push(W(i.messages[u].len,e.fullField,e.len)):o&&!s&&l<e.min?r.push(W(i.messages[u].min,e.fullField,e.min)):s&&!o&&l>e.max?r.push(W(i.messages[u].max,e.fullField,e.max)):o&&s&&(l<e.min||l>e.max)&&r.push(W(i.messages[u].range,e.fullField,e.min,e.max))},J=`enum`,Y={required:Me,whitespace:Ne,type:Ie,range:Le,enum:function(e,t,n,r,i){e[J]=Array.isArray(e[J])?e[J]:[],e[J].indexOf(t)===-1&&r.push(W(i.messages[J],e.fullField,e[J].join(`, `)))},pattern:function(e,t,n,r,i){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||r.push(W(i.messages.pattern.mismatch,e.fullField,t,e.pattern))):typeof e.pattern==`string`&&(new RegExp(e.pattern).test(t)||r.push(W(i.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},Re=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t,`string`)&&!e.required)return n();Y.required(e,t,r,a,i,`string`),G(t,`string`)||(Y.type(e,t,r,a,i),Y.range(e,t,r,a,i),Y.pattern(e,t,r,a,i),e.whitespace===!0&&Y.whitespace(e,t,r,a,i))}n(a)},ze=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&Y.type(e,t,r,a,i)}n(a)},Be=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t===``&&(t=void 0),G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&(Y.type(e,t,r,a,i),Y.range(e,t,r,a,i))}n(a)},Ve=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&Y.type(e,t,r,a,i)}n(a)},He=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),G(t)||Y.type(e,t,r,a,i)}n(a)},Ue=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&(Y.type(e,t,r,a,i),Y.range(e,t,r,a,i))}n(a)},We=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&(Y.type(e,t,r,a,i),Y.range(e,t,r,a,i))}n(a)},Ge=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t==null&&!e.required)return n();Y.required(e,t,r,a,i,`array`),t!=null&&(Y.type(e,t,r,a,i),Y.range(e,t,r,a,i))}n(a)},Ke=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&Y.type(e,t,r,a,i)}n(a)},qe=`enum`,Je=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i),t!==void 0&&Y[qe](e,t,r,a,i)}n(a)},Ye=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t,`string`)&&!e.required)return n();Y.required(e,t,r,a,i),G(t,`string`)||Y.pattern(e,t,r,a,i)}n(a)},Xe=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t,`date`)&&!e.required)return n();if(Y.required(e,t,r,a,i),!G(t,`date`)){var o=t instanceof Date?t:new Date(t);Y.type(e,o,r,a,i),o&&Y.range(e,o.getTime(),r,a,i)}}n(a)},Ze=function(e,t,n,r,i){var a=[],o=Array.isArray(t)?`array`:typeof t;Y.required(e,t,r,a,i,o),n(a)},X=function(e,t,n,r,i){var a=e.type,o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t,a)&&!e.required)return n();Y.required(e,t,r,o,i,a),G(t,a)||Y.type(e,t,r,o,i)}n(o)},Z={string:Re,method:ze,number:Be,boolean:Ve,regexp:He,integer:Ue,float:We,array:Ge,object:Ke,enum:Je,pattern:Ye,date:Xe,url:X,hex:X,email:X,required:Ze,any:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(G(t)&&!e.required)return n();Y.required(e,t,r,a,i)}n(a)}};function Qe(){return{default:`Validation error on field %s`,required:`%s is required`,enum:`%s must be one of %s`,whitespace:`%s cannot be empty`,date:{format:`%s date %s is invalid for format %s`,parse:`%s date could not be parsed, %s is invalid `,invalid:`%s date %s is invalid`},types:{string:`%s is not a %s`,method:`%s is not a %s (function)`,array:`%s is not an %s`,object:`%s is not an %s`,number:`%s is not a %s`,date:`%s is not a %s`,boolean:`%s is not a %s`,integer:`%s is not an %s`,float:`%s is not a %s`,regexp:`%s is not a valid %s`,email:`%s is not a valid %s`,url:`%s is not a valid %s`,hex:`%s is not a valid %s`},string:{len:`%s must be exactly %s characters`,min:`%s must be at least %s characters`,max:`%s cannot be longer than %s characters`,range:`%s must be between %s and %s characters`},number:{len:`%s must equal %s`,min:`%s cannot be less than %s`,max:`%s cannot be greater than %s`,range:`%s must be between %s and %s`},array:{len:`%s must be exactly %s in length`,min:`%s cannot be less than %s in length`,max:`%s cannot be greater than %s in length`,range:`%s must be between %s and %s in length`},pattern:{mismatch:`%s value %s does not match pattern %s`},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var Q=Qe(),$=function(){function e(e){this.rules=null,this._messages=Q,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw Error(`Cannot configure a schema with no rules`);if(typeof e!=`object`||Array.isArray(e))throw Error(`Rules must be an object`);this.rules={},Object.keys(e).forEach(function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]})},t.messages=function(e){return e&&(this._messages=je(Qe(),e)),this._messages},t.validate=function(t,n,r){var i=this;n===void 0&&(n={}),r===void 0&&(r=function(){});var a=t,o=n,s=r;if(typeof o==`function`&&(s=o,o={}),!this.rules||Object.keys(this.rules).length===0)return s&&s(null,a),Promise.resolve(a);function c(e){var t=[],n={};function r(e){if(Array.isArray(e)){var n;t=(n=t).concat.apply(n,e)}else t.push(e)}for(var i=0;i<e.length;i++)r(e[i]);t.length?(n=U(t),s(t,n)):s(null,a)}if(o.messages){var l=this.messages();l===Q&&(l=Qe()),je(l,o.messages),o.messages=l}else o.messages=this.messages();var u={};(o.keys||Object.keys(this.rules)).forEach(function(e){var n=i.rules[e],r=a[e];n.forEach(function(n){var o=n;typeof o.transform==`function`&&(a===t&&(a=R({},a)),r=a[e]=o.transform(r)),o=typeof o==`function`?{validator:o}:R({},o),o.validator=i.getValidationMethod(o),o.validator&&(o.field=e,o.fullField=o.fullField||e,o.type=i.getType(o),u[e]=u[e]||[],u[e].push({rule:o,value:r,source:a,field:e}))})});var d={};return De(u,o,function(t,n){var r=t.rule,i=(r.type===`object`||r.type===`array`)&&(typeof r.fields==`object`||typeof r.defaultField==`object`);i&&=r.required||!r.required&&t.value,r.field=t.field;function s(e,t){return R({},t,{fullField:r.fullField+`.`+e,fullFields:r.fullFields?[].concat(r.fullFields,[e]):[e]})}function c(c){c===void 0&&(c=[]);var l=Array.isArray(c)?c:[c];!o.suppressWarning&&l.length&&e.warning(`async-validator:`,l),l.length&&r.message!==void 0&&(l=[].concat(r.message));var u=l.map(Ae(r,a));if(o.first&&u.length)return d[r.field]=1,n(u);if(!i)n(u);else{if(r.required&&!t.value)return r.message===void 0?o.error&&(u=[o.error(r,W(o.messages.required,r.field))]):u=[].concat(r.message).map(Ae(r,a)),n(u);var f={};r.defaultField&&Object.keys(t.value).map(function(e){f[e]=r.defaultField}),f=R({},f,t.rule.fields);var p={};Object.keys(f).forEach(function(e){var t=f[e];p[e]=(Array.isArray(t)?t:[t]).map(s.bind(null,e))});var m=new e(p);m.messages(o.messages),t.rule.options&&(t.rule.options.messages=o.messages,t.rule.options.error=o.error),m.validate(t.value,t.rule.options||o,function(e){var t=[];u&&u.length&&t.push.apply(t,u),e&&e.length&&t.push.apply(t,e),n(t.length?t:null)})}}var l;if(r.asyncValidator)l=r.asyncValidator(r,t.value,c,t.source,o);else if(r.validator){try{l=r.validator(r,t.value,c,t.source,o)}catch(e){console.error==null||console.error(e),o.suppressValidatorError||setTimeout(function(){throw e},0),c(e.message)}l===!0?c():l===!1?c(typeof r.message==`function`?r.message(r.fullField||r.field):r.message||(r.fullField||r.field)+` fails`):l instanceof Array?c(l):l instanceof Error&&c(l.message)}l&&l.then&&l.then(function(){return c()},function(e){return c(e)})},function(e){c(e)},a)},t.getType=function(e){if(e.type===void 0&&e.pattern instanceof RegExp&&(e.type=`pattern`),typeof e.validator!=`function`&&e.type&&!Z.hasOwnProperty(e.type))throw Error(W(`Unknown rule type %s`,e.type));return e.type||`string`},t.getValidationMethod=function(e){if(typeof e.validator==`function`)return e.validator;var t=Object.keys(e),n=t.indexOf(`message`);return n!==-1&&t.splice(n,1),t.length===1&&t[0]===`required`?Z.required:Z[this.getType(e)]||void 0},e}();$.register=function(e,t){if(typeof t!=`function`)throw Error(`Cannot register a validator by type, validator is not a function`);Z[e]=t},$.warning=xe,$.messages=Q,$.validators=Z;var{cubicBezierEaseInOut:$e}=e;function et({name:e=`fade-down`,fromOffset:t=`-4px`,enterDuration:n=`.3s`,leaveDuration:r=`.3s`,enterCubicBezier:i=$e,leaveCubicBezier:a=$e}={}){return[o(`&.${e}-transition-enter-from, &.${e}-transition-leave-to`,{opacity:0,transform:`translateY(${t})`}),o(`&.${e}-transition-enter-to, &.${e}-transition-leave-from`,{opacity:1,transform:`translateY(0)`}),o(`&.${e}-transition-leave-active`,{transition:`opacity ${r} ${a}, transform ${r} ${a}`}),o(`&.${e}-transition-enter-active`,{transition:`opacity ${n} ${i}, transform ${n} ${i}`})]}var tt=l(`form-item`,`
18
+ display: grid;
19
+ line-height: var(--n-line-height);
20
+ `,[l(`form-item-label`,`
21
+ grid-area: label;
22
+ align-items: center;
23
+ line-height: 1.25;
24
+ text-align: var(--n-label-text-align);
25
+ font-size: var(--n-label-font-size);
26
+ min-height: var(--n-label-height);
27
+ padding: var(--n-label-padding);
28
+ color: var(--n-label-text-color);
29
+ transition: color .3s var(--n-bezier);
30
+ box-sizing: border-box;
31
+ font-weight: var(--n-label-font-weight);
32
+ `,[c(`asterisk`,`
33
+ white-space: nowrap;
34
+ user-select: none;
35
+ -webkit-user-select: none;
36
+ color: var(--n-asterisk-color);
37
+ transition: color .3s var(--n-bezier);
38
+ `),c(`asterisk-placeholder`,`
39
+ grid-area: mark;
40
+ user-select: none;
41
+ -webkit-user-select: none;
42
+ visibility: hidden;
43
+ `)]),l(`form-item-blank`,`
44
+ grid-area: blank;
45
+ min-height: var(--n-blank-height);
46
+ `),g(`auto-label-width`,[l(`form-item-label`,`white-space: nowrap;`)]),g(`left-labelled`,`
47
+ grid-template-areas:
48
+ "label blank"
49
+ "label feedback";
50
+ grid-template-columns: auto minmax(0, 1fr);
51
+ grid-template-rows: auto 1fr;
52
+ align-items: flex-start;
53
+ `,[l(`form-item-label`,`
54
+ display: grid;
55
+ grid-template-columns: 1fr auto;
56
+ min-height: var(--n-blank-height);
57
+ height: auto;
58
+ box-sizing: border-box;
59
+ flex-shrink: 0;
60
+ flex-grow: 0;
61
+ `,[g(`reverse-columns-space`,`
62
+ grid-template-columns: auto 1fr;
63
+ `),g(`left-mark`,`
64
+ grid-template-areas:
65
+ "mark text"
66
+ ". text";
67
+ `),g(`right-mark`,`
68
+ grid-template-areas:
69
+ "text mark"
70
+ "text .";
71
+ `),g(`right-hanging-mark`,`
72
+ grid-template-areas:
73
+ "text mark"
74
+ "text .";
75
+ `),c(`text`,`
76
+ grid-area: text;
77
+ `),c(`asterisk`,`
78
+ grid-area: mark;
79
+ align-self: end;
80
+ `)])]),g(`top-labelled`,`
81
+ grid-template-areas:
82
+ "label"
83
+ "blank"
84
+ "feedback";
85
+ grid-template-rows: minmax(var(--n-label-height), auto) 1fr;
86
+ grid-template-columns: minmax(0, 100%);
87
+ `,[g(`no-label`,`
88
+ grid-template-areas:
89
+ "blank"
90
+ "feedback";
91
+ grid-template-rows: 1fr;
92
+ `),l(`form-item-label`,`
93
+ display: flex;
94
+ align-items: flex-start;
95
+ justify-content: var(--n-label-text-align);
96
+ `)]),l(`form-item-blank`,`
97
+ box-sizing: border-box;
98
+ display: flex;
99
+ align-items: center;
100
+ position: relative;
101
+ `),l(`form-item-feedback-wrapper`,`
102
+ grid-area: feedback;
103
+ box-sizing: border-box;
104
+ min-height: var(--n-feedback-height);
105
+ font-size: var(--n-feedback-font-size);
106
+ line-height: 1.25;
107
+ transform-origin: top left;
108
+ `,[o(`&:not(:empty)`,`
109
+ padding: var(--n-feedback-padding);
110
+ `),l(`form-item-feedback`,{transition:`color .3s var(--n-bezier)`,color:`var(--n-feedback-text-color)`},[g(`warning`,{color:`var(--n-feedback-text-color-warning)`}),g(`error`,{color:`var(--n-feedback-text-color-error)`}),et({fromOffset:`-3px`,enterDuration:`.3s`,leaveDuration:`.2s`})])])]);function nt(e){let t=i(L,null),{mergedComponentPropsRef:n}=k(e);return{mergedSize:w(()=>e.size===void 0?t?.props.size===void 0?n?.value?.Form?.size||`medium`:t.props.size:e.size)}}function rt(e){let t=i(L,null),n=w(()=>{let{labelPlacement:n}=e;return n===void 0?t?.props.labelPlacement?t.props.labelPlacement:`top`:n}),r=w(()=>n.value===`left`&&(e.labelWidth===`auto`||t?.props.labelWidth===`auto`)),a=w(()=>{if(n.value===`top`)return;let{labelWidth:i}=e;if(i!==void 0&&i!==`auto`)return P(i);if(r.value){let e=t?.maxChildLabelWidthRef.value;return e===void 0?void 0:P(e)}if(t?.props.labelWidth!==void 0)return P(t.props.labelWidth)}),o=w(()=>{let{labelAlign:n}=e;if(n)return n;if(t?.props.labelAlign)return t.props.labelAlign}),s=w(()=>[e.labelProps?.style,e.labelStyle,{width:a.value}]),c=w(()=>{let{showRequireMark:n}=e;return n===void 0?t?.props.showRequireMark:n}),l=w(()=>{let{requireMarkPlacement:n}=e;return n===void 0?t?.props.requireMarkPlacement||`right`:n}),u=O(!1),d=O(!1);return{validationErrored:u,validationWarned:d,mergedLabelStyle:s,mergedLabelPlacement:n,mergedLabelAlign:o,mergedShowRequireMark:c,mergedRequireMarkPlacement:l,mergedValidationStatus:w(()=>{let{validationStatus:t}=e;if(t!==void 0)return t;if(u.value)return`error`;if(d.value)return`warning`}),mergedShowFeedback:w(()=>{let{showFeedback:n}=e;return n===void 0?t?.props.showFeedback===void 0?!0:t.props.showFeedback:n}),mergedShowLabel:w(()=>{let{showLabel:n}=e;return n===void 0?t?.props.showLabel===void 0?!0:t.props.showLabel:n}),isAutoLabelWidth:r}}function it(e){let t=i(L,null),n=w(()=>{let{rulePath:t}=e;if(t!==void 0)return t;let{path:n}=e;if(n!==void 0)return n}),r=w(()=>{let r=[],{rule:i}=e;if(i!==void 0&&(Array.isArray(i)?r.push(...i):r.push(i)),t){let{rules:e}=t.props,{value:i}=n;if(e!==void 0&&i!==void 0){let t=oe(e,i);t!==void 0&&(Array.isArray(t)?r.push(...t):r.push(t))}}return r}),a=w(()=>r.value.some(e=>e.required));return{mergedRules:r,mergedRequired:w(()=>a.value||e.required)}}var at=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},ot=Object.assign(Object.assign({},f.props),{label:String,labelWidth:[Number,String],labelStyle:[String,Object],labelAlign:String,labelPlacement:String,path:String,first:Boolean,rulePath:String,required:Boolean,showRequireMark:{type:Boolean,default:void 0},requireMarkPlacement:String,showFeedback:{type:Boolean,default:void 0},rule:[Object,Array],size:String,ignorePathChange:Boolean,validationStatus:String,feedback:String,feedbackClass:String,feedbackStyle:[String,Object],showLabel:{type:Boolean,default:void 0},labelProps:Object,contentClass:String,contentStyle:[String,Object]});A(ot);function st(e,t){return(...n)=>{try{let i=e(...n);return!t&&(typeof i==`boolean`||i instanceof Error||Array.isArray(i))||i?.then?i:(i===void 0||r(`form-item/validate`,`You return a ${typeof i} typed value in the validator method, which is not recommended. Please use ${t?"`Promise`":"`boolean`, `Error` or `Promise`"} typed value instead.`),!0)}catch(e){r(`form-item/validate`,"An error is catched in the validation, so the validation won't be done. Your callback in `validate` method of `n-form` or `n-form-item` won't be called in this validation."),console.error(e);return}}}var ct=m({name:`FormItem`,props:ot,slots:Object,setup(e){fe(pe,`formItems`,b(e,`path`));let{mergedClsPrefixRef:t,inlineThemeDisabled:n}=k(e),r=i(L,null),a=nt(e),o=rt(e),{validationErrored:s,validationWarned:c}=o,{mergedRequired:l,mergedRules:d}=it(e),{mergedSize:m}=a,{mergedLabelPlacement:g,mergedLabelAlign:v,mergedRequireMarkPlacement:y}=o,x=O([]),S=O(ae()),C=O(null),ee=r?b(r.props,`disabled`):O(!1),ne=f(`Form`,`-form-item`,tt,se,e,t);h(b(e,`path`),()=>{e.ignorePathChange||E()});function T(){if(!o.isAutoLabelWidth.value)return;let e=C.value;if(e!==null){let t=e.style.whiteSpace;e.style.whiteSpace=`nowrap`,e.style.width=``,r?.deriveMaxChildLabelWidth(Number(getComputedStyle(e).width.slice(0,-2))),e.style.whiteSpace=t}}function E(){x.value=[],s.value=!1,c.value=!1,e.feedback&&(S.value=ae())}let D=(...t)=>at(this,[...t],void 0,function*(t=null,n=()=>!0,i={suppressWarning:!0}){let{path:a}=e;i?i.first||=e.first:i={};let{value:o}=d,l=r?oe(r.props.model,a||``):void 0,u={},f={},p=(t?o.filter(e=>Array.isArray(e.trigger)?e.trigger.includes(t):e.trigger===t):o).filter(n).map((e,t)=>{let n=Object.assign({},e);if(n.validator&&=st(n.validator,!1),n.asyncValidator&&=st(n.asyncValidator,!0),n.renderMessage){let e=`__renderMessage__${t}`;f[e]=n.message,n.message=e,u[e]=n.renderMessage}return n}),m=p.filter(e=>e.level!==`warning`),h=p.filter(e=>e.level===`warning`),g={valid:!0,errors:void 0,warnings:void 0};if(!p.length)return g;let _=a??`__n_no_path__`,v=new $({[_]:m}),y=new $({[_]:h}),{validateMessages:b}=r?.props||{};b&&(v.messages(b),y.messages(b));let S=e=>{x.value=e.map(e=>{let t=e?.message||``;return{key:t,render:()=>t.startsWith(`__renderMessage__`)?u[t]():t}}),e.forEach(e=>{e.message?.startsWith(`__renderMessage__`)&&(e.message=f[e.message])})};if(m.length){let e=yield new Promise(e=>{v.validate({[_]:l},i,e)});e?.length&&(g.valid=!1,g.errors=e,S(e))}if(h.length&&!g.errors){let e=yield new Promise(e=>{y.validate({[_]:l},i,e)});e?.length&&(S(e),g.warnings=e)}return!g.errors&&!g.warnings?E():(s.value=!!g.errors,c.value=!!g.warnings),g});function ie(){D(`blur`)}function A(){D(`change`)}function j(){D(`focus`)}function M(){D(`input`)}function N(e,t){return at(this,void 0,void 0,function*(){let n,r,i,a;return typeof e==`string`?(n=e,r=t):typeof e==`object`&&e&&(n=e.trigger,r=e.callback,i=e.shouldRuleBeApplied,a=e.options),yield new Promise((e,t)=>{D(n,i,a).then(({valid:n,errors:i,warnings:a})=>{n?(r&&r(void 0,{warnings:a}),e({warnings:a})):(r&&r(i,{warnings:a}),t(i))})})})}u(re,{path:b(e,`path`),disabled:ee,mergedSize:a.mergedSize,mergedValidationStatus:o.mergedValidationStatus,restoreValidation:E,handleContentBlur:ie,handleContentChange:A,handleContentFocus:j,handleContentInput:M});let P={validate:N,restoreValidation:E,internalValidate:D,invalidateLabelWidth:T};p(T);let F=w(()=>{let{value:e}=m,{value:t}=g,n=t===`top`?`vertical`:`horizontal`,{common:{cubicBezierEaseInOut:r},self:{labelTextColor:i,asteriskColor:a,lineHeight:o,feedbackTextColor:s,feedbackTextColorWarning:c,feedbackTextColorError:l,feedbackPadding:u,labelFontWeight:d,[_(`labelHeight`,e)]:f,[_(`blankHeight`,e)]:p,[_(`feedbackFontSize`,e)]:h,[_(`feedbackHeight`,e)]:y,[_(`labelPadding`,n)]:b,[_(`labelTextAlign`,n)]:x,[_(_(`labelFontSize`,t),e)]:S}}=ne.value,C=v.value??x;return t===`top`&&(C=C===`right`?`flex-end`:`flex-start`),{"--n-bezier":r,"--n-line-height":o,"--n-blank-height":p,"--n-label-font-size":S,"--n-label-text-align":C,"--n-label-height":f,"--n-label-padding":b,"--n-label-font-weight":d,"--n-asterisk-color":a,"--n-label-text-color":i,"--n-feedback-padding":u,"--n-feedback-font-size":h,"--n-feedback-height":y,"--n-feedback-text-color":s,"--n-feedback-text-color-warning":c,"--n-feedback-text-color-error":l}}),I=n?te(`form-item`,w(()=>`${m.value[0]}${g.value[0]}${v.value?.[0]||``}`),F,e):void 0,ce=w(()=>g.value===`left`&&y.value===`left`&&v.value===`left`);return Object.assign(Object.assign(Object.assign(Object.assign({labelElementRef:C,mergedClsPrefix:t,mergedRequired:l,feedbackId:S,renderExplains:x,reverseColSpace:ce},o),a),P),{cssVars:n?void 0:F,themeClass:I?.themeClass,onRender:I?.onRender})},render(){let{$slots:e,mergedClsPrefix:t,mergedShowLabel:n,mergedShowRequireMark:r,mergedRequireMarkPlacement:i,onRender:a}=this,o=r===void 0?this.mergedRequired:r;return a?.(),j(`div`,{class:[`${t}-form-item`,this.themeClass,`${t}-form-item--${this.mergedSize}-size`,`${t}-form-item--${this.mergedLabelPlacement}-labelled`,this.isAutoLabelWidth&&`${t}-form-item--auto-label-width`,!n&&`${t}-form-item--no-label`],style:this.cssVars},n&&(()=>{let e=this.$slots.label?this.$slots.label():this.label;if(!e)return null;let n=j(`span`,{class:`${t}-form-item-label__text`},e),r=o?j(`span`,{class:`${t}-form-item-label__asterisk`},i===`left`?`*\xA0`:`\xA0*`):i===`right-hanging`&&j(`span`,{class:`${t}-form-item-label__asterisk-placeholder`},`\xA0*`),{labelProps:a}=this;return j(`label`,Object.assign({},a,{class:[a?.class,`${t}-form-item-label`,`${t}-form-item-label--${i}-mark`,this.reverseColSpace&&`${t}-form-item-label--reverse-columns-space`],style:this.mergedLabelStyle,ref:`labelElementRef`}),i===`left`?[r,n]:[n,r])})(),j(`div`,{class:[`${t}-form-item-blank`,this.contentClass,this.mergedValidationStatus&&`${t}-form-item-blank--${this.mergedValidationStatus}`],style:this.contentStyle},e),this.mergedShowFeedback?j(`div`,{key:this.feedbackId,style:this.feedbackStyle,class:[`${t}-form-item-feedback-wrapper`,this.feedbackClass]},j(ne,{name:`fade-down-transition`,mode:`out-in`},{default:()=>{let{mergedValidationStatus:n}=this;return y(e.feedback,e=>{let{feedback:r}=this,i=e||r?j(`div`,{key:`__feedback__`,class:`${t}-form-item-feedback__line`},e||r):this.renderExplains.length?this.renderExplains?.map(({key:e,render:n})=>j(`div`,{key:e,class:`${t}-form-item-feedback__line`},n())):null;return i?n===`warning`?j(`div`,{key:`controlled-warning`,class:`${t}-form-item-feedback ${t}-form-item-feedback--warning`},i):n===`error`?j(`div`,{key:`controlled-error`,class:`${t}-form-item-feedback ${t}-form-item-feedback--error`},i):n===`success`?j(`div`,{key:`controlled-success`,class:`${t}-form-item-feedback ${t}-form-item-feedback--success`},i):j(`div`,{key:`controlled-default`,class:`${t}-form-item-feedback`},i):null})}})):null)}}),lt={class:`login-shell`},ut=de(m({__name:`LoginView`,setup(e){let t=ue(),n=ce(),r=le(),i=O(null),o=O({email:``,password:``}),c=O(!1),l=O(null),u={email:[{required:!0,message:`Email is required`,trigger:[`blur`,`input`]},{type:`email`,message:`Enter a valid email`,trigger:[`blur`,`input`]}],password:[{required:!0,message:`Password is required`,trigger:[`blur`,`input`]}]};function d(){let e=n.query.next;return typeof e==`string`&&e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`}p(async()=>{r.session||await r.hydrate(),r.session&&await t.replace(d())});async function f(){if(!c.value&&(l.value=null,await i.value?.validate().then(()=>!0).catch(()=>!1))){c.value=!0;try{await r.login(o.value.email,o.value.password),await t.replace(d())}catch(e){e instanceof I?l.value=e.status===401?`Invalid email or password`:e.message:l.value=`Unexpected error. Try again.`}finally{c.value=!1}}}return(e,t)=>(s(),ie(`div`,lt,[M(E(T),{title:`supython admin`,class:`login-card`,bordered:!1},{default:a(()=>[M(E(D),{vertical:``,size:16},{default:a(()=>[l.value?(s(),ee(E(F),{key:0,type:`error`,title:l.value,closable:``,onClose:t[0]||=e=>l.value=null},null,8,[`title`])):v(``,!0),M(E(ge),{ref_key:`formRef`,ref:i,model:o.value,rules:u,"label-placement":`top`,onSubmit:C(f,[`prevent`])},{default:a(()=>[M(E(ct),{label:`Email`,path:`email`},{default:a(()=>[M(E(N),{value:o.value.email,"onUpdate:value":t[1]||=e=>o.value.email=e,type:`text`,placeholder:`admin@example.com`,autofocus:``,"input-props":{autocomplete:`username`,inputmode:`email`}},null,8,[`value`])]),_:1}),M(E(ct),{label:`Password`,path:`password`},{default:a(()=>[M(E(N),{value:o.value.password,"onUpdate:value":t[2]||=e=>o.value.password=e,type:`password`,"show-password-on":`click`,placeholder:`••••••••`,"input-props":{autocomplete:`current-password`}},null,8,[`value`])]),_:1}),M(E(S),{type:`primary`,block:``,loading:c.value,disabled:c.value,"attr-type":`submit`},{default:a(()=>[...t[3]||=[x(` Sign in `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`model`])]),_:1})]),_:1})]))}}),[[`__scopeId`,`data-v-b605643a`]]);export{ut as default};
111
+ //# sourceMappingURL=LoginView-CoOjECT_.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Mn as n,O as r,Rn as i,Sn as a,Un as o,Vn as ee,_n as s,bn as c,c as l,cr as u,gn as d,hn as f,mn as p,p as m,r as h,sr as g,t as _,tr as v,un as y,ur as b,vn as x,wn as S,xn as C}from"./Space-n5-XcguU.js";import{t as w}from"./Select-DIzZyRZb.js";import{t as T}from"./Input-DppYTq9C.js";import{t as E}from"./Tag-D1fOKpTH.js";import{c as D}from"./index-CeE6v959.js";import{t as O}from"./_plugin-vue_export-helper-DGA9ry_j.js";import{t as k}from"./useToast-DsZKx0IX.js";import{t as A}from"./useConfirm-tMjvBFXR.js";var j=a({name:`Scrollbar`,props:Object.assign(Object.assign({},r.props),{trigger:String,xScrollable:Boolean,onScroll:Function,contentClass:String,contentStyle:[Object,String],size:Number,yPlacement:{type:String,default:`right`},xPlacement:{type:String,default:`bottom`}}),setup(){let e=v(null);return Object.assign(Object.assign({},{scrollTo:(...t)=>{var n;(n=e.value)==null||n.scrollTo(t[0],t[1])},scrollBy:(...t)=>{var n;(n=e.value)==null||n.scrollBy(t[0],t[1])}}),{scrollbarInstRef:e})},render(){return S(m,Object.assign({ref:`scrollbarInstRef`},this.$props),this.$slots)}}),M={class:`log-table`},N={class:`col-time`},P={class:`col-level`},F={class:`col-logger`},te={class:`col-message`},ne={key:0,class:`exc-info`},re={class:`col-rid`},I={key:0},L={colspan:`5`,class:`empty-row`},R=5e3,z=O(a({__name:`Logs`,setup(r){function a(e,t){let n=null;return()=>{n!==null&&clearTimeout(n),n=setTimeout(e,t)}}let m=[{label:`All levels`,value:``},{label:`DEBUG`,value:`DEBUG`},{label:`INFO`,value:`INFO`},{label:`WARNING`,value:`WARNING`},{label:`ERROR`,value:`ERROR`},{label:`CRITICAL`,value:`CRITICAL`}],O={DEBUG:`default`,INFO:`info`,WARNING:`warning`,ERROR:`error`,CRITICAL:`error`};function z(e){try{return new Date(e).toLocaleTimeString()}catch{return e}}let B=v(``),V=v(``),H=v(``);function U(){let e=new URLSearchParams;B.value&&e.set(`level`,B.value),V.value&&e.set(`substring`,V.value),H.value&&e.set(`request_id`,H.value);let t=e.toString();return`/admin/api/v1/ops/logs/tail${t?`?`+t:``}`}let W=v([]);function G(e){W.value.push(...e),W.value.length>R&&(W.value=W.value.slice(W.value.length-R))}let K=v(!1),q=v(!1),J=v(!1),Y=null,X=[],Z=!1;function Q(){Y||Z||(Z=!0,J.value=!1,Y=new EventSource(U(),{withCredentials:!0}),Y.addEventListener(`logs:snapshot`,e=>{try{W.value=JSON.parse(e.data).slice(0,R),J.value=!0}catch{}}),Y.addEventListener(`logs:append`,e=>{try{let t=JSON.parse(e.data);K.value?(X.push(t),X.length>R&&(X=X.slice(X.length-R))):G([t])}catch{}}),Y.onopen=()=>{q.value=!0,Z=!1},Y.onerror=()=>{q.value=!1,Z=!1})}function $(){Z=!1,Y&&=(Y.close(),null),q.value=!1}function ie(){$(),W.value=[],X=[],Q()}let ae=a(ie,300);o([B,V,H],()=>{ae()}),Q(),n(()=>{$()});function oe(){K.value=!K.value,!K.value&&X.length>0&&(G(X),X=[])}let se=A(),ce=k();async function le(){await se(`Clear all log entries?`,`This cannot be undone.`)&&(W.value=[],X=[])}function ue(){let e=JSON.stringify(W.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`logs_${new Date().toISOString().replace(/[:.]/g,`-`)}.json`,r.click(),URL.revokeObjectURL(n),ce.success(`Logs downloaded`)}function de(e){switch(e.level){case`ERROR`:case`CRITICAL`:return`log-row--error`;case`WARNING`:return`log-row--warning`;default:return``}}function fe(e){if(e.method&&e.path&&e.status!==void 0){let t=e.status>=500?`error`:e.status>=400?`warning`:`success`;return S(_,{size:[4,0],wrap:!1},()=>[S(E,{type:t,size:`tiny`},()=>`${e.status}`),S(D,{depth:2},()=>`${e.method}`),S(D,{depth:1},()=>e.path??``),S(D,{depth:3},()=>`${e.duration_ms?.toFixed(1)}ms`)])}return S(D,{depth:2},()=>e.message)}let pe=p(()=>q.value?`Connected`:K.value?`Paused`:`Reconnecting…`),me=p(()=>q.value?`success`:K.value?`warning`:`error`);return(n,r)=>(t(),d(g(h),{title:`Live Log Tail`,size:`small`},{default:e(()=>[C(g(_),{align:`center`,style:{"margin-bottom":`16px`},wrap:!0},{default:e(()=>[C(g(w),{value:B.value,"onUpdate:value":r[0]||=e=>B.value=e,options:m,size:`small`,style:{width:`130px`},placeholder:`Level`,clearable:``},null,8,[`value`]),C(g(T),{value:V.value,"onUpdate:value":r[1]||=e=>V.value=e,size:`small`,style:{width:`200px`},placeholder:`Substring…`,clearable:``},null,8,[`value`]),C(g(T),{value:H.value,"onUpdate:value":r[2]||=e=>H.value=e,size:`small`,style:{width:`270px`},placeholder:`Request ID…`,clearable:``},null,8,[`value`]),C(g(E),{type:me.value,size:`small`},{default:e(()=>[c(b(pe.value),1)]),_:1},8,[`type`]),C(g(D),{depth:`3`,style:{"font-size":`12px`}},{default:e(()=>[c(b(W.value.length.toLocaleString())+` entries `,1),K.value&&g(X).length>0?(t(),x(y,{key:0},[c(` · `+b(g(X).length.toLocaleString())+` buffered `,1)],64)):s(``,!0)]),_:1}),r[5]||=f(`div`,{style:{flex:`1`}},null,-1),C(g(l),{size:`small`,onClick:oe},{default:e(()=>[c(b(K.value?`Resume`:`Pause`),1)]),_:1}),C(g(l),{size:`small`,onClick:le},{default:e(()=>[...r[3]||=[c(` Clear `,-1)]]),_:1}),C(g(l),{size:`small`,onClick:ue},{default:e(()=>[...r[4]||=[c(` Download `,-1)]]),_:1})]),_:1}),C(g(j),{style:{"max-height":`calc(100vh - 280px)`}},{default:e(()=>[f(`table`,M,[r[8]||=f(`thead`,null,[f(`tr`,null,[f(`th`,{class:`col-time`},`Time`),f(`th`,{class:`col-level`},`Level`),f(`th`,{class:`col-logger`},`Logger`),f(`th`,{class:`col-message`},`Message`),f(`th`,{class:`col-rid`},`Request ID`)])],-1),f(`tbody`,null,[(t(!0),x(y,null,i(W.value,(n,r)=>(t(),x(`tr`,{key:r,class:u(de(n))},[f(`td`,N,[C(g(D),{depth:`3`,style:{"font-size":`12px`}},{default:e(()=>[c(b(z(n.timestamp)),1)]),_:2},1024)]),f(`td`,P,[C(g(E),{type:O[n.level]??`default`,size:`tiny`},{default:e(()=>[c(b(n.level),1)]),_:2},1032,[`type`])]),f(`td`,F,[C(g(D),{depth:`3`,style:{"font-size":`12px`}},{default:e(()=>[c(b(n.logger),1)]),_:2},1024)]),f(`td`,te,[(t(),d(ee(fe(n)))),n.exc_info?(t(),x(`div`,ne,[f(`pre`,null,b(n.exc_info),1)])):s(``,!0)]),f(`td`,re,[n.request_id?(t(),d(g(D),{key:0,depth:`3`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:e(()=>[c(b(n.request_id.slice(0,8)),1)]),_:2},1024)):s(``,!0)])],2))),128)),W.value.length===0?(t(),x(`tr`,I,[f(`td`,L,[J.value?(t(),d(g(D),{key:1,depth:`3`},{default:e(()=>[...r[7]||=[c(` No matching log entries. `,-1)]]),_:1})):(t(),d(g(D),{key:0,depth:`3`},{default:e(()=>[...r[6]||=[c(` Connecting… `,-1)]]),_:1}))])])):s(``,!0)])])]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-722469d7`]]);export{z as default};
2
+ //# sourceMappingURL=Logs-D9WYrnIT.js.map
@@ -0,0 +1 @@
1
+ .log-table[data-v-722469d7]{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px}.log-table thead[data-v-722469d7]{z-index:1;background:var(--n-color);position:sticky;top:0}.log-table th[data-v-722469d7]{text-align:left;color:var(--n-text-color-2);border-bottom:1px solid var(--n-border-color);text-transform:uppercase;letter-spacing:.5px;padding:6px 8px;font-size:11px;font-weight:600}.log-table td[data-v-722469d7]{border-bottom:1px solid var(--n-border-color);vertical-align:top;padding:4px 8px}.col-time[data-v-722469d7]{width:90px}.col-level[data-v-722469d7]{width:80px}.col-logger[data-v-722469d7]{text-overflow:ellipsis;white-space:nowrap;width:140px;overflow:hidden}.col-message[data-v-722469d7]{width:auto}.col-rid[data-v-722469d7]{width:80px}.log-row--error[data-v-722469d7]{background:#ff5a5a14}.log-row--warning[data-v-722469d7]{background:#ffc8320d}.empty-row[data-v-722469d7]{text-align:center;padding:40px 0}.exc-info[data-v-722469d7]{margin-top:4px}.exc-info pre[data-v-722469d7]{color:var(--n-text-color-3);white-space:pre-wrap;word-break:break-all;max-height:120px;margin:0;font-size:11px;overflow-y:auto}
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Sn as n,_n as r,bn as i,gn as a,mn as o,r as s,sr as c,t as l,tr as u,un as d,ur as f,vn as p,xn as m}from"./Space-n5-XcguU.js";import{t as h}from"./Select-DIzZyRZb.js";import{t as g}from"./DataTable-COAAWEft.js";import{l as _,n as v}from"./resources-Bt6thQCD.js";import{c as y}from"./index-CeE6v959.js";import{t as b}from"./useResource-C_rJCY8C.js";import{n as x,t as S}from"./EmptyState-DeDck-OL.js";var C=n({__name:`Migrations`,setup(n){let C=u(null),w=[{label:`All sources`,value:null},{label:`supython`,value:`supython`},{label:`dbmate`,value:`dbmate`}],{data:T,error:E,loading:D,refresh:O}=b(()=>v.migrations()),k=o(()=>(T.value??[]).some(e=>e.source===`dbmate`)),A=o(()=>{let e=T.value??[];return C.value?e.filter(e=>e.source===C.value):e}),j=[{title:`Version`,key:`version`,sorter:(e,t)=>e.version.localeCompare(t.version),defaultSortOrder:`ascend`},{title:`Source`,key:`source`,width:120},{title:`Applied at`,key:`applied_at`,width:220,render:e=>e.applied_at?new Date(e.applied_at).toLocaleString():`—`}];function M(e){return`${e.source}:${e.version}`}return(n,o)=>(t(),a(c(s),{title:`Migrations`},{default:e(()=>[m(c(l),{vertical:``,size:16},{default:e(()=>[m(c(l),{align:`center`,justify:`space-between`},{default:e(()=>[m(c(h),{value:C.value,"onUpdate:value":o[0]||=e=>C.value=e,options:w,style:{width:`160px`}},null,8,[`value`]),m(c(y),{depth:`3`,style:{"font-size":`12px`}},{default:e(()=>[i(f(A.value.length)+` migration`+f(A.value.length===1?``:`s`),1)]),_:1})]),_:1}),m(c(_),{show:c(D)},{default:e(()=>[m(x,{error:c(E),retry:c(O)},null,8,[`error`,`retry`]),c(T)&&c(T).length>0?(t(),p(d,{key:0},[m(c(g),{columns:j,data:A.value,"row-key":M,bordered:!1,size:`small`},null,8,[`data`]),k.value?r(``,!0):(t(),a(S,{key:0,description:`dbmate not detected — install it to track app‑level migrations. See docs/migrations.md for setup.`}))],64)):c(T)&&c(T).length===0?(t(),a(S,{key:1,description:`No migrations recorded. Run supython migrate to apply framework migrations.`})):r(``,!0)]),_:1},8,[`show`])]),_:1})]),_:1}))}});export{C as default};
2
+ //# sourceMappingURL=Migrations-DOSC2ddQ.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Sn as n,_n as r,bn as i,c as a,hn as o,mn as s,r as c,sn as l,sr as u,t as d,tr as f,un as p,ur as m,vn as h,wn as g,xn as _}from"./Space-n5-XcguU.js";import{t as v}from"./Select-DIzZyRZb.js";import{t as y}from"./Input-DppYTq9C.js";import{t as b}from"./Tag-D1fOKpTH.js";import{n as ee,t as te}from"./DataTable-COAAWEft.js";import{n as ne,t as re}from"./useTable-CnZc5zhi.js";import{s as x}from"./resources-Bt6thQCD.js";import{b as ie,c as S,o as ae,s as oe,y as C}from"./index-CeE6v959.js";import{t as se}from"./useToast-DsZKx0IX.js";import{t as w}from"./useConfirm-tMjvBFXR.js";var T={style:{display:`flex`,"align-items":`center`,gap:`12px`,"margin-bottom":`16px`}},E={style:{margin:`0`,"font-size":`20px`,"font-weight":`600`}},D={style:{"margin-bottom":`16px`}},O={style:{"margin-bottom":`16px`}},k={style:{"margin-bottom":`16px`}},ce={style:{"margin-bottom":`16px`}},le={style:{padding:`8px 12px`,"border-radius":`4px`,background:`rgba(16, 185, 129, 0.1)`,border:`1px solid rgba(16, 185, 129, 0.25)`,"margin-bottom":`12px`}},ue={style:{"margin-bottom":`8px`}},de=[`value`],A=n({__name:`ObjectBrowser`,setup(n){let A=ae(),j=oe(),M=se(),N=w(),P=s(()=>String(A.params.bucket)),F=f(``),{q:I,data:L,loading:R,error:z,refresh:B}=re(e=>x.objects(P.value,{prefix:F.value||void 0,limit:e.limit,offset:e.offset}),{_dummy:null}),V=s(()=>L.value?.rows??[]),H=s(()=>L.value?.total??0);function U(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=Math.min(Math.floor(Math.log(e)/Math.log(1024)),t.length-1);return`${(e/1024**n).toFixed(n===0?0:1)} ${t[n]}`}async function fe(e){try{let t=await x.sign(e.id,300);window.open(t.signed_url,`_blank`)}catch(e){M.error(e.message??`Download failed`)}}let W=f(!1),G=f(!1),K=f(null),q=f(null),J=f(3600),Y=f(`service_role`),X=f(``),Z=[{label:`5 minutes`,value:300},{label:`1 hour`,value:3600},{label:`6 hours`,value:21600},{label:`24 hours`,value:86400},{label:`7 days`,value:604800}],pe=[{label:`service_role`,value:`service_role`},{label:`authenticated`,value:`authenticated`},{label:`anon`,value:`anon`}];function me(e){K.value=e,q.value=null,J.value=3600,Y.value=`service_role`,X.value=``,W.value=!0}function Q(){W.value=!1,K.value=null,q.value=null}async function he(){if(K.value){G.value=!0,q.value=null;try{q.value=await x.sign(K.value.id,J.value,Y.value,X.value||void 0),M.success(`Signed URL generated.`)}catch(e){M.error(e.message??`Sign failed`)}finally{G.value=!1}}}function ge(e){navigator.clipboard.writeText(e).then(()=>M.success(`Copied to clipboard.`),()=>M.error(`Failed to copy.`))}function _e(e){window.open(e,`_blank`)}async function ve(e){if(await N(`Delete object?`,`Delete "${e.name}" from bucket "${P.value}"? This action cannot be undone.`))try{await x.deleteObject(e.id),M.success(`Object "${e.name}" deleted.`),await B()}catch(e){M.error(e.message??`Delete failed`)}}let $=[{title:`Name`,key:`name`,ellipsis:{tooltip:!0}},{title:`Size`,key:`size`,width:100,render:e=>U(e.size)},{title:`Type`,key:`mime_type`,width:140,ellipsis:{tooltip:!0},render:e=>e.mime_type?g(b,{size:`small`,bordered:!1},{default:()=>e.mime_type}):g(S,{depth:3},{default:()=>`—`})},{title:`Updated`,key:`updated_at`,width:140,render:e=>new Date(e.updated_at).toLocaleDateString()},{title:`Actions`,key:`actions`,width:220,render:e=>g(d,{size:`small`},()=>[g(a,{size:`tiny`,secondary:!0,onClick:()=>fe(e)},{default:()=>`Download`}),g(a,{size:`tiny`,type:`info`,onClick:()=>me(e)},{default:()=>`Sign`}),g(a,{size:`tiny`,type:`error`,secondary:!0,onClick:()=>ve(e)},{default:()=>`Delete`})])}];return(n,s)=>(t(),h(`div`,null,[o(`div`,T,[_(u(a),{size:`small`,secondary:``,onClick:s[0]||=e=>u(j).push(`/storage`)},{default:e(()=>[...s[12]||=[i(` ← Buckets `,-1)]]),_:1}),o(`h1`,E,[_(u(S),{code:``},{default:e(()=>[i(m(P.value),1)]),_:1})])]),o(`div`,D,[s[14]||=o(`div`,{style:{"margin-bottom":`4px`,"font-size":`12px`,color:`rgba(255, 255, 255, 0.55)`}},` Prefix filter (path-aware) `,-1),_(u(d),{align:`end`},{default:e(()=>[_(u(y),{value:F.value,"onUpdate:value":s[1]||=e=>F.value=e,placeholder:`e.g. images/2024/ or leave empty for all`,clearable:``,style:{width:`420px`},onKeyup:s[2]||=l(e=>u(B)(),[`enter`]),onClear:s[3]||=e=>u(B)()},null,8,[`value`]),_(u(a),{size:`small`,secondary:``,onClick:s[4]||=e=>u(B)()},{default:e(()=>[...s[13]||=[i(`Apply`,-1)]]),_:1})]),_:1})]),_(u(c),{size:`small`},{default:e(()=>[_(ne,{q:u(I),rows:V.value,total:H.value,loading:u(R),error:u(z),columns:$,"search-placeholder":`Filter rows…`,onRefresh:u(B)},{default:e(()=>[_(u(te),{columns:$,data:V.value,bordered:!1},null,8,[`data`]),_(u(ee),{page:Math.floor(u(I).offset/u(I).limit)+1,"page-count":Math.max(1,Math.ceil(H.value/u(I).limit)),style:{"margin-top":`12px`},"onUpdate:page":s[5]||=e=>u(I).offset=(e-1)*u(I).limit},null,8,[`page`,`page-count`])]),_:1},8,[`q`,`rows`,`total`,`loading`,`error`,`onRefresh`])]),_:1}),_(u(ie),{show:W.value,"mask-closable":!0,"onUpdate:show":s[11]||=e=>{e||Q()}},{default:e(()=>[_(u(c),{style:{width:`520px`,"max-width":`90vw`},title:`Generate Signed URL`,size:`small`,role:`dialog`,"aria-modal":`true`},{"header-extra":e(()=>[_(u(a),{size:`tiny`,quaternary:``,onClick:Q},{default:e(()=>[...s[15]||=[i(`✕`,-1)]]),_:1})]),default:e(()=>[K.value?(t(),h(p,{key:0},[_(u(S),{depth:`3`,style:{"font-size":`12px`,display:`block`,"margin-bottom":`4px`}},{default:e(()=>[...s[16]||=[i(` Object `,-1)]]),_:1}),_(u(S),{code:``,style:{"font-size":`13px`,"word-break":`break-all`}},{default:e(()=>[i(m(K.value.name),1)]),_:1}),_(u(S),{depth:`3`,style:{"font-size":`12px`,display:`block`,"margin-top":`2px`}},{default:e(()=>[i(m(U(K.value.size))+` · `+m(K.value.mime_type??`unknown type`),1)]),_:1}),_(u(C)),o(`div`,O,[_(u(S),{strong:``,style:{display:`block`,"margin-bottom":`6px`,"font-size":`13px`}},{default:e(()=>[...s[17]||=[i(` Expires In `,-1)]]),_:1}),_(u(v),{value:J.value,"onUpdate:value":s[6]||=e=>J.value=e,options:Z,style:{width:`100%`}},null,8,[`value`])]),o(`div`,k,[_(u(S),{strong:``,style:{display:`block`,"margin-bottom":`6px`,"font-size":`13px`}},{default:e(()=>[...s[18]||=[i(` Sign Under Role `,-1)]]),_:1}),_(u(v),{value:Y.value,"onUpdate:value":s[7]||=e=>Y.value=e,options:pe,style:{width:`100%`}},null,8,[`value`])]),o(`div`,ce,[_(u(S),{strong:``,style:{display:`block`,"margin-bottom":`6px`,"font-size":`13px`}},{default:e(()=>[...s[19]||=[i(` Impersonate User ID (optional) `,-1)]]),_:1}),_(u(y),{value:X.value,"onUpdate:value":s[8]||=e=>X.value=e,placeholder:`UUID of the user to impersonate`,clearable:``},null,8,[`value`])]),_(u(a),{type:`primary`,loading:G.value,block:``,onClick:he},{default:e(()=>[...s[20]||=[i(` Generate Signed URL `,-1)]]),_:1},8,[`loading`]),q.value?(t(),h(p,{key:0},[_(u(C)),_(u(S),{strong:``,style:{display:`block`,"margin-bottom":`8px`,"font-size":`13px`}},{default:e(()=>[...s[21]||=[i(` Result `,-1)]]),_:1}),o(`div`,le,[_(u(S),{depth:`3`,style:{"font-size":`11px`,display:`block`}},{default:e(()=>[...s[22]||=[i(` Signed under role `,-1)]]),_:1}),_(u(b),{type:`success`,size:`small`,style:{"margin-top":`4px`}},{default:e(()=>[i(m(q.value.signed_under_role),1)]),_:1})]),o(`div`,ue,[_(u(S),{depth:`3`,style:{"font-size":`11px`,display:`block`,"margin-bottom":`4px`}},{default:e(()=>[i(` Signed URL (expires `+m(new Date(q.value.expires_at).toLocaleString())+`) `,1)]),_:1}),o(`textarea`,{value:q.value.signed_url,readonly:``,rows:`3`,style:{width:`100%`,padding:`8px 10px`,"border-radius":`4px`,border:`1px solid rgba(255, 255, 255, 0.12)`,background:`rgba(255, 255, 255, 0.05)`,color:`inherit`,"font-family":`monospace`,"font-size":`12px`,resize:`vertical`,outline:`none`,"box-sizing":`border-box`,"word-break":`break-all`}},null,8,de)]),_(u(d),null,{default:e(()=>[_(u(a),{size:`small`,secondary:``,onClick:s[9]||=e=>ge(q.value.signed_url)},{default:e(()=>[...s[23]||=[i(` Copy URL `,-1)]]),_:1}),_(u(a),{size:`small`,onClick:s[10]||=e=>_e(q.value.signed_url)},{default:e(()=>[...s[24]||=[i(` Open `,-1)]]),_:1})]),_:1})],64)):r(``,!0)],64)):r(``,!0)]),_:1})]),_:1},8,[`show`])]))}});export{A as default};
2
+ //# sourceMappingURL=ObjectBrowser-_5w8vOX8.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Rn as n,Sn as r,_n as i,bn as a,c as o,gn as s,mn as c,r as l,sr as u,t as d,tr as f,un as p,ur as m,vn as h,wn as g,xn as _}from"./Space-n5-XcguU.js";import{t as v}from"./Tag-D1fOKpTH.js";import{n as y,t as b}from"./DataTable-COAAWEft.js";import{n as x,t as S}from"./DescriptionsItem-P8JUDaBs.js";import{n as C,t as w}from"./useTable-CnZc5zhi.js";import{n as T,t as E}from"./DrawerContent-TpYTFgF1.js";import{i as D}from"./resources-Bt6thQCD.js";import{c as O,y as k}from"./index-CeE6v959.js";import{t as A}from"./EmptyState-DeDck-OL.js";import{t as j}from"./JsonField-DibyJgun.js";import{t as M}from"./useToast-DsZKx0IX.js";import{t as N}from"./useConfirm-tMjvBFXR.js";var P=r({__name:`Queue`,setup(r){let P=M(),F=N(),I={queued:`warning`,running:`info`,succeeded:`success`,failed:`error`,cancelled:`default`},L=[{label:`Any`,value:``},{label:`Queued`,value:`queued`},{label:`Running`,value:`running`},{label:`Succeeded`,value:`succeeded`},{label:`Failed`,value:`failed`},{label:`Cancelled`,value:`cancelled`}],R=[{type:`select`,key:`status`,label:`Status`,options:L.map(e=>({label:e.label,value:e.value||null})),clearable:!0}],{q:z,data:B,loading:V,error:H,refresh:U}=w(e=>D.queue({status:e.filters.status||void 0,limit:e.limit,offset:e.offset}),{status:null}),W=c(()=>B.value),G=c(()=>W.value?.rows??[]),K=c(()=>W.value?.total??0),q=c(()=>W.value?.counts??{});function J(e){return e?new Date(e).toLocaleString():`—`}let Y=[{title:`Name`,key:`name`,ellipsis:{tooltip:!0}},{title:`Status`,key:`status`,width:120,render:e=>g(v,{type:I[e.status],size:`small`},{default:()=>e.status})},{title:`Queue`,key:`queue`,width:120},{title:`Attempts`,key:`attempts`,width:100,render:e=>`${e.attempts}/${e.max_attempts}`},{title:`Created`,key:`created_at`,width:160,render:e=>J(e.created_at)},{title:`Finished`,key:`finished_at`,width:160,render:e=>J(e.finished_at)}],X=f(!1),Z=f(null);function Q(e){Z.value=e,X.value=!0}function $(){X.value=!1,Z.value=null}async function ee(){if(Z.value&&await F(`Retry job "${Z.value.name}"?`,`The job will be re-queued for execution.`))try{await D.retry(Z.value.id),P.success(`Job re-queued.`),$(),await U()}catch(e){P.error(e.message??`Retry failed`)}}async function te(){if(Z.value&&await F(`Cancel job "${Z.value.name}"?`,`The job will be marked as cancelled.`))try{await D.cancel(Z.value.id),P.success(`Job cancelled.`),$(),await U()}catch(e){P.error(e.message??`Cancel failed`)}}return(r,c)=>(t(),s(u(l),{title:`Job Queue`,size:`small`},{default:e(()=>[_(u(d),{size:8,style:{"margin-bottom":`12px`}},{default:e(()=>[(t(!0),h(p,null,n(L.filter(e=>e.value),n=>(t(),s(u(v),{key:n.value,type:I[n.value],size:`small`,round:``},{default:e(()=>[a(m(n.label)+`: `+m(q.value[n.value]??0),1)]),_:2},1032,[`type`]))),128))]),_:1}),_(C,{q:u(z),rows:G.value,total:K.value,loading:u(V),error:u(H),columns:Y,filters:R,onRefresh:u(U)},{default:e(()=>[_(u(b),{columns:Y,data:G.value,bordered:!1,"row-props":e=>({style:`cursor: pointer`,onClick:()=>Q(e)})},null,8,[`data`,`row-props`]),_(u(y),{page:Math.floor(u(z).offset/u(z).limit)+1,"page-count":Math.max(1,Math.ceil(K.value/u(z).limit)),style:{"margin-top":`12px`},"onUpdate:page":c[0]||=e=>u(z).offset=(e-1)*u(z).limit},null,8,[`page`,`page-count`])]),_:1},8,[`q`,`rows`,`total`,`loading`,`error`,`onRefresh`]),_(u(T),{show:X.value,width:560,placement:`right`,"mask-closable":!0,"onUpdate:show":c[1]||=e=>{e||$()}},{default:e(()=>[_(u(E),{title:`Job detail`,closable:``,onClose:$},{default:e(()=>[Z.value?(t(),h(p,{key:0},[_(u(d),{style:{"margin-bottom":`20px`}},{default:e(()=>[Z.value.status===`failed`||Z.value.status===`cancelled`?(t(),s(u(o),{key:0,type:`warning`,size:`small`,onClick:ee},{default:e(()=>[...c[2]||=[a(` Retry `,-1)]]),_:1})):i(``,!0),Z.value.status===`queued`?(t(),s(u(o),{key:1,type:`error`,size:`small`,secondary:``,onClick:te},{default:e(()=>[...c[3]||=[a(` Cancel `,-1)]]),_:1})):i(``,!0)]),_:1}),_(u(x),{bordered:``,"label-placement":`top`,column:1,size:`small`},{default:e(()=>[_(u(S),{label:`id`},{default:e(()=>[_(u(O),{code:``},{default:e(()=>[a(m(Z.value.id),1)]),_:1})]),_:1}),_(u(S),{label:`name`},{default:e(()=>[a(m(Z.value.name),1)]),_:1}),_(u(S),{label:`version`},{default:e(()=>[a(m(Z.value.version),1)]),_:1}),_(u(S),{label:`status`},{default:e(()=>[_(u(v),{type:I[Z.value.status],size:`small`},{default:e(()=>[a(m(Z.value.status),1)]),_:1},8,[`type`])]),_:1}),_(u(S),{label:`queue`},{default:e(()=>[a(m(Z.value.queue),1)]),_:1}),_(u(S),{label:`role`},{default:e(()=>[a(m(Z.value.role),1)]),_:1}),_(u(S),{label:`attempts`},{default:e(()=>[a(m(Z.value.attempts)+` / `+m(Z.value.max_attempts),1)]),_:1}),_(u(S),{label:`user_id`},{default:e(()=>[a(m(Z.value.user_id??`—`),1)]),_:1}),_(u(S),{label:`run_at`},{default:e(()=>[a(m(J(Z.value.run_at)),1)]),_:1}),_(u(S),{label:`locked_at`},{default:e(()=>[a(m(J(Z.value.locked_at)),1)]),_:1}),_(u(S),{label:`locked_by`},{default:e(()=>[a(m(Z.value.locked_by??`—`),1)]),_:1}),_(u(S),{label:`created_at`},{default:e(()=>[a(m(J(Z.value.created_at)),1)]),_:1}),_(u(S),{label:`finished_at`},{default:e(()=>[a(m(J(Z.value.finished_at)),1)]),_:1})]),_:1}),_(u(k)),_(u(O),{strong:``,style:{display:`block`,"margin-bottom":`8px`}},{default:e(()=>[...c[4]||=[a(` Payload `,-1)]]),_:1}),_(j,{value:Z.value.payload},null,8,[`value`]),Z.value.payload?i(``,!0):(t(),s(A,{key:0,description:`No payload.`})),Z.value.last_error?(t(),h(p,{key:1},[_(u(k)),_(u(O),{strong:``,style:{display:`block`,"margin-bottom":`8px`}},{default:e(()=>[...c[5]||=[a(` Last Error `,-1)]]),_:1}),_(u(O),{type:`error`,style:{"white-space":`pre-wrap`,"font-size":`13px`}},{default:e(()=>[a(m(Z.value.last_error),1)]),_:1})],64)):i(``,!0)],64)):i(``,!0)]),_:1})]),_:1},8,[`show`])]),_:1}))}});export{P as default};
2
+ //# sourceMappingURL=Queue-CywZs6vI.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Sn as n,bn as r,c as i,gn as a,hn as o,mn as s,r as c,sn as l,sr as u,t as d,tr as f,wn as p,xn as m}from"./Space-n5-XcguU.js";import{t as h}from"./Input-DppYTq9C.js";import{t as g}from"./Tag-D1fOKpTH.js";import{n as _,t as v}from"./DataTable-COAAWEft.js";import{n as y,t as b}from"./useTable-CnZc5zhi.js";import{t as x}from"./resources-Bt6thQCD.js";import{t as S}from"./useToast-DsZKx0IX.js";import{t as C}from"./useConfirm-tMjvBFXR.js";var w=n({__name:`RefreshTokens`,setup(n){let w=S(),T=C(),E=f(``),{q:D,data:O,loading:k,error:A,refresh:j}=b(e=>x.refreshTokens({user_id:E.value||void 0,limit:e.limit,offset:e.offset})),M=s(()=>O.value?.rows??[]),N=s(()=>O.value?.total??0),P=[{title:`ID`,key:`id`,width:60},{title:`User ID`,key:`user_id`,width:340},{title:`Token`,key:`token`,ellipsis:{tooltip:!0},render:e=>e.token.slice(0,12)+`…`},{title:`Issued`,key:`created_at`,width:170,render:e=>new Date(e.created_at).toLocaleString()},{title:`Parent`,key:`parent`,width:170,render:e=>e.parent?e.parent.slice(0,12)+`…`:`—`},{title:`Revoked`,key:`revoked`,width:90,render:e=>e.revoked?p(g,{type:`error`,size:`small`},{default:()=>`Yes`}):p(g,{type:`success`,size:`small`},{default:()=>`No`})},{title:`Action`,key:`action`,width:100,render:e=>e.revoked?null:p(i,{size:`tiny`,type:`error`,secondary:!0,onClick:()=>F(e)},{default:()=>`Revoke`})}];async function F(e){if(await T(`Revoke refresh token?`,`Revoke token ${e.id} for user ${e.user_id}? This will log them out if it was their most recent token.`))try{await x.revokeToken(e.id),w.success(`Token ${e.id} revoked.`),await j()}catch(e){w.error(e.message??`Revoke failed`)}}return(n,s)=>(t(),a(u(c),{title:`Refresh Tokens`,size:`small`},{default:e(()=>[m(u(d),{vertical:``,size:16},{default:e(()=>[m(u(d),{align:`end`},{default:e(()=>[o(`div`,null,[s[3]||=o(`div`,{style:{"margin-bottom":`4px`,"font-size":`12px`,color:`rgba(255,255,255,0.55)`}},` Filter by User ID (optional) `,-1),m(u(h),{value:E.value,"onUpdate:value":s[0]||=e=>E.value=e,placeholder:`e.g. 550e8400-e29b-41d4-a716-446655440000`,clearable:``,style:{width:`380px`},onKeyup:l(u(j),[`enter`]),onClear:s[1]||=e=>u(j)()},null,8,[`value`,`onKeyup`])]),m(u(i),{size:`small`,secondary:``,onClick:u(j)},{default:e(()=>[...s[4]||=[r(`Apply`,-1)]]),_:1},8,[`onClick`])]),_:1}),m(y,{q:u(D),rows:M.value,total:N.value,loading:u(k),error:u(A),columns:P,"search-placeholder":`Filter rows…`,onRefresh:u(j)},{default:e(()=>[m(u(v),{columns:P,data:M.value,bordered:!1},null,8,[`data`]),m(u(_),{page:Math.floor(u(D).offset/u(D).limit)+1,"page-count":Math.max(1,Math.ceil(N.value/u(D).limit)),style:{"margin-top":`12px`},"onUpdate:page":s[2]||=e=>u(D).offset=(e-1)*u(D).limit},null,8,[`page`,`page-count`])]),_:1},8,[`q`,`rows`,`total`,`loading`,`error`,`onRefresh`])]),_:1})]),_:1}))}});export{w as default};
2
+ //# sourceMappingURL=RefreshTokens-Ccjr53jg.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Sn as n,Un as r,_n as i,bn as a,c as o,gn as s,hn as c,mn as l,r as u,sr as d,t as f,tr as p,un as m,ur as h,vn as g,xn as _}from"./Space-n5-XcguU.js";import{t as v}from"./Select-DIzZyRZb.js";import{t as y}from"./Tag-D1fOKpTH.js";import{t as b}from"./DataTable-COAAWEft.js";import{l as x,n as S}from"./resources-Bt6thQCD.js";import{c as C,y as w}from"./index-CeE6v959.js";import{n as T,t as E}from"./EmptyState-DeDck-OL.js";import{t as D}from"./useToast-DsZKx0IX.js";import{t as O}from"./SqlEditor-b8pTsILY.js";var k={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`8px`}},A={style:{"margin-bottom":`8px`}},j=n({__name:`RlsPolicyEditor`,props:{ddl:{},sampleQuery:{},running:{type:Boolean}},emits:[`update:ddl`,`update:sampleQuery`,`run`],setup(n,{emit:r}){let i=n,u=r,p=l(()=>new TextEncoder().encode(i.ddl).length),m=l(()=>p.value>7e3),g=l(()=>p.value>8192);return(r,i)=>(t(),s(d(f),{vertical:``,size:16},{default:e(()=>[c(`div`,null,[c(`div`,k,[_(d(C),{strong:``},{default:e(()=>[...i[3]||=[a(`Policy DDL`,-1)]]),_:1}),_(d(y),{type:g.value?`error`:m.value?`warning`:`default`,size:`small`},{default:e(()=>[a(h(p.value)+` / 8192 bytes `,1)]),_:1},8,[`type`])]),_(O,{"model-value":n.ddl,"onUpdate:modelValue":i[0]||=e=>u(`update:ddl`,e),height:`160px`},null,8,[`model-value`])]),c(`div`,null,[c(`div`,A,[_(d(C),{strong:``},{default:e(()=>[...i[4]||=[a(`Sample Query`,-1)]]),_:1})]),_(O,{"model-value":n.sampleQuery,"onUpdate:modelValue":i[1]||=e=>u(`update:sampleQuery`,e),height:`120px`,"on-run":()=>u(`run`)},null,8,[`model-value`,`on-run`])]),_(d(f),{justify:`end`},{default:e(()=>[_(d(o),{type:`primary`,loading:n.running,disabled:g.value||!n.ddl.trim()||!n.sampleQuery.trim(),onClick:i[2]||=e=>u(`run`)},{default:e(()=>[...i[5]||=[a(` Run Dry-Run `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1}))}}),M={key:0},N=n({__name:`RlsEditor`,setup(n){let o=D(),O=p([]),k=p([]),A=p(null),N=p(null),P=p(!1),F=p(null),I=p(null),L=p(``),R=p(``),z=p(!1),B=p(null),V=p(null),H=p(null);async function U(){try{O.value=(await S.schemas()).map(e=>({label:e.name,value:e.name}))}catch(e){o.error(e.message??`Failed to load schemas`)}}async function W(e){try{k.value=(await S.tables(e)).map(e=>({label:e.name,value:e.name}))}catch(e){o.error(e.message??`Failed to load tables`)}}async function G(){if(!(!A.value||!N.value)){P.value=!0,F.value=null,I.value=null;try{I.value=await S.policies(A.value,N.value)}catch(e){F.value={message:e.message??`Failed to load policies`}}finally{P.value=!1}}}r(A,e=>{N.value=null,I.value=null,k.value=[],e&&W(e)}),r(N,e=>{I.value=null,B.value=null,V.value=null,H.value=null,e&&G()}),U();let K=[{title:`Name`,key:`policyname`},{title:`Command`,key:`cmd`},{title:`Permissive`,key:`permissive`},{title:`Roles`,key:`roles`,render:e=>e.roles?.join(`, `)??`*`},{title:`USING`,key:`qual`,render:e=>e.qual??`—`},{title:`WITH CHECK`,key:`with_check`,render:e=>e.with_check??`—`}],q=l(()=>B.value?.row_count??null),J=l(()=>V.value?.row_count??null),Y=l(()=>q.value!==null&&J.value!==null&&q.value!==J.value);async function X(){if(!A.value||!N.value){o.warning(`Select a schema and table first`);return}let e=R.value.trim(),t=L.value.trim();if(!e||!t){o.warning(`Enter both DDL and a sample query`);return}z.value=!0,B.value=null,V.value=null,H.value=null;try{B.value=await S.runSql(e,!0)}catch(e){H.value=`Baseline query failed: ${e.message??`Unknown error`}`,o.error(H.value),z.value=!1;return}try{let n=await S.dryRunPolicy(t,e);V.value={columns:n.columns,rows:n.rows,row_count:n.rows.length}}catch(e){H.value=e.message??`Dry-run failed`,o.error(H.value)}finally{z.value=!1}}let Z=l(()=>V.value?V.value.columns.map(e=>({title:e,key:e})):[]),Q=l(()=>V.value?V.value.rows.map(e=>Object.fromEntries(V.value.columns.map((t,n)=>{let r=e[n],i;return i=r===null?`null`:typeof r==`object`?JSON.stringify(r):String(r),[t,i]}))):[]);return(n,r)=>(t(),s(d(u),{title:`RLS Policies`},{default:e(()=>[_(d(f),{vertical:``,size:24},{default:e(()=>[_(d(f),{align:`center`,size:12},{default:e(()=>[_(d(v),{value:A.value,"onUpdate:value":r[0]||=e=>A.value=e,options:O.value,placeholder:`Select schema`,style:{width:`200px`}},null,8,[`value`,`options`]),_(d(v),{value:N.value,"onUpdate:value":r[1]||=e=>N.value=e,options:k.value,placeholder:`Select table`,style:{width:`200px`},disabled:!A.value},null,8,[`value`,`options`,`disabled`])]),_:1}),_(d(x),{show:P.value},{default:e(()=>[_(T,{error:F.value,retry:G},null,8,[`error`]),N.value&&!P.value&&!F.value?(t(),g(m,{key:0},[_(d(C),{depth:`3`,style:{"font-size":`12px`,"margin-bottom":`8px`,display:`block`}},{default:e(()=>[a(` Policies on `+h(A.value)+`.`+h(N.value),1)]),_:1}),I.value&&I.value.length>0?(t(),s(d(b),{key:0,columns:K,data:I.value,bordered:!1,size:`small`},null,8,[`data`])):(t(),s(E,{key:1,description:`No policies defined on this table.`}))],64)):i(``,!0)]),_:1},8,[`show`]),_(d(w)),c(`div`,null,[_(d(C),{strong:``,style:{"font-size":`16px`,display:`block`,"margin-bottom":`12px`}},{default:e(()=>[...r[4]||=[a(` Dry-run policy change `,-1)]]),_:1}),_(j,{ddl:L.value,"onUpdate:ddl":r[2]||=e=>L.value=e,"sample-query":R.value,"onUpdate:sampleQuery":r[3]||=e=>R.value=e,running:z.value,onRun:X},null,8,[`ddl`,`sample-query`,`running`])]),B.value||V.value||H.value?(t(),g(`div`,M,[_(T,{error:H.value?{message:H.value}:null},null,8,[`error`]),!H.value&&V.value?(t(),g(m,{key:0},[_(d(f),{align:`center`,size:12,style:{"margin-bottom":`12px`}},{default:e(()=>[_(d(y),{size:`small`},{default:e(()=>[a(`Before: `+h(q.value)+` rows`,1)]),_:1}),_(d(y),{type:Y.value?`warning`:`success`,size:`small`},{default:e(()=>[a(` After: `+h(J.value)+` rows `,1)]),_:1},8,[`type`]),Y.value?(t(),s(d(y),{key:0,type:`warning`,size:`small`},{default:e(()=>[...r[5]||=[a(` Would change behavior `,-1)]]),_:1})):(t(),s(d(y),{key:1,type:`success`,size:`small`},{default:e(()=>[...r[6]||=[a(` No change `,-1)]]),_:1}))]),_:1}),Q.value.length?(t(),s(d(b),{key:0,columns:Z.value,data:Q.value,bordered:!1,size:`small`,"scroll-x":600},null,8,[`columns`,`data`])):(t(),s(E,{key:1,description:`Query returned no rows.`}))],64)):i(``,!0)])):i(``,!0)]),_:1})]),_:1}))}});export{N as default};
2
+ //# sourceMappingURL=RlsEditor-BSlH9vSc.js.map
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Rn as n,Sn as r,_n as i,bn as a,c as o,cn as s,cr as c,gn as l,r as u,sr as d,t as f,tr as p,un as m,ur as h,vn as g,xn as _}from"./Space-n5-XcguU.js";import{t as v}from"./Tag-D1fOKpTH.js";import{n as y,r as b,t as x}from"./Thing-CEAniuMg.js";import{l as S,r as C}from"./resources-Bt6thQCD.js";import{c as w,d as T,l as E,s as D,u as O}from"./index-CeE6v959.js";import{t as k}from"./useResource-C_rJCY8C.js";import{t as A}from"./_plugin-vue_export-helper-DGA9ry_j.js";import{n as j,t as M}from"./EmptyState-DeDck-OL.js";import{t as N}from"./CodeViewer-Bqy7-wvH.js";var P=A(r({__name:`Routes`,setup(r){let A=D(),P=p(null),{data:F,error:I,loading:L,refresh:R}=k(()=>C.routes()),{data:z,error:B,loading:V,refresh:H}=k(()=>P.value?C.source(P.value.name):Promise.resolve(null),()=>[P.value?.name]);function U(e){P.value=e}function W(e){A.push(`/functions/invoke/${encodeURIComponent(e.name)}`)}return(r,p)=>(t(),l(d(T),{"has-sider":``,style:{height:`calc(100vh - 112px)`}},{default:e(()=>[_(d(E),{bordered:``,width:`300`,"native-scrollbar":!1},{default:e(()=>[_(d(u),{title:`Routes`,bordered:!1,size:`small`},{default:e(()=>[_(d(S),{show:d(L)},{default:e(()=>[_(j,{error:d(I),retry:d(R)},null,8,[`error`,`retry`]),d(F)&&d(F).length>0?(t(),l(d(b),{key:0,hoverable:``,clickable:``},{default:e(()=>[(t(!0),g(m,null,n(d(F),r=>(t(),l(d(y),{key:r.name,class:c({"route-active":P.value?.name===r.name}),onClick:e=>U(r)},{default:e(()=>[_(d(x),{title:r.name},{description:e(()=>[_(d(f),{size:4},{default:e(()=>[(t(!0),g(m,null,n(r.methods,n=>(t(),l(d(v),{key:n,size:`tiny`,type:`info`},{default:e(()=>[a(h(n),1)]),_:2},1024))),128)),_(d(v),{type:r.auth===`authenticated`?`warning`:`default`,size:`tiny`},{default:e(()=>[a(h(r.auth),1)]),_:2},1032,[`type`])]),_:2},1024)]),"header-extra":e(()=>[_(d(o),{size:`tiny`,onClick:s(e=>W(r),[`stop`])},{default:e(()=>[...p[0]||=[a(` Invoke `,-1)]]),_:1},8,[`onClick`])]),_:2},1032,[`title`])]),_:2},1032,[`class`,`onClick`]))),128))]),_:1})):d(F)&&d(F).length===0?(t(),l(M,{key:1,description:`No functions discovered.`})):i(``,!0)]),_:1},8,[`show`])]),_:1})]),_:1}),_(d(O),{style:{padding:`16px 24px`},"native-scrollbar":!1},{default:e(()=>[_(d(u),{title:P.value?P.value.name:`Source`,bordered:!1,size:`small`},{default:e(()=>[_(d(S),{show:d(V)},{default:e(()=>[_(j,{error:d(B),retry:d(H)},null,8,[`error`,`retry`]),d(z)?(t(),g(m,{key:0},[_(d(f),{align:`center`,size:12,style:{"margin-bottom":`12px`}},{default:e(()=>[_(d(w),{depth:`3`,style:{"font-size":`12px`}},{default:e(()=>[a(h(d(z).path),1)]),_:1}),_(d(v),{size:`small`},{default:e(()=>[a(h(d(z).size)+` bytes`,1)]),_:1})]),_:1}),_(N,{"model-value":d(z).source,"read-only":!0,height:`calc(100vh - 260px)`},null,8,[`model-value`])],64)):P.value?i(``,!0):(t(),l(M,{key:1,description:`Select a route to view its source.`}))]),_:1},8,[`show`])]),_:1},8,[`title`])]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-3c3d386f`]]);export{P as default};
2
+ //# sourceMappingURL=Routes-BiLXE49D.js.map
@@ -0,0 +1 @@
1
+ .route-active[data-v-3c3d386f]{background-color:#10b98114}
@@ -0,0 +1 @@
1
+ .schema-active[data-v-cc3ba428]{background-color:#10b98114}
@@ -0,0 +1,2 @@
1
+ import{Gn as e,In as t,Rn as n,Sn as r,_n as i,bn as a,cr as o,gn as s,hn as c,r as l,sr as u,t as d,tr as f,un as p,ur as m,vn as h,xn as g}from"./Space-n5-XcguU.js";import{t as _}from"./Tag-D1fOKpTH.js";import{t as v}from"./Empty-cr2r7e2u.js";import{n as y,r as b,t as x}from"./Thing-CEAniuMg.js";import{l as S,n as C}from"./resources-Bt6thQCD.js";import{d as w,l as T,s as E,u as D}from"./index-CeE6v959.js";import{t as O}from"./useResource-C_rJCY8C.js";import{t as k}from"./_plugin-vue_export-helper-DGA9ry_j.js";import{n as A,t as j}from"./EmptyState-DeDck-OL.js";var M=[`stroke`,`stroke-dasharray`],N=k(r({__name:`SchemaBrowser`,setup(r){let k=E(),N=f(null),{data:P,error:F,loading:I,refresh:L}=O(()=>C.schemas()),{data:R,error:z,loading:B,refresh:V}=O(()=>N.value?C.tables(N.value):Promise.resolve([]),()=>[N.value]);function H(e){N.value=e}function U(e,t){k.push(`/db/tables/${e}/${t}`)}return(r,f)=>(t(),s(u(w),{"has-sider":``,style:{height:`calc(100vh - 112px)`}},{default:e(()=>[g(u(T),{bordered:``,width:`260`,"native-scrollbar":!1},{default:e(()=>[g(u(l),{title:`Schemas`,bordered:!1,size:`small`},{default:e(()=>[g(u(S),{show:u(I)},{default:e(()=>[g(A,{error:u(F),retry:u(L)},null,8,[`error`,`retry`]),u(P)&&u(P).length>0?(t(),s(u(b),{key:0,hoverable:``,clickable:``},{default:e(()=>[(t(!0),h(p,null,n(u(P),n=>(t(),s(u(y),{key:n.name,class:o({"schema-active":N.value===n.name}),onClick:e=>H(n.name)},{default:e(()=>[g(u(x),{title:n.name,description:n.owner},{"header-extra":e(()=>[n.is_user?i(``,!0):(t(),s(u(_),{key:0,size:`small`,type:`info`},{default:e(()=>[...f[0]||=[a(`system`,-1)]]),_:1}))]),_:2},1032,[`title`,`description`])]),_:2},1032,[`class`,`onClick`]))),128))]),_:1})):u(P)&&u(P).length===0?(t(),s(j,{key:1,description:`No schemas found.`})):i(``,!0)]),_:1},8,[`show`])]),_:1})]),_:1}),g(u(D),{style:{padding:`16px 24px`},"native-scrollbar":!1},{default:e(()=>[g(u(l),{title:N.value?`Tables in ${N.value}`:`Tables`,bordered:!1},{default:e(()=>[g(u(S),{show:u(B)},{default:e(()=>[g(A,{error:u(z),retry:u(V)},null,8,[`error`,`retry`]),N.value?(t(),h(p,{key:0},[u(R)&&u(R).length>0?(t(),s(u(b),{key:0,hoverable:``,clickable:``},{default:e(()=>[(t(!0),h(p,null,n(u(R),n=>(t(),s(u(y),{key:n.name,onClick:e=>U(N.value,n.name)},{default:e(()=>[g(u(x),{title:n.name},{"header-extra":e(()=>[g(u(d),{align:`center`,size:8},{default:e(()=>[(t(),h(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:n.rls_enabled?`currentColor`:`#d03050`,"stroke-width":`2`,"stroke-dasharray":n.rls_enabled?void 0:`4 2`},[...f[1]||=[c(`path`,{d:`M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z`},null,-1)]],8,M)),g(u(_),{type:n.rls_enabled?`success`:`error`,size:`small`},{default:e(()=>[a(m(n.rls_enabled?`RLS on`:`RLS off`),1)]),_:2},1032,[`type`])]),_:2},1024)]),_:2},1032,[`title`])]),_:2},1032,[`onClick`]))),128))]),_:1})):u(R)&&u(R).length===0?(t(),s(j,{key:1,description:`No tables in this schema.`})):i(``,!0)],64)):(t(),s(u(v),{key:1,description:`Select a schema to view its tables.`}))]),_:1},8,[`show`])]),_:1},8,[`title`])]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-cc3ba428`]]);export{N as default};
2
+ //# sourceMappingURL=SchemaBrowser-XFvFbtDB.js.map