masks-server 0.11.0 → 0.13.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 (181) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/masks/server/scim_endpoint.rb +2 -2
  3. data/app/controllers/masks/server/account_controller.rb +3 -0
  4. data/app/controllers/masks/server/account_exports_controller.rb +2 -2
  5. data/app/controllers/masks/server/addresses_controller.rb +2 -3
  6. data/app/controllers/masks/server/app_passwords_controller.rb +41 -0
  7. data/app/controllers/masks/server/authenticator_apps_controller.rb +2 -3
  8. data/app/controllers/masks/server/authorize_controller.rb +33 -2
  9. data/app/controllers/masks/server/device_authorizations_controller.rb +2 -2
  10. data/app/controllers/masks/server/device_verifications_controller.rb +2 -2
  11. data/app/controllers/masks/server/enrollments_controller.rb +4 -4
  12. data/app/controllers/masks/server/forward_auth_controller.rb +106 -14
  13. data/app/controllers/masks/server/introspections_controller.rb +2 -2
  14. data/app/controllers/masks/server/logins_controller.rb +14 -15
  15. data/app/controllers/masks/server/organization_access_controller.rb +39 -0
  16. data/app/controllers/masks/server/organization_members_controller.rb +2 -2
  17. data/app/controllers/masks/server/passwords_controller.rb +2 -3
  18. data/app/controllers/masks/server/pushed_authorizations_controller.rb +2 -2
  19. data/app/controllers/masks/server/received_signals_controller.rb +2 -2
  20. data/app/controllers/masks/server/registrations_controller.rb +2 -2
  21. data/app/controllers/masks/server/revocations_controller.rb +2 -2
  22. data/app/controllers/masks/server/saml_controller.rb +2 -2
  23. data/app/controllers/masks/server/sign_in_approvals_controller.rb +2 -3
  24. data/app/controllers/masks/server/tokens_controller.rb +2 -2
  25. data/app/controllers/masks/server/verifications_controller.rb +2 -3
  26. data/app/graphql/masks/server/manage/mutations/base_mutation.rb +7 -0
  27. data/app/graphql/masks/server/manage/mutations/create_group.rb +6 -4
  28. data/app/graphql/masks/server/manage/mutations/decline_access.rb +27 -0
  29. data/app/graphql/masks/server/manage/mutations/grant_access.rb +29 -0
  30. data/app/graphql/masks/server/manage/mutations/group_source.rb +34 -0
  31. data/app/graphql/masks/server/manage/mutations/issue_ldap_credential.rb +5 -2
  32. data/app/graphql/masks/server/manage/mutations/refresh_group.rb +21 -0
  33. data/app/graphql/masks/server/manage/mutations/remove_group_member.rb +2 -0
  34. data/app/graphql/masks/server/manage/mutations/run_health_checks.rb +19 -0
  35. data/app/graphql/masks/server/manage/mutations/update_client.rb +6 -0
  36. data/app/graphql/masks/server/manage/mutations/update_group.rb +7 -4
  37. data/app/graphql/masks/server/manage/mutations/update_tenant.rb +14 -1
  38. data/app/graphql/masks/server/manage/types/access_request_type.rb +21 -0
  39. data/app/graphql/masks/server/manage/types/actor_type.rb +6 -0
  40. data/app/graphql/masks/server/manage/types/client_type.rb +12 -0
  41. data/app/graphql/masks/server/manage/types/group_condition_input.rb +16 -0
  42. data/app/graphql/masks/server/manage/types/group_condition_type.rb +29 -0
  43. data/app/graphql/masks/server/manage/types/group_member_type.rb +16 -0
  44. data/app/graphql/masks/server/manage/types/group_type.rb +17 -1
  45. data/app/graphql/masks/server/manage/types/health_check_type.rb +18 -0
  46. data/app/graphql/masks/server/manage/types/ldap_credential_type.rb +1 -0
  47. data/app/graphql/masks/server/manage/types/mutation_type.rb +4 -0
  48. data/app/graphql/masks/server/manage/types/query_type.rb +24 -0
  49. data/app/graphql/masks/server/manage/types/release_type.rb +16 -0
  50. data/app/graphql/masks/server/manage/types/tenant_type.rb +6 -1
  51. data/app/helpers/masks/server/account_helper.rb +4 -0
  52. data/app/jobs/masks/server/cleanup_job.rb +1 -0
  53. data/app/jobs/masks/server/health_check_job.rb +21 -0
  54. data/app/jobs/masks/server/refresh_groups_job.rb +18 -0
  55. data/app/jobs/masks/server/release_check_job.rb +21 -0
  56. data/app/ldap/masks/server/ldap/connection.rb +3 -2
  57. data/app/ldap/masks/server/ldap/gate.rb +44 -19
  58. data/app/logins/masks/server/login_states/second_factor.rb +1 -1
  59. data/app/mailers/masks/server/actor_mailer.rb +31 -0
  60. data/app/models/masks/server/access_request.rb +103 -0
  61. data/app/models/masks/server/actor.rb +6 -0
  62. data/app/models/masks/server/app_password.rb +91 -0
  63. data/app/models/masks/server/app_passwords.rb +76 -0
  64. data/app/models/masks/server/client.rb +15 -0
  65. data/app/models/masks/server/client_metadata_document.rb +4 -8
  66. data/app/models/masks/server/confirmation_code.rb +2 -2
  67. data/app/models/masks/server/connection.rb +7 -0
  68. data/app/models/masks/server/declared.rb +13 -3
  69. data/app/models/masks/server/email_verification.rb +2 -2
  70. data/app/models/masks/server/event.rb +13 -3
  71. data/app/models/masks/server/federation/protocol.rb +1 -1
  72. data/app/models/masks/server/federation/saml.rb +1 -1
  73. data/app/models/masks/server/forward_auth_rules.rb +162 -0
  74. data/app/models/masks/server/group.rb +207 -4
  75. data/app/models/masks/server/group_member.rb +7 -0
  76. data/app/models/masks/server/group_rule.rb +63 -0
  77. data/app/models/masks/server/health.rb +310 -0
  78. data/app/models/masks/server/health_check.rb +27 -0
  79. data/app/models/masks/server/invitation.rb +2 -2
  80. data/app/models/masks/server/ldap_credential.rb +2 -2
  81. data/app/models/masks/server/login.rb +28 -2
  82. data/app/models/masks/server/mail_previews.rb +5 -0
  83. data/app/models/masks/server/mail_template.rb +2 -0
  84. data/app/models/masks/server/membership.rb +10 -3
  85. data/app/models/masks/server/notifications.rb +3 -1
  86. data/app/models/masks/server/password_reset.rb +2 -2
  87. data/app/models/masks/server/provider.rb +1 -0
  88. data/app/models/masks/server/queue.rb +60 -0
  89. data/app/models/masks/server/release.rb +74 -0
  90. data/app/models/masks/server/saml_identity/farewells.rb +1 -0
  91. data/app/models/masks/server/session.rb +8 -0
  92. data/app/models/masks/server/tenant.rb +87 -6
  93. data/app/models/masks/server/throttle.rb +165 -0
  94. data/app/models/masks/server/token.rb +2 -1
  95. data/app/views/masks/server/account/_app_passwords.html.erb +83 -0
  96. data/app/views/masks/server/account/_organizations.html.erb +33 -0
  97. data/app/views/masks/server/account/index.html.erb +5 -0
  98. data/app/views/masks/server/actor_mailer/access_declined.html.erb +5 -0
  99. data/app/views/masks/server/actor_mailer/access_declined.text.erb +5 -0
  100. data/app/views/masks/server/actor_mailer/access_granted.html.erb +7 -0
  101. data/app/views/masks/server/actor_mailer/access_granted.text.erb +7 -0
  102. data/app/views/masks/server/authorize/error.html.erb +25 -0
  103. data/config/locales/de/access_requests.yml +43 -0
  104. data/config/locales/de/account/app_passwords.yml +42 -0
  105. data/config/locales/de/events.yml +5 -0
  106. data/config/locales/de/flashes.yml +1 -0
  107. data/config/locales/de/group_sources.yml +5 -0
  108. data/config/locales/de/manage/access_requests.yml +12 -0
  109. data/config/locales/de/manage/app_passwords.yml +16 -0
  110. data/config/locales/de/manage/forward_auth_rules.yml +29 -0
  111. data/config/locales/de/manage/group_sources.yml +44 -0
  112. data/config/locales/de/manage/health.yml +85 -0
  113. data/config/locales/de/manage/links.yml +20 -0
  114. data/config/locales/en/access_requests.yml +43 -0
  115. data/config/locales/en/account/app_passwords.yml +42 -0
  116. data/config/locales/en/events.yml +5 -0
  117. data/config/locales/en/flashes.yml +1 -0
  118. data/config/locales/en/group_sources.yml +5 -0
  119. data/config/locales/en/manage/access_requests.yml +12 -0
  120. data/config/locales/en/manage/app_passwords.yml +16 -0
  121. data/config/locales/en/manage/forward_auth_rules.yml +29 -0
  122. data/config/locales/en/manage/group_sources.yml +44 -0
  123. data/config/locales/en/manage/health.yml +85 -0
  124. data/config/locales/en/manage/links.yml +20 -0
  125. data/config/locales/es/access_requests.yml +43 -0
  126. data/config/locales/es/account/app_passwords.yml +42 -0
  127. data/config/locales/es/events.yml +5 -0
  128. data/config/locales/es/flashes.yml +1 -0
  129. data/config/locales/es/group_sources.yml +5 -0
  130. data/config/locales/es/manage/access_requests.yml +12 -0
  131. data/config/locales/es/manage/app_passwords.yml +16 -0
  132. data/config/locales/es/manage/forward_auth_rules.yml +29 -0
  133. data/config/locales/es/manage/group_sources.yml +44 -0
  134. data/config/locales/es/manage/health.yml +85 -0
  135. data/config/locales/es/manage/links.yml +20 -0
  136. data/config/locales/fr/access_requests.yml +43 -0
  137. data/config/locales/fr/account/app_passwords.yml +42 -0
  138. data/config/locales/fr/events.yml +5 -0
  139. data/config/locales/fr/flashes.yml +1 -0
  140. data/config/locales/fr/group_sources.yml +5 -0
  141. data/config/locales/fr/manage/access_requests.yml +12 -0
  142. data/config/locales/fr/manage/app_passwords.yml +16 -0
  143. data/config/locales/fr/manage/forward_auth_rules.yml +29 -0
  144. data/config/locales/fr/manage/group_sources.yml +44 -0
  145. data/config/locales/fr/manage/health.yml +85 -0
  146. data/config/locales/fr/manage/links.yml +20 -0
  147. data/config/routes.rb +5 -0
  148. data/db/migrate/20261020100000_create_access_requests.rb +28 -0
  149. data/db/migrate/20261020110000_add_app_passwords_to_clients.rb +5 -0
  150. data/db/migrate/20261020120000_add_forward_auth_rules_to_clients.rb +6 -0
  151. data/db/migrate/20261020130000_add_sources_to_groups.rb +15 -0
  152. data/db/migrate/20261020140000_create_health_checks.rb +25 -0
  153. data/db/migrate/20261020150000_add_link_lifetimes_to_tenants.rb +8 -0
  154. data/db/migrate/20261021100000_add_pinned_origin_to_tenants.rb +5 -0
  155. data/db/migrate/20261031100000_default_key_rotation_to_ninety_days.rb +5 -0
  156. data/lib/generators/masks/server/install/install_generator.rb +22 -2
  157. data/lib/masks/server/configuration.rb +16 -19
  158. data/lib/masks/server/engine.rb +2 -1
  159. data/lib/masks/server/forwarding.rb +26 -3
  160. data/lib/masks/server/schema_reference.rb +12 -0
  161. data/lib/masks/server/tenancy/middleware.rb +21 -13
  162. data/lib/masks/server/tenant_isolation.rb +12 -0
  163. data/public/masks-assets/.vite/manifest.json +13 -13
  164. data/public/masks-assets/assets/{account-D46qDQCo.js → account-h7I6VUPR.js} +2 -2
  165. data/public/masks-assets/assets/{account-D46qDQCo.js.map → account-h7I6VUPR.js.map} +1 -1
  166. data/public/masks-assets/assets/{app-D7W0gAyT.css → app-BXOScMjL.css} +1 -1
  167. data/public/masks-assets/assets/{handshake-DIFZPSAK.js → handshake-YQpRNMIs.js} +2 -2
  168. data/public/masks-assets/assets/{handshake-DIFZPSAK.js.map → handshake-YQpRNMIs.js.map} +1 -1
  169. data/public/masks-assets/assets/initial-Cn-UuAsy.js +3 -0
  170. data/public/masks-assets/assets/{initial-C1GpCiEh.js.map → initial-Cn-UuAsy.js.map} +1 -1
  171. data/public/masks-assets/assets/{login-C_6igRZ3.js → login-C21_jb6L.js} +3 -3
  172. data/public/masks-assets/assets/{login-C_6igRZ3.js.map → login-C21_jb6L.js.map} +1 -1
  173. data/public/masks-assets/assets/{manage-D4MzaDvM.js → manage-DpVxe5sv.js} +80 -51
  174. data/public/masks-assets/assets/manage-DpVxe5sv.js.map +1 -0
  175. data/public/masks-assets/assets/passkey-5UYPVD3c.js +2 -0
  176. data/public/masks-assets/assets/{passkey-DIj_5LCY.js.map → passkey-5UYPVD3c.js.map} +1 -1
  177. data/version.txt +1 -1
  178. metadata +89 -14
  179. data/public/masks-assets/assets/initial-C1GpCiEh.js +0 -3
  180. data/public/masks-assets/assets/manage-D4MzaDvM.js.map +0 -1
  181. data/public/masks-assets/assets/passkey-DIj_5LCY.js +0 -2
@@ -0,0 +1,2 @@
1
+ function e(e){let t=`==`.slice(0,(4-e.length%4)%4),n=e.replace(/-/g,`+`).replace(/_/g,`/`)+t,r=atob(n),i=new ArrayBuffer(r.length),a=new Uint8Array(i);for(let e=0;e<r.length;e++)a[e]=r.charCodeAt(e);return i}function t(e){let t=new Uint8Array(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}var n=`copy`,r=`convert`;function i(e,t,a){if(t===n)return a;if(t===r)return e(a);if(t instanceof Array)return a.map(n=>i(e,t[0],n));if(t instanceof Object){let n={};for(let[r,o]of Object.entries(t)){if(o.derive){let e=o.derive(a);e!==void 0&&(a[r]=e)}if(r in a)n[r]=a[r]==null?null:i(e,o.schema,a[r]);else if(o.required)throw Error(`Missing key: ${r}`)}return n}}function a(e,t){return{required:!0,schema:e,derive:t}}function o(e){return{required:!0,schema:e}}function s(e){return{required:!1,schema:e}}var c={type:o(n),id:o(r),transports:s(n)},l={appid:s(n),appidExclude:s(n),credProps:s(n)},u={appid:s(n),appidExclude:s(n),credProps:s(n)},d={publicKey:o({rp:o(n),user:o({id:o(r),name:o(n),displayName:o(n)}),challenge:o(r),pubKeyCredParams:o(n),timeout:s(n),excludeCredentials:s([c]),authenticatorSelection:s(n),attestation:s(n),extensions:s(l)}),signal:s(n)},f={type:o(n),id:o(n),rawId:o(r),authenticatorAttachment:s(n),response:o({clientDataJSON:o(r),attestationObject:o(r),transports:a(n,e=>e.getTransports?.call(e)||[])}),clientExtensionResults:a(u,e=>e.getClientExtensionResults())},p={mediation:s(n),publicKey:o({challenge:o(r),timeout:s(n),rpId:s(n),allowCredentials:s([c]),userVerification:s(n),extensions:s(l)}),signal:s(n)},m={type:o(n),id:o(n),rawId:o(r),authenticatorAttachment:s(n),response:o({clientDataJSON:o(r),authenticatorData:o(r),signature:o(r),userHandle:o(r)}),clientExtensionResults:a(u,e=>e.getClientExtensionResults())};function h(t){return i(e,d,t)}function g(e){return i(t,f,e)}function _(t){return i(e,p,t)}function v(e){return i(t,m,e)}function y(){return!!(navigator.credentials&&navigator.credentials.create&&navigator.credentials.get&&window.PublicKeyCredential)}async function b(e){let t=await navigator.credentials.create(e);return t.toJSON=()=>g(t),t}async function x(e){let t=await navigator.credentials.get(e);return t.toJSON=()=>v(t),t}var S=null,C=()=>y();async function w(){let e=globalThis.PublicKeyCredential?.isConditionalMediationAvailable;return y()&&await e?.call(PublicKeyCredential)===!0}function T(){S?.abort(),S=null}async function E(e){let t=await b(h({publicKey:e}));return JSON.stringify(t.toJSON())}async function D(e){T();let t=await x(_({publicKey:e}));return JSON.stringify(t.toJSON())}async function O(e){T();let t=new AbortController;S=t;try{let n=await x(_({publicKey:e,mediation:`conditional`,signal:t.signal}));return JSON.stringify(n.toJSON())}finally{S===t&&(S=null)}}function k(e){return e?.name===`NotAllowedError`||e?.name===`AbortError`}export{E as a,C as i,O as n,k as o,w as r,T as s,D as t};
2
+ //# sourceMappingURL=passkey-5UYPVD3c.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"passkey-DIj_5LCY.js","names":["parseCreationOptionsFromJSON","parseRequestOptionsFromJSON","base64urlToBuffer","padding","baseurl64String","base64String","str","buffer","byteView","i","bufferToBase64url","charCode","copyValue","convertValue","convert","schema","input","conversionFn","v","output","key","schemaField","derived","required","optional","publicKeyCredentialDescriptorSchema","simplifiedExtensionsSchema","simplifiedClientExtensionResultsSchema","credentialCreationOptions","publicKeyCredentialWithAttestation","response","pkc","credentialRequestOptions","publicKeyCredentialWithAssertion","createRequestFromJSON","requestJSON","createResponseToJSON","credential","getRequestFromJSON","getResponseToJSON","supported","create","options","get","pending","available","autofillable","conditional","settle","enrol","assert","autofill","controller","refused","error"],"sources":["../../../../server/node_modules/@github/webauthn-json/dist/esm/webauthn-json.browser-ponyfill.js","../../../../server/app/frontend/lib/passkey.js"],"sourcesContent":["// src/webauthn-json/base64url.ts\nfunction base64urlToBuffer(baseurl64String) {\n const padding = \"==\".slice(0, (4 - baseurl64String.length % 4) % 4);\n const base64String = baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n const str = atob(base64String);\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nfunction bufferToBase64url(buffer) {\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n const base64urlString = base64String.replace(/\\+/g, \"-\").replace(\n /\\//g,\n \"_\"\n ).replace(/=/g, \"\");\n return base64urlString;\n}\n\n// src/webauthn-json/convert.ts\nvar copyValue = \"copy\";\nvar convertValue = \"convert\";\nfunction convert(conversionFn, schema, input) {\n if (schema === copyValue) {\n return input;\n }\n if (schema === convertValue) {\n return conversionFn(input);\n }\n if (schema instanceof Array) {\n return input.map((v) => convert(conversionFn, schema[0], v));\n }\n if (schema instanceof Object) {\n const output = {};\n for (const [key, schemaField] of Object.entries(schema)) {\n if (schemaField.derive) {\n const v = schemaField.derive(input);\n if (v !== void 0) {\n input[key] = v;\n }\n }\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key]\n );\n }\n return output;\n }\n}\nfunction derived(schema, derive) {\n return {\n required: true,\n schema,\n derive\n };\n}\nfunction required(schema) {\n return {\n required: true,\n schema\n };\n}\nfunction optional(schema) {\n return {\n required: false,\n schema\n };\n}\n\n// src/webauthn-json/basic/schema.ts\nvar publicKeyCredentialDescriptorSchema = {\n type: required(copyValue),\n id: required(convertValue),\n transports: optional(copyValue)\n};\nvar simplifiedExtensionsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar simplifiedClientExtensionResultsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar credentialCreationOptions = {\n publicKey: required({\n rp: required(copyValue),\n user: required({\n id: required(convertValue),\n name: required(copyValue),\n displayName: required(copyValue)\n }),\n challenge: required(convertValue),\n pubKeyCredParams: required(copyValue),\n timeout: optional(copyValue),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copyValue),\n attestation: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAttestation = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n attestationObject: required(convertValue),\n transports: derived(\n copyValue,\n (response) => {\n var _a;\n return ((_a = response.getTransports) == null ? void 0 : _a.call(response)) || [];\n }\n )\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar credentialRequestOptions = {\n mediation: optional(copyValue),\n publicKey: required({\n challenge: required(convertValue),\n timeout: optional(copyValue),\n rpId: optional(copyValue),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAssertion = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n authenticatorData: required(convertValue),\n signature: required(convertValue),\n userHandle: required(convertValue)\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\n\n// src/webauthn-json/basic/api.ts\nfunction createRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\nfunction createResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential\n );\n}\nfunction getRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\nfunction getResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential\n );\n}\n\n// src/webauthn-json/basic/supported.ts\nfunction supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}\n\n// src/webauthn-json/browser-ponyfill.ts\nasync function create(options) {\n const response = await navigator.credentials.create(\n options\n );\n response.toJSON = () => createResponseToJSON(response);\n return response;\n}\nasync function get(options) {\n const response = await navigator.credentials.get(\n options\n );\n response.toJSON = () => getResponseToJSON(response);\n return response;\n}\nexport {\n create,\n get,\n createRequestFromJSON as parseCreationOptionsFromJSON,\n getRequestFromJSON as parseRequestOptionsFromJSON,\n supported\n};\n//# sourceMappingURL=webauthn-json.browser-ponyfill.js.map\n","import {\n create,\n get,\n parseCreationOptionsFromJSON,\n parseRequestOptionsFromJSON,\n supported,\n} from \"@github/webauthn-json/browser-ponyfill\";\n\nlet pending = null;\n\nexport const available = () => supported();\n\nexport async function autofillable() {\n const conditional =\n globalThis.PublicKeyCredential?.isConditionalMediationAvailable;\n\n return supported() && (await conditional?.call(PublicKeyCredential)) === true;\n}\n\nexport function settle() {\n pending?.abort();\n pending = null;\n}\n\nexport async function enrol(options) {\n const credential = await create(\n parseCreationOptionsFromJSON({ publicKey: options }),\n );\n\n return JSON.stringify(credential.toJSON());\n}\n\nexport async function assert(options) {\n settle();\n\n const credential = await get(\n parseRequestOptionsFromJSON({ publicKey: options }),\n );\n\n return JSON.stringify(credential.toJSON());\n}\n\nexport async function autofill(options) {\n settle();\n\n const controller = new AbortController();\n pending = controller;\n\n try {\n const credential = await get(\n parseRequestOptionsFromJSON({\n publicKey: options,\n mediation: \"conditional\",\n signal: controller.signal,\n }),\n );\n\n return JSON.stringify(credential.toJSON());\n } finally {\n if (pending === controller) pending = null;\n }\n}\n\nexport function refused(error) {\n return error?.name === \"NotAllowedError\" || error?.name === \"AbortError\";\n}\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"passkey-5UYPVD3c.js","names":["parseCreationOptionsFromJSON","parseRequestOptionsFromJSON","base64urlToBuffer","padding","baseurl64String","base64String","str","buffer","byteView","i","bufferToBase64url","charCode","copyValue","convertValue","convert","schema","input","conversionFn","v","output","key","schemaField","derived","required","optional","publicKeyCredentialDescriptorSchema","simplifiedExtensionsSchema","simplifiedClientExtensionResultsSchema","credentialCreationOptions","publicKeyCredentialWithAttestation","response","pkc","credentialRequestOptions","publicKeyCredentialWithAssertion","createRequestFromJSON","requestJSON","createResponseToJSON","credential","getRequestFromJSON","getResponseToJSON","supported","create","options","get","pending","available","autofillable","conditional","settle","enrol","assert","autofill","controller","refused","error"],"sources":["../../../../server/node_modules/@github/webauthn-json/dist/esm/webauthn-json.browser-ponyfill.js","../../../../server/app/frontend/lib/passkey.js"],"sourcesContent":["// src/webauthn-json/base64url.ts\nfunction base64urlToBuffer(baseurl64String) {\n const padding = \"==\".slice(0, (4 - baseurl64String.length % 4) % 4);\n const base64String = baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n const str = atob(base64String);\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nfunction bufferToBase64url(buffer) {\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n const base64urlString = base64String.replace(/\\+/g, \"-\").replace(\n /\\//g,\n \"_\"\n ).replace(/=/g, \"\");\n return base64urlString;\n}\n\n// src/webauthn-json/convert.ts\nvar copyValue = \"copy\";\nvar convertValue = \"convert\";\nfunction convert(conversionFn, schema, input) {\n if (schema === copyValue) {\n return input;\n }\n if (schema === convertValue) {\n return conversionFn(input);\n }\n if (schema instanceof Array) {\n return input.map((v) => convert(conversionFn, schema[0], v));\n }\n if (schema instanceof Object) {\n const output = {};\n for (const [key, schemaField] of Object.entries(schema)) {\n if (schemaField.derive) {\n const v = schemaField.derive(input);\n if (v !== void 0) {\n input[key] = v;\n }\n }\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key]\n );\n }\n return output;\n }\n}\nfunction derived(schema, derive) {\n return {\n required: true,\n schema,\n derive\n };\n}\nfunction required(schema) {\n return {\n required: true,\n schema\n };\n}\nfunction optional(schema) {\n return {\n required: false,\n schema\n };\n}\n\n// src/webauthn-json/basic/schema.ts\nvar publicKeyCredentialDescriptorSchema = {\n type: required(copyValue),\n id: required(convertValue),\n transports: optional(copyValue)\n};\nvar simplifiedExtensionsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar simplifiedClientExtensionResultsSchema = {\n appid: optional(copyValue),\n appidExclude: optional(copyValue),\n credProps: optional(copyValue)\n};\nvar credentialCreationOptions = {\n publicKey: required({\n rp: required(copyValue),\n user: required({\n id: required(convertValue),\n name: required(copyValue),\n displayName: required(copyValue)\n }),\n challenge: required(convertValue),\n pubKeyCredParams: required(copyValue),\n timeout: optional(copyValue),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copyValue),\n attestation: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAttestation = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n attestationObject: required(convertValue),\n transports: derived(\n copyValue,\n (response) => {\n var _a;\n return ((_a = response.getTransports) == null ? void 0 : _a.call(response)) || [];\n }\n )\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\nvar credentialRequestOptions = {\n mediation: optional(copyValue),\n publicKey: required({\n challenge: required(convertValue),\n timeout: optional(copyValue),\n rpId: optional(copyValue),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copyValue),\n extensions: optional(simplifiedExtensionsSchema)\n }),\n signal: optional(copyValue)\n};\nvar publicKeyCredentialWithAssertion = {\n type: required(copyValue),\n id: required(copyValue),\n rawId: required(convertValue),\n authenticatorAttachment: optional(copyValue),\n response: required({\n clientDataJSON: required(convertValue),\n authenticatorData: required(convertValue),\n signature: required(convertValue),\n userHandle: required(convertValue)\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc) => pkc.getClientExtensionResults()\n )\n};\n\n// src/webauthn-json/basic/api.ts\nfunction createRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\nfunction createResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential\n );\n}\nfunction getRequestFromJSON(requestJSON) {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\nfunction getResponseToJSON(credential) {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential\n );\n}\n\n// src/webauthn-json/basic/supported.ts\nfunction supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}\n\n// src/webauthn-json/browser-ponyfill.ts\nasync function create(options) {\n const response = await navigator.credentials.create(\n options\n );\n response.toJSON = () => createResponseToJSON(response);\n return response;\n}\nasync function get(options) {\n const response = await navigator.credentials.get(\n options\n );\n response.toJSON = () => getResponseToJSON(response);\n return response;\n}\nexport {\n create,\n get,\n createRequestFromJSON as parseCreationOptionsFromJSON,\n getRequestFromJSON as parseRequestOptionsFromJSON,\n supported\n};\n//# sourceMappingURL=webauthn-json.browser-ponyfill.js.map\n","import {\n create,\n get,\n parseCreationOptionsFromJSON,\n parseRequestOptionsFromJSON,\n supported,\n} from \"@github/webauthn-json/browser-ponyfill\";\n\nlet pending = null;\n\nexport const available = () => supported();\n\nexport async function autofillable() {\n const conditional =\n globalThis.PublicKeyCredential?.isConditionalMediationAvailable;\n\n return supported() && (await conditional?.call(PublicKeyCredential)) === true;\n}\n\nexport function settle() {\n pending?.abort();\n pending = null;\n}\n\nexport async function enrol(options) {\n const credential = await create(\n parseCreationOptionsFromJSON({ publicKey: options }),\n );\n\n return JSON.stringify(credential.toJSON());\n}\n\nexport async function assert(options) {\n settle();\n\n const credential = await get(\n parseRequestOptionsFromJSON({ publicKey: options }),\n );\n\n return JSON.stringify(credential.toJSON());\n}\n\nexport async function autofill(options) {\n settle();\n\n const controller = new AbortController();\n pending = controller;\n\n try {\n const credential = await get(\n parseRequestOptionsFromJSON({\n publicKey: options,\n mediation: \"conditional\",\n signal: controller.signal,\n }),\n );\n\n return JSON.stringify(credential.toJSON());\n } finally {\n if (pending === controller) pending = null;\n }\n}\n\nexport function refused(error) {\n return error?.name === \"NotAllowedError\" || error?.name === \"AbortError\";\n}\n"],"ignoreList":[0],"mappings":"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"}
data/version.txt CHANGED
@@ -1 +1 @@
1
- 0.11.0
1
+ 0.13.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: masks-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - the masks authors
@@ -266,6 +266,7 @@ files:
266
266
  - app/controllers/masks/server/account_controller.rb
267
267
  - app/controllers/masks/server/account_exports_controller.rb
268
268
  - app/controllers/masks/server/addresses_controller.rb
269
+ - app/controllers/masks/server/app_passwords_controller.rb
269
270
  - app/controllers/masks/server/application_controller.rb
270
271
  - app/controllers/masks/server/apps_controller.rb
271
272
  - app/controllers/masks/server/authenticator_apps_controller.rb
@@ -290,6 +291,7 @@ files:
290
291
  - app/controllers/masks/server/manage/graphql_controller.rb
291
292
  - app/controllers/masks/server/manage_controller.rb
292
293
  - app/controllers/masks/server/notifications_controller.rb
294
+ - app/controllers/masks/server/organization_access_controller.rb
293
295
  - app/controllers/masks/server/organization_members_controller.rb
294
296
  - app/controllers/masks/server/passkeys_controller.rb
295
297
  - app/controllers/masks/server/passwords_controller.rb
@@ -336,6 +338,7 @@ files:
336
338
  - app/graphql/masks/server/manage/mutations/create_saml_application.rb
337
339
  - app/graphql/masks/server/manage/mutations/create_sender.rb
338
340
  - app/graphql/masks/server/manage/mutations/create_sign_in_policy.rb
341
+ - app/graphql/masks/server/manage/mutations/decline_access.rb
339
342
  - app/graphql/masks/server/manage/mutations/delete_actor.rb
340
343
  - app/graphql/masks/server/manage/mutations/delete_group.rb
341
344
  - app/graphql/masks/server/manage/mutations/disable_authenticator.rb
@@ -346,12 +349,15 @@ files:
346
349
  - app/graphql/masks/server/manage/mutations/domain_mutation.rb
347
350
  - app/graphql/masks/server/manage/mutations/export_events.rb
348
351
  - app/graphql/masks/server/manage/mutations/generate_backup_codes.rb
352
+ - app/graphql/masks/server/manage/mutations/grant_access.rb
353
+ - app/graphql/masks/server/manage/mutations/group_source.rb
349
354
  - app/graphql/masks/server/manage/mutations/invite_actors.rb
350
355
  - app/graphql/masks/server/manage/mutations/issue_ldap_credential.rb
351
356
  - app/graphql/masks/server/manage/mutations/issue_provisioning_token.rb
352
357
  - app/graphql/masks/server/manage/mutations/organization_mutation.rb
353
358
  - app/graphql/masks/server/manage/mutations/read_saml_application_metadata.rb
354
359
  - app/graphql/masks/server/manage/mutations/read_saml_metadata.rb
360
+ - app/graphql/masks/server/manage/mutations/refresh_group.rb
355
361
  - app/graphql/masks/server/manage/mutations/register_provider.rb
356
362
  - app/graphql/masks/server/manage/mutations/release_domain.rb
357
363
  - app/graphql/masks/server/manage/mutations/release_namespace.rb
@@ -381,6 +387,7 @@ files:
381
387
  - app/graphql/masks/server/manage/mutations/rotate_client_secret.rb
382
388
  - app/graphql/masks/server/manage/mutations/rotate_event_stream_secret.rb
383
389
  - app/graphql/masks/server/manage/mutations/rotate_signing_key.rb
390
+ - app/graphql/masks/server/manage/mutations/run_health_checks.rb
384
391
  - app/graphql/masks/server/manage/mutations/serve_domain.rb
385
392
  - app/graphql/masks/server/manage/mutations/set_actor_scopes.rb
386
393
  - app/graphql/masks/server/manage/mutations/set_member_role.rb
@@ -410,6 +417,7 @@ files:
410
417
  - app/graphql/masks/server/manage/mutations/upload_tenant_logo.rb
411
418
  - app/graphql/masks/server/manage/mutations/verify_email.rb
412
419
  - app/graphql/masks/server/manage/sources/membership_counts.rb
420
+ - app/graphql/masks/server/manage/types/access_request_type.rb
413
421
  - app/graphql/masks/server/manage/types/activity_day_type.rb
414
422
  - app/graphql/masks/server/manage/types/actor_type.rb
415
423
  - app/graphql/masks/server/manage/types/app_preset_type.rb
@@ -425,7 +433,11 @@ files:
425
433
  - app/graphql/masks/server/manage/types/event_action_type.rb
426
434
  - app/graphql/masks/server/manage/types/event_stream_type.rb
427
435
  - app/graphql/masks/server/manage/types/event_type.rb
436
+ - app/graphql/masks/server/manage/types/group_condition_input.rb
437
+ - app/graphql/masks/server/manage/types/group_condition_type.rb
438
+ - app/graphql/masks/server/manage/types/group_member_type.rb
428
439
  - app/graphql/masks/server/manage/types/group_type.rb
440
+ - app/graphql/masks/server/manage/types/health_check_type.rb
429
441
  - app/graphql/masks/server/manage/types/invitation_outcome_type.rb
430
442
  - app/graphql/masks/server/manage/types/ldap_credential_type.rb
431
443
  - app/graphql/masks/server/manage/types/mail_preview_type.rb
@@ -439,6 +451,7 @@ files:
439
451
  - app/graphql/masks/server/manage/types/provider_type.rb
440
452
  - app/graphql/masks/server/manage/types/provisioning_token_type.rb
441
453
  - app/graphql/masks/server/manage/types/query_type.rb
454
+ - app/graphql/masks/server/manage/types/release_type.rb
442
455
  - app/graphql/masks/server/manage/types/sender_field_type.rb
443
456
  - app/graphql/masks/server/manage/types/sender_service_type.rb
444
457
  - app/graphql/masks/server/manage/types/sender_type.rb
@@ -461,12 +474,15 @@ files:
461
474
  - app/jobs/masks/server/cleanup_job.rb
462
475
  - app/jobs/masks/server/client_logo_job.rb
463
476
  - app/jobs/masks/server/event_stream_job.rb
477
+ - app/jobs/masks/server/health_check_job.rb
464
478
  - app/jobs/masks/server/idle_accounts_job.rb
465
479
  - app/jobs/masks/server/mail_delivery_job.rb
466
480
  - app/jobs/masks/server/notification_job.rb
467
481
  - app/jobs/masks/server/prune_queue_job.rb
468
482
  - app/jobs/masks/server/refresh_authenticators_job.rb
483
+ - app/jobs/masks/server/refresh_groups_job.rb
469
484
  - app/jobs/masks/server/refresh_saml_metadata_job.rb
485
+ - app/jobs/masks/server/release_check_job.rb
470
486
  - app/jobs/masks/server/rotate_signing_keys_job.rb
471
487
  - app/jobs/masks/server/saml_logout_job.rb
472
488
  - app/jobs/masks/server/signal_job.rb
@@ -513,10 +529,13 @@ files:
513
529
  - app/models/concerns/masks/server/mailed_link.rb
514
530
  - app/models/concerns/masks/server/paged.rb
515
531
  - app/models/concerns/masks/server/tenant_scoped.rb
532
+ - app/models/masks/server/access_request.rb
516
533
  - app/models/masks/server/access_token.rb
517
534
  - app/models/masks/server/account_export.rb
518
535
  - app/models/masks/server/actor.rb
519
536
  - app/models/masks/server/addresses.rb
537
+ - app/models/masks/server/app_password.rb
538
+ - app/models/masks/server/app_passwords.rb
520
539
  - app/models/masks/server/app_preset.rb
521
540
  - app/models/masks/server/application_record.rb
522
541
  - app/models/masks/server/apps.rb
@@ -560,12 +579,16 @@ files:
560
579
  - app/models/masks/server/federation/oidc.rb
561
580
  - app/models/masks/server/federation/protocol.rb
562
581
  - app/models/masks/server/federation/saml.rb
582
+ - app/models/masks/server/forward_auth_rules.rb
563
583
  - app/models/masks/server/forward_code.rb
564
584
  - app/models/masks/server/forward_session.rb
565
585
  - app/models/masks/server/forwarded.rb
566
586
  - app/models/masks/server/group.rb
567
587
  - app/models/masks/server/group_member.rb
588
+ - app/models/masks/server/group_rule.rb
568
589
  - app/models/masks/server/handshake.rb
590
+ - app/models/masks/server/health.rb
591
+ - app/models/masks/server/health_check.rb
569
592
  - app/models/masks/server/help_requests.rb
570
593
  - app/models/masks/server/identicon.rb
571
594
  - app/models/masks/server/idle_accounts.rb
@@ -608,9 +631,11 @@ files:
608
631
  - app/models/masks/server/provider_preset.rb
609
632
  - app/models/masks/server/provisioning_token.rb
610
633
  - app/models/masks/server/pushed_request.rb
634
+ - app/models/masks/server/queue.rb
611
635
  - app/models/masks/server/received_signal.rb
612
636
  - app/models/masks/server/recoveries.rb
613
637
  - app/models/masks/server/refresh_token.rb
638
+ - app/models/masks/server/release.rb
614
639
  - app/models/masks/server/released_nickname.rb
615
640
  - app/models/masks/server/relying_party.rb
616
641
  - app/models/masks/server/replay.rb
@@ -662,6 +687,7 @@ files:
662
687
  - app/models/masks/server/tenant_logo.rb
663
688
  - app/models/masks/server/texting.rb
664
689
  - app/models/masks/server/themes.rb
690
+ - app/models/masks/server/throttle.rb
665
691
  - app/models/masks/server/token.rb
666
692
  - app/models/masks/server/user_codes.rb
667
693
  - app/models/masks/server/verifications.rb
@@ -677,6 +703,7 @@ files:
677
703
  - app/views/layouts/masks/server/manage.html.erb
678
704
  - app/views/masks/server/account/_activity.html.erb
679
705
  - app/views/masks/server/account/_address.html.erb
706
+ - app/views/masks/server/account/_app_passwords.html.erb
680
707
  - app/views/masks/server/account/_approve.html.erb
681
708
  - app/views/masks/server/account/_apps.html.erb
682
709
  - app/views/masks/server/account/_delete.html.erb
@@ -691,6 +718,10 @@ files:
691
718
  - app/views/masks/server/actor_mailer/_action.html.erb
692
719
  - app/views/masks/server/actor_mailer/_message.html.erb
693
720
  - app/views/masks/server/actor_mailer/_message.text.erb
721
+ - app/views/masks/server/actor_mailer/access_declined.html.erb
722
+ - app/views/masks/server/actor_mailer/access_declined.text.erb
723
+ - app/views/masks/server/actor_mailer/access_granted.html.erb
724
+ - app/views/masks/server/actor_mailer/access_granted.text.erb
694
725
  - app/views/masks/server/actor_mailer/approval_requested.html.erb
695
726
  - app/views/masks/server/actor_mailer/approval_requested.text.erb
696
727
  - app/views/masks/server/actor_mailer/approved.html.erb
@@ -761,22 +792,27 @@ files:
761
792
  - config/initializers/inflections.rb
762
793
  - config/initializers/premailer.rb
763
794
  - config/initializers/rack_oauth2.rb
795
+ - config/locales/de/access_requests.yml
764
796
  - config/locales/de/account.yml
797
+ - config/locales/de/account/app_passwords.yml
765
798
  - config/locales/de/actors.yml
766
799
  - config/locales/de/application.yml
767
800
  - config/locales/de/authorize.yml
768
801
  - config/locales/de/device_verifications.yml
769
802
  - config/locales/de/events.yml
770
803
  - config/locales/de/flashes.yml
804
+ - config/locales/de/group_sources.yml
771
805
  - config/locales/de/handshakes.yml
772
806
  - config/locales/de/links.yml
773
807
  - config/locales/de/logins.yml
774
808
  - config/locales/de/mailers.yml
809
+ - config/locales/de/manage/access_requests.yml
775
810
  - config/locales/de/manage/activity.yml
776
811
  - config/locales/de/manage/actor.yml
777
812
  - config/locales/de/manage/actors.yml
778
813
  - config/locales/de/manage/api.yml
779
814
  - config/locales/de/manage/app.yml
815
+ - config/locales/de/manage/app_passwords.yml
780
816
  - config/locales/de/manage/client.yml
781
817
  - config/locales/de/manage/clients.yml
782
818
  - config/locales/de/manage/connections.yml
@@ -788,8 +824,12 @@ files:
788
824
  - config/locales/de/manage/emails.yml
789
825
  - config/locales/de/manage/event_labels.yml
790
826
  - config/locales/de/manage/events.yml
827
+ - config/locales/de/manage/forward_auth_rules.yml
828
+ - config/locales/de/manage/group_sources.yml
791
829
  - config/locales/de/manage/groups.yml
830
+ - config/locales/de/manage/health.yml
792
831
  - config/locales/de/manage/ldap.yml
832
+ - config/locales/de/manage/links.yml
793
833
  - config/locales/de/manage/machines.yml
794
834
  - config/locales/de/manage/mail_template.yml
795
835
  - config/locales/de/manage/messages.yml
@@ -817,22 +857,27 @@ files:
817
857
  - config/locales/de/scopes.yml
818
858
  - config/locales/de/senders.yml
819
859
  - config/locales/de/sessions.yml
860
+ - config/locales/en/access_requests.yml
820
861
  - config/locales/en/account.yml
862
+ - config/locales/en/account/app_passwords.yml
821
863
  - config/locales/en/actors.yml
822
864
  - config/locales/en/application.yml
823
865
  - config/locales/en/authorize.yml
824
866
  - config/locales/en/device_verifications.yml
825
867
  - config/locales/en/events.yml
826
868
  - config/locales/en/flashes.yml
869
+ - config/locales/en/group_sources.yml
827
870
  - config/locales/en/handshakes.yml
828
871
  - config/locales/en/links.yml
829
872
  - config/locales/en/logins.yml
830
873
  - config/locales/en/mailers.yml
874
+ - config/locales/en/manage/access_requests.yml
831
875
  - config/locales/en/manage/activity.yml
832
876
  - config/locales/en/manage/actor.yml
833
877
  - config/locales/en/manage/actors.yml
834
878
  - config/locales/en/manage/api.yml
835
879
  - config/locales/en/manage/app.yml
880
+ - config/locales/en/manage/app_passwords.yml
836
881
  - config/locales/en/manage/client.yml
837
882
  - config/locales/en/manage/clients.yml
838
883
  - config/locales/en/manage/connections.yml
@@ -844,8 +889,12 @@ files:
844
889
  - config/locales/en/manage/emails.yml
845
890
  - config/locales/en/manage/event_labels.yml
846
891
  - config/locales/en/manage/events.yml
892
+ - config/locales/en/manage/forward_auth_rules.yml
893
+ - config/locales/en/manage/group_sources.yml
847
894
  - config/locales/en/manage/groups.yml
895
+ - config/locales/en/manage/health.yml
848
896
  - config/locales/en/manage/ldap.yml
897
+ - config/locales/en/manage/links.yml
849
898
  - config/locales/en/manage/machines.yml
850
899
  - config/locales/en/manage/mail_template.yml
851
900
  - config/locales/en/manage/messages.yml
@@ -873,22 +922,27 @@ files:
873
922
  - config/locales/en/scopes.yml
874
923
  - config/locales/en/senders.yml
875
924
  - config/locales/en/sessions.yml
925
+ - config/locales/es/access_requests.yml
876
926
  - config/locales/es/account.yml
927
+ - config/locales/es/account/app_passwords.yml
877
928
  - config/locales/es/actors.yml
878
929
  - config/locales/es/application.yml
879
930
  - config/locales/es/authorize.yml
880
931
  - config/locales/es/device_verifications.yml
881
932
  - config/locales/es/events.yml
882
933
  - config/locales/es/flashes.yml
934
+ - config/locales/es/group_sources.yml
883
935
  - config/locales/es/handshakes.yml
884
936
  - config/locales/es/links.yml
885
937
  - config/locales/es/logins.yml
886
938
  - config/locales/es/mailers.yml
939
+ - config/locales/es/manage/access_requests.yml
887
940
  - config/locales/es/manage/activity.yml
888
941
  - config/locales/es/manage/actor.yml
889
942
  - config/locales/es/manage/actors.yml
890
943
  - config/locales/es/manage/api.yml
891
944
  - config/locales/es/manage/app.yml
945
+ - config/locales/es/manage/app_passwords.yml
892
946
  - config/locales/es/manage/client.yml
893
947
  - config/locales/es/manage/clients.yml
894
948
  - config/locales/es/manage/connections.yml
@@ -900,8 +954,12 @@ files:
900
954
  - config/locales/es/manage/emails.yml
901
955
  - config/locales/es/manage/event_labels.yml
902
956
  - config/locales/es/manage/events.yml
957
+ - config/locales/es/manage/forward_auth_rules.yml
958
+ - config/locales/es/manage/group_sources.yml
903
959
  - config/locales/es/manage/groups.yml
960
+ - config/locales/es/manage/health.yml
904
961
  - config/locales/es/manage/ldap.yml
962
+ - config/locales/es/manage/links.yml
905
963
  - config/locales/es/manage/machines.yml
906
964
  - config/locales/es/manage/mail_template.yml
907
965
  - config/locales/es/manage/messages.yml
@@ -929,22 +987,27 @@ files:
929
987
  - config/locales/es/scopes.yml
930
988
  - config/locales/es/senders.yml
931
989
  - config/locales/es/sessions.yml
990
+ - config/locales/fr/access_requests.yml
932
991
  - config/locales/fr/account.yml
992
+ - config/locales/fr/account/app_passwords.yml
933
993
  - config/locales/fr/actors.yml
934
994
  - config/locales/fr/application.yml
935
995
  - config/locales/fr/authorize.yml
936
996
  - config/locales/fr/device_verifications.yml
937
997
  - config/locales/fr/events.yml
938
998
  - config/locales/fr/flashes.yml
999
+ - config/locales/fr/group_sources.yml
939
1000
  - config/locales/fr/handshakes.yml
940
1001
  - config/locales/fr/links.yml
941
1002
  - config/locales/fr/logins.yml
942
1003
  - config/locales/fr/mailers.yml
1004
+ - config/locales/fr/manage/access_requests.yml
943
1005
  - config/locales/fr/manage/activity.yml
944
1006
  - config/locales/fr/manage/actor.yml
945
1007
  - config/locales/fr/manage/actors.yml
946
1008
  - config/locales/fr/manage/api.yml
947
1009
  - config/locales/fr/manage/app.yml
1010
+ - config/locales/fr/manage/app_passwords.yml
948
1011
  - config/locales/fr/manage/client.yml
949
1012
  - config/locales/fr/manage/clients.yml
950
1013
  - config/locales/fr/manage/connections.yml
@@ -956,8 +1019,12 @@ files:
956
1019
  - config/locales/fr/manage/emails.yml
957
1020
  - config/locales/fr/manage/event_labels.yml
958
1021
  - config/locales/fr/manage/events.yml
1022
+ - config/locales/fr/manage/forward_auth_rules.yml
1023
+ - config/locales/fr/manage/group_sources.yml
959
1024
  - config/locales/fr/manage/groups.yml
1025
+ - config/locales/fr/manage/health.yml
960
1026
  - config/locales/fr/manage/ldap.yml
1027
+ - config/locales/fr/manage/links.yml
961
1028
  - config/locales/fr/manage/machines.yml
962
1029
  - config/locales/fr/manage/mail_template.yml
963
1030
  - config/locales/fr/manage/messages.yml
@@ -1047,6 +1114,14 @@ files:
1047
1114
  - db/migrate/20261018100000_create_released_nicknames.rb
1048
1115
  - db/migrate/20261018110000_add_refresh_token_absolute_lifetime_to_clients.rb
1049
1116
  - db/migrate/20261019140000_add_indexes_for_cleanup_and_metrics.rb
1117
+ - db/migrate/20261020100000_create_access_requests.rb
1118
+ - db/migrate/20261020110000_add_app_passwords_to_clients.rb
1119
+ - db/migrate/20261020120000_add_forward_auth_rules_to_clients.rb
1120
+ - db/migrate/20261020130000_add_sources_to_groups.rb
1121
+ - db/migrate/20261020140000_create_health_checks.rb
1122
+ - db/migrate/20261020150000_add_link_lifetimes_to_tenants.rb
1123
+ - db/migrate/20261021100000_add_pinned_origin_to_tenants.rb
1124
+ - db/migrate/20261031100000_default_key_rotation_to_ninety_days.rb
1050
1125
  - lib/generators/masks/server/install/install_generator.rb
1051
1126
  - lib/generators/masks/server/install/templates/masks_server.rb.tt
1052
1127
  - lib/masks-server.rb
@@ -1071,20 +1146,20 @@ files:
1071
1146
  - lib/tasks/masks.rake
1072
1147
  - public/masks-assets/.vite/manifest-assets.json
1073
1148
  - public/masks-assets/.vite/manifest.json
1074
- - public/masks-assets/assets/account-D46qDQCo.js
1075
- - public/masks-assets/assets/account-D46qDQCo.js.map
1076
- - public/masks-assets/assets/app-D7W0gAyT.css
1149
+ - public/masks-assets/assets/account-h7I6VUPR.js
1150
+ - public/masks-assets/assets/account-h7I6VUPR.js.map
1151
+ - public/masks-assets/assets/app-BXOScMjL.css
1077
1152
  - public/masks-assets/assets/console-DoyNbIw3.css
1078
- - public/masks-assets/assets/handshake-DIFZPSAK.js
1079
- - public/masks-assets/assets/handshake-DIFZPSAK.js.map
1080
- - public/masks-assets/assets/initial-C1GpCiEh.js
1081
- - public/masks-assets/assets/initial-C1GpCiEh.js.map
1082
- - public/masks-assets/assets/login-C_6igRZ3.js
1083
- - public/masks-assets/assets/login-C_6igRZ3.js.map
1084
- - public/masks-assets/assets/manage-D4MzaDvM.js
1085
- - public/masks-assets/assets/manage-D4MzaDvM.js.map
1086
- - public/masks-assets/assets/passkey-DIj_5LCY.js
1087
- - public/masks-assets/assets/passkey-DIj_5LCY.js.map
1153
+ - public/masks-assets/assets/handshake-YQpRNMIs.js
1154
+ - public/masks-assets/assets/handshake-YQpRNMIs.js.map
1155
+ - public/masks-assets/assets/initial-Cn-UuAsy.js
1156
+ - public/masks-assets/assets/initial-Cn-UuAsy.js.map
1157
+ - public/masks-assets/assets/login-C21_jb6L.js
1158
+ - public/masks-assets/assets/login-C21_jb6L.js.map
1159
+ - public/masks-assets/assets/manage-DpVxe5sv.js
1160
+ - public/masks-assets/assets/manage-DpVxe5sv.js.map
1161
+ - public/masks-assets/assets/passkey-5UYPVD3c.js
1162
+ - public/masks-assets/assets/passkey-5UYPVD3c.js.map
1088
1163
  - public/masks-public/favicon.svg
1089
1164
  - public/masks-public/icon.png
1090
1165
  - public/masks-public/icon.svg
@@ -1,3 +0,0 @@
1
- var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){for(var t=0;t<e.length;t++)e[t]()}function p(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function m(e,t,n=!1){return e===void 0?n?t():t:e}function h(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var g=1<<24,_=1024,v=2048,y=4096,b=8192,x=16384,S=32768,ee=1<<25,C=65536,te=1<<19,ne=1<<20,re=1<<25,ie=65536,ae=1<<21,oe=1<<22,se=1<<23,ce=Symbol(`$state`),le=Symbol(`component`),ue=Symbol(`legacy props`),de=Symbol(``),fe=Symbol(`attributes`),pe=Symbol(`class`),me=Symbol(`style`),he=Symbol(`text`),ge=Symbol(`form reset`),_e=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ve=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`),ye={},w=Symbol(`uninitialized`),be=`http://www.w3.org/1999/xhtml`,xe=`http://www.w3.org/2000/svg`,Se=`http://www.w3.org/1998/Math/MathML`;function Ce(){console.warn(`https://svelte.dev/e/derived_inert`)}function we(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function Te(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ee(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var T=!1;function De(e){T=e}var E;function D(e){if(e===null)throw we(),ye;return E=e}function Oe(){return D(L(E))}function ke(e){if(T){if(L(E)!==null)throw we(),ye;E=e}}function Ae(e=1){if(T){for(var t=e,n=E;t--;)n=L(n);E=n}}function je(e=!0){for(var t=0,n=E;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=L(n);e&&n.remove(),n=i}}function Me(e){if(!e||e.nodeType!==8)throw we(),ye;return e.data}function Ne(e){return e===this.v}function Pe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Fe(e){return!Pe(e,this.v)}function Ie(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Le(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Re(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function ze(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Be(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Ve(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function He(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ue(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function We(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Ge(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Ke(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function qe(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Je=[];function Ye(e,t=!1,n=!1){return Xe(e,new Map,``,Je,null,n)}function Xe(t,n,r,i,a=null,o=!1){if(typeof t==`object`&&t){var c=n.get(t);if(c!==void 0)return c;if(t instanceof Map)return new Map(t);if(t instanceof Set)return new Set(t);if(e(t)){var u=Array(t.length);n.set(t,u),a!==null&&n.set(a,u);for(var d=0;d<t.length;d+=1){var f=t[d];d in t&&(u[d]=Xe(f,n,r,i,null,o))}return u}if(l(t)===s){u={},n.set(t,u),a!==null&&n.set(a,u);for(var p of Object.keys(t))u[p]=Xe(t[p],n,r,i,null,o);return u}if(t instanceof Date)return t.getTime(),structuredClone(t);if(typeof t.toJSON==`function`&&!o)return Xe(t.toJSON(),n,r,i,t)}if(t instanceof EventTarget)return t;try{return structuredClone(t)}catch{return t}}function Ze(e){let t=e.p;for(;t!==null&&t.c===null;)t=t.p;return t?.c??null}function Qe(e,t){return e===null&&Ie(t),e.c??=new Map(Ze(e)||void 0)}var O=null;function $e(e){O=e}function et(e){return Qe(O,`getContext`).get(e)}function tt(e,t){return Qe(O,`setContext`).set(e,t),t}function nt(e,t=!1,n){O={p:O,i:!1,c:null,e:null,s:e,x:null,r:K,l:null}}function rt(e){var t=O,n=t.e;if(n!==null){t.e=null;for(var r of n)jn(r)}return e!==void 0&&(t.x=e),t.i=!0,O=t.p,it(e)}function it(e={}){return i(e,le,{value:!0}),e}function at(){return!0}var ot=[];function st(){var e=ot;ot=[],f(e)}function k(e){if(ot.length===0&&!Rt){var t=ot;queueMicrotask(()=>{t===ot&&st()})}ot.push(e)}function ct(){for(;ot.length>0;)st()}var lt=~(v|y|_);function A(e,t){e.f=e.f&lt|t}function ut(e){e.f&512||e.deps===null?A(e,_):A(e,y)}function dt(e){if(e!==null)for(let t of e)t.f&2&&t.f&65536&&(t.f^=ie,dt(t.deps))}function ft(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),dt(e.deps),A(e,_)}var pt=!1;function mt(e){var t=pt;try{return pt=!1,[e(),pt]}finally{pt=t}}function ht(e,t){if(t){let t=document.body;e.autofocus=!0,k(()=>{document.activeElement===t&&e.focus()})}}function gt(e){T&&I(e)!==null&&xn(e)}var _t=!1;function vt(){_t||(_t=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[ge]?.()})},{capture:!0}))}function yt(e){var t=U,n=K;G(null),q(null);try{return e()}finally{G(t),q(n)}}function bt(e,t,n,r=n){e.addEventListener(t,()=>yt(n));let i=e[ge];e[ge]=i?()=>{i(),r(!0)}:()=>r(!0),vt()}function xt(e,t,n,r){let i=at()?Tt:kt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=K,c=St(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){R(e,s)}Ct()}}var d=wt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>Dt(e))).then(u).catch(e=>R(e,s)).finally(d)}l?l.then(()=>{c(),f(),Ct()}):f()}function St(){var e=K,t=U,n=O,r=j;return function(i=!0){q(e),G(t),$e(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function Ct(e=!0){q(null),G(null),$e(null),e&&j?.deactivate()}function wt(){var e=K,t=e.b,n=j,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function Tt(e){var t=2|v;return K!==null&&(K.f|=te),{ctx:O,deps:null,effects:null,equals:Ne,f:t,fn:e,reactions:null,rv:0,v:w,wv:0,parent:K,ac:null}}var Et=Symbol(`obsolete`);function Dt(e,t,n){let r=K;r===null&&Le();var i=void 0,a=en(w),o=!U,s=new Set;return Fn(()=>{var t=K,n=p();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==_e&&n.reject(e)}).finally(Ct)}catch(e){n.reject(e),Ct()}var c=j;if(o){if(t.f&32768)var l=wt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(Et);else for(let e of s.values())e.reject(Et);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==Et&&(c.activate(),t?(a.f|=se,rn(a,t)):(a.f&8388608&&(a.f^=se),rn(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),kn(()=>{for(let e of s)e.reject(Et)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function Ot(e){let t=Tt(e);return $n(t),t}function kt(e){let t=Tt(e);return t.equals=Fe,t}function At(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)V(t[n])}}function jt(e){var t,n=K,r=e.parent;if(!H&&r!==null&&e.v!==w&&r.f&24576)return Ce(),e.v;q(r);try{e.f&=~ie,At(e),t=cr(e)}finally{q(n)}return t}function Mt(e){var t=jt(e);if(!e.equals(t)&&(e.wv=ar(),(!j?.is_fork||e.deps===null)&&(j===null?e.v=t:(j.capture(e,t,!0),It?.capture(e,t,!0)),e.deps===null))){A(e,_);return}H||(M===null?ut(e):(On()||j?.is_fork)&&M.set(e,t))}function Nt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&yt(()=>{t.ac.abort(_e),t.ac=null}),t.fn!==null&&(t.teardown=d),dr(t,0),Vn(t))}function Pt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&fr(t)}var Ft=null,j=null,It=null,M=null,Lt=null,Rt=!1,zt=!1,Bt=null,Vt=null,Ht=0,Ut=1,Wt=class e{id=Ut++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Ft===null?Ft=this:(Ft.#n=this,this.#t=Ft),Ft=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)A(r,v),t(r);for(r of n.m)A(r,y),t(r)}this.#p.add(e)}#g(){this.#e=!0,Ht++>1e3&&(this.#x(),Kt());for(let e of this.#u)this.#d.delete(e),A(e,v),this.schedule(e);for(let e of this.#d)A(e,y),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Bt=[],r=[],i=Vt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Zt(e),this.#h()||this.discard(),t}if(j=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Bt=null,Vt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Xt(e,t);i.length>0&&j.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),It=this,Jt(r),Jt(n),It=null,this.#s?.resolve();var s=j;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0){if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this}s!==null&&(N.clear(),s.#g())}#_(e,t,n){e.f^=_;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=_:i&4?t.push(r):or(r)&&(i&16&&this.#d.add(r),fr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),A(i,v),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),j=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)ft(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==w&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),M?.set(e,t)),this.is_fork||(e.v=t)}activate(){j=this}deactivate(){j=null,M=null}flush(){try{zt=!0,j=this,this.#g()}finally{Ht=0,Lt=null,Bt=null,Vt=null,zt=!1,j=null,M=null,N.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(Et);this.#x(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,k(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=p()).promise}static ensure(){if(j===null){let t=j=new e;!zt&&!Rt&&k(()=>{t.#e||t.flush()})}return j}apply(){M=null}schedule(e){if(Lt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Bt!==null&&t===K&&(U===null||!(U.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=_}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?Ft=e:t.#t=e,this.linked=!1}}};function Gt(e){var t=Rt;Rt=!0;try{var n;for(e&&(j!==null&&!j.is_fork&&j.flush(),n=e());;){if(ct(),j===null)return n;j.flush()}}finally{Rt=t}}function Kt(){try{He()}catch(e){R(e,Lt)}}var qt=null;function Jt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&or(r)&&(qt=new Set,fr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Wn(r),qt?.size>0)){N.clear();for(let e of qt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)qt.has(n)&&(qt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||fr(n)}}qt.clear()}}qt=null}}function Yt(e){j.schedule(e)}function Xt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),A(e,_);for(var n=e.first;n!==null;)Xt(n,t),n=n.next}}function Zt(e){A(e,_);for(var t=e.first;t!==null;)Zt(t),t=t.next}var Qt=new Set,N=new Map,$t=!1;function en(e,t){return{f:0,v:e,reactions:null,equals:Ne,rv:0,wv:0}}function tn(e,t){let n=en(e,t);return $n(n),n}function nn(e,t=!1,n=!0){let r=en(e);return t||(r.equals=Fe),r}function P(e,t,n=!1){return U!==null&&(!W||U.f&131072)&&at()&&U.f&4325394&&(J===null||!J.has(e))&&Ke(),rn(e,n?ln(t):t,Vt)}function rn(e,t,n=null){if(!e.equals(t)){H?N.set(e,t):N.has(e)||N.set(e,e.v);var r=Wt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&jt(t),M===null&&ut(t)}e.wv=ar(),cn(e,v,n),at()&&K!==null&&K.f&1024&&!(K.f&96)&&(Z===null?er([e]):Z.push(e)),!r.is_fork&&Qt.size>0&&!$t&&an()}return t}function an(){$t=!1;for(let e of Qt){e.f&1024&&A(e,y);let t;try{t=or(e)}catch{t=!0}t&&fr(e)}Qt.clear()}function on(e,t=1){var n=Q(e),r=t===1?n++:n--;return P(e,n),r}function sn(e){P(e,e.v+1)}function cn(e,t,n){var r=e.reactions;if(r!==null)for(var i=at(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(i||s!==K){var l=(c&v)===0;if(l&&A(s,t),c&131072)Qt.add(s);else if(c&2){var u=s;M?.delete(u),c&65536||(c&512&&(K===null||!(K.f&2097152))&&(s.f|=ie),cn(u,y,n))}else if(l){var d=s;c&16&&qt!==null&&qt.add(d),n===null?Yt(d):n.push(d)}}}}function ln(t){if(typeof t!=`object`||!t||ce in t||le in t)return t;let n=l(t);if(n!==s&&n!==c)return t;var r=new Map,i=e(t),o=tn(0),u=null,d=rr,f=e=>{if(rr===d)return e();var t=U,n=rr;G(null),ir(d);var r=e();return G(t),ir(n),r};return i&&r.set(`length`,tn(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&We();var i=r.get(t);return i===void 0?f(()=>{var e=tn(n.value,u);return r.set(t,e),e}):P(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>tn(w,u));r.set(t,e),sn(o)}}else P(n,w),sn(o);return!0},get(e,n,i){if(n===ce)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>tn(ln(s?e[n]:w),u)),r.set(n,o)),o!==void 0){var c=Q(o);return c===w?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=Q(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==w)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===ce)return!0;var n=r.get(t),i=n!==void 0&&n.v!==w||Reflect.has(e,t);return(n!==void 0||K!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>tn(i?ln(e[t]):w,u)),r.set(t,n)),Q(n)===w)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;d<c.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>tn(w,u)),r.set(d+``,p)):P(p,w)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>tn(void 0,u)),P(c,ln(n)),r.set(t,c));else{l=c.v!==w;var m=f(()=>ln(n));P(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&P(g,_+1)}sn(o)}return!0},ownKeys(e){Q(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==w});for(var[n,i]of r)i.v!==w&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Ge()}})}function un(e){try{if(typeof e==`object`&&e&&ce in e)return e[ce]}catch{}return e}function dn(e,t){return Object.is(un(e),un(t))}var fn,pn,mn,hn;function gn(){if(fn===void 0){fn=window,pn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;mn=a(t,`firstChild`).get,hn=a(t,`nextSibling`).get,u(e)&&(e[pe]=void 0,e[fe]=null,e[me]=void 0,e.__e=void 0),u(n)&&(n[he]=void 0)}}function F(e=``){return document.createTextNode(e)}function I(e){return mn.call(e)}function L(e){return hn.call(e)}function _n(e,t){if(!T)return I(e);var n=I(E);if(n===null)n=E.appendChild(F());else if(t&&n.nodeType!==3){var r=F();return n?.before(r),D(r),r}return t&&wn(n),D(n),n}function vn(e,t=!1){if(!T){var n=I(e);return n instanceof Comment&&n.data===``?L(n):n}if(t){if(E?.nodeType!==3){var r=F();return E?.before(r),D(r),r}wn(E)}return E}function yn(e,t=!1){if(!T)return I(e);var n=_n(e,t);return ke(e),n}function bn(e,t=1,n=!1){let r=T?E:e;for(var i;t--;)i=r,r=L(r);if(!T)return r;if(n){if(r?.nodeType!==3){var a=F();return r===null?i?.after(a):r.before(a),D(a),a}wn(r)}return D(r),r}function xn(e){e.textContent=``}function Sn(){return!1}function Cn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function wn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Tn(e){var t=K;if(t===null)return U.f|=se,e;if(!(t.f&32768)&&!(t.f&4))throw e;R(e,t)}function R(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128&&!(t.f&33570816)){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}function En(e){K===null&&(U===null&&Ve(e),Be()),H&&ze(e)}function Dn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function z(e,t){var n=K;n!==null&&n.f&8192&&(e|=b);var r={ctx:O,deps:null,nodes:null,f:e|v|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};j?.register_created_effect(r);var i=r;if(e&4)Bt===null?Wt.ensure().schedule(r):Bt.push(r);else if(t!==null){try{fr(r)}catch(e){throw V(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=C))}if(i!==null&&(i.parent=n,n!==null&&Dn(i,n),U!==null&&U.f&2&&!(e&64))){var a=U;(a.effects??=[]).push(i)}return r}function On(){return U!==null&&!W}function kn(e){let t=z(8,null);return A(t,_),t.teardown=e,t}function An(e){En(`$effect`);var t=K.f;if(!U&&t&32&&O!==null&&!O.i){var n=O;(n.e??=[]).push(e)}else return jn(e)}function jn(e){return z(4|ne,e)}function Mn(e){return En(`$effect.pre`),z(8|ne,e)}function Nn(e){Wt.ensure();let t=z(64|te,e);return(e={})=>new Promise(n=>{e.outro?Gn(t,()=>{V(t),n(void 0)}):(V(t),n(void 0))})}function Pn(e){return z(4,e)}function Fn(e){return z(oe|te,e)}function In(e,t=0){return z(8|t,e)}function Ln(e,t=[],n=[],r=[]){xt(r,t,n,t=>{z(8,()=>{e(...t.map(Q))})})}function Rn(e,t=0){return z(16|t,e)}function zn(e,t=0){return z(g|t,e)}function B(e){return z(32|te,e)}function Bn(e){var t=e.teardown;if(t!==null){let n=H,r=U;Qn(!0),G(null);try{t.call(null)}catch(t){R(t,e.parent)}finally{Qn(n),G(r)}}}function Vn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&yt(()=>{e.abort(_e)});var r=n.next;n.f&64?n.parent=null:V(n,t),n=r}}function Hn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||V(t),t=n}}function V(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Un(e.nodes.start,e.nodes.end),n=!0),e.f|=ee,Vn(e,t&&!n),dr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Bn(e),e.f^=ee,e.f|=x;var i=e.parent;i!==null&&i.first!==null&&Wn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Un(e,t){for(;e!==null;){var n=e===t?null:L(e);e.remove(),e=n}}function Wn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Gn(e,t,n=!0){var r=[];e.f|=256,Kn(e,r,!0);var i=()=>{n&&V(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Kn(e,t,n){if(!(e.f&8192)){e.f^=b;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Kn(i,t,o?n:!1)}i=a}}}function qn(e){e.f&=-257,Jn(e,!0)}function Jn(e,t){if(!(e.f&256)&&e.f&8192){e.f^=b,e.f&1024||(A(e,v),Wt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Jn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Yn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:L(n);t.append(n),n=i}}var Xn=null,Zn=!1,H=!1;function Qn(e){H=e}var U=null,W=!1;function G(e){U=e}var K=null;function q(e){K=e}var J=null;function $n(e){U!==null&&(J??=new Set).add(e)}var Y=null,X=0,Z=null;function er(e){Z=e}var tr=1,nr=0,rr=nr;function ir(e){rr=e}function ar(){return++tr}function or(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~ie),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(or(a)&&Mt(a),a.wv>e.wv)return!0}t&512&&M===null&&A(e,_)}return!1}function sr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(J!==null&&J.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?sr(a,t,!1):t===a&&(n?A(a,v):a.f&1024&&A(a,y),Yt(a))}}function cr(e){var t=Y,n=X,r=Z,i=U,a=J,o=O,s=W,c=rr,l=e.f;Y=null,X=0,Z=null,U=l&96?null:e,J=null,$e(e.ctx),W=!1,rr=++nr,e.ac!==null&&(yt(()=>{e.ac.abort(_e)}),e.ac=null);try{e.f|=ae;var u=e.fn,d=u();e.f|=S;var f=lr(e);if(at()&&Z!==null&&!W&&f!==null&&!(e.f&6146))for(var p=0;p<Z.length;p++)sr(Z[p],e);if(i!==null&&i!==e){if(nr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=nr;if(t!==null)for(let e of t)e.rv=nr;Z!==null&&(r===null?r=Z:r.push(...Z))}return e.f&8388608&&(e.f^=se),d}catch(t){return lr(e),Tn(t)}finally{e.f^=ae,Y=t,X=n,Z=r,U=i,J=a,$e(o),W=s,rr=c}}function lr(e){var t=e.deps,n=j?.is_fork;if(Y!==null){var r;if(n||dr(e,X),t!==null&&X>0)for(t.length=X+Y.length,r=0;r<Y.length;r++)t[X+r]=Y[r];else e.deps=t=Y;if(On()&&e.f&512)for(r=X;r<t.length;r++)(t[r].reactions??=[]).push(e)}else!n&&t!==null&&X<t.length&&(dr(e,X),t.length=X);return t}function ur(e,r){let i=r.reactions;if(i!==null){var a=t.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=r.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&r.f&2&&(Y===null||!n.call(Y,r))){var s=r;s.f&512&&(s.f^=512,s.f&=~ie),s.v!==w&&ut(s),s.ac!==null&&yt(()=>{s.ac.abort(_e),s.ac=null,A(s,v)}),Nt(s),dr(s,0)}}function dr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ur(e,n[r])}function fr(e){var t=e.f;if(!(t&16384)){A(e,_);var n=K,r=Zn;K=e,Zn=!(t&96);try{t&16777232?Hn(e):Vn(e),Bn(e);var i=cr(e);e.teardown=typeof i==`function`?i:null,e.wv=tr}finally{Zn=r,K=n}}}async function pr(){await Promise.resolve(),Gt()}function Q(e){var t=!!(e.f&2);if(Xn?.add(e),U!==null&&!W&&!(K!==null&&K.f&16384)&&(J===null||!J.has(e))){var r=U.deps;if(U.f&2097152)e.rv<nr&&(e.rv=nr,Y===null&&r!==null&&r[X]===e?X++:Y===null?Y=[e]:Y.push(e));else{U.deps??=[],n.call(U.deps,e)||U.deps.push(e);var i=e.reactions;i===null?e.reactions=[U]:n.call(i,U)||i.push(U)}}if(H&&N.has(e))return N.get(e);if(t){var a=e;if(H){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||hr(a))&&(o=jt(a)),N.set(a,o),o}var s=!(a.f&512)&&!W&&U!==null&&(Zn||!!(U.f&512)),c=(a.f&S)===0;or(a)&&(s&&(a.f|=512),Mt(a)),s&&!c&&(Pt(a),mr(a))}if(M?.has(e))return M.get(e);if(e.f&8388608)throw e.v;return e.v}function mr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Pt(t),mr(t))}function hr(e){if(e.v===w)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(N.has(t)||t.f&2&&hr(t))return!0;return!1}function gr(e){var t=W;try{return W=!0,e()}finally{W=t}}function _r(e){return e.endsWith(`capture`)&&e!==`gotpointercapture`&&e!==`lostpointercapture`}var vr=[`beforeinput`,`click`,`change`,`dblclick`,`contextmenu`,`focusin`,`focusout`,`input`,`keydown`,`keyup`,`mousedown`,`mousemove`,`mouseout`,`mouseover`,`mouseup`,`pointerdown`,`pointermove`,`pointerout`,`pointerover`,`pointerup`,`touchend`,`touchmove`,`touchstart`];function yr(e){return vr.includes(e)}var br=`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`),xr={formnovalidate:`formNoValidate`,ismap:`isMap`,nomodule:`noModule`,playsinline:`playsInline`,readonly:`readOnly`,defaultvalue:`defaultValue`,defaultchecked:`defaultChecked`,srcobject:`srcObject`,novalidate:`noValidate`,allowfullscreen:`allowFullscreen`,disablepictureinpicture:`disablePictureInPicture`,disableremoteplayback:`disableRemotePlayback`};function Sr(e){return e=e.toLowerCase(),xr[e]??e}[...br];var Cr=[`touchstart`,`touchmove`];function wr(e){return Cr.includes(e)}var Tr=Symbol(`events`),Er=new Set,Dr=new Set;function Or(e){if(!T)return;e.removeAttribute(`onload`),e.removeAttribute(`onerror`);let t=e.__e;t!==void 0&&(e.__e=void 0,queueMicrotask(()=>{e.isConnected&&e.dispatchEvent(t)}))}function kr(e,t,n,r={}){function i(e){if(r.capture||Fr.call(t,e),!e.cancelBubble)return yt(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?k(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Ar(e,t,n,r,i){var a={capture:r,passive:i},o=kr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&kn(()=>{t.removeEventListener(e,o,a)})}function jr(e,t,n){(t[Tr]??={})[e]=n}function Mr(e){for(var t=0;t<e.length;t++)Er.add(e[t]);for(var n of Dr)n(e)}var Nr=null,Pr=!1;function Fr(e){var t=this,n=t.ownerDocument,r=e.type,a=e.composedPath?.()||[],o=a[0]||e.target;Nr=e,Pr||(Pr=!0,setTimeout(()=>{Pr=!1,Nr=null}));var s=0,c=Nr===e&&e[Tr];if(c){var l=a.indexOf(c);if(l!==-1&&(t===document||t===window)){e[Tr]=t;return}var u=a.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=a[s]||e.target,o!==t){i(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=U,f=K;G(null),q(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[Tr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<a.length?a[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Tr]=t,delete e.currentTarget,G(d),q(f)}}}var Ir=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Lr(e){return Ir?.createHTML(e)??e}function Rr(e){var t=Cn(`template`);return t.innerHTML=Lr(e.replaceAll(`<!>`,`<!---->`)),t.content}function $(e,t){var n=K;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function zr(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(`<!>`);return()=>{if(T)return $(E,null),E;i===void 0&&(i=Rr(a?e:`<!>`+e),n||(i=I(i)));var t=r||pn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=I(t),s=t.lastChild;$(o,s)}else $(t,t);return t}}function Br(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=!!(t&1),a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(T)return $(E,null),E;if(!o){var e=I(Rr(a));if(i)for(o=document.createDocumentFragment();I(e);)o.appendChild(I(e));else o=I(e)}var t=o.cloneNode(!0);if(i){var n=I(t),r=t.lastChild;$(n,r)}else $(t,t);return t}}function Vr(e,t){return Br(e,t,`svg`)}function Hr(e=``){if(!T){var t=F(e+``);return $(t,t),t}var n=E;return n.nodeType===3?wn(n):(n.before(n=F()),D(n)),$(n,n),n}function Ur(){if(T)return $(E,null),E;var e=document.createDocumentFragment(),t=document.createComment(``),n=F();return e.append(t,n),$(t,n),e}function Wr(e,t){if(T){var n=K;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=E),Oe();return}e!==null&&e.before(t)}function Gr(){if(T&&E&&E.nodeType===8&&E.textContent?.startsWith(`$`)){let e=E.textContent.substring(1);return Oe(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}function Kr(e){let t=0,n=en(0),r;return()=>{On()&&(Q(n),In(()=>(t===0&&(r=gr(()=>e(()=>sn(n)))),t+=1,()=>{k(()=>{--t,t===0&&(r?.(),r=void 0,sn(n))})})))}}var qr=C|te;function Jr(e,t,n,r){new Yr(e,t,n,r)}var Yr=class{parent;is_pending=!1;transform_error;#e;#t=T?E:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Kr(()=>(this.#m=en(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=K;t.b=this,t.f|=128,n(e)},this.parent=K.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Rn(()=>{if(T){let e=this.#t;Oe();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},qr),T&&(this.#e=E)}#g(){try{this.#a=B(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);k(r),t&&(this.#s=B(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){Ee();return}t=!0,n&&qe(),this.#s!==null&&Gn(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){R(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=B(()=>e(this.#e)),k(()=>{var e=this.#c=document.createDocumentFragment(),t=F(),n=!1;if(e.append(t),this.#a=this.#S(()=>{try{return B(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){R(e,this.#i.parent)}return null}}),this.#a===null){this.#c=null,n&&this.#x(j);return}this.#u===0&&(this.#e.before(e),this.#c=null,Gn(this.#o,()=>{this.#o=null}),this.#x(j))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=B(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Yn(this.#a,e);let t=this.#n.pending;this.#o=B(()=>t(this.#e))}else this.#x(j)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){ft(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=K,n=U,r=O;q(this.#i),G(this.#i),$e(this.#i.ctx);try{return Wt.ensure(),e()}finally{q(t),G(n),$e(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&Gn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,k(()=>{this.#d=!1,this.#m&&rn(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),Q(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;j?.is_fork?(this.#a&&j.skip_effect(this.#a),this.#o&&j.skip_effect(this.#o),this.#s&&j.skip_effect(this.#s),j.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(V(this.#a),null),this.#o&&=(V(this.#o),null),this.#s&&=(V(this.#s),null),T&&(D(this.#t),Ae(),D(je()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return B(()=>{var r=K;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return R(e,this.#i.parent),null}}))};k(()=>{var t;try{t=this.transform_error(e)}catch(e){R(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>R(e,this.#i&&this.#i.parent)):n(t)})}};function Xr(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[he]??=e.nodeValue)&&(e[he]=n,e.nodeValue=`${n}`)}function Zr(e,t){return $r(e,t)}var Qr=new Map;function $r(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){gn();var l=void 0,u=Nn(()=>{var s=n??t.appendChild(F());Jr(s,{pending:()=>{}},t=>{nt({});var n=O;if(o&&(n.c=o),a&&(i.$$events=a),T&&$(t,null),l=e(t,i)||it(),T&&(K.nodes.end=E,E===null||E.nodeType!==8||E.data!==`]`))throw we(),ye;rt()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=wr(r);for(let e of[t,document]){var a=Qr.get(e);a===void 0&&(a=new Map,Qr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Fr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(r(Er)),Dr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Qr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Fr),r.delete(e),r.size===0&&Qr.delete(n)):r.set(e,i)}Dr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return ei.set(l,u),l}var ei=new WeakMap,ti=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)qn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(qn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(V(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Yn(r,t),t.append(F()),this.#n.set(e,{effect:r,fragment:t})}else V(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Gn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(V(n.effect),this.#n.delete(e))};ensure(e,t){var n=j,r=Sn();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=F();i.append(a),this.#n.set(e,{effect:B(()=>t(a)),fragment:i})}else this.#t.set(e,B(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else T&&(this.anchor=E),this.#a(n)}};function ni(e,t,n=!1){var r;T&&(r=E,Oe());var i=new ti(e),a=n?C:0;function o(e,t){if(T){var n=Me(r);if(e!==parseInt(n.substring(1))){var a=je();D(a),i.anchor=a,De(!1),i.ensure(e,t),De(!0);return}}i.ensure(e,t)}Rn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var ri=Symbol(`NaN`);function ii(e,t,n){T&&Oe();var r=new ti(e),i=!at();Rn(()=>{var e=t();e!==e&&(e=ri),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function ai(e,t){return t}function oi(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Gn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;si(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;xn(d),d.append(u),e.items.clear()}si(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function si(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=re,Yn(a,document.createDocumentFragment())):V(t[i],n)}}var ci;function li(t,n,i,a,o,s=null){var c=t,l=new Map;if(n&4){var u=t;c=T?D(I(u)):u.appendChild(F())}T&&Oe();var d=null,f=kt(()=>{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,di(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=re,pi(d,null,c)):qn(d):Gn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Rn(()=>{p=Q(f);var e=p.length;let t=!1;T&&Me(c)===`[!`!=(e===0)&&(c=je(),D(c),De(!1),t=!0);for(var r=new Set,u=j,v=Sn(),y=0;y<e;y+=1){T&&E.nodeType===8&&E.data===`]`&&(c=E,t=!0,De(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&rn(S.v,b),S.i&&rn(S.i,y),v&&u.unskip_effect(S.e)):(S=fi(l,h?c:ci??=F(),b,x,y,o,n,i),h||(S.e.f|=re),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=B(()=>s(c)):(d=B(()=>s(ci??=F())),d.f|=re)),e>r.size&&Re(``,``,``),T&&e>0&&D(je()),!h){if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u)}t&&De(!0),Q(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,T&&(c=E)}function ui(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function di(e,t,n,i,a){var o=!!(i&8),s=t.length,c=e.items,l=ui(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(qn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432){if(_.f^=re,_===l)pi(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),mi(e,d,_),mi(e,_,y),pi(_,y,n),d=_,p=[],m=[],l=ui(d.next);continue}}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],ee=p[p.length-1];for(x=0;x<p.length;x+=1)pi(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);mi(e,S.prev,ee.next),mi(e,d,S),mi(e,ee,b),l=b,d=ee,--v,p=[],m=[]}else u.delete(_),pi(_,l,n),mi(e,_.prev,_.next),mi(e,_,d===null?e.effect.first:d.next),mi(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=ui(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=ui(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(si(e,r(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var C=[];if(u!==void 0)for(_ of u)_.f&8192||C.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&C.push(l),l=ui(l.next);var te=C.length;if(te>0){var ne=i&4&&s===0?n:null;if(o){for(v=0;v<te;v+=1)C[v].nodes?.a?.measure();for(v=0;v<te;v+=1)C[v].nodes?.a?.fix()}oi(e,C,ne)}}o&&k(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function fi(e,t,n,r,i,a,o,s){var c=o&1?o&16?en(n):nn(n,!1,!1):null,l=o&2?en(i):null;return{v:c,i:l,e:B(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function pi(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=L(r);if(a.before(r),r===i)return;r=o}}function mi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function hi(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;T&&(o=D(I(c)))}Ln(()=>{var e=K;if(s===(s=t()??``)){T&&Oe();return}if(n&&!T){e.nodes=null,c.innerHTML=s,s!==``&&$(I(c),c.lastChild);return}if(e.nodes!==null&&(Un(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(T){for(var a=E.data,l=Oe(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=L(l);if(l===null)throw we(),ye;$(E,u),o=D(l);return}var d=Cn(r?`svg`:i?`math`:`template`,r?xe:i?Se:void 0);d.innerHTML=s;var f=r||i?d:d.content;if($(I(f),f.lastChild),r||i)for(;I(f);)o.before(I(f));else o.before(f)}})}function gi(e,t,...n){var r=new ti(e);Rn(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},C)}function _i(e,t,n){var r;T&&(r=E,Oe());var i=new ti(e);Rn(()=>{var e=t()??null;if(T&&Me(r)===`[`!=(e!==null)){var a=je();D(a),i.anchor=a,De(!1),i.ensure(e,e&&(t=>n(t,e))),De(!0);return}i.ensure(e,e&&(t=>n(t,e)))},C)}function vi(e,t){var n=void 0,r;zn(()=>{n!==(n=t())&&(r&&=(V(r),null),n&&(r=B(()=>{Pn(()=>n(e))})))})}function yi(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=yi(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function bi(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=yi(e))&&(r&&(r+=` `),r+=t);return r}function xi(e){return typeof e==`object`?bi(e):e??``}var Si=[...`
2
- \r\f\xA0\v`];function Ci(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||Si.includes(r[o-1]))&&(s===r.length||Si.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function wi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function Ti(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function Ei(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\/\*.*?\*\//g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(Ti)),i&&c.push(...Object.keys(i).map(Ti));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=Ti(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=wi(r)),i&&(n+=wi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function Di(e,t,n,r,i,a){var o=e[pe];if(T||o!==n||o===void 0){var s=Ci(n,r,a);(!T||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[pe]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function Oi(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function ki(e,t,n,r){var i=e[me];if(T||i!==t){var a=Ei(t,r);(!T||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[me]=t}else r&&(Array.isArray(r)?(Oi(e,n?.[0],r[0]),Oi(e,n?.[1],r[1],`important`)):Oi(e,n,r));return r}function Ai(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function ji(e,t){var n=!(`__defaultValue`in e);(n||e.__defaultValue!==t)&&(e.__defaultValue=t,Mi(e,!n||`__value`in e))}function Mi(t,n){var r=t.__defaultValue,i=t.multiple,a=i?r??[]:null;if(!i||e(a)){var o=t.selectedIndex,s=n&&i?new Set(t.selectedOptions):null;for(var c of t.options){var l=Ii(c);Ai(c,i?a.includes(l):dn(l,r))}if(n){if(s!==null)for(c of t.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else t.selectedIndex!==o&&(t.selectedIndex=o)}}}function Ni(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return Te();for(var i of t.options)i.selected=n.includes(Ii(i));return}for(i of t.options)if(dn(Ii(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function Pi(e){var t=new MutationObserver(t=>{t.every(Li)||(`__defaultValue`in e&&Mi(e,!1),`__value`in e&&Ni(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),kn(()=>{t.disconnect()})}function Fi(e,t,n=t){var r=new WeakSet,i=!0;bt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Ii);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Ii(o)}n(a),e.__value=a,j!==null&&r.add(j)}),Pn(()=>{var a=t();if(e===document.activeElement){var o=j;if(r.has(o))return}if(Ni(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Ii(s),n(a))}e.__value=a,i=!1})}function Ii(e){return`__value`in e?e.__value:e.value}function Li(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var Ri=Symbol(`class`),zi=Symbol(`style`),Bi=Symbol(`is custom element`),Vi=Symbol(`is html`),Hi=ve?`link`:`LINK`,Ui=ve?`input`:`INPUT`,Wi=ve?`option`:`OPTION`,Gi=ve?`select`:`SELECT`,Ki=ve?`progress`:`PROGRESS`;function qi(e){if(T){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;Xi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;Xi(e,`checked`,null),e.checked=r}}};e[ge]=n,k(n),vt()}}function Ji(e,t){var n=$i(e);n.value!==(n.value=t??void 0)&&(e.value!==t||t===0&&e.nodeName===Ki)&&(e.value=t??``)}function Yi(e,t){var n=$i(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Xi(e,t,n,r){var i=$i(e);T&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Hi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[de]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&ta(e).has(t)?e[t]=n:e.setAttribute(t,n))}function Zi(e,t,n,r,i=!1,a=!1){T&&i&&e.nodeName===Ui&&(`defaultValue`in n||`defaultChecked`in n||qi(e));var o=$i(e),s=o[Bi],c=!o[Vi];let l=T&&s;l&&De(!1);var u=t||{},d=e.nodeName===Wi,f=e.nodeName===Gi;for(var p in t)!(p in n)&&p[0]+p[1]!==`$$`&&(n[p]=null);n.class?n.class=xi(n.class):(r||n[Ri])&&(n.class=null),n[zi]&&(n.style??=null);var m=ta(e);if(e.nodeName===Ui&&`type`in n&&(`value`in n||`__value`in n)){var h=n.type;(h!==u.type||h===void 0&&e.hasAttribute(`type`))&&(u.type=h,Xi(e,`type`,h,a))}for(let i in n){let l=n[i];if(d&&i===`value`&&l==null){e.value=e.__value=``,u[i]=l;continue}if(i===`class`){Di(e,e.namespaceURI===`http://www.w3.org/1999/xhtml`,l,r,t?.[Ri],n[Ri]),u[i]=l,u[Ri]=n[Ri];continue}if(i===`style`){ki(e,l,t?.[zi],n[zi]),u[i]=l,u[zi]=n[zi];continue}var g=u[i];if(l!==g||l===void 0&&e.hasAttribute(i)){u[i]=l;var _=i[0]+i[1];if(_!==`$$`){if(_===`on`){let t={},n=`$$`+i,r=i.slice(2);var v=yr(r);if(_r(r)&&(r=r.slice(0,-7),t.capture=!0),!v&&g){if(l!=null)continue;e.removeEventListener(r,u[n],t),u[n]=null}if(v)jr(r,e,l),Mr([r]);else if(l!=null){function a(e){u[i].call(this,e)}u[n]=kr(r,e,a,t)}}else if(i===`style`)Xi(e,i,l);else if(i===`autofocus`)ht(e,!!l);else if(!s&&(i===`__value`||i===`value`&&l!=null))e.value=e.__value=l;else if(i===`selected`&&d)Ai(e,l);else{var y=i;c||(y=Sr(y));var b=y===`defaultValue`||y===`defaultChecked`;if(f&&y===`defaultValue`)continue;if(l==null&&!s&&!b){if(o[i]=null,y===`value`||y===`checked`){let n=e,r=t===void 0;if(y===`value`){let e=n.defaultValue;n.removeAttribute(y),n.defaultValue=e,n.value=n.__value=r?e:null}else{let e=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=e,n.checked=r?e:!1}}else e.removeAttribute(i)}else b||(s||typeof l!=`string`)&&m.has(y)?(e[y]=l,y in o&&(o[y]=w)):typeof l!=`function`&&Xi(e,y,l,a)}}}}return l&&De(!0),u}function Qi(e,t,n=[],r=[],i=[],a,o=!1,s=!1){xt(i,n,r,n=>{var r=void 0,i={},c=e.nodeName===Gi,l=!1;if(zn(()=>{var u=t(...n.map(Q)),d=Zi(e,r,u,a,o,s);if(l&&c){var f=e;`defaultValue`in u&&ji(f,u.defaultValue),`value`in u&&Ni(f,u.value)}for(let e of Object.getOwnPropertySymbols(i))u[e]||V(i[e]);for(let t of Object.getOwnPropertySymbols(u)){var p=u[t];t.description===`@attach`&&(!r||p!==r[t])&&(i[t]&&V(i[t]),i[t]=B(()=>vi(e,()=>p))),d[t]=p}r=d}),c){var u=e;Pn(()=>{var e=r;`defaultValue`in e&&ji(u,e.defaultValue),Ni(u,e.value,!0),Pi(u)})}l=!0})}function $i(e){return e[fe]??={[Bi]:e.nodeName.includes(`-`),[Vi]:e.namespaceURI===be}}var ea=new Map;function ta(e){var t=e.getAttribute(`is`)||e.nodeName,n=ea.get(t);if(n)return n;ea.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.add(s);i=l(i)}return n}function na(e,t,n=t){var r=new WeakSet;bt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=sa(e)?ca(a):a,n(a),j!==null&&r.add(j),await pr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(T&&e.defaultValue!==e.value||gr(t)==null&&e.value)&&(n(sa(e)?ca(e.value):e.value),j!==null&&r.add(j)),In(()=>{var n=t();if(e===document.activeElement){var i=j;if(r.has(i))return}sa(e)&&n===ca(e.value)||(e.type!==`date`||n||e.value)&&n!==e.value&&(e.value=n??``)})}var ra=new Set;function ia(e,t,n,r,i=r){var a=n.getAttribute(`type`)===`checkbox`,o=e;let s=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),bt(n,`change`,()=>{var e=n.__value;a&&(e=oa(o,e,n.checked)),i(e)},()=>i(a?[]:null)),In(()=>{var e=r();if(T&&n.defaultChecked!==n.checked){s=!0;return}a?(e||=[],n.checked=e.includes(n.__value)):n.checked=dn(n.__value,e)}),kn(()=>{var e=o.indexOf(n);e!==-1&&o.splice(e,1)}),ra.has(o)||(ra.add(o),k(()=>{o.sort((e,t)=>e.compareDocumentPosition(t)===4?-1:1),ra.delete(o)})),k(()=>{if(s){var e=a?oa(o,e,n.checked):o.find(e=>e.checked)?.__value;i(e)}})}function aa(e,t,n=t){bt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(T&&e.defaultChecked!==e.checked||gr(t)==null)&&n(e.checked),In(()=>{e.checked=!!t()})}function oa(e,t,n){for(var r=new Set,i=0;i<e.length;i+=1)e[i].checked&&r.add(e[i].__value);return n||r.delete(t),Array.from(r)}function sa(e){var t=e.type;return t===`number`||t===`range`}function ca(e){return e===``?null:+e}function la(e,t){return e===t||e?.[ce]===t}function ua(e=it(),t,n,r){var i=O.r,a=K;return Pn(()=>{var o,s;return In(()=>{o=s,s=r?.()||[],gr(()=>{la(n(...s),e)||(t(e,...s),o&&la(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&la(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}var da={get(e,t){if(!e.exclude.has(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.has(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return!e.exclude.has(t)&&t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.has(t))}};function fa(e,t,n){return new Proxy({props:e,exclude:t},da)}function pa(e,t,n,r){var i=!0,o=!!(n&8),s=!!(n&16),c=r,l=!0,u=void 0,d=()=>s&&i?(u??=Tt(r),Q(u)):(l&&(l=!1,c=s?gr(r):r),c);let f;if(o){var p=ce in e||ue in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=mt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Ue(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?Tt:kt)(()=>(v=!1,g()));o&&Q(y);var b=K;return(function(e,t){if(arguments.length>0){let n=t?Q(y):i&&o?ln(e):e;return P(y,n),v=!0,c!==void 0&&(c=n),e}return H&&v||b.f&16384?y.v:Q(y)})}function ma(e){O===null&&Ie(`onMount`),An(()=>{let t=gr(e);if(typeof t==`function`)return t})}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var ha=e=>(e??``).trim().slice(0,1).toUpperCase(),ga=e=>(e??``).split(/\s+/).filter(Boolean).slice(0,2).map(ha).join(``);export{Gt as $,Wr as A,Q as B,hi as C,ni as D,ii as E,Hr as F,_n as G,Ln as H,Mr as I,bn as J,vn as K,jr as L,zr as M,Vr as N,Zr as O,Gr as P,on as Q,Ar as R,gi as S,ai as T,An as U,gr as V,Mn as W,P as X,ln as Y,tn as Z,Ni as _,fa as a,rt as at,xi as b,ia as c,Ye as ct,qi as d,m as dt,kt as et,Xi as f,d as ft,Pi as g,Fi as h,pa as i,et as it,Ur as j,Xr as k,na as l,Ae as lt,Ji as m,ga as n,ht as nt,ua as o,nt as ot,Yi as p,h as pt,yn as q,ma as r,gt as rt,aa as s,tt as st,ha as t,Ot as tt,Qi as u,ke as ut,ki as v,li as w,_i as x,Di as y,Or as z};
3
- //# sourceMappingURL=initial-C1GpCiEh.js.map