diff --git a/cmd/pkgdash/assets/ui/3rdpartylicenses.txt b/cmd/pkgdash/assets/ui/3rdpartylicenses.txt
new file mode 100644
index 0000000..b1fc0de
--- /dev/null
+++ b/cmd/pkgdash/assets/ui/3rdpartylicenses.txt
@@ -0,0 +1,284 @@
+@angular/animations
+MIT
+
+@angular/common
+MIT
+
+@angular/core
+MIT
+
+@angular/material
+MIT
+The MIT License
+
+Copyright (c) 2021 Google LLC.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+@angular/platform-browser
+MIT
+
+@angular/router
+MIT
+
+rxjs
+Apache-2.0
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+tslib
+0BSD
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+zone.js
+MIT
+The MIT License
+
+Copyright (c) 2010-2022 Google LLC. https://angular.io/license
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/cmd/pkgdash/assets/ui/favicon.ico b/cmd/pkgdash/assets/ui/favicon.ico
new file mode 100644
index 0000000..997406a
Binary files /dev/null and b/cmd/pkgdash/assets/ui/favicon.ico differ
diff --git a/cmd/pkgdash/assets/ui/index.html b/cmd/pkgdash/assets/ui/index.html
new file mode 100644
index 0000000..09519ca
--- /dev/null
+++ b/cmd/pkgdash/assets/ui/index.html
@@ -0,0 +1,15 @@
+
+
+ UI
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cmd/pkgdash/assets/ui/main.5a9218fbdfa97527.js b/cmd/pkgdash/assets/ui/main.5a9218fbdfa97527.js
new file mode 100644
index 0000000..1bcb05f
--- /dev/null
+++ b/cmd/pkgdash/assets/ui/main.5a9218fbdfa97527.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[179],{727:()=>{function re(t){return"function"==typeof t}function vi(t){const n=t(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const Ls=vi(t=>function(n){t(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,i)=>`${i+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function Di(t,e){if(t){const n=t.indexOf(e);0<=n&&t.splice(n,1)}}class mt{constructor(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let e;if(!this.closed){this.closed=!0;const{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const s of n)s.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(re(r))try{r()}catch(s){e=s instanceof Ls?s.errors:[s]}const{_teardowns:i}=this;if(i){this._teardowns=null;for(const s of i)try{Ff(s)}catch(o){e=e??[],o instanceof Ls?e=[...e,...o.errors]:e.push(o)}}if(e)throw new Ls(e)}}add(e){var n;if(e&&e!==this)if(this.closed)Ff(e);else{if(e instanceof mt){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&void 0!==n?n:[]).push(e)}}_hasParent(e){const{_parentage:n}=this;return n===e||Array.isArray(n)&&n.includes(e)}_addParent(e){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e}_removeParent(e){const{_parentage:n}=this;n===e?this._parentage=null:Array.isArray(n)&&Di(n,e)}remove(e){const{_teardowns:n}=this;n&&Di(n,e),e instanceof mt&&e._removeParent(this)}}mt.EMPTY=(()=>{const t=new mt;return t.closed=!0,t})();const Pf=mt.EMPTY;function xf(t){return t instanceof mt||t&&"closed"in t&&re(t.remove)&&re(t.add)&&re(t.unsubscribe)}function Ff(t){re(t)?t():t.unsubscribe()}const zn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Vs={setTimeout(...t){const{delegate:e}=Vs;return(e?.setTimeout||setTimeout)(...t)},clearTimeout(t){const{delegate:e}=Vs;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function Of(t){Vs.setTimeout(()=>{const{onUnhandledError:e}=zn;if(!e)throw t;e(t)})}function $s(){}const Uw=sl("C",void 0,void 0);function sl(t,e,n){return{kind:t,value:e,error:n}}let qn=null;function js(t){if(zn.useDeprecatedSynchronousErrorHandling){const e=!qn;if(e&&(qn={errorThrown:!1,error:null}),t(),e){const{errorThrown:n,error:r}=qn;if(qn=null,n)throw r}}else t()}class ol extends mt{constructor(e){super(),this.isStopped=!1,e?(this.destination=e,xf(e)&&e.add(this)):this.destination=Gw}static create(e,n,r){return new al(e,n,r)}next(e){this.isStopped?ul(function zw(t){return sl("N",t,void 0)}(e),this):this._next(e)}error(e){this.isStopped?ul(function Hw(t){return sl("E",void 0,t)}(e),this):(this.isStopped=!0,this._error(e))}complete(){this.isStopped?ul(Uw,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(e){this.destination.next(e)}_error(e){try{this.destination.error(e)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class al extends ol{constructor(e,n,r){let i;if(super(),re(e))i=e;else if(e){let s;({next:i,error:n,complete:r}=e),this&&zn.useDeprecatedNextContext?(s=Object.create(e),s.unsubscribe=()=>this.unsubscribe()):s=e,i=i?.bind(s),n=n?.bind(s),r=r?.bind(s)}this.destination={next:i?ll(i):$s,error:ll(n??kf),complete:r?ll(r):$s}}}function ll(t,e){return(...n)=>{try{t(...n)}catch(r){zn.useDeprecatedSynchronousErrorHandling?function qw(t){zn.useDeprecatedSynchronousErrorHandling&&qn&&(qn.errorThrown=!0,qn.error=t)}(r):Of(r)}}}function kf(t){throw t}function ul(t,e){const{onStoppedNotification:n}=zn;n&&Vs.setTimeout(()=>n(t,e))}const Gw={closed:!0,next:$s,error:kf,complete:$s},cl="function"==typeof Symbol&&Symbol.observable||"@@observable";function Gn(t){return t}function Lf(t){return 0===t.length?Gn:1===t.length?t[0]:function(n){return t.reduce((r,i)=>i(r),n)}}let Ce=(()=>{class t{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new t;return r.source=this,r.operator=n,r}subscribe(n,r,i){const s=function Kw(t){return t&&t instanceof ol||function Qw(t){return t&&re(t.next)&&re(t.error)&&re(t.complete)}(t)&&xf(t)}(n)?n:new al(n,r,i);return js(()=>{const{operator:o,source:a}=this;s.add(o?o.call(s,a):a?this._subscribe(s):this._trySubscribe(s))}),s}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=Vf(r))((i,s)=>{let o;o=this.subscribe(a=>{try{n(a)}catch(l){s(l),o?.unsubscribe()}},s,i)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[cl](){return this}pipe(...n){return Lf(n)(this)}toPromise(n){return new(n=Vf(n))((r,i)=>{let s;this.subscribe(o=>s=o,o=>i(o),()=>r(s))})}}return t.create=e=>new t(e),t})();function Vf(t){var e;return null!==(e=t??zn.Promise)&&void 0!==e?e:Promise}const Zw=vi(t=>function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Ht=(()=>{class t extends Ce{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new $f(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new Zw}next(n){js(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const i of r)i.next(n)}})}error(n){js(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){js(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:i,observers:s}=this;return r||i?Pf:(s.push(n),new mt(()=>Di(s,n)))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:i,isStopped:s}=this;r?n.error(i):s&&n.complete()}asObservable(){const n=new Ce;return n.source=this,n}}return t.create=(e,n)=>new $f(e,n),t})();class $f extends Ht{constructor(e,n){super(),this.destination=e,this.source=n}next(e){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,e)}error(e){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,e)}complete(){var e,n;null===(n=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===n||n.call(e)}_subscribe(e){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(e))&&void 0!==r?r:Pf}}function jf(t){return re(t?.lift)}function Me(t){return e=>{if(jf(e))return e.lift(function(n){try{return t(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Ae extends ol{constructor(e,n,r,i,s){super(e),this.onFinalize=s,this._next=n?function(o){try{n(o)}catch(a){e.error(a)}}:super._next,this._error=i?function(o){try{i(o)}catch(a){e.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(o){e.error(o)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var e;const{closed:n}=this;super.unsubscribe(),!n&&(null===(e=this.onFinalize)||void 0===e||e.call(this))}}function K(t,e){return Me((n,r)=>{let i=0;n.subscribe(new Ae(r,s=>{r.next(t.call(e,s,i++))}))})}function Wn(t){return this instanceof Wn?(this.v=t,this):new Wn(t)}function Jw(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=n.apply(t,e||[]),s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(f){r[f]&&(i[f]=function(h){return new Promise(function(p,g){s.push([f,h,p,g])>1||a(f,h)})})}function a(f,h){try{!function l(f){f.value instanceof Wn?Promise.resolve(f.value.v).then(u,c):d(s[0][2],f)}(r[f](h))}catch(p){d(s[0][3],p)}}function u(f){a("next",f)}function c(f){a("throw",f)}function d(f,h){f(h),s.shift(),s.length&&a(s[0][0],s[0][1])}}function eE(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,e=t[Symbol.asyncIterator];return e?e.call(t):(t=function Hf(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}(t),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,l){!function i(s,o,a,l){Promise.resolve(l).then(function(u){s({value:u,done:a})},o)}(a,l,(o=t[s](o)).done,o.value)})}}}const zf=t=>t&&"number"==typeof t.length&&"function"!=typeof t;function qf(t){return re(t?.then)}function Gf(t){return re(t[cl])}function Wf(t){return Symbol.asyncIterator&&re(t?.[Symbol.asyncIterator])}function Qf(t){return new TypeError(`You provided ${null!==t&&"object"==typeof t?"an invalid object":`'${t}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Kf=function nE(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Zf(t){return re(t?.[Kf])}function Yf(t){return Jw(this,arguments,function*(){const n=t.getReader();try{for(;;){const{value:r,done:i}=yield Wn(n.read());if(i)return yield Wn(void 0);yield yield Wn(r)}}finally{n.releaseLock()}})}function Xf(t){return re(t?.getReader)}function en(t){if(t instanceof Ce)return t;if(null!=t){if(Gf(t))return function rE(t){return new Ce(e=>{const n=t[cl]();if(re(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(t);if(zf(t))return function iE(t){return new Ce(e=>{for(let n=0;n{t.then(n=>{e.closed||(e.next(n),e.complete())},n=>e.error(n)).then(null,Of)})}(t);if(Wf(t))return Jf(t);if(Zf(t))return function oE(t){return new Ce(e=>{for(const n of t)if(e.next(n),e.closed)return;e.complete()})}(t);if(Xf(t))return function aE(t){return Jf(Yf(t))}(t)}throw Qf(t)}function Jf(t){return new Ce(e=>{(function lE(t,e){var n,r,i,s;return function Yw(t,e,n,r){return new(n||(n=Promise))(function(s,o){function a(c){try{u(r.next(c))}catch(d){o(d)}}function l(c){try{u(r.throw(c))}catch(d){o(d)}}function u(c){c.done?s(c.value):function i(s){return s instanceof n?s:new n(function(o){o(s)})}(c.value).then(a,l)}u((r=r.apply(t,e||[])).next())})}(this,void 0,void 0,function*(){try{for(n=eE(t);!(r=yield n.next()).done;)if(e.next(r.value),e.closed)return}catch(o){i={error:o}}finally{try{r&&!r.done&&(s=n.return)&&(yield s.call(n))}finally{if(i)throw i.error}}e.complete()})})(t,e).catch(n=>e.error(n))})}function tn(t,e,n,r=0,i=!1){const s=e.schedule(function(){n(),i?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(s),!i)return s}function Pe(t,e,n=1/0){return re(e)?Pe((r,i)=>K((s,o)=>e(r,s,i,o))(en(t(r,i))),n):("number"==typeof e&&(n=e),Me((r,i)=>function uE(t,e,n,r,i,s,o,a){const l=[];let u=0,c=0,d=!1;const f=()=>{d&&!l.length&&!u&&e.complete()},h=g=>u{s&&e.next(g),u++;let m=!1;en(n(g,c++)).subscribe(new Ae(e,v=>{i?.(v),s?h(v):e.next(v)},()=>{m=!0},void 0,()=>{if(m)try{for(u--;l.length&&up(v)):p(v)}f()}catch(v){e.error(v)}}))};return t.subscribe(new Ae(e,h,()=>{d=!0,f()})),()=>{a?.()}}(r,i,t,n)))}function Dr(t=1/0){return Pe(Gn,t)}const nn=new Ce(t=>t.complete());function fl(t){return t[t.length-1]}function _i(t){return function dE(t){return t&&re(t.schedule)}(fl(t))?t.pop():void 0}function eh(t,e=0){return Me((n,r)=>{n.subscribe(new Ae(r,i=>tn(r,t,()=>r.next(i),e),()=>tn(r,t,()=>r.complete(),e),i=>tn(r,t,()=>r.error(i),e)))})}function th(t,e=0){return Me((n,r)=>{r.add(t.schedule(()=>n.subscribe(r),e))})}function nh(t,e){if(!t)throw new Error("Iterable cannot be null");return new Ce(n=>{tn(n,e,()=>{const r=t[Symbol.asyncIterator]();tn(n,e,()=>{r.next().then(i=>{i.done?n.complete():n.next(i.value)})},0,!0)})})}function ve(t,e){return e?function DE(t,e){if(null!=t){if(Gf(t))return function pE(t,e){return en(t).pipe(th(e),eh(e))}(t,e);if(zf(t))return function mE(t,e){return new Ce(n=>{let r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}(t,e);if(qf(t))return function gE(t,e){return en(t).pipe(th(e),eh(e))}(t,e);if(Wf(t))return nh(t,e);if(Zf(t))return function yE(t,e){return new Ce(n=>{let r;return tn(n,e,()=>{r=t[Kf](),tn(n,e,()=>{let i,s;try{({value:i,done:s}=r.next())}catch(o){return void n.error(o)}s?n.complete():n.next(i)},0,!0)}),()=>re(r?.return)&&r.return()})}(t,e);if(Xf(t))return function vE(t,e){return nh(Yf(t),e)}(t,e)}throw Qf(t)}(t,e):en(t)}function _r(t){return t<=0?()=>nn:Me((e,n)=>{let r=0;e.subscribe(new Ae(n,i=>{++r<=t&&(n.next(i),t<=r&&n.complete())}))})}function hl(t,e,...n){return!0===e?(t(),null):!1===e?null:e(...n).pipe(_r(1)).subscribe(()=>t())}function te(t){for(let e in t)if(t[e]===te)return e;throw Error("Could not find renamed property on target object.")}function ne(t){if("string"==typeof t)return t;if(Array.isArray(t))return"["+t.map(ne).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}function gl(t,e){return null==t||""===t?null===e?"":e:null==e||""===e?t:t+" "+e}const EE=te({__forward_ref__:te});function ml(t){return t.__forward_ref__=ml,t.toString=function(){return ne(this())},t}function F(t){return function yl(t){return"function"==typeof t&&t.hasOwnProperty(EE)&&t.__forward_ref__===ml}(t)?t():t}class _ extends Error{constructor(e,n){super(function Bs(t,e){return`NG0${Math.abs(t)}${e?": "+e.trim():""}`}(e,n)),this.code=e}}function Y(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():function L(t){return"string"==typeof t?t:null==t?"":String(t)}(t)}function Us(t,e){throw new _(-201,!1)}function nt(t,e){null==t&&function J(t,e,n,r){throw new Error(`ASSERTION ERROR: ${t}`+(null==r?"":` [Expected=> ${n} ${r} ${e} <=Actual]`))}(e,t,null,"!=")}function V(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}function sn(t){return{providers:t.providers||[],imports:t.imports||[]}}function Hs(t){return rh(t,zs)||rh(t,sh)}function rh(t,e){return t.hasOwnProperty(e)?t[e]:null}function ih(t){return t&&(t.hasOwnProperty(vl)||t.hasOwnProperty(NE))?t[vl]:null}const zs=te({\u0275prov:te}),vl=te({\u0275inj:te}),sh=te({ngInjectableDef:te}),NE=te({ngInjectorDef:te});var N=(()=>((N=N||{})[N.Default=0]="Default",N[N.Host=1]="Host",N[N.Self=2]="Self",N[N.SkipSelf=4]="SkipSelf",N[N.Optional=8]="Optional",N))();let Dl;function yt(t){const e=Dl;return Dl=t,e}function oh(t,e,n){const r=Hs(t);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&N.Optional?null:void 0!==e?e:void Us(ne(t))}function Sn(t){return{toString:t}.toString()}var Tt=(()=>((Tt=Tt||{})[Tt.OnPush=0]="OnPush",Tt[Tt.Default=1]="Default",Tt))(),Mt=(()=>{return(t=Mt||(Mt={}))[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom",Mt;var t})();const ie=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),wr={},X=[],qs=te({\u0275cmp:te}),_l=te({\u0275dir:te}),wl=te({\u0275pipe:te}),ah=te({\u0275mod:te}),on=te({\u0275fac:te}),wi=te({__NG_ELEMENT_ID__:te});let xE=0;function Ei(t){return Sn(()=>{const n=!0===t.standalone,r={},i={type:t.type,providersResolver:null,decls:t.decls,vars:t.vars,factory:null,template:t.template||null,consts:t.consts||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,hostVars:t.hostVars||0,hostAttrs:t.hostAttrs||null,contentQueries:t.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:t.exportAs||null,onPush:t.changeDetection===Tt.OnPush,directiveDefs:null,pipeDefs:null,standalone:n,dependencies:n&&t.dependencies||null,getStandaloneInjector:null,selectors:t.selectors||X,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||Mt.Emulated,id:"c"+xE++,styles:t.styles||X,_:null,setInput:null,schemas:t.schemas||null,tView:null},s=t.dependencies,o=t.features;return i.inputs=ch(t.inputs,r),i.outputs=ch(t.outputs),o&&o.forEach(a=>a(i)),i.directiveDefs=s?()=>("function"==typeof s?s():s).map(lh).filter(uh):null,i.pipeDefs=s?()=>("function"==typeof s?s():s).map(ze).filter(uh):null,i})}function lh(t){return ee(t)||He(t)}function uh(t){return null!==t}function bn(t){return Sn(()=>({type:t.type,bootstrap:t.bootstrap||X,declarations:t.declarations||X,imports:t.imports||X,exports:t.exports||X,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}))}function ch(t,e){if(null==t)return wr;const n={};for(const r in t)if(t.hasOwnProperty(r)){let i=t[r],s=i;Array.isArray(i)&&(s=i[1],i=i[0]),n[i]=r,e&&(e[i]=s)}return n}const Oe=Ei;function ee(t){return t[qs]||null}function He(t){return t[_l]||null}function ze(t){return t[wl]||null}function rt(t,e){const n=t[ah]||null;if(!n&&!0===e)throw new Error(`Type ${ne(t)} does not have '\u0275mod' property.`);return n}const B=11;function Xe(t){return Array.isArray(t)&&"object"==typeof t[1]}function Rt(t){return Array.isArray(t)&&!0===t[1]}function Sl(t){return 0!=(8&t.flags)}function Ks(t){return 2==(2&t.flags)}function Nt(t){return null!==t.template}function $E(t){return 0!=(256&t[2])}function Xn(t,e){return t.hasOwnProperty(on)?t[on]:null}class UE{constructor(e,n,r){this.previousValue=e,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function hh(t){return t.type.prototype.ngOnChanges&&(t.setInput=zE),HE}function HE(){const t=gh(this),e=t?.current;if(e){const n=t.previous;if(n===wr)t.previous=e;else for(let r in e)n[r]=e[r];t.current=null,this.ngOnChanges(e)}}function zE(t,e,n,r){const i=gh(t)||function qE(t,e){return t[ph]=e}(t,{previous:wr,current:null}),s=i.current||(i.current={}),o=i.previous,a=this.declaredInputs[n],l=o[a];s[a]=new UE(l&&l.currentValue,e,o===wr),t[r]=e}const ph="__ngSimpleChanges__";function gh(t){return t[ph]||null}function De(t){for(;Array.isArray(t);)t=t[0];return t}function st(t,e){return De(e[t.index])}function ot(t,e){const n=e[t];return Xe(n)?n:n[0]}function Xs(t){return 64==(64&t[2])}function In(t,e){return null==e?null:t[e]}function mh(t){t[18]=0}function Rl(t,e){t[5]+=e;let n=t,r=t[3];for(;null!==r&&(1===e&&1===n[5]||-1===e&&0===n[5]);)r[5]+=e,n=r,r=r[3]}const k={lFrame:Ih(null),bindingsEnabled:!0};function vh(){return k.bindingsEnabled}function D(){return k.lFrame.lView}function Q(){return k.lFrame.tView}function Se(){let t=Dh();for(;null!==t&&64===t.type;)t=t.parent;return t}function Dh(){return k.lFrame.currentTNode}function zt(t,e){const n=k.lFrame;n.currentTNode=t,n.isParent=e}function Nl(){return k.lFrame.isParent}function lC(t,e){const n=k.lFrame;n.bindingIndex=n.bindingRootIndex=t,xl(e)}function xl(t){k.lFrame.currentDirectiveIndex=t}function Ol(t){k.lFrame.currentQueryIndex=t}function cC(t){const e=t[1];return 2===e.type?e.declTNode:1===e.type?t[6]:null}function Sh(t,e,n){if(n&N.SkipSelf){let i=e,s=t;for(;!(i=i.parent,null!==i||n&N.Host||(i=cC(s),null===i||(s=s[15],10&i.type))););if(null===i)return!1;e=i,t=s}const r=k.lFrame=bh();return r.currentTNode=e,r.lView=t,!0}function kl(t){const e=bh(),n=t[1];k.lFrame=e,e.currentTNode=n.firstChild,e.lView=t,e.tView=n,e.contextLView=t,e.bindingIndex=n.bindingStartIndex,e.inI18n=!1}function bh(){const t=k.lFrame,e=null===t?null:t.child;return null===e?Ih(t):e}function Ih(t){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:t,child:null,inI18n:!1};return null!==t&&(t.child=e),e}function Th(){const t=k.lFrame;return k.lFrame=t.parent,t.currentTNode=null,t.lView=null,t}const Mh=Th;function Ll(){const t=Th();t.isParent=!0,t.tView=null,t.selectedIndex=-1,t.contextLView=null,t.elementDepthCount=0,t.currentDirectiveIndex=-1,t.currentNamespace=null,t.bindingRootIndex=-1,t.bindingIndex=-1,t.currentQueryIndex=0}function Tn(t){k.lFrame.selectedIndex=t}function Js(t,e){for(let n=e.directiveStart,r=e.directiveEnd;n=r)break}else e[l]<0&&(t[18]+=65536),(a>11>16&&(3&t[2])===e){t[2]+=2048;try{s.call(a)}finally{}}}else try{s.call(a)}finally{}}class Mi{constructor(e,n,r){this.factory=e,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function no(t,e,n){let r=0;for(;re){o=s-1;break}}}for(;s>16}(t),r=e;for(;n>0;)r=r[15],n--;return r}let jl=!0;function io(t){const e=jl;return jl=t,e}let bC=0;const qt={};function Ri(t,e){const n=Ul(t,e);if(-1!==n)return n;const r=e[1];r.firstCreatePass&&(t.injectorIndex=e.length,Bl(r.data,t),Bl(e,null),Bl(r.blueprint,null));const i=so(t,e),s=t.injectorIndex;if(xh(i)){const o=Mr(i),a=Ar(i,e),l=a[1].data;for(let u=0;u<8;u++)e[s+u]=a[o+u]|l[o+u]}return e[s+8]=i,s}function Bl(t,e){t.push(0,0,0,0,0,0,0,0,e)}function Ul(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null===e[t.injectorIndex+8]?-1:t.injectorIndex}function so(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=0,r=null,i=e;for(;null!==i;){if(r=Uh(i),null===r)return-1;if(n++,i=i[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function oo(t,e,n){!function IC(t,e,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(wi)&&(r=n[wi]),null==r&&(r=n[wi]=bC++);const i=255&r;e.data[t+(i>>5)]|=1<=0?255&e:RC:e}(n);if("function"==typeof s){if(!Sh(e,t,r))return r&N.Host?kh(i,0,r):Lh(e,n,r,i);try{const o=s(r);if(null!=o||r&N.Optional)return o;Us()}finally{Mh()}}else if("number"==typeof s){let o=null,a=Ul(t,e),l=-1,u=r&N.Host?e[16][6]:null;for((-1===a||r&N.SkipSelf)&&(l=-1===a?so(t,e):e[a+8],-1!==l&&Bh(r,!1)?(o=e[1],a=Mr(l),e=Ar(l,e)):a=-1);-1!==a;){const c=e[1];if(jh(s,a,c.data)){const d=MC(a,e,n,o,r,u);if(d!==qt)return d}l=e[a+8],-1!==l&&Bh(r,e[1].data[a+8]===u)&&jh(s,a,e)?(o=c,a=Mr(l),e=Ar(l,e)):a=-1}}return i}function MC(t,e,n,r,i,s){const o=e[1],a=o.data[t+8],c=function ao(t,e,n,r,i){const s=t.providerIndexes,o=e.data,a=1048575&s,l=t.directiveStart,c=s>>20,f=i?a+c:t.directiveEnd;for(let h=r?a:a+c;h=l&&p.type===n)return h}if(i){const h=o[l];if(h&&Nt(h)&&h.type===n)return l}return null}(a,o,n,null==r?Ks(a)&&jl:r!=o&&0!=(3&a.type),i&N.Host&&s===a);return null!==c?Ni(e,o,c,a):qt}function Ni(t,e,n,r){let i=t[n];const s=e.data;if(function _C(t){return t instanceof Mi}(i)){const o=i;o.resolving&&function CE(t,e){const n=e?`. Dependency path: ${e.join(" > ")} > ${t}`:"";throw new _(-200,`Circular dependency in DI detected for ${t}${n}`)}(Y(s[n]));const a=io(o.canSeeViewProviders);o.resolving=!0;const l=o.injectImpl?yt(o.injectImpl):null;Sh(t,r,N.Default);try{i=t[n]=o.factory(void 0,s,t,r),e.firstCreatePass&&n>=r.directiveStart&&function vC(t,e,n){const{ngOnChanges:r,ngOnInit:i,ngDoCheck:s}=e.type.prototype;if(r){const o=hh(e);(n.preOrderHooks||(n.preOrderHooks=[])).push(t,o),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,o)}i&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-t,i),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,s))}(n,s[n],e)}finally{null!==l&&yt(l),io(a),o.resolving=!1,Mh()}}return i}function jh(t,e,n){return!!(n[e+(t>>5)]&1<{const r=function zl(t){return function(...n){if(t){const r=t(...n);for(const i in r)this[i]=r[i]}}}(e);function i(...s){if(this instanceof i)return r.apply(this,s),this;const o=new i(...s);return a.annotation=o,a;function a(l,u,c){const d=l.hasOwnProperty(Pr)?l[Pr]:Object.defineProperty(l,Pr,{value:[]})[Pr];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(o),l}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=t,i.annotationCls=i,i})}class O{constructor(e,n){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=V({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function un(t,e){t.forEach(n=>Array.isArray(n)?un(n,e):e(n))}function zh(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function lo(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}const ki={},Ql="__NG_DI_FLAG__",co="ngTempTokenPath",zC=/\n/gm,Qh="__source";let Li;function kr(t){const e=Li;return Li=t,e}function GC(t,e=N.Default){if(void 0===Li)throw new _(-203,!1);return null===Li?oh(t,void 0,e):Li.get(t,e&N.Optional?null:void 0,e)}function I(t,e=N.Default){return(function PE(){return Dl}()||GC)(F(t),e)}function pe(t,e=N.Default){return"number"!=typeof e&&(e=0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)),I(t,e)}function Kl(t){const e=[];for(let n=0;n((Je=Je||{})[Je.Important=1]="Important",Je[Je.DashCase=2]="DashCase",Je))();const eu=new Map;let dS=0;const nu="__ngContext__";function Ve(t,e){Xe(e)?(t[nu]=e[20],function hS(t){eu.set(t[20],t)}(e)):t[nu]=e}function iu(t,e){return undefined(t,e)}function zi(t){const e=t[3];return Rt(e)?e[3]:e}function su(t){return gp(t[13])}function ou(t){return gp(t[4])}function gp(t){for(;null!==t&&!Rt(t);)t=t[4];return t}function Vr(t,e,n,r,i){if(null!=r){let s,o=!1;Rt(r)?s=r:Xe(r)&&(o=!0,r=r[0]);const a=De(r);0===t&&null!==n?null==i?wp(e,n,a):er(e,n,a,i||null,!0):1===t&&null!==n?er(e,n,a,i||null,!0):2===t?function hu(t,e,n){const r=po(t,e);r&&function OS(t,e,n,r){t.removeChild(e,n,r)}(t,r,e,n)}(e,a,o):3===t&&e.destroyNode(a),null!=s&&function VS(t,e,n,r,i){const s=n[7];s!==De(n)&&Vr(e,t,r,s,i);for(let a=10;a0&&(t[n-1][4]=r[4]);const s=lo(t,10+e);!function TS(t,e){qi(t,e,e[B],2,null,null),e[0]=null,e[6]=null}(r[1],r);const o=s[19];null!==o&&o.detachView(s[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function vp(t,e){if(!(128&e[2])){const n=e[B];n.destroyNode&&qi(t,e,n,3,null,null),function RS(t){let e=t[13];if(!e)return cu(t[1],t);for(;e;){let n=null;if(Xe(e))n=e[13];else{const r=e[10];r&&(n=r)}if(!n){for(;e&&!e[4]&&e!==t;)Xe(e)&&cu(e[1],e),e=e[3];null===e&&(e=t),Xe(e)&&cu(e[1],e),n=e&&e[4]}e=n}}(e)}}function cu(t,e){if(!(128&e[2])){e[2]&=-65,e[2]|=128,function FS(t,e){let n;if(null!=t&&null!=(n=t.destroyHooks))for(let r=0;r=0?r[i=u]():r[i=-u].unsubscribe(),s+=2}else{const o=r[i=n[s+1]];n[s].call(o)}if(null!==r){for(let s=i+1;s{const o=s;bu(o,n,[],r)&&(i||(i=[]),i.push(o))}),void 0!==i&&Gp(i,n),n}function Gp(t,e){for(let n=0;n{e.push(s)})}}function bu(t,e,n,r){if(!(t=F(t)))return!1;let i=null,s=ih(t);const o=!s&&ee(t);if(s||o){if(o&&!o.standalone)return!1;i=t}else{const l=t.ngModule;if(s=ih(l),!s)return!1;i=l}const a=r.has(i);if(o){if(a)return!1;if(r.add(i),o.dependencies){const l="function"==typeof o.dependencies?o.dependencies():o.dependencies;for(const u of l)bu(u,e,n,r)}}else{if(!s)return!1;{if(null!=s.imports&&!a){let u;r.add(i);try{un(s.imports,c=>{bu(c,e,n,r)&&(u||(u=[]),u.push(c))})}finally{}void 0!==u&&Gp(u,e)}if(!a){const u=Xn(i)||(()=>new i);e.push({provide:i,useFactory:u,deps:X},{provide:Hp,useValue:i,multi:!0},{provide:Su,useValue:()=>I(i),multi:!0})}const l=s.providers;null==l||a||un(l,c=>{e.push(c)})}}return i!==t&&void 0!==t.providers}const pb=te({provide:String,useValue:te});function Iu(t){return null!==t&&"object"==typeof t&&pb in t}function nr(t){return"function"==typeof t}const Tu=new O("Set Injector scope."),_o={},mb={};let Mu;function wo(){return void 0===Mu&&(Mu=new zp),Mu}class Rn{}class Kp extends Rn{constructor(e,n,r,i){super(),this.parent=n,this.source=r,this.scopes=i,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Ru(e,o=>this.processProvider(o)),this.records.set(Up,$r(void 0,this)),i.has("environment")&&this.records.set(Rn,$r(void 0,this));const s=this.records.get(Tu);null!=s&&"string"==typeof s.value&&this.scopes.add(s.value),this.injectorDefTypes=new Set(this.get(Hp.multi,X,N.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();for(const e of this._onDestroyHooks)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(e){this._onDestroyHooks.push(e)}runInContext(e){this.assertNotDestroyed();const n=kr(this),r=yt(void 0);try{return e()}finally{kr(n),yt(r)}}get(e,n=ki,r=N.Default){this.assertNotDestroyed();const i=kr(this),s=yt(void 0);try{if(!(r&N.SkipSelf)){let a=this.records.get(e);if(void 0===a){const l=function wb(t){return"function"==typeof t||"object"==typeof t&&t instanceof O}(e)&&Hs(e);a=l&&this.injectableDefInScope(l)?$r(Au(e),_o):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}return(r&N.Self?wo():this.parent).get(e,n=r&N.Optional&&n===ki?null:n)}catch(o){if("NullInjectorError"===o.name){if((o[co]=o[co]||[]).unshift(ne(e)),i)throw o;return function QC(t,e,n,r){const i=t[co];throw e[Qh]&&i.unshift(e[Qh]),t.message=function KC(t,e,n,r=null){t=t&&"\n"===t.charAt(0)&&"\u0275"==t.charAt(1)?t.slice(2):t;let i=ne(e);if(Array.isArray(e))i=e.map(ne).join(" -> ");else if("object"==typeof e){let s=[];for(let o in e)if(e.hasOwnProperty(o)){let a=e[o];s.push(o+":"+("string"==typeof a?JSON.stringify(a):ne(a)))}i=`{${s.join(", ")}}`}return`${n}${r?"("+r+")":""}[${i}]: ${t.replace(zC,"\n ")}`}("\n"+t.message,i,n,r),t.ngTokenPath=i,t[co]=null,t}(o,e,"R3InjectorError",this.source)}throw o}finally{yt(s),kr(i)}}resolveInjectorInitializers(){const e=kr(this),n=yt(void 0);try{const r=this.get(Su.multi,X,N.Self);for(const i of r)i()}finally{kr(e),yt(n)}}toString(){const e=[],n=this.records;for(const r of n.keys())e.push(ne(r));return`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new _(205,!1)}processProvider(e){let n=nr(e=F(e))?e:F(e&&e.provide);const r=function vb(t){return Iu(t)?$r(void 0,t.useValue):$r(function Zp(t,e,n){let r;if(nr(t)){const i=F(t);return Xn(i)||Au(i)}if(Iu(t))r=()=>F(t.useValue);else if(function Qp(t){return!(!t||!t.useFactory)}(t))r=()=>t.useFactory(...Kl(t.deps||[]));else if(function Wp(t){return!(!t||!t.useExisting)}(t))r=()=>I(F(t.useExisting));else{const i=F(t&&(t.useClass||t.provide));if(!function Db(t){return!!t.deps}(t))return Xn(i)||Au(i);r=()=>new i(...Kl(t.deps))}return r}(t),_o)}(e);if(nr(e)||!0!==e.multi)this.records.get(n);else{let i=this.records.get(n);i||(i=$r(void 0,_o,!0),i.factory=()=>Kl(i.multi),this.records.set(n,i)),n=e,i.multi.push(e)}this.records.set(n,r)}hydrate(e,n){return n.value===_o&&(n.value=mb,n.value=n.factory()),"object"==typeof n.value&&n.value&&function _b(t){return null!==t&&"object"==typeof t&&"function"==typeof t.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(e){if(!e.providedIn)return!1;const n=F(e.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}}function Au(t){const e=Hs(t),n=null!==e?e.factory:Xn(t);if(null!==n)return n;if(t instanceof O)throw new _(204,!1);if(t instanceof Function)return function yb(t){const e=t.length;if(e>0)throw function Oi(t,e){const n=[];for(let r=0;rn.factory(t):()=>new t}(t);throw new _(204,!1)}function $r(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Eb(t){return!!t.\u0275providers}function Ru(t,e){for(const n of t)Array.isArray(n)?Ru(n,e):Eb(n)?Ru(n.\u0275providers,e):e(n)}class Yp{}class bb{resolveComponentFactory(e){throw function Sb(t){const e=Error(`No component factory found for ${ne(t)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=t,e}(e)}}let Ki=(()=>{class t{}return t.NULL=new bb,t})();function Ib(){return jr(Se(),D())}function jr(t,e){return new Nn(st(t,e))}let Nn=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=Ib,t})();class Zi{}let Ab=(()=>{class t{}return t.\u0275prov=V({token:t,providedIn:"root",factory:()=>null}),t})();class Co{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const Rb=new Co("14.3.0"),Nu={};function xu(t){return t.ngOriginalError}class Br{constructor(){this._console=console}handleError(e){const n=this._findOriginalError(e);this._console.error("ERROR",e),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(e){let n=e&&xu(e);for(;n&&xu(n);)n=xu(n);return n||null}}function dn(t){return t instanceof Function?t():t}function eg(t,e,n){let r=t.length;for(;;){const i=t.indexOf(e,n);if(-1===i)return i;if(0===i||t.charCodeAt(i-1)<=32){const s=e.length;if(i+s===r||t.charCodeAt(i+s)<=32)return i}n=i+1}}const tg="ng-template";function Bb(t,e,n){let r=0;for(;rs?"":i[d+1].toLowerCase();const h=8&r?f:null;if(h&&-1!==eg(h,u,0)||2&r&&u!==f){if(Pt(r))return!1;o=!0}}}}else{if(!o&&!Pt(r)&&!Pt(l))return!1;if(o&&Pt(l))continue;o=!1,r=l|1&r}}return Pt(r)||o}function Pt(t){return 0==(1&t)}function zb(t,e,n,r){if(null===e)return-1;let i=0;if(r||!n){let s=!1;for(;i-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?i+="."+o:4&r&&(i+=" "+o);else""!==i&&!Pt(o)&&(e+=ig(s,i),i=""),r=o,s=s||!Pt(r);n++}return""!==i&&(e+=ig(s,i)),e}const $={};function ug(t,e=null,n=null,r){const i=cg(t,e,n,r);return i.resolveInjectorInitializers(),i}function cg(t,e=null,n=null,r,i=new Set){const s=[n||X,hb(t)];return r=r||("object"==typeof t?void 0:ne(t)),new Kp(s,e||wo(),r||null,i)}let xt=(()=>{class t{static create(n,r){if(Array.isArray(n))return ug({name:""},r,n,"");{const i=n.name??"";return ug({name:i},n.parent,n.providers,i)}}}return t.THROW_IF_NOT_FOUND=ki,t.NULL=new zp,t.\u0275prov=V({token:t,providedIn:"any",factory:()=>I(Up)}),t.__NG_ELEMENT_ID__=-1,t})();function T(t,e=N.Default){const n=D();return null===n?I(t,e):Vh(Se(),n,F(t),e)}function Vu(){throw new Error("invalid")}function Tg(t,e){const n=t.contentQueries;if(null!==n)for(let r=0;r22&&function sg(t,e,n,r){if(!r)if(3==(3&e[2])){const s=t.preOrderCheckHooks;null!==s&&eo(e,s,n)}else{const s=t.preOrderHooks;null!==s&&to(e,s,0,n)}Tn(n)}(t,e,22,!1),n(r,i)}finally{Tn(s)}}function Rg(t){const e=t.tView;return null===e||e.incompleteFirstPass?t.tView=Ju(1,null,t.template,t.decls,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas,t.consts):e}function Ju(t,e,n,r,i,s,o,a,l,u){const c=22+r,d=c+i,f=function N0(t,e){const n=[];for(let r=0;r0;){const n=t[--e];if("number"==typeof n&&n<0)return n}return 0})(a)!=l&&a.push(l),a.push(r,i,o)}}function kg(t,e){null!==t.hostBindings&&t.hostBindings(1,e)}function Lg(t,e){e.flags|=2,(t.components||(t.components=[])).push(e.index)}function U0(t,e,n){if(n){if(e.exportAs)for(let r=0;r0&&nc(n)}}function nc(t){for(let r=su(t);null!==r;r=ou(r))for(let i=10;i0&&nc(s)}const n=t[1].components;if(null!==n)for(let r=0;r0&&nc(i)}}function K0(t,e){const n=ot(e,t),r=n[1];(function Z0(t,e){for(let n=e.length;n-1&&(uu(e,r),lo(n,r))}this._attachedToViewContainer=!1}vp(this._lView[1],this._lView)}onDestroy(e){!function Ng(t,e,n,r){const i=function Bg(t){return t[7]||(t[7]=[])}(e);null===n?i.push(r):(i.push(n),t.firstCreatePass&&function Ug(t){return t.cleanup||(t.cleanup=[])}(t).push(r,i.length-1))}(this._lView[1],this._lView,null,e)}markForCheck(){!function rc(t){for(;t;){t[2]|=32;const e=zi(t);if($E(t)&&!e)return t;t=e}return null}(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){No(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new _(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function AS(t,e){qi(t,e,e[B],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new _(902,!1);this._appRef=e}}class Y0 extends Yi{constructor(e){super(e),this._view=e}detectChanges(){const e=this._view;No(e[1],e,e[8],!1)}checkNoChanges(){}get context(){return null}}class oc extends Ki{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const n=ee(e);return new Xi(n,this.ngModule)}}function qg(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}class J0{constructor(e,n){this.injector=e,this.parentInjector=n}get(e,n,r){const i=this.injector.get(e,Nu,r);return i!==Nu||n===Nu?i:this.parentInjector.get(e,n,r)}}class Xi extends Yp{constructor(e,n){super(),this.componentDef=e,this.ngModule=n,this.componentType=e.type,this.selector=function Zb(t){return t.map(Kb).join(",")}(e.selectors),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return qg(this.componentDef.inputs)}get outputs(){return qg(this.componentDef.outputs)}create(e,n,r,i){let s=(i=i||this.ngModule)instanceof Rn?i:i?.injector;s&&null!==this.componentDef.getStandaloneInjector&&(s=this.componentDef.getStandaloneInjector(s)||s);const o=s?new J0(e,s):e,a=o.get(Zi,null);if(null===a)throw new _(407,!1);const l=o.get(Ab,null),u=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||"div",d=r?function P0(t,e,n){return t.selectRootElement(e,n===Mt.ShadowDom)}(u,r,this.componentDef.encapsulation):lu(u,c,function X0(t){const e=t.toLowerCase();return"svg"===e?"svg":"math"===e?"math":null}(c)),f=this.componentDef.onPush?288:272,h=Ju(0,null,null,1,0,null,null,null,null,null),p=Mo(null,h,null,f,null,null,a,u,l,o,null);let g,m;kl(p);try{const v=function nI(t,e,n,r,i,s){const o=n[1];n[22]=t;const l=zr(o,22,2,"#host",null),u=l.mergedAttrs=e.hostAttrs;null!==u&&(Po(l,u,!0),null!==t&&(no(i,t,u),null!==l.classes&&gu(i,t,l.classes),null!==l.styles&&Ap(i,t,l.styles)));const c=r.createRenderer(t,e),d=Mo(n,Rg(e),null,e.onPush?32:16,n[22],l,r,c,s||null,null,null);return o.firstCreatePass&&(oo(Ri(l,n),o,e.type),Lg(o,l),Vg(l,n.length,1)),Ro(n,d),n[22]=d}(d,this.componentDef,p,a,u);if(d)if(r)no(u,d,["ng-version",Rb.full]);else{const{attrs:w,classes:y}=function Yb(t){const e=[],n=[];let r=1,i=2;for(;r0&&gu(u,d,y.join(" "))}if(m=function Al(t,e){return t.data[e]}(h,22),void 0!==n){const w=m.projection=[];for(let y=0;yn()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class Ec extends Ry{constructor(e){super(),this.moduleType=e}create(e){return new Ny(this.moduleType,e)}}class fM extends or{constructor(e,n,r){super(),this.componentFactoryResolver=new oc(this),this.instance=null;const i=new Kp([...e,{provide:or,useValue:this},{provide:Ki,useValue:this.componentFactoryResolver}],n||wo(),r,new Set(["environment"]));this.injector=i,i.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}}function Go(t,e,n=null){return new fM(t,e,n).injector}let hM=(()=>{class t{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n.id)){const r=qp(0,n.type),i=r.length>0?Go([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n.id,i)}return this.cachedInjectors.get(n.id)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return t.\u0275prov=V({token:t,providedIn:"environment",factory:()=>new t(I(Rn))}),t})();function Py(t){t.getStandaloneInjector=e=>e.get(hM).getOrCreateStandaloneInjector(t)}function Sc(t){return e=>{setTimeout(t,void 0,e)}}const Ke=class $M extends Ht{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,n,r){let i=e,s=n||(()=>null),o=r;if(e&&"object"==typeof e){const l=e;i=l.next?.bind(l),s=l.error?.bind(l),o=l.complete?.bind(l)}this.__isAsync&&(s=Sc(s),i&&(i=Sc(i)),o&&(o=Sc(o)));const a=super.subscribe({next:i,error:s,complete:o});return e instanceof mt&&e.add(a),a}};let Lt=(()=>{class t{}return t.__NG_ELEMENT_ID__=zM,t})();function zM(){return function Gy(t,e){let n;const r=e[t.index];if(Rt(r))n=r;else{let i;if(8&t.type)i=De(r);else{const s=e[B];i=s.createComment("");const o=st(t,e);er(s,po(s,o),i,function kS(t,e){return t.nextSibling(e)}(s,o),!1)}e[t.index]=n=function jg(t,e,n,r){return new Array(t,!0,!1,e,null,0,r,n,null,null)}(r,e,i,t),Ro(e,n)}return new zy(n,t,e)}(Se(),D())}const qM=Lt,zy=class extends qM{constructor(e,n,r){super(),this._lContainer=e,this._hostTNode=n,this._hostLView=r}get element(){return jr(this._hostTNode,this._hostLView)}get injector(){return new Rr(this._hostTNode,this._hostLView)}get parentInjector(){const e=so(this._hostTNode,this._hostLView);if(xh(e)){const n=Ar(e,this._hostLView),r=Mr(e);return new Rr(n[1].data[r+8],n)}return new Rr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const n=qy(this._lContainer);return null!==n&&n[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,n,r){let i,s;"number"==typeof r?i=r:null!=r&&(i=r.index,s=r.injector);const o=e.createEmbeddedView(n||{},s);return this.insert(o,i),o}createComponent(e,n,r,i,s){const o=e&&!function Fi(t){return"function"==typeof t}(e);let a;if(o)a=n;else{const d=n||{};a=d.index,r=d.injector,i=d.projectableNodes,s=d.environmentInjector||d.ngModuleRef}const l=o?e:new Xi(ee(e)),u=r||this.parentInjector;if(!s&&null==l.ngModule){const f=(o?u:this.parentInjector).get(Rn,null);f&&(s=f)}const c=l.create(u,i,void 0,s);return this.insert(c.hostView,a),c}insert(e,n){const r=e._lView,i=r[1];if(function XE(t){return Rt(t[3])}(r)){const c=this.indexOf(e);if(-1!==c)this.detach(c);else{const d=r[3],f=new zy(d,d[6],d[3]);f.detach(f.indexOf(e))}}const s=this._adjustIndex(n),o=this._lContainer;!function NS(t,e,n,r){const i=10+r,s=n.length;r>0&&(n[i-1][4]=e),r{class t{constructor(n){this.appInits=n,this.resolve=Ko,this.reject=Ko,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,i)=>{this.resolve=r,this.reject=i})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let i=0;i{s.subscribe({complete:a,error:l})});n.push(o)}}Promise.all(n).then(()=>{r()}).catch(i=>{this.reject(i)}),0===n.length&&r(),this.initialized=!0}}return t.\u0275fac=function(n){return new(n||t)(I(Zo,8))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const cs=new O("AppId",{providedIn:"root",factory:function mv(){return`${$c()}${$c()}${$c()}`}});function $c(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const yv=new O("Platform Initializer"),vv=new O("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Dv=new O("appBootstrapListener"),_v=new O("AnimationModuleType");let wA=(()=>{class t{log(n){console.log(n)}warn(n){console.warn(n)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();const gn=new O("LocaleId",{providedIn:"root",factory:()=>pe(gn,N.Optional|N.SkipSelf)||function EA(){return typeof $localize<"u"&&$localize.locale||ri}()});class SA{constructor(e,n){this.ngModuleFactory=e,this.componentFactories=n}}let jc=(()=>{class t{compileModuleSync(n){return new Ec(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),s=dn(rt(n).declarations).reduce((o,a)=>{const l=ee(a);return l&&o.push(new Xi(l)),o},[]);return new SA(r,s)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const TA=(()=>Promise.resolve(0))();function Bc(t){typeof Zone>"u"?TA.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class ge{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ke(!1),this.onMicrotaskEmpty=new Ke(!1),this.onStable=new Ke(!1),this.onError=new Ke(!1),typeof Zone>"u")throw new _(908,!1);Zone.assertZonePatched();const i=this;if(i._nesting=0,i._outer=i._inner=Zone.current,Zone.AsyncStackTaggingZoneSpec){const s=Zone.AsyncStackTaggingZoneSpec;i._inner=i._inner.fork(new s("Angular"))}Zone.TaskTrackingZoneSpec&&(i._inner=i._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(i._inner=i._inner.fork(Zone.longStackTraceZoneSpec)),i.shouldCoalesceEventChangeDetection=!r&&n,i.shouldCoalesceRunChangeDetection=r,i.lastRequestAnimationFrameId=-1,i.nativeRequestAnimationFrame=function MA(){let t=ie.requestAnimationFrame,e=ie.cancelAnimationFrame;if(typeof Zone<"u"&&t&&e){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function NA(t){const e=()=>{!function RA(t){t.isCheckStableRunning||-1!==t.lastRequestAnimationFrameId||(t.lastRequestAnimationFrameId=t.nativeRequestAnimationFrame.call(ie,()=>{t.fakeTopEventTask||(t.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{t.lastRequestAnimationFrameId=-1,Hc(t),t.isCheckStableRunning=!0,Uc(t),t.isCheckStableRunning=!1},void 0,()=>{},()=>{})),t.fakeTopEventTask.invoke()}),Hc(t))}(t)};t._inner=t._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,i,s,o,a)=>{try{return Cv(t),n.invokeTask(i,s,o,a)}finally{(t.shouldCoalesceEventChangeDetection&&"eventTask"===s.type||t.shouldCoalesceRunChangeDetection)&&e(),Sv(t)}},onInvoke:(n,r,i,s,o,a,l)=>{try{return Cv(t),n.invoke(i,s,o,a,l)}finally{t.shouldCoalesceRunChangeDetection&&e(),Sv(t)}},onHasTask:(n,r,i,s)=>{n.hasTask(i,s),r===i&&("microTask"==s.change?(t._hasPendingMicrotasks=s.microTask,Hc(t),Uc(t)):"macroTask"==s.change&&(t.hasPendingMacrotasks=s.macroTask))},onHandleError:(n,r,i,s)=>(n.handleError(i,s),t.runOutsideAngular(()=>t.onError.emit(s)),!1)})}(i)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ge.isInAngularZone())throw new _(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new _(909,!1)}run(e,n,r){return this._inner.run(e,n,r)}runTask(e,n,r,i){const s=this._inner,o=s.scheduleEventTask("NgZoneEvent: "+i,e,AA,Ko,Ko);try{return s.runTask(o,n,r)}finally{s.cancelTask(o)}}runGuarded(e,n,r){return this._inner.runGuarded(e,n,r)}runOutsideAngular(e){return this._outer.run(e)}}const AA={};function Uc(t){if(0==t._nesting&&!t.hasPendingMicrotasks&&!t.isStable)try{t._nesting++,t.onMicrotaskEmpty.emit(null)}finally{if(t._nesting--,!t.hasPendingMicrotasks)try{t.runOutsideAngular(()=>t.onStable.emit(null))}finally{t.isStable=!0}}}function Hc(t){t.hasPendingMicrotasks=!!(t._hasPendingMicrotasks||(t.shouldCoalesceEventChangeDetection||t.shouldCoalesceRunChangeDetection)&&-1!==t.lastRequestAnimationFrameId)}function Cv(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function Sv(t){t._nesting--,Uc(t)}class PA{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ke,this.onMicrotaskEmpty=new Ke,this.onStable=new Ke,this.onError=new Ke}run(e,n,r){return e.apply(n,r)}runGuarded(e,n,r){return e.apply(n,r)}runOutsideAngular(e){return e()}runTask(e,n,r,i){return e.apply(n,r)}}const bv=new O(""),Xo=new O("");let Gc,zc=(()=>{class t{constructor(n,r,i){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Gc||(function xA(t){Gc=t}(i),i.addToWindow(r)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ge.assertNotInAngularZone(),Bc(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())Bc(()=>{for(;0!==this._callbacks.length;){let n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,r,i){let s=-1;r&&r>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(o=>o.timeoutId!==s),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:s,updateCb:i})}whenStable(n,r,i){if(i&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,i){return[]}}return t.\u0275fac=function(n){return new(n||t)(I(ge),I(qc),I(Xo))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})(),qc=(()=>{class t{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,r=!0){return Gc?.findTestabilityInTree(this,n,r)??null}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})(),Fn=null;const Iv=new O("AllowMultipleToken"),Wc=new O("PlatformDestroyListeners");class Tv{constructor(e,n){this.name=e,this.token=n}}function Av(t,e,n=[]){const r=`Platform: ${e}`,i=new O(r);return(s=[])=>{let o=Qc();if(!o||o.injector.get(Iv,!1)){const a=[...n,...s,{provide:i,useValue:!0}];t?t(a):function kA(t){if(Fn&&!Fn.get(Iv,!1))throw new _(400,!1);Fn=t;const e=t.get(Nv);(function Mv(t){const e=t.get(yv,null);e&&e.forEach(n=>n())})(t)}(function Rv(t=[],e){return xt.create({name:e,providers:[{provide:Tu,useValue:"platform"},{provide:Wc,useValue:new Set([()=>Fn=null])},...t]})}(a,r))}return function VA(t){const e=Qc();if(!e)throw new _(401,!1);return e}()}}function Qc(){return Fn?.get(Nv)??null}let Nv=(()=>{class t{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const i=function xv(t,e){let n;return n="noop"===t?new PA:("zone.js"===t?void 0:t)||new ge(e),n}(r?.ngZone,function Pv(t){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!t||!t.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!t||!t.ngZoneRunCoalescing)||!1}}(r)),s=[{provide:ge,useValue:i}];return i.run(()=>{const o=xt.create({providers:s,parent:this.injector,name:n.moduleType.name}),a=n.create(o),l=a.injector.get(Br,null);if(!l)throw new _(402,!1);return i.runOutsideAngular(()=>{const u=i.onError.subscribe({next:c=>{l.handleError(c)}});a.onDestroy(()=>{Jo(this._modules,a),u.unsubscribe()})}),function Fv(t,e,n){try{const r=n();return $o(r)?r.catch(i=>{throw e.runOutsideAngular(()=>t.handleError(i)),i}):r}catch(r){throw e.runOutsideAngular(()=>t.handleError(r)),r}}(l,i,()=>{const u=a.injector.get(Yo);return u.runInitializers(),u.donePromise.then(()=>(function sy(t){nt(t,"Expected localeId to be defined"),"string"==typeof t&&(iy=t.toLowerCase().replace(/_/g,"-"))}(a.injector.get(gn,ri)||ri),this._moduleDoBootstrap(a),a))})})}bootstrapModule(n,r=[]){const i=Ov({},r);return function FA(t,e,n){const r=new Ec(n);return Promise.resolve(r)}(0,0,n).then(s=>this.bootstrapModuleFactory(s,i))}_moduleDoBootstrap(n){const r=n.injector.get(ds);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(i=>r.bootstrap(i));else{if(!n.instance.ngDoBootstrap)throw new _(403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new _(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Wc,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return t.\u0275fac=function(n){return new(n||t)(I(xt))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"platform"}),t})();function Ov(t,e){return Array.isArray(e)?e.reduce(Ov,t):{...t,...e}}let ds=(()=>{class t{constructor(n,r,i){this._zone=n,this._injector=r,this._exceptionHandler=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const s=new Ce(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),o=new Ce(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{ge.assertNotInAngularZone(),Bc(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const u=this._zone.onUnstable.subscribe(()=>{ge.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),u.unsubscribe()}});this.isStable=function _E(...t){const e=_i(t),n=function hE(t,e){return"number"==typeof fl(t)?t.pop():e}(t,1/0),r=t;return r.length?1===r.length?en(r[0]):Dr(n)(ve(r,e)):nn}(s,o.pipe(function wE(t={}){const{connector:e=(()=>new Ht),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:i=!0}=t;return s=>{let o=null,a=null,l=null,u=0,c=!1,d=!1;const f=()=>{a?.unsubscribe(),a=null},h=()=>{f(),o=l=null,c=d=!1},p=()=>{const g=o;h(),g?.unsubscribe()};return Me((g,m)=>{u++,!d&&!c&&f();const v=l=l??e();m.add(()=>{u--,0===u&&!d&&!c&&(a=hl(p,i))}),v.subscribe(m),o||(o=new al({next:w=>v.next(w),error:w=>{d=!0,f(),a=hl(h,n,w),v.error(w)},complete:()=>{c=!0,f(),a=hl(h,r),v.complete()}}),ve(g).subscribe(o))})(s)}}()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const i=n instanceof Yp;if(!this._injector.get(Yo).done)throw!i&&function Er(t){const e=ee(t)||He(t)||ze(t);return null!==e&&e.standalone}(n),new _(405,false);let o;o=i?n:this._injector.get(Ki).resolveComponentFactory(n),this.componentTypes.push(o.componentType);const a=function OA(t){return t.isBoundToModule}(o)?void 0:this._injector.get(or),u=o.create(xt.NULL,[],r||o.selector,a),c=u.location.nativeElement,d=u.injector.get(bv,null);return d?.registerApplication(c),u.onDestroy(()=>{this.detachView(u.hostView),Jo(this.components,u),d?.unregisterApplication(c)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new _(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;Jo(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(Dv,[]).concat(this._bootstrapListeners).forEach(i=>i(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Jo(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new _(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return t.\u0275fac=function(n){return new(n||t)(I(ge),I(Rn),I(Br))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();function Jo(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}let Lv=!0,Kc=(()=>{class t{}return t.__NG_ELEMENT_ID__=BA,t})();function BA(t){return function UA(t,e,n){if(Ks(t)&&!n){const r=ot(t.index,e);return new Yi(r,r)}return 47&t.type?new Yi(e[16],e):null}(Se(),D(),16==(16&t))}const tR=Av(null,"core",[]);let nR=(()=>{class t{constructor(n){}}return t.\u0275fac=function(n){return new(n||t)(I(ds))},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({}),t})(),ra=null;function On(){return ra}const je=new O("DocumentToken");let ed=(()=>{class t{historyGo(n){throw new Error("Not implemented")}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:function(){return function oR(){return I(Qv)}()},providedIn:"platform"}),t})();const aR=new O("Location Initialized");let Qv=(()=>{class t extends ed{constructor(n){super(),this._doc=n,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return On().getBaseHref(this._doc)}onPopState(n){const r=On().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=On().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(n){this.location.pathname=n}pushState(n,r,i){Kv()?this._history.pushState(n,r,i):this.location.hash=i}replaceState(n,r,i){Kv()?this._history.replaceState(n,r,i):this.location.hash=i}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return t.\u0275fac=function(n){return new(n||t)(I(je))},t.\u0275prov=V({token:t,factory:function(){return function lR(){return new Qv(I(je))}()},providedIn:"platform"}),t})();function Kv(){return!!window.history.pushState}function td(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e}function Zv(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)}function yn(t){return t&&"?"!==t[0]?"?"+t:t}let lr=(()=>{class t{historyGo(n){throw new Error("Not implemented")}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:function(){return pe(Xv)},providedIn:"root"}),t})();const Yv=new O("appBaseHref");let Xv=(()=>{class t extends lr{constructor(n,r){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??pe(je).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return td(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+yn(this._platformLocation.search),i=this._platformLocation.hash;return i&&n?`${r}${i}`:r}pushState(n,r,i,s){const o=this.prepareExternalUrl(i+yn(s));this._platformLocation.pushState(n,r,o)}replaceState(n,r,i,s){const o=this.prepareExternalUrl(i+yn(s));this._platformLocation.replaceState(n,r,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return t.\u0275fac=function(n){return new(n||t)(I(ed),I(Yv,8))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})(),uR=(()=>{class t extends lr{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=td(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,i,s){let o=this.prepareExternalUrl(i+yn(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.pushState(n,r,o)}replaceState(n,r,i,s){let o=this.prepareExternalUrl(i+yn(s));0==o.length&&(o=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return t.\u0275fac=function(n){return new(n||t)(I(ed),I(Yv,8))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})(),nd=(()=>{class t{constructor(n){this._subject=new Ke,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const r=this._locationStrategy.getBaseHref();this._baseHref=Zv(Jv(r)),this._locationStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+yn(r))}normalize(n){return t.stripTrailingSlash(function dR(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,Jv(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",i=null){this._locationStrategy.pushState(i,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+yn(r)),i)}replaceState(n,r="",i=null){this._locationStrategy.replaceState(i,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+yn(r)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(i=>i(n,r))}subscribe(n,r,i){return this._subject.subscribe({next:n,error:r,complete:i})}}return t.normalizeQueryParams=yn,t.joinWithSlash=td,t.stripTrailingSlash=Zv,t.\u0275fac=function(n){return new(n||t)(I(lr))},t.\u0275prov=V({token:t,factory:function(){return function cR(){return new nd(I(lr))}()},providedIn:"root"}),t})();function Jv(t){return t.replace(/\/index.html$/,"")}let MN=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({}),t})();let PN=(()=>{class t{}return t.\u0275prov=V({token:t,providedIn:"root",factory:()=>new xN(I(je),window)}),t})();class xN{constructor(e,n){this.document=e,this.window=n,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){if(!this.supportsScrolling())return;const n=function FN(t,e){const n=t.getElementById(e)||t.getElementsByName(e)[0];if(n)return n;if("function"==typeof t.createTreeWalker&&t.body&&(t.body.createShadowRoot||t.body.attachShadow)){const r=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT);let i=r.currentNode;for(;i;){const s=i.shadowRoot;if(s){const o=s.getElementById(e)||s.querySelector(`[name="${e}"]`);if(o)return o}i=r.nextNode()}}return null}(this.document,e);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(e){if(this.supportScrollRestoration()){const n=this.window.history;n&&n.scrollRestoration&&(n.scrollRestoration=e)}}scrollToElement(e){const n=e.getBoundingClientRect(),r=n.left+this.window.pageXOffset,i=n.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(r-s[0],i-s[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const e=gD(this.window.history)||gD(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function gD(t){return Object.getOwnPropertyDescriptor(t,"scrollRestoration")}class vd extends class lP extends class sR{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function iR(t){ra||(ra=t)}(new vd)}onAndCancel(e,n,r){return e.addEventListener(n,r,!1),()=>{e.removeEventListener(n,r,!1)}}dispatchEvent(e,n){e.dispatchEvent(n)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,n){return(n=n||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,n){return"window"===n?window:"document"===n?e:"body"===n?e.body:null}getBaseHref(e){const n=function uP(){return ms=ms||document.querySelector("base"),ms?ms.getAttribute("href"):null}();return null==n?null:function cP(t){ga=ga||document.createElement("a"),ga.setAttribute("href",t);const e=ga.pathname;return"/"===e.charAt(0)?e:`/${e}`}(n)}resetBaseElement(){ms=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return function QR(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const r=n.indexOf("="),[i,s]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(i.trim()===e)return decodeURIComponent(s)}return null}(document.cookie,e)}}let ga,ms=null;const _D=new O("TRANSITION_ID"),fP=[{provide:Zo,useFactory:function dP(t,e,n){return()=>{n.get(Yo).donePromise.then(()=>{const r=On(),i=e.querySelectorAll(`style[ng-transition="${t}"]`);for(let s=0;s{class t{build(){return new XMLHttpRequest}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();const ma=new O("EventManagerPlugins");let ya=(()=>{class t{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(i=>i.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,i){return this._findPluginFor(r).addEventListener(n,r,i)}addGlobalEventListener(n,r,i){return this._findPluginFor(r).addGlobalEventListener(n,r,i)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const i=this._plugins;for(let s=0;s{class t{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(i=>{this._stylesSet.has(i)||(this._stylesSet.add(i),r.add(i))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})(),ys=(()=>{class t extends ED{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,i){n.forEach(s=>{const o=this._doc.createElement("style");o.textContent=s,i.push(r.appendChild(o))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(CD),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,i)=>{this._addStylesToHost(n,i,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(CD))}}return t.\u0275fac=function(n){return new(n||t)(I(je))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();function CD(t){On().remove(t)}const Dd={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},_d=/%COMP%/g;function va(t,e,n){for(let r=0;r{if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}let Da=(()=>{class t{constructor(n,r,i){this.eventManager=n,this.sharedStylesHost=r,this.appId=i,this.rendererByCompId=new Map,this.defaultRenderer=new wd(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case Mt.Emulated:{let i=this.rendererByCompId.get(r.id);return i||(i=new _P(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,i)),i.applyToHost(n),i}case 1:case Mt.ShadowDom:return new wP(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const i=va(r.id,r.styles,[]);this.sharedStylesHost.addStyles(i),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return t.\u0275fac=function(n){return new(n||t)(I(ya),I(ys),I(cs))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();class wd{constructor(e){this.eventManager=e,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(e,n){return n?document.createElementNS(Dd[n]||n,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,n){(MD(e)?e.content:e).appendChild(n)}insertBefore(e,n,r){e&&(MD(e)?e.content:e).insertBefore(n,r)}removeChild(e,n){e&&e.removeChild(n)}selectRootElement(e,n){let r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error(`The selector "${e}" did not match any elements`);return n||(r.textContent=""),r}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,n,r,i){if(i){n=i+":"+n;const s=Dd[i];s?e.setAttributeNS(s,n,r):e.setAttribute(n,r)}else e.setAttribute(n,r)}removeAttribute(e,n,r){if(r){const i=Dd[r];i?e.removeAttributeNS(i,n):e.removeAttribute(`${r}:${n}`)}else e.removeAttribute(n)}addClass(e,n){e.classList.add(n)}removeClass(e,n){e.classList.remove(n)}setStyle(e,n,r,i){i&(Je.DashCase|Je.Important)?e.style.setProperty(n,r,i&Je.Important?"important":""):e.style[n]=r}removeStyle(e,n,r){r&Je.DashCase?e.style.removeProperty(n):e.style[n]=""}setProperty(e,n,r){e[n]=r}setValue(e,n){e.nodeValue=n}listen(e,n,r){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,n,ID(r)):this.eventManager.addEventListener(e,n,ID(r))}}function MD(t){return"TEMPLATE"===t.tagName&&void 0!==t.content}class _P extends wd{constructor(e,n,r,i){super(e),this.component=r;const s=va(i+"-"+r.id,r.styles,[]);n.addStyles(s),this.contentAttr=function yP(t){return"_ngcontent-%COMP%".replace(_d,t)}(i+"-"+r.id),this.hostAttr=function vP(t){return"_nghost-%COMP%".replace(_d,t)}(i+"-"+r.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,n){const r=super.createElement(e,n);return super.setAttribute(r,this.contentAttr,""),r}}class wP extends wd{constructor(e,n,r,i){super(e),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const s=va(i.id,i.styles,[]);for(let o=0;o{class t extends wD{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,i){return n.addEventListener(r,i,!1),()=>this.removeEventListener(n,r,i)}removeEventListener(n,r,i){return n.removeEventListener(r,i)}}return t.\u0275fac=function(n){return new(n||t)(I(je))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();const AD=["alt","control","meta","shift"],CP={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},SP={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};let bP=(()=>{class t extends wD{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,r,i){const s=t.parseEventName(r),o=t.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>On().onAndCancel(n,s.domEventName,o))}static parseEventName(n){const r=n.toLowerCase().split("."),i=r.shift();if(0===r.length||"keydown"!==i&&"keyup"!==i)return null;const s=t._normalizeKey(r.pop());let o="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),o="code."),AD.forEach(u=>{const c=r.indexOf(u);c>-1&&(r.splice(c,1),o+=u+".")}),o+=s,0!=r.length||0===s.length)return null;const l={};return l.domEventName=i,l.fullKey=o,l}static matchEventFullKeyCode(n,r){let i=CP[n.key]||n.key,s="";return r.indexOf("code.")>-1&&(i=n.code,s="code."),!(null==i||!i)&&(i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),AD.forEach(o=>{o!==i&&(0,SP[o])(n)&&(s+=o+".")}),s+=i,s===r)}static eventCallback(n,r,i){return s=>{t.matchEventFullKeyCode(s,n)&&i.runGuarded(()=>r(s))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return t.\u0275fac=function(n){return new(n||t)(I(je))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();const AP=Av(tR,"browser",[{provide:vv,useValue:"browser"},{provide:yv,useValue:function IP(){vd.makeCurrent()},multi:!0},{provide:je,useFactory:function MP(){return function HS(t){yu=t}(document),document},deps:[]}]),PD=new O(""),xD=[{provide:Xo,useClass:class hP{addToWindow(e){ie.getAngularTestability=(r,i=!0)=>{const s=e.findTestabilityInTree(r,i);if(null==s)throw new Error("Could not find testability for element.");return s},ie.getAllAngularTestabilities=()=>e.getAllTestabilities(),ie.getAllAngularRootElements=()=>e.getAllRootElements(),ie.frameworkStabilizers||(ie.frameworkStabilizers=[]),ie.frameworkStabilizers.push(r=>{const i=ie.getAllAngularTestabilities();let s=i.length,o=!1;const a=function(l){o=o||l,s--,0==s&&r(o)};i.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(e,n,r){return null==n?null:e.getTestability(n)??(r?On().isShadowRoot(n)?this.findTestabilityInTree(e,n.host,!0):this.findTestabilityInTree(e,n.parentElement,!0):null)}},deps:[]},{provide:bv,useClass:zc,deps:[ge,qc,Xo]},{provide:zc,useClass:zc,deps:[ge,qc,Xo]}],FD=[{provide:Tu,useValue:"root"},{provide:Br,useFactory:function TP(){return new Br},deps:[]},{provide:ma,useClass:EP,multi:!0,deps:[je,ge,vv]},{provide:ma,useClass:bP,multi:!0,deps:[je]},{provide:Da,useClass:Da,deps:[ya,ys,cs]},{provide:Zi,useExisting:Da},{provide:ED,useExisting:ys},{provide:ys,useClass:ys,deps:[je]},{provide:ya,useClass:ya,deps:[ma,ge]},{provide:class ON{},useClass:pP,deps:[]},[]];let OD=(()=>{class t{constructor(n){}static withServerTransition(n){return{ngModule:t,providers:[{provide:cs,useValue:n.appId},{provide:_D,useExisting:cs},fP]}}}return t.\u0275fac=function(n){return new(n||t)(I(PD,12))},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({providers:[...FD,...xD],imports:[MN,nR]}),t})(),kD=(()=>{class t{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}}return t.\u0275fac=function(n){return new(n||t)(I(je))},t.\u0275prov=V({token:t,factory:function(n){let r=null;return r=n?new n:function NP(){return new kD(I(je))}(),r},providedIn:"root"}),t})();function A(...t){return ve(t,_i(t))}typeof window<"u"&&window;class Bt extends Ht{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const n=super._subscribe(e);return!n.closed&&e.next(this._value),n}getValue(){const{hasError:e,thrownError:n,_value:r}=this;if(e)throw n;return this._throwIfClosed(),r}next(e){super.next(this._value=e)}}const _a=vi(t=>function(){t(this),this.name="EmptyError",this.message="no elements in sequence"}),{isArray:$P}=Array,{getPrototypeOf:jP,prototype:BP,keys:UP}=Object;const{isArray:qP}=Array;function $D(...t){const e=_i(t),n=function fE(t){return re(fl(t))?t.pop():void 0}(t),{args:r,keys:i}=function HP(t){if(1===t.length){const e=t[0];if($P(e))return{args:e,keys:null};if(function zP(t){return t&&"object"==typeof t&&jP(t)===BP}(e)){const n=UP(e);return{args:n.map(r=>e[r]),keys:n}}}return{args:t,keys:null}}(t);if(0===r.length)return ve([],e);const s=new Ce(function KP(t,e,n=Gn){return r=>{jD(e,()=>{const{length:i}=t,s=new Array(i);let o=i,a=i;for(let l=0;l{const u=ve(t[l],e);let c=!1;u.subscribe(new Ae(r,d=>{s[l]=d,c||(c=!0,a--),a||r.next(n(s.slice()))},()=>{--o||r.complete()}))},r)},r)}}(r,e,i?o=>function QP(t,e){return t.reduce((n,r,i)=>(n[r]=e[i],n),{})}(i,o):Gn));return n?s.pipe(function WP(t){return K(e=>function GP(t,e){return qP(e)?t(...e):t(e)}(t,e))}(n)):s}function jD(t,e,n){t?tn(n,t,e):e()}function Sd(...t){return function ZP(){return Dr(1)}()(ve(t,_i(t)))}function BD(t){return new Ce(e=>{en(t()).subscribe(e)})}function vs(t,e){const n=re(t)?t:()=>t,r=i=>i.error(n());return new Ce(e?i=>e.schedule(r,0,i):r)}function bd(){return Me((t,e)=>{let n=null;t._refCount++;const r=new Ae(e,void 0,void 0,void 0,()=>{if(!t||t._refCount<=0||0<--t._refCount)return void(n=null);const i=t._connection,s=n;n=null,i&&(!s||i===s)&&i.unsubscribe(),e.unsubscribe()});t.subscribe(r),r.closed||(n=t.connect())})}class UD extends Ce{constructor(e,n){super(),this.source=e,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,jf(e)&&(this.lift=e.lift)}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:e}=this;this._subject=this._connection=null,e?.unsubscribe()}connect(){let e=this._connection;if(!e){e=this._connection=new mt;const n=this.getSubject();e.add(this.source.subscribe(new Ae(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),e.closed&&(this._connection=null,e=mt.EMPTY)}return e}refCount(){return bd()(this)}}function Zt(t,e){return Me((n,r)=>{let i=null,s=0,o=!1;const a=()=>o&&!i&&r.complete();n.subscribe(new Ae(r,l=>{i?.unsubscribe();let u=0;const c=s++;en(t(l,c)).subscribe(i=new Ae(r,d=>r.next(e?e(l,d,c,u++):d),()=>{i=null,a()}))},()=>{o=!0,a()}))})}function Ln(t,e){return Me((n,r)=>{let i=0;n.subscribe(new Ae(r,s=>t.call(e,s,i++)&&r.next(s)))})}function wa(t){return Me((e,n)=>{let r=!1;e.subscribe(new Ae(n,i=>{r=!0,n.next(i)},()=>{r||n.next(t),n.complete()}))})}function HD(t=XP){return Me((e,n)=>{let r=!1;e.subscribe(new Ae(n,i=>{r=!0,n.next(i)},()=>r?n.complete():n.error(t())))})}function XP(){return new _a}function Vn(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Ln((i,s)=>t(i,s,r)):Gn,_r(1),n?wa(e):HD(()=>new _a))}function ur(t,e){return re(e)?Pe(t,e,1):Pe(t,1)}function Be(t,e,n){const r=re(t)||e||n?{next:t,error:e,complete:n}:t;return r?Me((i,s)=>{var o;null===(o=r.subscribe)||void 0===o||o.call(r);let a=!0;i.subscribe(new Ae(s,l=>{var u;null===(u=r.next)||void 0===u||u.call(r,l),s.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),s.complete()},l=>{var u;a=!1,null===(u=r.error)||void 0===u||u.call(r,l),s.error(l)},()=>{var l,u;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(u=r.finalize)||void 0===u||u.call(r)}))}):Gn}function $n(t){return Me((e,n)=>{let s,r=null,i=!1;r=e.subscribe(new Ae(n,void 0,void 0,o=>{s=en(t(o,$n(t)(e))),r?(r.unsubscribe(),r=null,s.subscribe(n)):i=!0})),i&&(r.unsubscribe(),r=null,s.subscribe(n))})}function JP(t,e,n,r,i){return(s,o)=>{let a=n,l=e,u=0;s.subscribe(new Ae(o,c=>{const d=u++;l=a?t(l,c,d):(a=!0,c),r&&o.next(l)},i&&(()=>{a&&o.next(l),o.complete()})))}}function zD(t,e){return Me(JP(t,e,arguments.length>=2,!0))}function Id(t){return t<=0?()=>nn:Me((e,n)=>{let r=[];e.subscribe(new Ae(n,i=>{r.push(i),t{for(const i of r)n.next(i);n.complete()},void 0,()=>{r=null}))})}function qD(t,e){const n=arguments.length>=2;return r=>r.pipe(t?Ln((i,s)=>t(i,s,r)):Gn,Id(1),n?wa(e):HD(()=>new _a))}function Td(t){return Me((e,n)=>{try{e.subscribe(n)}finally{n.add(t)}})}const z="primary",Ds=Symbol("RouteTitle");class nx{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n[0]:n}return null}getAll(e){if(this.has(e)){const n=this.params[e];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function ai(t){return new nx(t)}function rx(t,e,n){const r=n.path.split("/");if(r.length>t.length||"full"===n.pathMatch&&(e.hasChildren()||r.lengthr[s]===i)}return t===e}function WD(t){return Array.prototype.concat.apply([],t)}function QD(t){return t.length>0?t[t.length-1]:null}function xe(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function jn(t){return om(t)?t:$o(t)?ve(Promise.resolve(t)):A(t)}const ox={exact:function YD(t,e,n){if(!dr(t.segments,e.segments)||!Ea(t.segments,e.segments,n)||t.numberOfChildren!==e.numberOfChildren)return!1;for(const r in e.children)if(!t.children[r]||!YD(t.children[r],e.children[r],n))return!1;return!0},subset:XD},KD={exact:function ax(t,e){return Yt(t,e)},subset:function lx(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>GD(t[n],e[n]))},ignored:()=>!0};function ZD(t,e,n){return ox[n.paths](t.root,e.root,n.matrixParams)&&KD[n.queryParams](t.queryParams,e.queryParams)&&!("exact"===n.fragment&&t.fragment!==e.fragment)}function XD(t,e,n){return JD(t,e,e.segments,n)}function JD(t,e,n,r){if(t.segments.length>n.length){const i=t.segments.slice(0,n.length);return!(!dr(i,n)||e.hasChildren()||!Ea(i,n,r))}if(t.segments.length===n.length){if(!dr(t.segments,n)||!Ea(t.segments,n,r))return!1;for(const i in e.children)if(!t.children[i]||!XD(t.children[i],e.children[i],r))return!1;return!0}{const i=n.slice(0,t.segments.length),s=n.slice(t.segments.length);return!!(dr(t.segments,i)&&Ea(t.segments,i,r)&&t.children[z])&&JD(t.children[z],e,s,r)}}function Ea(t,e,n){return e.every((r,i)=>KD[n](t[i].parameters,r.parameters))}class cr{constructor(e,n,r){this.root=e,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ai(this.queryParams)),this._queryParamMap}toString(){return dx.serialize(this)}}class q{constructor(e,n){this.segments=e,this.children=n,this.parent=null,xe(n,(r,i)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ca(this)}}class _s{constructor(e,n){this.path=e,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=ai(this.parameters)),this._parameterMap}toString(){return r_(this)}}function dr(t,e){return t.length===e.length&&t.every((n,r)=>n.path===e[r].path)}let e_=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:function(){return new Ad},providedIn:"root"}),t})();class Ad{parse(e){const n=new _x(e);return new cr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(e){const n=`/${ws(e.root,!0)}`,r=function px(t){const e=Object.keys(t).map(n=>{const r=t[n];return Array.isArray(r)?r.map(i=>`${Sa(n)}=${Sa(i)}`).join("&"):`${Sa(n)}=${Sa(r)}`}).filter(n=>!!n);return e.length?`?${e.join("&")}`:""}(e.queryParams);return`${n}${r}${"string"==typeof e.fragment?`#${function fx(t){return encodeURI(t)}(e.fragment)}`:""}`}}const dx=new Ad;function Ca(t){return t.segments.map(e=>r_(e)).join("/")}function ws(t,e){if(!t.hasChildren())return Ca(t);if(e){const n=t.children[z]?ws(t.children[z],!1):"",r=[];return xe(t.children,(i,s)=>{s!==z&&r.push(`${s}:${ws(i,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function cx(t,e){let n=[];return xe(t.children,(r,i)=>{i===z&&(n=n.concat(e(r,i)))}),xe(t.children,(r,i)=>{i!==z&&(n=n.concat(e(r,i)))}),n}(t,(r,i)=>i===z?[ws(t.children[z],!1)]:[`${i}:${ws(r,!1)}`]);return 1===Object.keys(t.children).length&&null!=t.children[z]?`${Ca(t)}/${n[0]}`:`${Ca(t)}/(${n.join("//")})`}}function t_(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Sa(t){return t_(t).replace(/%3B/gi,";")}function Rd(t){return t_(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function ba(t){return decodeURIComponent(t)}function n_(t){return ba(t.replace(/\+/g,"%20"))}function r_(t){return`${Rd(t.path)}${function hx(t){return Object.keys(t).map(e=>`;${Rd(e)}=${Rd(t[e])}`).join("")}(t.parameters)}`}const gx=/^[^\/()?;=#]+/;function Ia(t){const e=t.match(gx);return e?e[0]:""}const mx=/^[^=?]+/,vx=/^[^]+/;class _x{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new q([],{}):new q([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(e.length>0||Object.keys(n).length>0)&&(r[z]=new q(e,n)),r}parseSegment(){const e=Ia(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new _(4009,!1);return this.capture(e),new _s(ba(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const n=Ia(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const i=Ia(this.remaining);i&&(r=i,this.capture(r))}e[ba(n)]=ba(r)}parseQueryParam(e){const n=function yx(t){const e=t.match(mx);return e?e[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=function Dx(t){const e=t.match(vx);return e?e[0]:""}(this.remaining);o&&(r=o,this.capture(r))}const i=n_(n),s=n_(r);if(e.hasOwnProperty(i)){let o=e[i];Array.isArray(o)||(o=[o],e[i]=o),o.push(s)}else e[i]=s}parseParens(e){const n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=Ia(this.remaining),i=this.remaining[r.length];if("/"!==i&&")"!==i&&";"!==i)throw new _(4010,!1);let s;r.indexOf(":")>-1?(s=r.slice(0,r.indexOf(":")),this.capture(s),this.capture(":")):e&&(s=z);const o=this.parseChildren();n[s]=1===Object.keys(o).length?o[z]:new q([],o),this.consumeOptional("//")}return n}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new _(4011,!1)}}function Nd(t){return t.segments.length>0?new q([],{[z]:t}):t}function Ta(t){const e={};for(const r of Object.keys(t.children)){const s=Ta(t.children[r]);(s.segments.length>0||s.hasChildren())&&(e[r]=s)}return function wx(t){if(1===t.numberOfChildren&&t.children[z]){const e=t.children[z];return new q(t.segments.concat(e.segments),e.children)}return t}(new q(t.segments,e))}function fr(t){return t instanceof cr}function Sx(t,e,n,r,i){if(0===n.length)return li(e.root,e.root,e.root,r,i);const s=function o_(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new s_(!0,0,t);let e=0,n=!1;const r=t.reduce((i,s,o)=>{if("object"==typeof s&&null!=s){if(s.outlets){const a={};return xe(s.outlets,(l,u)=>{a[u]="string"==typeof l?l.split("/"):l}),[...i,{outlets:a}]}if(s.segmentPath)return[...i,s.segmentPath]}return"string"!=typeof s?[...i,s]:0===o?(s.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?n=!0:".."===a?e++:""!=a&&i.push(a))}),i):[...i,s]},[]);return new s_(n,e,r)}(n);return s.toRoot()?li(e.root,e.root,new q([],{}),r,i):function o(l){const u=function Ix(t,e,n,r){if(t.isAbsolute)return new ui(e.root,!0,0);if(-1===r)return new ui(n,n===e.root,0);return function a_(t,e,n){let r=t,i=e,s=n;for(;s>i;){if(s-=i,r=r.parent,!r)throw new _(4005,!1);i=r.segments.length}return new ui(r,!1,i-s)}(n,r+(Es(t.commands[0])?0:1),t.numberOfDoubleDots)}(s,e,t.snapshot?._urlSegment,l),c=u.processChildren?Ss(u.segmentGroup,u.index,s.commands):xd(u.segmentGroup,u.index,s.commands);return li(e.root,u.segmentGroup,c,r,i)}(t.snapshot?._lastPathIndex)}function Es(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Cs(t){return"object"==typeof t&&null!=t&&t.outlets}function li(t,e,n,r,i){let o,s={};r&&xe(r,(l,u)=>{s[u]=Array.isArray(l)?l.map(c=>`${c}`):`${l}`}),o=t===e?n:i_(t,e,n);const a=Nd(Ta(o));return new cr(a,s,i)}function i_(t,e,n){const r={};return xe(t.children,(i,s)=>{r[s]=i===e?n:i_(i,e,n)}),new q(t.segments,r)}class s_{constructor(e,n,r){if(this.isAbsolute=e,this.numberOfDoubleDots=n,this.commands=r,e&&r.length>0&&Es(r[0]))throw new _(4003,!1);const i=r.find(Cs);if(i&&i!==QD(r))throw new _(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class ui{constructor(e,n,r){this.segmentGroup=e,this.processChildren=n,this.index=r}}function xd(t,e,n){if(t||(t=new q([],{})),0===t.segments.length&&t.hasChildren())return Ss(t,e,n);const r=function Mx(t,e,n){let r=0,i=e;const s={match:!1,pathIndex:0,commandIndex:0};for(;i=n.length)return s;const o=t.segments[i],a=n[r];if(Cs(a))break;const l=`${a}`,u=r0&&void 0===l)break;if(l&&u&&"object"==typeof u&&void 0===u.outlets){if(!u_(l,u,o))return s;r+=2}else{if(!u_(l,{},o))return s;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(t,e,n),i=n.slice(r.commandIndex);if(r.match&&r.pathIndex{"string"==typeof s&&(s=[s]),null!==s&&(i[o]=xd(t.children[o],e,s))}),xe(t.children,(s,o)=>{void 0===r[o]&&(i[o]=s)}),new q(t.segments,i)}}function Fd(t,e,n){const r=t.segments.slice(0,e);let i=0;for(;i{"string"==typeof n&&(n=[n]),null!==n&&(e[r]=Fd(new q([],{}),0,n))}),e}function l_(t){const e={};return xe(t,(n,r)=>e[r]=`${n}`),e}function u_(t,e,n){return t==n.path&&Yt(e,n.parameters)}class Dn{constructor(e,n){this.id=e,this.url=n}}class Od extends Dn{constructor(e,n,r="imperative",i=null){super(e,n),this.type=0,this.navigationTrigger=r,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class hr extends Dn{constructor(e,n,r){super(e,n),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class Ma extends Dn{constructor(e,n,r,i){super(e,n),this.reason=r,this.code=i,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class c_ extends Dn{constructor(e,n,r,i){super(e,n),this.error=r,this.target=i,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class Rx extends Dn{constructor(e,n,r,i){super(e,n),this.urlAfterRedirects=r,this.state=i,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Nx extends Dn{constructor(e,n,r,i){super(e,n),this.urlAfterRedirects=r,this.state=i,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Px extends Dn{constructor(e,n,r,i,s){super(e,n),this.urlAfterRedirects=r,this.state=i,this.shouldActivate=s,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class xx extends Dn{constructor(e,n,r,i){super(e,n),this.urlAfterRedirects=r,this.state=i,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Fx extends Dn{constructor(e,n,r,i){super(e,n),this.urlAfterRedirects=r,this.state=i,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Ox{constructor(e){this.route=e,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class kx{constructor(e){this.route=e,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Lx{constructor(e){this.snapshot=e,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Vx{constructor(e){this.snapshot=e,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class $x{constructor(e){this.snapshot=e,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class jx{constructor(e){this.snapshot=e,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class d_{constructor(e,n,r){this.routerEvent=e,this.position=n,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class f_{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const n=this.pathFromRoot(e);return n.length>1?n[n.length-2]:null}children(e){const n=kd(e,this._root);return n?n.children.map(r=>r.value):[]}firstChild(e){const n=kd(e,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(e){const n=Ld(e,this._root);return n.length<2?[]:n[n.length-2].children.map(i=>i.value).filter(i=>i!==e)}pathFromRoot(e){return Ld(e,this._root).map(n=>n.value)}}function kd(t,e){if(t===e.value)return e;for(const n of e.children){const r=kd(t,n);if(r)return r}return null}function Ld(t,e){if(t===e.value)return[e];for(const n of e.children){const r=Ld(t,n);if(r.length)return r.unshift(e),r}return[]}class _n{constructor(e,n){this.value=e,this.children=n}toString(){return`TreeNode(${this.value})`}}function ci(t){const e={};return t&&t.children.forEach(n=>e[n.value.outlet]=n),e}class h_ extends f_{constructor(e,n){super(e),this.snapshot=n,Vd(this,e)}toString(){return this.snapshot.toString()}}function p_(t,e){const n=function Ux(t,e){const o=new Aa([],{},{},"",{},z,e,null,t.root,-1,{});return new m_("",new _n(o,[]))}(t,e),r=new Bt([new _s("",{})]),i=new Bt({}),s=new Bt({}),o=new Bt({}),a=new Bt(""),l=new pr(r,i,o,a,s,z,e,n.root);return l.snapshot=n.root,new h_(new _n(l,[]),n)}class pr{constructor(e,n,r,i,s,o,a,l){this.url=e,this.params=n,this.queryParams=r,this.fragment=i,this.data=s,this.outlet=o,this.component=a,this.title=this.data?.pipe(K(u=>u[Ds]))??A(void 0),this._futureSnapshot=l}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(K(e=>ai(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(K(e=>ai(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function g_(t,e="emptyOnly"){const n=t.pathFromRoot;let r=0;if("always"!==e)for(r=n.length-1;r>=1;){const i=n[r],s=n[r-1];if(i.routeConfig&&""===i.routeConfig.path)r--;else{if(s.component)break;r--}}return function Hx(t){return t.reduce((e,n)=>({params:{...e.params,...n.params},data:{...e.data,...n.data},resolve:{...n.data,...e.resolve,...n.routeConfig?.data,...n._resolvedData}}),{params:{},data:{},resolve:{}})}(n.slice(r))}class Aa{constructor(e,n,r,i,s,o,a,l,u,c,d,f){this.url=e,this.params=n,this.queryParams=r,this.fragment=i,this.data=s,this.outlet=o,this.component=a,this.title=this.data?.[Ds],this.routeConfig=l,this._urlSegment=u,this._lastPathIndex=c,this._correctedLastPathIndex=f??c,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=ai(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ai(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class m_ extends f_{constructor(e,n){super(n),this.url=e,Vd(this,n)}toString(){return y_(this._root)}}function Vd(t,e){e.value._routerState=t,e.children.forEach(n=>Vd(t,n))}function y_(t){const e=t.children.length>0?` { ${t.children.map(y_).join(", ")} } `:"";return`${t.value}${e}`}function $d(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,Yt(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),Yt(e.params,n.params)||t.params.next(n.params),function ix(t,e){if(t.length!==e.length)return!1;for(let n=0;nYt(n.parameters,e[r].parameters))}(t.url,e.url);return n&&!(!t.parent!=!e.parent)&&(!t.parent||jd(t.parent,e.parent))}function bs(t,e,n){if(n&&t.shouldReuseRoute(e.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=e.value;const i=function qx(t,e,n){return e.children.map(r=>{for(const i of n.children)if(t.shouldReuseRoute(r.value,i.value.snapshot))return bs(t,r,i);return bs(t,r)})}(t,e,n);return new _n(r,i)}{if(t.shouldAttach(e.value)){const s=t.retrieve(e.value);if(null!==s){const o=s.route;return o.value._futureSnapshot=e.value,o.children=e.children.map(a=>bs(t,a)),o}}const r=function Gx(t){return new pr(new Bt(t.url),new Bt(t.params),new Bt(t.queryParams),new Bt(t.fragment),new Bt(t.data),t.outlet,t.component,t)}(e.value),i=e.children.map(s=>bs(t,s));return new _n(r,i)}}const Bd="ngNavigationCancelingError";function v_(t,e){const{redirectTo:n,navigationBehaviorOptions:r}=fr(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,i=D_(!1,0,e);return i.url=n,i.navigationBehaviorOptions=r,i}function D_(t,e,n){const r=new Error("NavigationCancelingError: "+(t||""));return r[Bd]=!0,r.cancellationCode=e,n&&(r.url=n),r}function __(t){return w_(t)&&fr(t.url)}function w_(t){return t&&t[Bd]}class Wx{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new Is,this.attachRef=null}}let Is=(()=>{class t{constructor(){this.contexts=new Map}onChildOutletCreated(n,r){const i=this.getOrCreateContext(n);i.outlet=r,this.contexts.set(n,i)}onChildOutletDestroyed(n){const r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let r=this.getContext(n);return r||(r=new Wx,this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const Ra=!1;let Ud=(()=>{class t{constructor(n,r,i,s,o){this.parentContexts=n,this.location=r,this.changeDetector=s,this.environmentInjector=o,this.activated=null,this._activatedRoute=null,this.activateEvents=new Ke,this.deactivateEvents=new Ke,this.attachEvents=new Ke,this.detachEvents=new Ke,this.name=i||z,n.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.getContext(this.name)?.outlet===this&&this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const n=this.parentContexts.getContext(this.name);n&&n.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.injector))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new _(4012,Ra);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new _(4012,Ra);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new _(4012,Ra);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,r){if(this.isActivated)throw new _(4013,Ra);this._activatedRoute=n;const i=this.location,o=n._futureSnapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new Qx(n,a,i.injector);if(r&&function Kx(t){return!!t.resolveComponentFactory}(r)){const u=r.resolveComponentFactory(o);this.activated=i.createComponent(u,i.length,l)}else this.activated=i.createComponent(o,{index:i.length,injector:l,environmentInjector:r??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return t.\u0275fac=function(n){return new(n||t)(T(Is),T(Lt),function Pi(t){return function TC(t,e){if("class"===e)return t.classes;if("style"===e)return t.styles;const n=t.attrs;if(n){const r=n.length;let i=0;for(;i{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=Ei({type:t,selectors:[["ng-component"]],standalone:!0,features:[Py],decls:1,vars:0,template:function(n,r){1&n&&Vo(0,"router-outlet")},dependencies:[Ud],encapsulation:2}),t})();function E_(t,e){return t.providers&&!t._injector&&(t._injector=Go(t.providers,e,`Route: ${t.path}`)),t._injector??e}function qd(t){const e=t.children&&t.children.map(qd),n=e?{...t,children:e}:{...t};return!n.component&&!n.loadComponent&&(e||n.loadChildren)&&n.outlet&&n.outlet!==z&&(n.component=Hd),n}function Ct(t){return t.outlet||z}function C_(t,e){const n=t.filter(r=>Ct(r)===e);return n.push(...t.filter(r=>Ct(r)!==e)),n}function Ts(t){if(!t)return null;if(t.routeConfig?._injector)return t.routeConfig._injector;for(let e=t.parent;e;e=e.parent){const n=e.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class eF{constructor(e,n,r,i){this.routeReuseStrategy=e,this.futureState=n,this.currState=r,this.forwardEvent=i}activate(e){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,e),$d(this.futureState.root),this.activateChildRoutes(n,r,e)}deactivateChildRoutes(e,n,r){const i=ci(n);e.children.forEach(s=>{const o=s.value.outlet;this.deactivateRoutes(s,i[o],r),delete i[o]}),xe(i,(s,o)=>{this.deactivateRouteAndItsChildren(s,r)})}deactivateRoutes(e,n,r){const i=e.value,s=n?n.value:null;if(i===s)if(i.component){const o=r.getContext(i.outlet);o&&this.deactivateChildRoutes(e,n,o.children)}else this.deactivateChildRoutes(e,n,r);else s&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(e,n){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,n):this.deactivateRouteAndOutlet(e,n)}detachAndStoreRouteSubtree(e,n){const r=n.getContext(e.value.outlet),i=r&&e.value.component?r.children:n,s=ci(e);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],i);if(r&&r.outlet){const o=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:o,route:e,contexts:a})}}deactivateRouteAndOutlet(e,n){const r=n.getContext(e.value.outlet),i=r&&e.value.component?r.children:n,s=ci(e);for(const o of Object.keys(s))this.deactivateRouteAndItsChildren(s[o],i);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(e,n,r){const i=ci(n);e.children.forEach(s=>{this.activateRoutes(s,i[s.value.outlet],r),this.forwardEvent(new jx(s.value.snapshot))}),e.children.length&&this.forwardEvent(new Vx(e.value.snapshot))}activateRoutes(e,n,r){const i=e.value,s=n?n.value:null;if($d(i),i===s)if(i.component){const o=r.getOrCreateContext(i.outlet);this.activateChildRoutes(e,n,o.children)}else this.activateChildRoutes(e,n,r);else if(i.component){const o=r.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){const a=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),o.children.onOutletReAttached(a.contexts),o.attachRef=a.componentRef,o.route=a.route.value,o.outlet&&o.outlet.attach(a.componentRef,a.route.value),$d(a.route.value),this.activateChildRoutes(e,null,o.children)}else{const a=Ts(i.snapshot),l=a?.get(Ki)??null;o.attachRef=null,o.route=i,o.resolver=l,o.injector=a,o.outlet&&o.outlet.activateWith(i,o.injector),this.activateChildRoutes(e,null,o.children)}}else this.activateChildRoutes(e,null,r)}}class S_{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class Na{constructor(e,n){this.component=e,this.route=n}}function tF(t,e,n){const r=t._root;return Ms(r,e?e._root:null,n,[r.value])}function di(t,e){const n=Symbol(),r=e.get(t,n);return r===n?"function"!=typeof t||function ME(t){return null!==Hs(t)}(t)?e.get(t):t:r}function Ms(t,e,n,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=ci(e);return t.children.forEach(o=>{(function rF(t,e,n,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=t.value,o=e?e.value:null,a=n?n.getContext(t.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const l=function iF(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!dr(t.url,e.url);case"pathParamsOrQueryParamsChange":return!dr(t.url,e.url)||!Yt(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!jd(t,e)||!Yt(t.queryParams,e.queryParams);default:return!jd(t,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);l?i.canActivateChecks.push(new S_(r)):(s.data=o.data,s._resolvedData=o._resolvedData),Ms(t,e,s.component?a?a.children:null:n,r,i),l&&a&&a.outlet&&a.outlet.isActivated&&i.canDeactivateChecks.push(new Na(a.outlet.component,o))}else o&&As(e,a,i),i.canActivateChecks.push(new S_(r)),Ms(t,null,s.component?a?a.children:null:n,r,i)})(o,s[o.value.outlet],n,r.concat([o.value]),i),delete s[o.value.outlet]}),xe(s,(o,a)=>As(o,n.getContext(a),i)),i}function As(t,e,n){const r=ci(t),i=t.value;xe(r,(s,o)=>{As(s,i.component?e?e.children.getContext(o):null:e,n)}),n.canDeactivateChecks.push(new Na(i.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,i))}function Rs(t){return"function"==typeof t}function Gd(t){return t instanceof _a||"EmptyError"===t?.name}const Pa=Symbol("INITIAL_VALUE");function fi(){return Zt(t=>$D(t.map(e=>e.pipe(_r(1),function YP(...t){const e=_i(t);return Me((n,r)=>{(e?Sd(t,n,e):Sd(t,n)).subscribe(r)})}(Pa)))).pipe(K(e=>{for(const n of e)if(!0!==n){if(n===Pa)return Pa;if(!1===n||n instanceof cr)return n}return!0}),Ln(e=>e!==Pa),_r(1)))}function b_(t){return function Ww(...t){return Lf(t)}(Be(e=>{if(fr(e))throw v_(0,e)}),K(e=>!0===e))}const Wd={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function I_(t,e,n,r,i){const s=Qd(t,e,n);return s.matched?function wF(t,e,n,r){const i=e.canMatch;return i&&0!==i.length?A(i.map(o=>{const a=di(o,t);return jn(function cF(t){return t&&Rs(t.canMatch)}(a)?a.canMatch(e,n):t.runInContext(()=>a(e,n)))})).pipe(fi(),b_()):A(!0)}(r=E_(e,r),e,n).pipe(K(o=>!0===o?s:{...Wd})):A(s)}function Qd(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{...Wd}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const i=(e.matcher||rx)(n,t,e);if(!i)return{...Wd};const s={};xe(i.posParams,(a,l)=>{s[l]=a.path});const o=i.consumed.length>0?{...s,...i.consumed[i.consumed.length-1].parameters}:s;return{matched:!0,consumedSegments:i.consumed,remainingSegments:n.slice(i.consumed.length),parameters:o,positionalParamSegments:i.posParams??{}}}function xa(t,e,n,r,i="corrected"){if(n.length>0&&function SF(t,e,n){return n.some(r=>Fa(t,e,r)&&Ct(r)!==z)}(t,n,r)){const o=new q(e,function CF(t,e,n,r){const i={};i[z]=r,r._sourceSegment=t,r._segmentIndexShift=e.length;for(const s of n)if(""===s.path&&Ct(s)!==z){const o=new q([],{});o._sourceSegment=t,o._segmentIndexShift=e.length,i[Ct(s)]=o}return i}(t,e,r,new q(n,t.children)));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:[]}}if(0===n.length&&function bF(t,e,n){return n.some(r=>Fa(t,e,r))}(t,n,r)){const o=new q(t.segments,function EF(t,e,n,r,i,s){const o={};for(const a of r)if(Fa(t,n,a)&&!i[Ct(a)]){const l=new q([],{});l._sourceSegment=t,l._segmentIndexShift="legacy"===s?t.segments.length:e.length,o[Ct(a)]=l}return{...i,...o}}(t,e,n,r,t.children,i));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:n}}const s=new q(t.segments,t.children);return s._sourceSegment=t,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:n}}function Fa(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path}function T_(t,e,n,r){return!!(Ct(t)===r||r!==z&&Fa(e,n,t))&&("**"===t.path||Qd(e,t,n).matched)}function M_(t,e,n){return 0===e.length&&!t.children[n]}const Oa=!1;class ka{constructor(e){this.segmentGroup=e||null}}class A_{constructor(e){this.urlTree=e}}function Ns(t){return vs(new ka(t))}function R_(t){return vs(new A_(t))}class AF{constructor(e,n,r,i,s){this.injector=e,this.configLoader=n,this.urlSerializer=r,this.urlTree=i,this.config=s,this.allowRedirects=!0}apply(){const e=xa(this.urlTree.root,[],[],this.config).segmentGroup,n=new q(e.segments,e.children);return this.expandSegmentGroup(this.injector,this.config,n,z).pipe(K(s=>this.createUrlTree(Ta(s),this.urlTree.queryParams,this.urlTree.fragment))).pipe($n(s=>{if(s instanceof A_)return this.allowRedirects=!1,this.match(s.urlTree);throw s instanceof ka?this.noMatchError(s):s}))}match(e){return this.expandSegmentGroup(this.injector,this.config,e.root,z).pipe(K(i=>this.createUrlTree(Ta(i),e.queryParams,e.fragment))).pipe($n(i=>{throw i instanceof ka?this.noMatchError(i):i}))}noMatchError(e){return new _(4002,Oa)}createUrlTree(e,n,r){const i=Nd(e);return new cr(i,n,r)}expandSegmentGroup(e,n,r,i){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(e,n,r).pipe(K(s=>new q([],s))):this.expandSegment(e,r,n,r.segments,i,!0)}expandChildren(e,n,r){const i=[];for(const s of Object.keys(r.children))"primary"===s?i.unshift(s):i.push(s);return ve(i).pipe(ur(s=>{const o=r.children[s],a=C_(n,s);return this.expandSegmentGroup(e,a,o,s).pipe(K(l=>({segment:l,outlet:s})))}),zD((s,o)=>(s[o.outlet]=o.segment,s),{}),qD())}expandSegment(e,n,r,i,s,o){return ve(r).pipe(ur(a=>this.expandSegmentAgainstRoute(e,n,r,a,i,s,o).pipe($n(u=>{if(u instanceof ka)return A(null);throw u}))),Vn(a=>!!a),$n((a,l)=>{if(Gd(a))return M_(n,i,s)?A(new q([],{})):Ns(n);throw a}))}expandSegmentAgainstRoute(e,n,r,i,s,o,a){return T_(i,n,s,o)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,n,i,s,o):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,n,r,i,s,o):Ns(n):Ns(n)}expandSegmentAgainstRouteUsingRedirect(e,n,r,i,s,o){return"**"===i.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,r,i,o):this.expandRegularSegmentAgainstRouteUsingRedirect(e,n,r,i,s,o)}expandWildCardWithParamsAgainstRouteUsingRedirect(e,n,r,i){const s=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?R_(s):this.lineralizeSegments(r,s).pipe(Pe(o=>{const a=new q(o,{});return this.expandSegment(e,a,n,o,i,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(e,n,r,i,s,o){const{matched:a,consumedSegments:l,remainingSegments:u,positionalParamSegments:c}=Qd(n,i,s);if(!a)return Ns(n);const d=this.applyRedirectCommands(l,i.redirectTo,c);return i.redirectTo.startsWith("/")?R_(d):this.lineralizeSegments(i,d).pipe(Pe(f=>this.expandSegment(e,n,r,f.concat(u),o,!1)))}matchSegmentAgainstRoute(e,n,r,i,s){return"**"===r.path?(e=E_(r,e),r.loadChildren?(r._loadedRoutes?A({routes:r._loadedRoutes,injector:r._loadedInjector}):this.configLoader.loadChildren(e,r)).pipe(K(a=>(r._loadedRoutes=a.routes,r._loadedInjector=a.injector,new q(i,{})))):A(new q(i,{}))):I_(n,r,i,e).pipe(Zt(({matched:o,consumedSegments:a,remainingSegments:l})=>o?this.getChildConfig(e=r._injector??e,r,i).pipe(Pe(c=>{const d=c.injector??e,f=c.routes,{segmentGroup:h,slicedSegments:p}=xa(n,a,l,f),g=new q(h.segments,h.children);if(0===p.length&&g.hasChildren())return this.expandChildren(d,f,g).pipe(K(y=>new q(a,y)));if(0===f.length&&0===p.length)return A(new q(a,{}));const m=Ct(r)===s;return this.expandSegment(d,g,f,p,m?z:s,!0).pipe(K(w=>new q(a.concat(w.segments),w.children)))})):Ns(n)))}getChildConfig(e,n,r){return n.children?A({routes:n.children,injector:e}):n.loadChildren?void 0!==n._loadedRoutes?A({routes:n._loadedRoutes,injector:n._loadedInjector}):function _F(t,e,n,r){const i=e.canLoad;return void 0===i||0===i.length?A(!0):A(i.map(o=>{const a=di(o,t);return jn(function oF(t){return t&&Rs(t.canLoad)}(a)?a.canLoad(e,n):t.runInContext(()=>a(e,n)))})).pipe(fi(),b_())}(e,n,r).pipe(Pe(i=>i?this.configLoader.loadChildren(e,n).pipe(Be(s=>{n._loadedRoutes=s.routes,n._loadedInjector=s.injector})):function TF(t){return vs(D_(Oa,3))}())):A({routes:[],injector:e})}lineralizeSegments(e,n){let r=[],i=n.root;for(;;){if(r=r.concat(i.segments),0===i.numberOfChildren)return A(r);if(i.numberOfChildren>1||!i.children[z])return vs(new _(4e3,Oa));i=i.children[z]}}applyRedirectCommands(e,n,r){return this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),e,r)}applyRedirectCreateUrlTree(e,n,r,i){const s=this.createSegmentGroup(e,n.root,r,i);return new cr(s,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(e,n){const r={};return xe(e,(i,s)=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[s]=n[a]}else r[s]=i}),r}createSegmentGroup(e,n,r,i){const s=this.createSegments(e,n.segments,r,i);let o={};return xe(n.children,(a,l)=>{o[l]=this.createSegmentGroup(e,a,r,i)}),new q(s,o)}createSegments(e,n,r,i){return n.map(s=>s.path.startsWith(":")?this.findPosParam(e,s,i):this.findOrReturn(s,r))}findPosParam(e,n,r){const i=r[n.path.substring(1)];if(!i)throw new _(4001,Oa);return i}findOrReturn(e,n){let r=0;for(const i of n){if(i.path===e.path)return n.splice(r),i;r++}return e}}class NF{}class FF{constructor(e,n,r,i,s,o,a,l){this.injector=e,this.rootComponentType=n,this.config=r,this.urlTree=i,this.url=s,this.paramsInheritanceStrategy=o,this.relativeLinkResolution=a,this.urlSerializer=l}recognize(){const e=xa(this.urlTree.root,[],[],this.config.filter(n=>void 0===n.redirectTo),this.relativeLinkResolution).segmentGroup;return this.processSegmentGroup(this.injector,this.config,e,z).pipe(K(n=>{if(null===n)return null;const r=new Aa([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},z,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new _n(r,n),s=new m_(this.url,i);return this.inheritParamsAndData(s._root),s}))}inheritParamsAndData(e){const n=e.value,r=g_(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),e.children.forEach(i=>this.inheritParamsAndData(i))}processSegmentGroup(e,n,r,i){return 0===r.segments.length&&r.hasChildren()?this.processChildren(e,n,r):this.processSegment(e,n,r,r.segments,i)}processChildren(e,n,r){return ve(Object.keys(r.children)).pipe(ur(i=>{const s=r.children[i],o=C_(n,i);return this.processSegmentGroup(e,o,s,i)}),zD((i,s)=>i&&s?(i.push(...s),i):null),function ex(t,e=!1){return Me((n,r)=>{let i=0;n.subscribe(new Ae(r,s=>{const o=t(s,i++);(o||e)&&r.next(s),!o&&r.complete()}))})}(i=>null!==i),wa(null),qD(),K(i=>{if(null===i)return null;const s=N_(i);return function OF(t){t.sort((e,n)=>e.value.outlet===z?-1:n.value.outlet===z?1:e.value.outlet.localeCompare(n.value.outlet))}(s),s}))}processSegment(e,n,r,i,s){return ve(n).pipe(ur(o=>this.processSegmentAgainstRoute(o._injector??e,o,r,i,s)),Vn(o=>!!o),$n(o=>{if(Gd(o))return M_(r,i,s)?A([]):A(null);throw o}))}processSegmentAgainstRoute(e,n,r,i,s){if(n.redirectTo||!T_(n,r,i,s))return A(null);let o;if("**"===n.path){const a=i.length>0?QD(i).parameters:{},l=x_(r)+i.length;o=A({snapshot:new Aa(i,a,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,O_(n),Ct(n),n.component??n._loadedComponent??null,n,P_(r),l,k_(n),l),consumedSegments:[],remainingSegments:[]})}else o=I_(r,n,i,e).pipe(K(({matched:a,consumedSegments:l,remainingSegments:u,parameters:c})=>{if(!a)return null;const d=x_(r)+l.length;return{snapshot:new Aa(l,c,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,O_(n),Ct(n),n.component??n._loadedComponent??null,n,P_(r),d,k_(n),d),consumedSegments:l,remainingSegments:u}}));return o.pipe(Zt(a=>{if(null===a)return A(null);const{snapshot:l,consumedSegments:u,remainingSegments:c}=a;e=n._injector??e;const d=n._loadedInjector??e,f=function kF(t){return t.children?t.children:t.loadChildren?t._loadedRoutes:[]}(n),{segmentGroup:h,slicedSegments:p}=xa(r,u,c,f.filter(m=>void 0===m.redirectTo),this.relativeLinkResolution);if(0===p.length&&h.hasChildren())return this.processChildren(d,f,h).pipe(K(m=>null===m?null:[new _n(l,m)]));if(0===f.length&&0===p.length)return A([new _n(l,[])]);const g=Ct(n)===s;return this.processSegment(d,f,h,p,g?z:s).pipe(K(m=>null===m?null:[new _n(l,m)]))}))}}function LF(t){const e=t.value.routeConfig;return e&&""===e.path&&void 0===e.redirectTo}function N_(t){const e=[],n=new Set;for(const r of t){if(!LF(r)){e.push(r);continue}const i=e.find(s=>r.value.routeConfig===s.value.routeConfig);void 0!==i?(i.children.push(...r.children),n.add(i)):e.push(r)}for(const r of n){const i=N_(r.children);e.push(new _n(r.value,i))}return e.filter(r=>!n.has(r))}function P_(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function x_(t){let e=t,n=e._segmentIndexShift??0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift??0;return n-1}function O_(t){return t.data||{}}function k_(t){return t.resolve||{}}function L_(t){return"string"==typeof t.title||null===t.title}function Kd(t){return Zt(e=>{const n=t(e);return n?ve(n).pipe(K(()=>e)):A(e)})}let V_=(()=>{class t{buildTitle(n){let r,i=n.root;for(;void 0!==i;)r=this.getResolvedTitleForRoute(i)??r,i=i.children.find(s=>s.outlet===z);return r}getResolvedTitleForRoute(n){return n.data[Ds]}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:function(){return pe($_)},providedIn:"root"}),t})(),$_=(()=>{class t extends V_{constructor(n){super(),this.title=n}updateTitle(n){const r=this.buildTitle(n);void 0!==r&&this.title.setTitle(r)}}return t.\u0275fac=function(n){return new(n||t)(I(kD))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class qF{}class WF extends class GF{shouldDetach(e){return!1}store(e,n){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,n){return e.routeConfig===n.routeConfig}}{}const Va=new O("",{providedIn:"root",factory:()=>({})}),Zd=new O("ROUTES");let Yd=(()=>{class t{constructor(n,r){this.injector=n,this.compiler=r,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return A(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const r=jn(n.loadComponent()).pipe(Be(s=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=s}),Td(()=>{this.componentLoaders.delete(n)})),i=new UD(r,()=>new Ht).pipe(bd());return this.componentLoaders.set(n,i),i}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return A({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const s=this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(K(a=>{this.onLoadEndListener&&this.onLoadEndListener(r);let l,u,c=!1;Array.isArray(a)?u=a:(l=a.create(n).injector,u=WD(l.get(Zd,[],N.Self|N.Optional)));return{routes:u.map(qd),injector:l}}),Td(()=>{this.childrenLoaders.delete(r)})),o=new UD(s,()=>new Ht).pipe(bd());return this.childrenLoaders.set(r,o),o}loadModuleFactoryOrRoutes(n){return jn(n()).pipe(Pe(r=>r instanceof Ry||Array.isArray(r)?A(r):ve(this.compiler.compileModuleAsync(r))))}}return t.\u0275fac=function(n){return new(n||t)(I(xt),I(jc))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();class KF{}class ZF{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,n){return e}}function YF(t){throw t}function XF(t,e,n){return e.parse("/")}const JF={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},eO={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function B_(){const t=pe(e_),e=pe(Is),n=pe(nd),r=pe(xt),i=pe(jc),s=pe(Zd,{optional:!0})??[],o=pe(Va,{optional:!0})??{},a=pe($_),l=pe(V_,{optional:!0}),u=pe(KF,{optional:!0}),c=pe(qF,{optional:!0}),d=new Fe(null,t,e,n,r,i,WD(s));return u&&(d.urlHandlingStrategy=u),c&&(d.routeReuseStrategy=c),d.titleStrategy=l??a,function tO(t,e){t.errorHandler&&(e.errorHandler=t.errorHandler),t.malformedUriErrorHandler&&(e.malformedUriErrorHandler=t.malformedUriErrorHandler),t.onSameUrlNavigation&&(e.onSameUrlNavigation=t.onSameUrlNavigation),t.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=t.paramsInheritanceStrategy),t.relativeLinkResolution&&(e.relativeLinkResolution=t.relativeLinkResolution),t.urlUpdateStrategy&&(e.urlUpdateStrategy=t.urlUpdateStrategy),t.canceledNavigationResolution&&(e.canceledNavigationResolution=t.canceledNavigationResolution)}(o,d),d}let Fe=(()=>{class t{constructor(n,r,i,s,o,a,l){this.rootComponentType=n,this.urlSerializer=r,this.rootContexts=i,this.location=s,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new Ht,this.errorHandler=YF,this.malformedUriErrorHandler=XF,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>A(void 0),this.urlHandlingStrategy=new ZF,this.routeReuseStrategy=new WF,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.configLoader=o.get(Yd),this.configLoader.onLoadEndListener=f=>this.triggerEvent(new kx(f)),this.configLoader.onLoadStartListener=f=>this.triggerEvent(new Ox(f)),this.ngModule=o.get(or),this.console=o.get(wA);const d=o.get(ge);this.isNgZoneEnabled=d instanceof ge&&ge.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=function sx(){return new cr(new q([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=p_(this.currentUrlTree,this.rootComponentType),this.transitions=new Bt({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){return this.location.getState()?.\u0275routerPageId}setupNavigations(n){const r=this.events;return n.pipe(Ln(i=>0!==i.id),K(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),Zt(i=>{let s=!1,o=!1;return A(i).pipe(Be(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),Zt(a=>{const l=this.browserUrlTree.toString(),u=!this.navigated||a.extractedUrl.toString()!==l||l!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||u)&&this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return U_(a.source)&&(this.browserUrlTree=a.extractedUrl),A(a).pipe(Zt(d=>{const f=this.transitions.getValue();return r.next(new Od(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),f!==this.transitions.getValue()?nn:Promise.resolve(d)}),function RF(t,e,n,r){return Zt(i=>function MF(t,e,n,r,i){return new AF(t,e,n,r,i).apply()}(t,e,n,i.extractedUrl,r).pipe(K(s=>({...i,urlAfterRedirects:s}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),Be(d=>{this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects},i.urlAfterRedirects=d.urlAfterRedirects}),function $F(t,e,n,r,i,s){return Pe(o=>function xF(t,e,n,r,i,s,o="emptyOnly",a="legacy"){return new FF(t,e,n,r,i,o,a,s).recognize().pipe(Zt(l=>null===l?function PF(t){return new Ce(e=>e.error(t))}(new NF):A(l)))}(t,e,n,o.urlAfterRedirects,r.serialize(o.urlAfterRedirects),r,i,s).pipe(K(a=>({...o,targetSnapshot:a}))))}(this.ngModule.injector,this.rootComponentType,this.config,this.urlSerializer,this.paramsInheritanceStrategy,this.relativeLinkResolution),Be(d=>{if(i.targetSnapshot=d.targetSnapshot,"eager"===this.urlUpdateStrategy){if(!d.extras.skipLocationChange){const h=this.urlHandlingStrategy.merge(d.urlAfterRedirects,d.rawUrl);this.setBrowserUrl(h,d)}this.browserUrlTree=d.urlAfterRedirects}const f=new Rx(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);r.next(f)}));if(u&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:f,extractedUrl:h,source:p,restoredState:g,extras:m}=a,v=new Od(f,this.serializeUrl(h),p,g);r.next(v);const w=p_(h,this.rootComponentType).snapshot;return A(i={...a,targetSnapshot:w,urlAfterRedirects:h,extras:{...m,skipLocationChange:!1,replaceUrl:!1}})}return this.rawUrlTree=a.rawUrl,a.resolve(null),nn}),Be(a=>{const l=new Nx(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);this.triggerEvent(l)}),K(a=>i={...a,guards:tF(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function fF(t,e){return Pe(n=>{const{targetSnapshot:r,currentSnapshot:i,guards:{canActivateChecks:s,canDeactivateChecks:o}}=n;return 0===o.length&&0===s.length?A({...n,guardsResult:!0}):function hF(t,e,n,r){return ve(t).pipe(Pe(i=>function DF(t,e,n,r,i){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return s&&0!==s.length?A(s.map(a=>{const l=Ts(e)??i,u=di(a,l);return jn(function uF(t){return t&&Rs(t.canDeactivate)}(u)?u.canDeactivate(t,e,n,r):l.runInContext(()=>u(t,e,n,r))).pipe(Vn())})).pipe(fi()):A(!0)}(i.component,i.route,n,e,r)),Vn(i=>!0!==i,!0))}(o,r,i,t).pipe(Pe(a=>a&&function sF(t){return"boolean"==typeof t}(a)?function pF(t,e,n,r){return ve(e).pipe(ur(i=>Sd(function mF(t,e){return null!==t&&e&&e(new Lx(t)),A(!0)}(i.route.parent,r),function gF(t,e){return null!==t&&e&&e(new $x(t)),A(!0)}(i.route,r),function vF(t,e,n){const r=e[e.length-1],s=e.slice(0,e.length-1).reverse().map(o=>function nF(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(o)).filter(o=>null!==o).map(o=>BD(()=>A(o.guards.map(l=>{const u=Ts(o.node)??n,c=di(l,u);return jn(function lF(t){return t&&Rs(t.canActivateChild)}(c)?c.canActivateChild(r,t):u.runInContext(()=>c(r,t))).pipe(Vn())})).pipe(fi())));return A(s).pipe(fi())}(t,i.path,n),function yF(t,e,n){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return A(!0);const i=r.map(s=>BD(()=>{const o=Ts(e)??n,a=di(s,o);return jn(function aF(t){return t&&Rs(t.canActivate)}(a)?a.canActivate(e,t):o.runInContext(()=>a(e,t))).pipe(Vn())}));return A(i).pipe(fi())}(t,i.route,n))),Vn(i=>!0!==i,!0))}(r,s,t,e):A(a)),K(a=>({...n,guardsResult:a})))})}(this.ngModule.injector,a=>this.triggerEvent(a)),Be(a=>{if(i.guardsResult=a.guardsResult,fr(a.guardsResult))throw v_(0,a.guardsResult);const l=new Px(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.triggerEvent(l)}),Ln(a=>!!a.guardsResult||(this.restoreHistory(a),this.cancelNavigationTransition(a,"",3),!1)),Kd(a=>{if(a.guards.canActivateChecks.length)return A(a).pipe(Be(l=>{const u=new xx(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(u)}),Zt(l=>{let u=!1;return A(l).pipe(function jF(t,e){return Pe(n=>{const{targetSnapshot:r,guards:{canActivateChecks:i}}=n;if(!i.length)return A(n);let s=0;return ve(i).pipe(ur(o=>function BF(t,e,n,r){const i=t.routeConfig,s=t._resolve;return void 0!==i?.title&&!L_(i)&&(s[Ds]=i.title),function UF(t,e,n,r){const i=function HF(t){return[...Object.keys(t),...Object.getOwnPropertySymbols(t)]}(t);if(0===i.length)return A({});const s={};return ve(i).pipe(Pe(o=>function zF(t,e,n,r){const i=Ts(e)??r,s=di(t,i);return jn(s.resolve?s.resolve(e,n):i.runInContext(()=>s(e,n)))}(t[o],e,n,r).pipe(Vn(),Be(a=>{s[o]=a}))),Id(1),function tx(t){return K(()=>t)}(s),$n(o=>Gd(o)?nn:vs(o)))}(s,t,e,r).pipe(K(o=>(t._resolvedData=o,t.data=g_(t,n).resolve,i&&L_(i)&&(t.data[Ds]=i.title),null)))}(o.route,r,t,e)),Be(()=>s++),Id(1),Pe(o=>s===i.length?A(n):nn))})}(this.paramsInheritanceStrategy,this.ngModule.injector),Be({next:()=>u=!0,complete:()=>{u||(this.restoreHistory(l),this.cancelNavigationTransition(l,"",2))}}))}),Be(l=>{const u=new Fx(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(u)}))}),Kd(a=>{const l=u=>{const c=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&c.push(this.configLoader.loadComponent(u.routeConfig).pipe(Be(d=>{u.component=d}),K(()=>{})));for(const d of u.children)c.push(...l(d));return c};return $D(l(a.targetSnapshot.root)).pipe(wa(),_r(1))}),Kd(()=>this.afterPreactivation()),K(a=>{const l=function zx(t,e,n){const r=bs(t,e._root,n?n._root:void 0);return new h_(r,e)}(this.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),Be(a=>{this.currentUrlTree=a.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),this.routerState=a.targetRouterState,"deferred"===this.urlUpdateStrategy&&(a.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,a),this.browserUrlTree=a.urlAfterRedirects)}),((t,e,n)=>K(r=>(new eF(e,r.targetRouterState,r.currentRouterState,n).activate(t),r)))(this.rootContexts,this.routeReuseStrategy,a=>this.triggerEvent(a)),Be({next(){s=!0},complete(){s=!0}}),Td(()=>{s||o||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),$n(a=>{if(o=!0,w_(a)){__(a)||(this.navigated=!0,this.restoreHistory(i,!0));const l=new Ma(i.id,this.serializeUrl(i.extractedUrl),a.message,a.cancellationCode);if(r.next(l),__(a)){const u=this.urlHandlingStrategy.merge(a.url,this.rawUrlTree),c={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||U_(i.source)};this.scheduleNavigation(u,"imperative",null,c,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{this.restoreHistory(i,!0);const l=new c_(i.id,this.serializeUrl(i.extractedUrl),a,i.targetSnapshot??void 0);r.next(l);try{i.resolve(this.errorHandler(a))}catch(u){i.reject(u)}}return nn}))}))}resetRootComponentType(n){this.rootComponentType=n,this.routerState.root.component=this.rootComponentType}setTransition(n){this.transitions.next({...this.transitions.value,...n})}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{const i={replaceUrl:!0},s=n.state?.navigationId?n.state:null;if(s){const a={...s};delete a.navigationId,delete a.\u0275routerPageId,0!==Object.keys(a).length&&(i.state=a)}const o=this.parseUrl(n.url);this.scheduleNavigation(o,r,s,i)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(n){this.events.next(n)}resetConfig(n){this.config=n.map(qd),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(n,r={}){const{relativeTo:i,queryParams:s,fragment:o,queryParamsHandling:a,preserveFragment:l}=r,u=i||this.routerState.root,c=l?this.currentUrlTree.fragment:o;let d=null;switch(a){case"merge":d={...this.currentUrlTree.queryParams,...s};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=s||null}return null!==d&&(d=this.removeEmptyProps(d)),Sx(u,this.currentUrlTree,n,d,c??null)}navigateByUrl(n,r={skipLocationChange:!1}){const i=fr(n)?n:this.parseUrl(n),s=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(s,"imperative",null,r)}navigate(n,r={skipLocationChange:!1}){return function nO(t){for(let e=0;e{const s=n[i];return null!=s&&(r[i]=s),r},{})}processNavigations(){this.navigations.subscribe(n=>{this.navigated=!0,this.lastSuccessfulId=n.id,this.currentPageId=n.targetPageId,this.events.next(new hr(n.id,this.serializeUrl(n.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.titleStrategy?.updateTitle(this.routerState.snapshot),n.resolve(!0)},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)})}scheduleNavigation(n,r,i,s,o){if(this.disposed)return Promise.resolve(!1);let a,l,u;o?(a=o.resolve,l=o.reject,u=o.promise):u=new Promise((f,h)=>{a=f,l=h});const c=++this.navigationId;let d;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(i=this.location.getState()),d=i&&i.\u0275routerPageId?i.\u0275routerPageId:s.replaceUrl||s.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):d=0,this.setTransition({id:c,targetPageId:d,source:r,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:n,extras:s,resolve:a,reject:l,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(f=>Promise.reject(f))}setBrowserUrl(n,r){const i=this.urlSerializer.serialize(n),s={...r.extras.state,...this.generateNgRouterState(r.id,r.targetPageId)};this.location.isCurrentPathEqualTo(i)||r.extras.replaceUrl?this.location.replaceState(i,"",s):this.location.go(i,"",s)}restoreHistory(n,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-n.targetPageId;"popstate"!==n.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.currentNavigation?.finalUrl||0===i?this.currentUrlTree===this.currentNavigation?.finalUrl&&0===i&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(i)}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(n,r,i){const s=new Ma(n.id,this.serializeUrl(n.extractedUrl),r,i);this.triggerEvent(s),n.resolve(!1)}generateNgRouterState(n,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}}return t.\u0275fac=function(n){Vu()},t.\u0275prov=V({token:t,factory:function(){return B_()},providedIn:"root"}),t})();function U_(t){return"imperative"!==t}class H_{}let sO=(()=>{class t{constructor(n,r,i,s,o){this.router=n,this.injector=i,this.preloadingStrategy=s,this.loader=o}setUpPreloading(){this.subscription=this.router.events.pipe(Ln(n=>n instanceof hr),ur(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const i=[];for(const s of r){s.providers&&!s._injector&&(s._injector=Go(s.providers,n,`Route: ${s.path}`));const o=s._injector??n,a=s._loadedInjector??o;s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent?i.push(this.preloadConfig(o,s)):(s.children||s._loadedRoutes)&&i.push(this.processRoutes(a,s.children??s._loadedRoutes))}return ve(i).pipe(Dr())}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>{let i;i=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(n,r):A(null);const s=i.pipe(Pe(o=>null===o?A(void 0):(r._loadedRoutes=o.routes,r._loadedInjector=o.injector,this.processRoutes(o.injector??n,o.routes))));return r.loadComponent&&!r._loadedComponent?ve([s,this.loader.loadComponent(r)]).pipe(Dr()):s})}}return t.\u0275fac=function(n){return new(n||t)(I(Fe),I(jc),I(Rn),I(H_),I(Yd))},t.\u0275prov=V({token:t,factory:t.\u0275fac,providedIn:"root"}),t})();const ef=new O("");let z_=(()=>{class t{constructor(n,r,i={}){this.router=n,this.viewportScroller=r,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(n=>{n instanceof Od?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof hr&&(this.lastId=n.id,this.scheduleScrollEvent(n,this.router.parseUrl(n.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(n=>{n instanceof d_&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,r){this.router.triggerEvent(new d_(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return t.\u0275fac=function(n){Vu()},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();function hi(t,e){return{\u0275kind:t,\u0275providers:e}}function tf(t){return[{provide:Zd,multi:!0,useValue:t}]}function G_(){const t=pe(xt);return e=>{const n=t.get(ds);if(e!==n.components[0])return;const r=t.get(Fe),i=t.get(W_);1===t.get(nf)&&r.initialNavigation(),t.get(Q_,null,N.Optional)?.setUpPreloading(),t.get(ef,null,N.Optional)?.init(),r.resetRootComponentType(n.componentTypes[0]),i.closed||(i.next(),i.unsubscribe())}}const W_=new O("",{factory:()=>new Ht}),nf=new O("",{providedIn:"root",factory:()=>1});const Q_=new O("");function uO(t){return hi(0,[{provide:Q_,useExisting:sO},{provide:H_,useExisting:t}])}const K_=new O("ROUTER_FORROOT_GUARD"),cO=[nd,{provide:e_,useClass:Ad},{provide:Fe,useFactory:B_},Is,{provide:pr,useFactory:function q_(t){return t.routerState.root},deps:[Fe]},Yd];function dO(){return new Tv("Router",Fe)}let Z_=(()=>{class t{constructor(n){}static forRoot(n,r){return{ngModule:t,providers:[cO,[],tf(n),{provide:K_,useFactory:gO,deps:[[Fe,new $i,new ji]]},{provide:Va,useValue:r||{}},r?.useHash?{provide:lr,useClass:uR}:{provide:lr,useClass:Xv},{provide:ef,useFactory:()=>{const t=pe(Fe),e=pe(PN),n=pe(Va);return n.scrollOffset&&e.setOffset(n.scrollOffset),new z_(t,e,n)}},r?.preloadingStrategy?uO(r.preloadingStrategy).\u0275providers:[],{provide:Tv,multi:!0,useFactory:dO},r?.initialNavigation?mO(r):[],[{provide:Y_,useFactory:G_},{provide:Dv,multi:!0,useExisting:Y_}]]}}static forChild(n){return{ngModule:t,providers:[tf(n)]}}}return t.\u0275fac=function(n){return new(n||t)(I(K_,8))},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({imports:[Hd]}),t})();function gO(t){return"guarded"}function mO(t){return["disabled"===t.initialNavigation?hi(3,[{provide:Zo,multi:!0,useFactory:()=>{const e=pe(Fe);return()=>{e.setUpLocationChangeListener()}}},{provide:nf,useValue:2}]).\u0275providers:[],"enabledBlocking"===t.initialNavigation?hi(2,[{provide:nf,useValue:0},{provide:Zo,multi:!0,deps:[xt],useFactory:e=>{const n=e.get(aR,Promise.resolve());let r=!1;return()=>n.then(()=>new Promise(s=>{const o=e.get(Fe),a=e.get(W_);(function i(s){e.get(Fe).events.pipe(Ln(a=>a instanceof hr||a instanceof Ma||a instanceof c_),K(a=>a instanceof hr||a instanceof Ma&&(0===a.code||1===a.code)&&null),Ln(a=>null!==a),_r(1)).subscribe(()=>{s()})})(()=>{s(!0),r=!0}),o.afterPreactivation=()=>(s(!0),r||a.closed?A(void 0):a),o.initialNavigation()}))}}]).\u0275providers:[]]}const Y_=new O("");let X_=(()=>{class t{constructor(){}ngOnInit(){}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=Ei({type:t,selectors:[["app-packages"]],decls:2,vars:0,template:function(n,r){1&n&&(ko(0,"p"),function Om(t,e=""){const n=D(),r=Q(),i=t+22,s=r.firstCreatePass?zr(r,i,1,e,null):r.data[i],o=n[i]=function au(t,e){return t.createText(e)}(n[B],e);go(r,n,o,s),zt(s,!1)}(1,"packages works!"),Lo())}}),t})();const vO=[{path:"",component:X_},{path:"**",component:X_}];let DO=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({imports:[Z_.forRoot(vO),Z_]}),t})(),_O=(()=>{class t{constructor(){this.title="ui"}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275cmp=Ei({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(n,r){1&n&&Vo(0,"router-outlet")},dependencies:[Ud]}),t})();class J_{}const wn="*";function ew(t,e=null){return{type:2,steps:t,options:e}}function tw(t){return{type:6,styles:t,offset:null}}function nw(t){Promise.resolve().then(t)}class Ps{constructor(e=0,n=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=e+n}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){nw(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(e=>e()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(e){this._position=this.totalTime?e*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(e){const n="start"==e?this._onStartFns:this._onDoneFns;n.forEach(r=>r()),n.length=0}}class rw{constructor(e){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=e;let n=0,r=0,i=0;const s=this.players.length;0==s?nw(()=>this._onFinish()):this.players.forEach(o=>{o.onDone(()=>{++n==s&&this._onFinish()}),o.onDestroy(()=>{++r==s&&this._onDestroy()}),o.onStart(()=>{++i==s&&this._onStart()})}),this.totalTime=this.players.reduce((o,a)=>Math.max(o,a.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this.players.forEach(e=>e.init())}onStart(e){this._onStartFns.push(e)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(e=>e()),this._onStartFns=[])}onDone(e){this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(e=>e.play())}pause(){this.players.forEach(e=>e.pause())}restart(){this.players.forEach(e=>e.restart())}finish(){this._onFinish(),this.players.forEach(e=>e.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(e=>e.destroy()),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}reset(){this.players.forEach(e=>e.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(e){const n=e*this.totalTime;this.players.forEach(r=>{const i=r.totalTime?Math.min(1,n/r.totalTime):1;r.setPosition(i)})}getPosition(){const e=this.players.reduce((n,r)=>null===n||r.totalTime>n.totalTime?r:n,null);return null!=e?e.getPosition():0}beforeDestroy(){this.players.forEach(e=>{e.beforeDestroy&&e.beforeDestroy()})}triggerCallback(e){const n="start"==e?this._onStartFns:this._onDoneFns;n.forEach(r=>r()),n.length=0}}function iw(t){return new _(3e3,!1)}function n1(){return typeof window<"u"&&typeof window.document<"u"}function sf(){return typeof process<"u"&&"[object process]"==={}.toString.call(process)}function Bn(t){switch(t.length){case 0:return new Ps;case 1:return t[0];default:return new rw(t)}}function sw(t,e,n,r,i=new Map,s=new Map){const o=[],a=[];let l=-1,u=null;if(r.forEach(c=>{const d=c.get("offset"),f=d==l,h=f&&u||new Map;c.forEach((p,g)=>{let m=g,v=p;if("offset"!==g)switch(m=e.normalizePropertyName(m,o),v){case"!":v=i.get(g);break;case wn:v=s.get(g);break;default:v=e.normalizeStyleValue(g,m,v,o)}h.set(m,v)}),f||a.push(h),u=h,l=d}),o.length)throw function zO(t){return new _(3502,!1)}();return a}function af(t,e,n,r){switch(e){case"start":t.onStart(()=>r(n&&lf(n,"start",t)));break;case"done":t.onDone(()=>r(n&&lf(n,"done",t)));break;case"destroy":t.onDestroy(()=>r(n&&lf(n,"destroy",t)))}}function lf(t,e,n){const s=uf(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,n.totalTime??t.totalTime,!!n.disabled),o=t._data;return null!=o&&(s._data=o),s}function uf(t,e,n,r,i="",s=0,o){return{element:t,triggerName:e,fromState:n,toState:r,phaseName:i,totalTime:s,disabled:!!o}}function ct(t,e,n){let r=t.get(e);return r||t.set(e,r=n),r}function ow(t){const e=t.indexOf(":");return[t.substring(1,e),t.slice(e+1)]}let cf=(t,e)=>!1,aw=(t,e,n)=>[],lw=null;function df(t){const e=t.parentNode||t.host;return e===lw?null:e}(sf()||typeof Element<"u")&&(n1()?(lw=(()=>document.documentElement)(),cf=(t,e)=>{for(;e;){if(e===t)return!0;e=df(e)}return!1}):cf=(t,e)=>t.contains(e),aw=(t,e,n)=>{if(n)return Array.from(t.querySelectorAll(e));const r=t.querySelector(e);return r?[r]:[]});let gr=null,uw=!1;const cw=cf,dw=aw;let fw=(()=>{class t{validateStyleProperty(n){return function i1(t){gr||(gr=function s1(){return typeof document<"u"?document.body:null}()||{},uw=!!gr.style&&"WebkitAppearance"in gr.style);let e=!0;return gr.style&&!function r1(t){return"ebkit"==t.substring(1,6)}(t)&&(e=t in gr.style,!e&&uw&&(e="Webkit"+t.charAt(0).toUpperCase()+t.slice(1)in gr.style)),e}(n)}matchesElement(n,r){return!1}containsElement(n,r){return cw(n,r)}getParentElement(n){return df(n)}query(n,r,i){return dw(n,r,i)}computeStyle(n,r,i){return i||""}animate(n,r,i,s,o,a=[],l){return new Ps(i,s)}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})(),ff=(()=>{class t{}return t.NOOP=new fw,t})();const hf="ng-enter",Ua="ng-leave",Ha="ng-trigger",za=".ng-trigger",pw="ng-animating",pf=".ng-animating";function En(t){if("number"==typeof t)return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:gf(parseFloat(e[1]),e[2])}function gf(t,e){return"s"===e?1e3*t:t}function qa(t,e,n){return t.hasOwnProperty("duration")?t:function l1(t,e,n){let i,s=0,o="";if("string"==typeof t){const a=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===a)return e.push(iw()),{duration:0,delay:0,easing:""};i=gf(parseFloat(a[1]),a[2]);const l=a[3];null!=l&&(s=gf(parseFloat(l),a[4]));const u=a[5];u&&(o=u)}else i=t;if(!n){let a=!1,l=e.length;i<0&&(e.push(function EO(){return new _(3100,!1)}()),a=!0),s<0&&(e.push(function CO(){return new _(3101,!1)}()),a=!0),a&&e.splice(l,0,iw())}return{duration:i,delay:s,easing:o}}(t,e,n)}function xs(t,e={}){return Object.keys(t).forEach(n=>{e[n]=t[n]}),e}function gw(t){const e=new Map;return Object.keys(t).forEach(n=>{e.set(n,t[n])}),e}function Un(t,e=new Map,n){if(n)for(let[r,i]of n)e.set(r,i);for(let[r,i]of t)e.set(r,i);return e}function yw(t,e,n){return n?e+":"+n+";":""}function vw(t){let e="";for(let n=0;n{const s=yf(i);n&&!n.has(i)&&n.set(i,t.style[s]),t.style[s]=r}),sf()&&vw(t))}function mr(t,e){t.style&&(e.forEach((n,r)=>{const i=yf(r);t.style[i]=""}),sf()&&vw(t))}function Fs(t){return Array.isArray(t)?1==t.length?t[0]:ew(t):t}const mf=new RegExp("{{\\s*(.+?)\\s*}}","g");function Dw(t){let e=[];if("string"==typeof t){let n;for(;n=mf.exec(t);)e.push(n[1]);mf.lastIndex=0}return e}function Os(t,e,n){const r=t.toString(),i=r.replace(mf,(s,o)=>{let a=e[o];return null==a&&(n.push(function bO(t){return new _(3003,!1)}()),a=""),a.toString()});return i==r?t:i}function Ga(t){const e=[];let n=t.next();for(;!n.done;)e.push(n.value),n=t.next();return e}const d1=/-+([a-z0-9])/g;function yf(t){return t.replace(d1,(...e)=>e[1].toUpperCase())}function f1(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function dt(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw function IO(t){return new _(3004,!1)}()}}function _w(t,e){return window.getComputedStyle(t)[e]}function v1(t,e){const n=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(r=>function D1(t,e,n){if(":"==t[0]){const l=function _1(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(n,r)=>parseFloat(r)>parseFloat(n);case":decrement":return(n,r)=>parseFloat(r) *"}}(t,n);if("function"==typeof l)return void e.push(l);t=l}const r=t.match(/^(\*|[-\w]+)\s*([=-]>)\s*(\*|[-\w]+)$/);if(null==r||r.length<4)return n.push(function $O(t){return new _(3015,!1)}()),e;const i=r[1],s=r[2],o=r[3];e.push(ww(i,o));"<"==s[0]&&!("*"==i&&"*"==o)&&e.push(ww(o,i))}(r,n,e)):n.push(t),n}const Za=new Set(["true","1"]),Ya=new Set(["false","0"]);function ww(t,e){const n=Za.has(t)||Ya.has(t),r=Za.has(e)||Ya.has(e);return(i,s)=>{let o="*"==t||t==i,a="*"==e||e==s;return!o&&n&&"boolean"==typeof i&&(o=i?Za.has(t):Ya.has(t)),!a&&r&&"boolean"==typeof s&&(a=s?Za.has(e):Ya.has(e)),o&&a}}const w1=new RegExp("s*:selfs*,?","g");function vf(t,e,n,r){return new E1(t).build(e,n,r)}class E1{constructor(e){this._driver=e}build(e,n,r){const i=new b1(n);return this._resetContextStyleTimingState(i),dt(this,Fs(e),i)}_resetContextStyleTimingState(e){e.currentQuerySelector="",e.collectedStyles=new Map,e.collectedStyles.set("",new Map),e.currentTime=0}visitTrigger(e,n){let r=n.queryCount=0,i=n.depCount=0;const s=[],o=[];return"@"==e.name.charAt(0)&&n.errors.push(function MO(){return new _(3006,!1)}()),e.definitions.forEach(a=>{if(this._resetContextStyleTimingState(n),0==a.type){const l=a,u=l.name;u.toString().split(/\s*,\s*/).forEach(c=>{l.name=c,s.push(this.visitState(l,n))}),l.name=u}else if(1==a.type){const l=this.visitTransition(a,n);r+=l.queryCount,i+=l.depCount,o.push(l)}else n.errors.push(function AO(){return new _(3007,!1)}())}),{type:7,name:e.name,states:s,transitions:o,queryCount:r,depCount:i,options:null}}visitState(e,n){const r=this.visitStyle(e.styles,n),i=e.options&&e.options.params||null;if(r.containsDynamicStyles){const s=new Set,o=i||{};r.styles.forEach(a=>{a instanceof Map&&a.forEach(l=>{Dw(l).forEach(u=>{o.hasOwnProperty(u)||s.add(u)})})}),s.size&&(Ga(s.values()),n.errors.push(function RO(t,e){return new _(3008,!1)}()))}return{type:0,name:e.name,style:r,options:i?{params:i}:null}}visitTransition(e,n){n.queryCount=0,n.depCount=0;const r=dt(this,Fs(e.animation),n);return{type:1,matchers:v1(e.expr,n.errors),animation:r,queryCount:n.queryCount,depCount:n.depCount,options:yr(e.options)}}visitSequence(e,n){return{type:2,steps:e.steps.map(r=>dt(this,r,n)),options:yr(e.options)}}visitGroup(e,n){const r=n.currentTime;let i=0;const s=e.steps.map(o=>{n.currentTime=r;const a=dt(this,o,n);return i=Math.max(i,n.currentTime),a});return n.currentTime=i,{type:3,steps:s,options:yr(e.options)}}visitAnimate(e,n){const r=function T1(t,e){if(t.hasOwnProperty("duration"))return t;if("number"==typeof t)return Df(qa(t,e).duration,0,"");const n=t;if(n.split(/\s+/).some(s=>"{"==s.charAt(0)&&"{"==s.charAt(1))){const s=Df(0,0,"");return s.dynamic=!0,s.strValue=n,s}const i=qa(n,e);return Df(i.duration,i.delay,i.easing)}(e.timings,n.errors);n.currentAnimateTimings=r;let i,s=e.styles?e.styles:tw({});if(5==s.type)i=this.visitKeyframes(s,n);else{let o=e.styles,a=!1;if(!o){a=!0;const u={};r.easing&&(u.easing=r.easing),o=tw(u)}n.currentTime+=r.duration+r.delay;const l=this.visitStyle(o,n);l.isEmptyStep=a,i=l}return n.currentAnimateTimings=null,{type:4,timings:r,style:i,options:null}}visitStyle(e,n){const r=this._makeStyleAst(e,n);return this._validateStyleAst(r,n),r}_makeStyleAst(e,n){const r=[],i=Array.isArray(e.styles)?e.styles:[e.styles];for(let a of i)"string"==typeof a?a===wn?r.push(a):n.errors.push(new _(3002,!1)):r.push(gw(a));let s=!1,o=null;return r.forEach(a=>{if(a instanceof Map&&(a.has("easing")&&(o=a.get("easing"),a.delete("easing")),!s))for(let l of a.values())if(l.toString().indexOf("{{")>=0){s=!0;break}}),{type:6,styles:r,easing:o,offset:e.offset,containsDynamicStyles:s,options:null}}_validateStyleAst(e,n){const r=n.currentAnimateTimings;let i=n.currentTime,s=n.currentTime;r&&s>0&&(s-=r.duration+r.delay),e.styles.forEach(o=>{"string"!=typeof o&&o.forEach((a,l)=>{const u=n.collectedStyles.get(n.currentQuerySelector),c=u.get(l);let d=!0;c&&(s!=i&&s>=c.startTime&&i<=c.endTime&&(n.errors.push(function PO(t,e,n,r,i){return new _(3010,!1)}()),d=!1),s=c.startTime),d&&u.set(l,{startTime:s,endTime:i}),n.options&&function c1(t,e,n){const r=e.params||{},i=Dw(t);i.length&&i.forEach(s=>{r.hasOwnProperty(s)||n.push(function SO(t){return new _(3001,!1)}())})}(a,n.options,n.errors)})})}visitKeyframes(e,n){const r={type:5,styles:[],options:null};if(!n.currentAnimateTimings)return n.errors.push(function xO(){return new _(3011,!1)}()),r;let s=0;const o=[];let a=!1,l=!1,u=0;const c=e.steps.map(v=>{const w=this._makeStyleAst(v,n);let y=null!=w.offset?w.offset:function I1(t){if("string"==typeof t)return null;let e=null;if(Array.isArray(t))t.forEach(n=>{if(n instanceof Map&&n.has("offset")){const r=n;e=parseFloat(r.get("offset")),r.delete("offset")}});else if(t instanceof Map&&t.has("offset")){const n=t;e=parseFloat(n.get("offset")),n.delete("offset")}return e}(w.styles),S=0;return null!=y&&(s++,S=w.offset=y),l=l||S<0||S>1,a=a||S0&&s{const y=f>0?w==h?1:f*w:o[w],S=y*m;n.currentTime=p+g.delay+S,g.duration=S,this._validateStyleAst(v,n),v.offset=y,r.styles.push(v)}),r}visitReference(e,n){return{type:8,animation:dt(this,Fs(e.animation),n),options:yr(e.options)}}visitAnimateChild(e,n){return n.depCount++,{type:9,options:yr(e.options)}}visitAnimateRef(e,n){return{type:10,animation:this.visitReference(e.animation,n),options:yr(e.options)}}visitQuery(e,n){const r=n.currentQuerySelector,i=e.options||{};n.queryCount++,n.currentQuery=e;const[s,o]=function C1(t){const e=!!t.split(/\s*,\s*/).find(n=>":self"==n);return e&&(t=t.replace(w1,"")),t=t.replace(/@\*/g,za).replace(/@\w+/g,n=>za+"-"+n.slice(1)).replace(/:animating/g,pf),[t,e]}(e.selector);n.currentQuerySelector=r.length?r+" "+s:s,ct(n.collectedStyles,n.currentQuerySelector,new Map);const a=dt(this,Fs(e.animation),n);return n.currentQuery=null,n.currentQuerySelector=r,{type:11,selector:s,limit:i.limit||0,optional:!!i.optional,includeSelf:o,animation:a,originalSelector:e.selector,options:yr(e.options)}}visitStagger(e,n){n.currentQuery||n.errors.push(function LO(){return new _(3013,!1)}());const r="full"===e.timings?{duration:0,delay:0,easing:"full"}:qa(e.timings,n.errors,!0);return{type:12,animation:dt(this,Fs(e.animation),n),timings:r,options:null}}}class b1{constructor(e){this.errors=e,this.queryCount=0,this.depCount=0,this.currentTransition=null,this.currentQuery=null,this.currentQuerySelector=null,this.currentAnimateTimings=null,this.currentTime=0,this.collectedStyles=new Map,this.options=null,this.unsupportedCSSPropertiesFound=new Set}}function yr(t){return t?(t=xs(t)).params&&(t.params=function S1(t){return t?xs(t):null}(t.params)):t={},t}function Df(t,e,n){return{duration:t,delay:e,easing:n}}function _f(t,e,n,r,i,s,o=null,a=!1){return{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:r,duration:i,delay:s,totalTime:i+s,easing:o,subTimeline:a}}class Xa{constructor(){this._map=new Map}get(e){return this._map.get(e)||[]}append(e,n){let r=this._map.get(e);r||this._map.set(e,r=[]),r.push(...n)}has(e){return this._map.has(e)}clear(){this._map.clear()}}const R1=new RegExp(":enter","g"),P1=new RegExp(":leave","g");function wf(t,e,n,r,i,s=new Map,o=new Map,a,l,u=[]){return(new x1).buildKeyframes(t,e,n,r,i,s,o,a,l,u)}class x1{buildKeyframes(e,n,r,i,s,o,a,l,u,c=[]){u=u||new Xa;const d=new Ef(e,n,u,i,s,c,[]);d.options=l;const f=l.delay?En(l.delay):0;d.currentTimeline.delayNextStep(f),d.currentTimeline.setStyles([o],null,d.errors,l),dt(this,r,d);const h=d.timelines.filter(p=>p.containsAnimation());if(h.length&&a.size){let p;for(let g=h.length-1;g>=0;g--){const m=h[g];if(m.element===n){p=m;break}}p&&!p.allowOnlyTimelineStyles()&&p.setStyles([a],null,d.errors,l)}return h.length?h.map(p=>p.buildKeyframes()):[_f(n,[],[],[],0,f,"",!1)]}visitTrigger(e,n){}visitState(e,n){}visitTransition(e,n){}visitAnimateChild(e,n){const r=n.subInstructions.get(n.element);if(r){const i=n.createSubContext(e.options),s=n.currentTimeline.currentTime,o=this._visitSubInstructions(r,i,i.options);s!=o&&n.transformIntoNewTimeline(o)}n.previousNode=e}visitAnimateRef(e,n){const r=n.createSubContext(e.options);r.transformIntoNewTimeline(),this._applyAnimationRefDelays([e.options,e.animation.options],n,r),this.visitReference(e.animation,r),n.transformIntoNewTimeline(r.currentTimeline.currentTime),n.previousNode=e}_applyAnimationRefDelays(e,n,r){for(const i of e){const s=i?.delay;if(s){const o="number"==typeof s?s:En(Os(s,i?.params??{},n.errors));r.delayNextStep(o)}}}_visitSubInstructions(e,n,r){let s=n.currentTimeline.currentTime;const o=null!=r.duration?En(r.duration):null,a=null!=r.delay?En(r.delay):null;return 0!==o&&e.forEach(l=>{const u=n.appendInstructionToTimeline(l,o,a);s=Math.max(s,u.duration+u.delay)}),s}visitReference(e,n){n.updateOptions(e.options,!0),dt(this,e.animation,n),n.previousNode=e}visitSequence(e,n){const r=n.subContextCount;let i=n;const s=e.options;if(s&&(s.params||s.delay)&&(i=n.createSubContext(s),i.transformIntoNewTimeline(),null!=s.delay)){6==i.previousNode.type&&(i.currentTimeline.snapshotCurrentStyles(),i.previousNode=Ja);const o=En(s.delay);i.delayNextStep(o)}e.steps.length&&(e.steps.forEach(o=>dt(this,o,i)),i.currentTimeline.applyStylesToKeyframe(),i.subContextCount>r&&i.transformIntoNewTimeline()),n.previousNode=e}visitGroup(e,n){const r=[];let i=n.currentTimeline.currentTime;const s=e.options&&e.options.delay?En(e.options.delay):0;e.steps.forEach(o=>{const a=n.createSubContext(e.options);s&&a.delayNextStep(s),dt(this,o,a),i=Math.max(i,a.currentTimeline.currentTime),r.push(a.currentTimeline)}),r.forEach(o=>n.currentTimeline.mergeTimelineCollectedStyles(o)),n.transformIntoNewTimeline(i),n.previousNode=e}_visitTiming(e,n){if(e.dynamic){const r=e.strValue;return qa(n.params?Os(r,n.params,n.errors):r,n.errors)}return{duration:e.duration,delay:e.delay,easing:e.easing}}visitAnimate(e,n){const r=n.currentAnimateTimings=this._visitTiming(e.timings,n),i=n.currentTimeline;r.delay&&(n.incrementTime(r.delay),i.snapshotCurrentStyles());const s=e.style;5==s.type?this.visitKeyframes(s,n):(n.incrementTime(r.duration),this.visitStyle(s,n),i.applyStylesToKeyframe()),n.currentAnimateTimings=null,n.previousNode=e}visitStyle(e,n){const r=n.currentTimeline,i=n.currentAnimateTimings;!i&&r.hasCurrentStyleProperties()&&r.forwardFrame();const s=i&&i.easing||e.easing;e.isEmptyStep?r.applyEmptyStep(s):r.setStyles(e.styles,s,n.errors,n.options),n.previousNode=e}visitKeyframes(e,n){const r=n.currentAnimateTimings,i=n.currentTimeline.duration,s=r.duration,a=n.createSubContext().currentTimeline;a.easing=r.easing,e.styles.forEach(l=>{a.forwardTime((l.offset||0)*s),a.setStyles(l.styles,l.easing,n.errors,n.options),a.applyStylesToKeyframe()}),n.currentTimeline.mergeTimelineCollectedStyles(a),n.transformIntoNewTimeline(i+s),n.previousNode=e}visitQuery(e,n){const r=n.currentTimeline.currentTime,i=e.options||{},s=i.delay?En(i.delay):0;s&&(6===n.previousNode.type||0==r&&n.currentTimeline.hasCurrentStyleProperties())&&(n.currentTimeline.snapshotCurrentStyles(),n.previousNode=Ja);let o=r;const a=n.invokeQuery(e.selector,e.originalSelector,e.limit,e.includeSelf,!!i.optional,n.errors);n.currentQueryTotal=a.length;let l=null;a.forEach((u,c)=>{n.currentQueryIndex=c;const d=n.createSubContext(e.options,u);s&&d.delayNextStep(s),u===n.element&&(l=d.currentTimeline),dt(this,e.animation,d),d.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,d.currentTimeline.currentTime)}),n.currentQueryIndex=0,n.currentQueryTotal=0,n.transformIntoNewTimeline(o),l&&(n.currentTimeline.mergeTimelineCollectedStyles(l),n.currentTimeline.snapshotCurrentStyles()),n.previousNode=e}visitStagger(e,n){const r=n.parentContext,i=n.currentTimeline,s=e.timings,o=Math.abs(s.duration),a=o*(n.currentQueryTotal-1);let l=o*n.currentQueryIndex;switch(s.duration<0?"reverse":s.easing){case"reverse":l=a-l;break;case"full":l=r.currentStaggerTime}const c=n.currentTimeline;l&&c.delayNextStep(l);const d=c.currentTime;dt(this,e.animation,n),n.previousNode=e,r.currentStaggerTime=i.currentTime-d+(i.startTime-r.currentTimeline.startTime)}}const Ja={};class Ef{constructor(e,n,r,i,s,o,a,l){this._driver=e,this.element=n,this.subInstructions=r,this._enterClassName=i,this._leaveClassName=s,this.errors=o,this.timelines=a,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Ja,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=l||new el(this._driver,n,0),a.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(e,n){if(!e)return;const r=e;let i=this.options;null!=r.duration&&(i.duration=En(r.duration)),null!=r.delay&&(i.delay=En(r.delay));const s=r.params;if(s){let o=i.params;o||(o=this.options.params={}),Object.keys(s).forEach(a=>{(!n||!o.hasOwnProperty(a))&&(o[a]=Os(s[a],o,this.errors))})}}_copyOptions(){const e={};if(this.options){const n=this.options.params;if(n){const r=e.params={};Object.keys(n).forEach(i=>{r[i]=n[i]})}}return e}createSubContext(e=null,n,r){const i=n||this.element,s=new Ef(this._driver,i,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(i,r||0));return s.previousNode=this.previousNode,s.currentAnimateTimings=this.currentAnimateTimings,s.options=this._copyOptions(),s.updateOptions(e),s.currentQueryIndex=this.currentQueryIndex,s.currentQueryTotal=this.currentQueryTotal,s.parentContext=this,this.subContextCount++,s}transformIntoNewTimeline(e){return this.previousNode=Ja,this.currentTimeline=this.currentTimeline.fork(this.element,e),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(e,n,r){const i={duration:n??e.duration,delay:this.currentTimeline.currentTime+(r??0)+e.delay,easing:""},s=new F1(this._driver,e.element,e.keyframes,e.preStyleProps,e.postStyleProps,i,e.stretchStartingKeyframe);return this.timelines.push(s),i}incrementTime(e){this.currentTimeline.forwardTime(this.currentTimeline.duration+e)}delayNextStep(e){e>0&&this.currentTimeline.delayNextStep(e)}invokeQuery(e,n,r,i,s,o){let a=[];if(i&&a.push(this.element),e.length>0){e=(e=e.replace(R1,"."+this._enterClassName)).replace(P1,"."+this._leaveClassName);let u=this._driver.query(this.element,e,1!=r);0!==r&&(u=r<0?u.slice(u.length+r,u.length):u.slice(0,r)),a.push(...u)}return!s&&0==a.length&&o.push(function VO(t){return new _(3014,!1)}()),a}}class el{constructor(e,n,r,i){this._driver=e,this.element=n,this.startTime=r,this._elementTimelineStylesLookup=i,this.duration=0,this._previousKeyframe=new Map,this._currentKeyframe=new Map,this._keyframes=new Map,this._styleSummary=new Map,this._localTimelineStyles=new Map,this._pendingStyles=new Map,this._backFill=new Map,this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(n),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(n,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(e){const n=1===this._keyframes.size&&this._pendingStyles.size;this.duration||n?(this.forwardTime(this.currentTime+e),n&&this.snapshotCurrentStyles()):this.startTime+=e}fork(e,n){return this.applyStylesToKeyframe(),new el(this._driver,e,n||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=1,this._loadKeyframe()}forwardTime(e){this.applyStylesToKeyframe(),this.duration=e,this._loadKeyframe()}_updateStyle(e,n){this._localTimelineStyles.set(e,n),this._globalTimelineStyles.set(e,n),this._styleSummary.set(e,{time:this.currentTime,value:n})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(e){e&&this._previousKeyframe.set("easing",e);for(let[n,r]of this._globalTimelineStyles)this._backFill.set(n,r||wn),this._currentKeyframe.set(n,wn);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(e,n,r,i){n&&this._previousKeyframe.set("easing",n);const s=i&&i.params||{},o=function O1(t,e){const n=new Map;let r;return t.forEach(i=>{if("*"===i){r=r||e.keys();for(let s of r)n.set(s,wn)}else Un(i,n)}),n}(e,this._globalTimelineStyles);for(let[a,l]of o){const u=Os(l,s,r);this._pendingStyles.set(a,u),this._localTimelineStyles.has(a)||this._backFill.set(a,this._globalTimelineStyles.get(a)??wn),this._updateStyle(a,u)}}applyStylesToKeyframe(){0!=this._pendingStyles.size&&(this._pendingStyles.forEach((e,n)=>{this._currentKeyframe.set(n,e)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((e,n)=>{this._currentKeyframe.has(n)||this._currentKeyframe.set(n,e)}))}snapshotCurrentStyles(){for(let[e,n]of this._localTimelineStyles)this._pendingStyles.set(e,n),this._updateStyle(e,n)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){const e=[];for(let n in this._currentKeyframe)e.push(n);return e}mergeTimelineCollectedStyles(e){e._styleSummary.forEach((n,r)=>{const i=this._styleSummary.get(r);(!i||n.time>i.time)&&this._updateStyle(r,n.value)})}buildKeyframes(){this.applyStylesToKeyframe();const e=new Set,n=new Set,r=1===this._keyframes.size&&0===this.duration;let i=[];this._keyframes.forEach((a,l)=>{const u=Un(a,new Map,this._backFill);u.forEach((c,d)=>{"!"===c?e.add(d):c===wn&&n.add(d)}),r||u.set("offset",l/this.duration),i.push(u)});const s=e.size?Ga(e.values()):[],o=n.size?Ga(n.values()):[];if(r){const a=i[0],l=new Map(a);a.set("offset",0),l.set("offset",1),i=[a,l]}return _f(this.element,i,s,o,this.duration,this.startTime,this.easing,!1)}}class F1 extends el{constructor(e,n,r,i,s,o,a=!1){super(e,n,o.delay),this.keyframes=r,this.preStyleProps=i,this.postStyleProps=s,this._stretchStartingKeyframe=a,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let e=this.keyframes,{delay:n,duration:r,easing:i}=this.timings;if(this._stretchStartingKeyframe&&n){const s=[],o=r+n,a=n/o,l=Un(e[0]);l.set("offset",0),s.push(l);const u=Un(e[0]);u.set("offset",Sw(a)),s.push(u);const c=e.length-1;for(let d=1;d<=c;d++){let f=Un(e[d]);const h=f.get("offset");f.set("offset",Sw((n+h*r)/o)),s.push(f)}r=o,n=0,i="",e=s}return _f(this.element,e,this.preStyleProps,this.postStyleProps,r,n,i,!0)}}function Sw(t,e=3){const n=Math.pow(10,e-1);return Math.round(t*n)/n}class Cf{}const k1=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]);class L1 extends Cf{normalizePropertyName(e,n){return yf(e)}normalizeStyleValue(e,n,r,i){let s="";const o=r.toString().trim();if(k1.has(n)&&0!==r&&"0"!==r)if("number"==typeof r)s="px";else{const a=r.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&i.push(function TO(t,e){return new _(3005,!1)}())}return o+s}}function bw(t,e,n,r,i,s,o,a,l,u,c,d,f){return{type:0,element:t,triggerName:e,isRemovalTransition:i,fromState:n,fromStyles:s,toState:r,toStyles:o,timelines:a,queriedElements:l,preStyleProps:u,postStyleProps:c,totalTime:d,errors:f}}const Sf={};class Iw{constructor(e,n,r){this._triggerName=e,this.ast=n,this._stateStyles=r}match(e,n,r,i){return function V1(t,e,n,r,i){return t.some(s=>s(e,n,r,i))}(this.ast.matchers,e,n,r,i)}buildStyles(e,n,r){let i=this._stateStyles.get("*");return void 0!==e&&(i=this._stateStyles.get(e?.toString())||i),i?i.buildStyles(n,r):new Map}build(e,n,r,i,s,o,a,l,u,c){const d=[],f=this.ast.options&&this.ast.options.params||Sf,p=this.buildStyles(r,a&&a.params||Sf,d),g=l&&l.params||Sf,m=this.buildStyles(i,g,d),v=new Set,w=new Map,y=new Map,S="void"===i,H={params:$1(g,f),delay:this.ast.options?.delay},W=c?[]:wf(e,n,this.ast.animation,s,o,p,m,H,u,d);let ce=0;if(W.forEach(ht=>{ce=Math.max(ht.duration+ht.delay,ce)}),d.length)return bw(n,this._triggerName,r,i,S,p,m,[],[],w,y,ce,d);W.forEach(ht=>{const pt=ht.element,gi=ct(w,pt,new Set);ht.preStyleProps.forEach(Ut=>gi.add(Ut));const Cn=ct(y,pt,new Set);ht.postStyleProps.forEach(Ut=>Cn.add(Ut)),pt!==n&&v.add(pt)});const ft=Ga(v.values());return bw(n,this._triggerName,r,i,S,p,m,W,ft,w,y,ce)}}function $1(t,e){const n=xs(e);for(const r in t)t.hasOwnProperty(r)&&null!=t[r]&&(n[r]=t[r]);return n}class j1{constructor(e,n,r){this.styles=e,this.defaultParams=n,this.normalizer=r}buildStyles(e,n){const r=new Map,i=xs(this.defaultParams);return Object.keys(e).forEach(s=>{const o=e[s];null!==o&&(i[s]=o)}),this.styles.styles.forEach(s=>{"string"!=typeof s&&s.forEach((o,a)=>{o&&(o=Os(o,i,n));const l=this.normalizer.normalizePropertyName(a,n);o=this.normalizer.normalizeStyleValue(a,l,o,n),r.set(l,o)})}),r}}class U1{constructor(e,n,r){this.name=e,this.ast=n,this._normalizer=r,this.transitionFactories=[],this.states=new Map,n.states.forEach(i=>{this.states.set(i.name,new j1(i.style,i.options&&i.options.params||{},r))}),Tw(this.states,"true","1"),Tw(this.states,"false","0"),n.transitions.forEach(i=>{this.transitionFactories.push(new Iw(e,i,this.states))}),this.fallbackTransition=function H1(t,e,n){return new Iw(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(o,a)=>!0],options:null,queryCount:0,depCount:0},e)}(e,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(e,n,r,i){return this.transitionFactories.find(o=>o.match(e,n,r,i))||null}matchStyles(e,n,r){return this.fallbackTransition.buildStyles(e,n,r)}}function Tw(t,e,n){t.has(e)?t.has(n)||t.set(n,t.get(e)):t.has(n)&&t.set(e,t.get(n))}const z1=new Xa;class q1{constructor(e,n,r){this.bodyNode=e,this._driver=n,this._normalizer=r,this._animations=new Map,this._playersById=new Map,this.players=[]}register(e,n){const r=[],s=vf(this._driver,n,r,[]);if(r.length)throw function qO(t){return new _(3503,!1)}();this._animations.set(e,s)}_buildPlayer(e,n,r){const i=e.element,s=sw(0,this._normalizer,0,e.keyframes,n,r);return this._driver.animate(i,s,e.duration,e.delay,e.easing,[],!0)}create(e,n,r={}){const i=[],s=this._animations.get(e);let o;const a=new Map;if(s?(o=wf(this._driver,n,s,hf,Ua,new Map,new Map,r,z1,i),o.forEach(c=>{const d=ct(a,c.element,new Map);c.postStyleProps.forEach(f=>d.set(f,null))})):(i.push(function GO(){return new _(3300,!1)}()),o=[]),i.length)throw function WO(t){return new _(3504,!1)}();a.forEach((c,d)=>{c.forEach((f,h)=>{c.set(h,this._driver.computeStyle(d,h,wn))})});const u=Bn(o.map(c=>{const d=a.get(c.element);return this._buildPlayer(c,new Map,d)}));return this._playersById.set(e,u),u.onDestroy(()=>this.destroy(e)),this.players.push(u),u}destroy(e){const n=this._getPlayer(e);n.destroy(),this._playersById.delete(e);const r=this.players.indexOf(n);r>=0&&this.players.splice(r,1)}_getPlayer(e){const n=this._playersById.get(e);if(!n)throw function QO(t){return new _(3301,!1)}();return n}listen(e,n,r,i){const s=uf(n,"","","");return af(this._getPlayer(e),r,s,i),()=>{}}command(e,n,r,i){if("register"==r)return void this.register(e,i[0]);if("create"==r)return void this.create(e,n,i[0]||{});const s=this._getPlayer(e);switch(r){case"play":s.play();break;case"pause":s.pause();break;case"reset":s.reset();break;case"restart":s.restart();break;case"finish":s.finish();break;case"init":s.init();break;case"setPosition":s.setPosition(parseFloat(i[0]));break;case"destroy":this.destroy(e)}}}const Mw="ng-animate-queued",bf="ng-animate-disabled",Z1=[],Aw={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Y1={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},St="__ng_removed";class If{constructor(e,n=""){this.namespaceId=n;const r=e&&e.hasOwnProperty("value");if(this.value=function tk(t){return t??null}(r?e.value:e),r){const s=xs(e);delete s.value,this.options=s}else this.options={};this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(e){const n=e.params;if(n){const r=this.options.params;Object.keys(n).forEach(i=>{null==r[i]&&(r[i]=n[i])})}}}const ks="void",Tf=new If(ks);class X1{constructor(e,n,r){this.id=e,this.hostElement=n,this._engine=r,this.players=[],this._triggers=new Map,this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+e,bt(n,this._hostClassName)}listen(e,n,r,i){if(!this._triggers.has(n))throw function KO(t,e){return new _(3302,!1)}();if(null==r||0==r.length)throw function ZO(t){return new _(3303,!1)}();if(!function nk(t){return"start"==t||"done"==t}(r))throw function YO(t,e){return new _(3400,!1)}();const s=ct(this._elementListeners,e,[]),o={name:n,phase:r,callback:i};s.push(o);const a=ct(this._engine.statesByElement,e,new Map);return a.has(n)||(bt(e,Ha),bt(e,Ha+"-"+n),a.set(n,Tf)),()=>{this._engine.afterFlush(()=>{const l=s.indexOf(o);l>=0&&s.splice(l,1),this._triggers.has(n)||a.delete(n)})}}register(e,n){return!this._triggers.has(e)&&(this._triggers.set(e,n),!0)}_getTrigger(e){const n=this._triggers.get(e);if(!n)throw function XO(t){return new _(3401,!1)}();return n}trigger(e,n,r,i=!0){const s=this._getTrigger(n),o=new Mf(this.id,n,e);let a=this._engine.statesByElement.get(e);a||(bt(e,Ha),bt(e,Ha+"-"+n),this._engine.statesByElement.set(e,a=new Map));let l=a.get(n);const u=new If(r,this.id);if(!(r&&r.hasOwnProperty("value"))&&l&&u.absorbOptions(l.options),a.set(n,u),l||(l=Tf),u.value!==ks&&l.value===u.value){if(!function sk(t,e){const n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(let i=0;i{mr(e,m),Xt(e,v)})}return}const f=ct(this._engine.playersByElement,e,[]);f.forEach(g=>{g.namespaceId==this.id&&g.triggerName==n&&g.queued&&g.destroy()});let h=s.matchTransition(l.value,u.value,e,u.params),p=!1;if(!h){if(!i)return;h=s.fallbackTransition,p=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:n,transition:h,fromState:l,toState:u,player:o,isFallbackTransition:p}),p||(bt(e,Mw),o.onStart(()=>{pi(e,Mw)})),o.onDone(()=>{let g=this.players.indexOf(o);g>=0&&this.players.splice(g,1);const m=this._engine.playersByElement.get(e);if(m){let v=m.indexOf(o);v>=0&&m.splice(v,1)}}),this.players.push(o),f.push(o),o}deregister(e){this._triggers.delete(e),this._engine.statesByElement.forEach(n=>n.delete(e)),this._elementListeners.forEach((n,r)=>{this._elementListeners.set(r,n.filter(i=>i.name!=e))})}clearElementCache(e){this._engine.statesByElement.delete(e),this._elementListeners.delete(e);const n=this._engine.playersByElement.get(e);n&&(n.forEach(r=>r.destroy()),this._engine.playersByElement.delete(e))}_signalRemovalForInnerTriggers(e,n){const r=this._engine.driver.query(e,za,!0);r.forEach(i=>{if(i[St])return;const s=this._engine.fetchNamespacesByElement(i);s.size?s.forEach(o=>o.triggerLeaveAnimation(i,n,!1,!0)):this.clearElementCache(i)}),this._engine.afterFlushAnimationsDone(()=>r.forEach(i=>this.clearElementCache(i)))}triggerLeaveAnimation(e,n,r,i){const s=this._engine.statesByElement.get(e),o=new Map;if(s){const a=[];if(s.forEach((l,u)=>{if(o.set(u,l.value),this._triggers.has(u)){const c=this.trigger(e,u,ks,i);c&&a.push(c)}}),a.length)return this._engine.markElementAsRemoved(this.id,e,!0,n,o),r&&Bn(a).onDone(()=>this._engine.processLeaveNode(e)),!0}return!1}prepareLeaveAnimationListeners(e){const n=this._elementListeners.get(e),r=this._engine.statesByElement.get(e);if(n&&r){const i=new Set;n.forEach(s=>{const o=s.name;if(i.has(o))return;i.add(o);const l=this._triggers.get(o).fallbackTransition,u=r.get(o)||Tf,c=new If(ks),d=new Mf(this.id,o,e);this._engine.totalQueuedPlayers++,this._queue.push({element:e,triggerName:o,transition:l,fromState:u,toState:c,player:d,isFallbackTransition:!0})})}}removeNode(e,n){const r=this._engine;if(e.childElementCount&&this._signalRemovalForInnerTriggers(e,n),this.triggerLeaveAnimation(e,n,!0))return;let i=!1;if(r.totalAnimations){const s=r.players.length?r.playersByQueriedElement.get(e):[];if(s&&s.length)i=!0;else{let o=e;for(;o=o.parentNode;)if(r.statesByElement.get(o)){i=!0;break}}}if(this.prepareLeaveAnimationListeners(e),i)r.markElementAsRemoved(this.id,e,!1,n);else{const s=e[St];(!s||s===Aw)&&(r.afterFlush(()=>this.clearElementCache(e)),r.destroyInnerAnimations(e),r._onRemovalComplete(e,n))}}insertNode(e,n){bt(e,this._hostClassName)}drainQueuedTransitions(e){const n=[];return this._queue.forEach(r=>{const i=r.player;if(i.destroyed)return;const s=r.element,o=this._elementListeners.get(s);o&&o.forEach(a=>{if(a.name==r.triggerName){const l=uf(s,r.triggerName,r.fromState.value,r.toState.value);l._data=e,af(r.player,a.phase,l,a.callback)}}),i.markedForDestroy?this._engine.afterFlush(()=>{i.destroy()}):n.push(r)}),this._queue=[],n.sort((r,i)=>{const s=r.transition.ast.depCount,o=i.transition.ast.depCount;return 0==s||0==o?s-o:this._engine.driver.containsElement(r.element,i.element)?1:-1})}destroy(e){this.players.forEach(n=>n.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,e)}elementContainsData(e){let n=!1;return this._elementListeners.has(e)&&(n=!0),n=!!this._queue.find(r=>r.element===e)||n,n}}class J1{constructor(e,n,r){this.bodyNode=e,this.driver=n,this._normalizer=r,this.players=[],this.newHostElements=new Map,this.playersByElement=new Map,this.playersByQueriedElement=new Map,this.statesByElement=new Map,this.disabledNodes=new Set,this.totalAnimations=0,this.totalQueuedPlayers=0,this._namespaceLookup={},this._namespaceList=[],this._flushFns=[],this._whenQuietFns=[],this.namespacesByHostElement=new Map,this.collectedEnterElements=[],this.collectedLeaveElements=[],this.onRemovalComplete=(i,s)=>{}}_onRemovalComplete(e,n){this.onRemovalComplete(e,n)}get queuedPlayers(){const e=[];return this._namespaceList.forEach(n=>{n.players.forEach(r=>{r.queued&&e.push(r)})}),e}createNamespace(e,n){const r=new X1(e,n,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,n)?this._balanceNamespaceList(r,n):(this.newHostElements.set(n,r),this.collectEnterElement(n)),this._namespaceLookup[e]=r}_balanceNamespaceList(e,n){const r=this._namespaceList,i=this.namespacesByHostElement;if(r.length-1>=0){let o=!1,a=this.driver.getParentElement(n);for(;a;){const l=i.get(a);if(l){const u=r.indexOf(l);r.splice(u+1,0,e),o=!0;break}a=this.driver.getParentElement(a)}o||r.unshift(e)}else r.push(e);return i.set(n,e),e}register(e,n){let r=this._namespaceLookup[e];return r||(r=this.createNamespace(e,n)),r}registerTrigger(e,n,r){let i=this._namespaceLookup[e];i&&i.register(n,r)&&this.totalAnimations++}destroy(e,n){if(!e)return;const r=this._fetchNamespace(e);this.afterFlush(()=>{this.namespacesByHostElement.delete(r.hostElement),delete this._namespaceLookup[e];const i=this._namespaceList.indexOf(r);i>=0&&this._namespaceList.splice(i,1)}),this.afterFlushAnimationsDone(()=>r.destroy(n))}_fetchNamespace(e){return this._namespaceLookup[e]}fetchNamespacesByElement(e){const n=new Set,r=this.statesByElement.get(e);if(r)for(let i of r.values())if(i.namespaceId){const s=this._fetchNamespace(i.namespaceId);s&&n.add(s)}return n}trigger(e,n,r,i){if(tl(n)){const s=this._fetchNamespace(e);if(s)return s.trigger(n,r,i),!0}return!1}insertNode(e,n,r,i){if(!tl(n))return;const s=n[St];if(s&&s.setForRemoval){s.setForRemoval=!1,s.setForMove=!0;const o=this.collectedLeaveElements.indexOf(n);o>=0&&this.collectedLeaveElements.splice(o,1)}if(e){const o=this._fetchNamespace(e);o&&o.insertNode(n,r)}i&&this.collectEnterElement(n)}collectEnterElement(e){this.collectedEnterElements.push(e)}markElementAsDisabled(e,n){n?this.disabledNodes.has(e)||(this.disabledNodes.add(e),bt(e,bf)):this.disabledNodes.has(e)&&(this.disabledNodes.delete(e),pi(e,bf))}removeNode(e,n,r,i){if(tl(n)){const s=e?this._fetchNamespace(e):null;if(s?s.removeNode(n,i):this.markElementAsRemoved(e,n,!1,i),r){const o=this.namespacesByHostElement.get(n);o&&o.id!==e&&o.removeNode(n,i)}}else this._onRemovalComplete(n,i)}markElementAsRemoved(e,n,r,i,s){this.collectedLeaveElements.push(n),n[St]={namespaceId:e,setForRemoval:i,hasAnimation:r,removedBeforeQueried:!1,previousTriggersValues:s}}listen(e,n,r,i,s){return tl(n)?this._fetchNamespace(e).listen(n,r,i,s):()=>{}}_buildInstruction(e,n,r,i,s){return e.transition.build(this.driver,e.element,e.fromState.value,e.toState.value,r,i,e.fromState.options,e.toState.options,n,s)}destroyInnerAnimations(e){let n=this.driver.query(e,za,!0);n.forEach(r=>this.destroyActiveAnimationsForElement(r)),0!=this.playersByQueriedElement.size&&(n=this.driver.query(e,pf,!0),n.forEach(r=>this.finishActiveQueriedAnimationOnElement(r)))}destroyActiveAnimationsForElement(e){const n=this.playersByElement.get(e);n&&n.forEach(r=>{r.queued?r.markedForDestroy=!0:r.destroy()})}finishActiveQueriedAnimationOnElement(e){const n=this.playersByQueriedElement.get(e);n&&n.forEach(r=>r.finish())}whenRenderingDone(){return new Promise(e=>{if(this.players.length)return Bn(this.players).onDone(()=>e());e()})}processLeaveNode(e){const n=e[St];if(n&&n.setForRemoval){if(e[St]=Aw,n.namespaceId){this.destroyInnerAnimations(e);const r=this._fetchNamespace(n.namespaceId);r&&r.clearElementCache(e)}this._onRemovalComplete(e,n.setForRemoval)}e.classList?.contains(bf)&&this.markElementAsDisabled(e,!1),this.driver.query(e,".ng-animate-disabled",!0).forEach(r=>{this.markElementAsDisabled(r,!1)})}flush(e=-1){let n=[];if(this.newHostElements.size&&(this.newHostElements.forEach((r,i)=>this._balanceNamespaceList(r,i)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let r=0;rr()),this._flushFns=[],this._whenQuietFns.length){const r=this._whenQuietFns;this._whenQuietFns=[],n.length?Bn(n).onDone(()=>{r.forEach(i=>i())}):r.forEach(i=>i())}}reportError(e){throw function JO(t){return new _(3402,!1)}()}_flushAnimations(e,n){const r=new Xa,i=[],s=new Map,o=[],a=new Map,l=new Map,u=new Map,c=new Set;this.disabledNodes.forEach(b=>{c.add(b);const M=this.driver.query(b,".ng-animate-queued",!0);for(let x=0;x{const x=hf+g++;p.set(M,x),b.forEach(Z=>bt(Z,x))});const m=[],v=new Set,w=new Set;for(let b=0;bv.add(Z)):w.add(M))}const y=new Map,S=Pw(f,Array.from(v));S.forEach((b,M)=>{const x=Ua+g++;y.set(M,x),b.forEach(Z=>bt(Z,x))}),e.push(()=>{h.forEach((b,M)=>{const x=p.get(M);b.forEach(Z=>pi(Z,x))}),S.forEach((b,M)=>{const x=y.get(M);b.forEach(Z=>pi(Z,x))}),m.forEach(b=>{this.processLeaveNode(b)})});const H=[],W=[];for(let b=this._namespaceList.length-1;b>=0;b--)this._namespaceList[b].drainQueuedTransitions(n).forEach(x=>{const Z=x.player,Ne=x.element;if(H.push(Z),this.collectedEnterElements.length){const Ue=Ne[St];if(Ue&&Ue.setForMove){if(Ue.previousTriggersValues&&Ue.previousTriggersValues.has(x.triggerName)){const vr=Ue.previousTriggersValues.get(x.triggerName),It=this.statesByElement.get(x.element);if(It&&It.has(x.triggerName)){const il=It.get(x.triggerName);il.value=vr,It.set(x.triggerName,il)}}return void Z.destroy()}}const Jt=!d||!this.driver.containsElement(d,Ne),gt=y.get(Ne),Hn=p.get(Ne),de=this._buildInstruction(x,r,Hn,gt,Jt);if(de.errors&&de.errors.length)return void W.push(de);if(Jt)return Z.onStart(()=>mr(Ne,de.fromStyles)),Z.onDestroy(()=>Xt(Ne,de.toStyles)),void i.push(Z);if(x.isFallbackTransition)return Z.onStart(()=>mr(Ne,de.fromStyles)),Z.onDestroy(()=>Xt(Ne,de.toStyles)),void i.push(Z);const Bw=[];de.timelines.forEach(Ue=>{Ue.stretchStartingKeyframe=!0,this.disabledNodes.has(Ue.element)||Bw.push(Ue)}),de.timelines=Bw,r.append(Ne,de.timelines),o.push({instruction:de,player:Z,element:Ne}),de.queriedElements.forEach(Ue=>ct(a,Ue,[]).push(Z)),de.preStyleProps.forEach((Ue,vr)=>{if(Ue.size){let It=l.get(vr);It||l.set(vr,It=new Set),Ue.forEach((il,Nf)=>It.add(Nf))}}),de.postStyleProps.forEach((Ue,vr)=>{let It=u.get(vr);It||u.set(vr,It=new Set),Ue.forEach((il,Nf)=>It.add(Nf))})});if(W.length){const b=[];W.forEach(M=>{b.push(function e1(t,e){return new _(3505,!1)}())}),H.forEach(M=>M.destroy()),this.reportError(b)}const ce=new Map,ft=new Map;o.forEach(b=>{const M=b.element;r.has(M)&&(ft.set(M,M),this._beforeAnimationBuild(b.player.namespaceId,b.instruction,ce))}),i.forEach(b=>{const M=b.element;this._getPreviousPlayers(M,!1,b.namespaceId,b.triggerName,null).forEach(Z=>{ct(ce,M,[]).push(Z),Z.destroy()})});const ht=m.filter(b=>Fw(b,l,u)),pt=new Map;Nw(pt,this.driver,w,u,wn).forEach(b=>{Fw(b,l,u)&&ht.push(b)});const Cn=new Map;h.forEach((b,M)=>{Nw(Cn,this.driver,new Set(b),l,"!")}),ht.forEach(b=>{const M=pt.get(b),x=Cn.get(b);pt.set(b,new Map([...Array.from(M?.entries()??[]),...Array.from(x?.entries()??[])]))});const Ut=[],mi=[],yi={};o.forEach(b=>{const{element:M,player:x,instruction:Z}=b;if(r.has(M)){if(c.has(M))return x.onDestroy(()=>Xt(M,Z.toStyles)),x.disabled=!0,x.overrideTotalTime(Z.totalTime),void i.push(x);let Ne=yi;if(ft.size>1){let gt=M;const Hn=[];for(;gt=gt.parentNode;){const de=ft.get(gt);if(de){Ne=de;break}Hn.push(gt)}Hn.forEach(de=>ft.set(de,Ne))}const Jt=this._buildAnimation(x.namespaceId,Z,ce,s,Cn,pt);if(x.setRealPlayer(Jt),Ne===yi)Ut.push(x);else{const gt=this.playersByElement.get(Ne);gt&>.length&&(x.parentPlayer=Bn(gt)),i.push(x)}}else mr(M,Z.fromStyles),x.onDestroy(()=>Xt(M,Z.toStyles)),mi.push(x),c.has(M)&&i.push(x)}),mi.forEach(b=>{const M=s.get(b.element);if(M&&M.length){const x=Bn(M);b.setRealPlayer(x)}}),i.forEach(b=>{b.parentPlayer?b.syncPlayerEvents(b.parentPlayer):b.destroy()});for(let b=0;b!Jt.destroyed);Ne.length?rk(this,M,Ne):this.processLeaveNode(M)}return m.length=0,Ut.forEach(b=>{this.players.push(b),b.onDone(()=>{b.destroy();const M=this.players.indexOf(b);this.players.splice(M,1)}),b.play()}),Ut}elementContainsData(e,n){let r=!1;const i=n[St];return i&&i.setForRemoval&&(r=!0),this.playersByElement.has(n)&&(r=!0),this.playersByQueriedElement.has(n)&&(r=!0),this.statesByElement.has(n)&&(r=!0),this._fetchNamespace(e).elementContainsData(n)||r}afterFlush(e){this._flushFns.push(e)}afterFlushAnimationsDone(e){this._whenQuietFns.push(e)}_getPreviousPlayers(e,n,r,i,s){let o=[];if(n){const a=this.playersByQueriedElement.get(e);a&&(o=a)}else{const a=this.playersByElement.get(e);if(a){const l=!s||s==ks;a.forEach(u=>{u.queued||!l&&u.triggerName!=i||o.push(u)})}}return(r||i)&&(o=o.filter(a=>!(r&&r!=a.namespaceId||i&&i!=a.triggerName))),o}_beforeAnimationBuild(e,n,r){const s=n.element,o=n.isRemovalTransition?void 0:e,a=n.isRemovalTransition?void 0:n.triggerName;for(const l of n.timelines){const u=l.element,c=u!==s,d=ct(r,u,[]);this._getPreviousPlayers(u,c,o,a,n.toState).forEach(h=>{const p=h.getRealPlayer();p.beforeDestroy&&p.beforeDestroy(),h.destroy(),d.push(h)})}mr(s,n.fromStyles)}_buildAnimation(e,n,r,i,s,o){const a=n.triggerName,l=n.element,u=[],c=new Set,d=new Set,f=n.timelines.map(p=>{const g=p.element;c.add(g);const m=g[St];if(m&&m.removedBeforeQueried)return new Ps(p.duration,p.delay);const v=g!==l,w=function ik(t){const e=[];return xw(t,e),e}((r.get(g)||Z1).map(ce=>ce.getRealPlayer())).filter(ce=>!!ce.element&&ce.element===g),y=s.get(g),S=o.get(g),H=sw(0,this._normalizer,0,p.keyframes,y,S),W=this._buildPlayer(p,H,w);if(p.subTimeline&&i&&d.add(g),v){const ce=new Mf(e,a,g);ce.setRealPlayer(W),u.push(ce)}return W});u.forEach(p=>{ct(this.playersByQueriedElement,p.element,[]).push(p),p.onDone(()=>function ek(t,e,n){let r=t.get(e);if(r){if(r.length){const i=r.indexOf(n);r.splice(i,1)}0==r.length&&t.delete(e)}return r}(this.playersByQueriedElement,p.element,p))}),c.forEach(p=>bt(p,pw));const h=Bn(f);return h.onDestroy(()=>{c.forEach(p=>pi(p,pw)),Xt(l,n.toStyles)}),d.forEach(p=>{ct(i,p,[]).push(h)}),h}_buildPlayer(e,n,r){return n.length>0?this.driver.animate(e.element,n,e.duration,e.delay,e.easing,r):new Ps(e.duration,e.delay)}}class Mf{constructor(e,n,r){this.namespaceId=e,this.triggerName=n,this.element=r,this._player=new Ps,this._containsRealPlayer=!1,this._queuedCallbacks=new Map,this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(e){this._containsRealPlayer||(this._player=e,this._queuedCallbacks.forEach((n,r)=>{n.forEach(i=>af(e,r,void 0,i))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(e.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(e){this.totalTime=e}syncPlayerEvents(e){const n=this._player;n.triggerCallback&&e.onStart(()=>n.triggerCallback("start")),e.onDone(()=>this.finish()),e.onDestroy(()=>this.destroy())}_queueEvent(e,n){ct(this._queuedCallbacks,e,[]).push(n)}onDone(e){this.queued&&this._queueEvent("done",e),this._player.onDone(e)}onStart(e){this.queued&&this._queueEvent("start",e),this._player.onStart(e)}onDestroy(e){this.queued&&this._queueEvent("destroy",e),this._player.onDestroy(e)}init(){this._player.init()}hasStarted(){return!this.queued&&this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(e){this.queued||this._player.setPosition(e)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(e){const n=this._player;n.triggerCallback&&n.triggerCallback(e)}}function tl(t){return t&&1===t.nodeType}function Rw(t,e){const n=t.style.display;return t.style.display=e??"none",n}function Nw(t,e,n,r,i){const s=[];n.forEach(l=>s.push(Rw(l)));const o=[];r.forEach((l,u)=>{const c=new Map;l.forEach(d=>{const f=e.computeStyle(u,d,i);c.set(d,f),(!f||0==f.length)&&(u[St]=Y1,o.push(u))}),t.set(u,c)});let a=0;return n.forEach(l=>Rw(l,s[a++])),o}function Pw(t,e){const n=new Map;if(t.forEach(a=>n.set(a,[])),0==e.length)return n;const i=new Set(e),s=new Map;function o(a){if(!a)return 1;let l=s.get(a);if(l)return l;const u=a.parentNode;return l=n.has(u)?u:i.has(u)?1:o(u),s.set(a,l),l}return e.forEach(a=>{const l=o(a);1!==l&&n.get(l).push(a)}),n}function bt(t,e){t.classList?.add(e)}function pi(t,e){t.classList?.remove(e)}function rk(t,e,n){Bn(n).onDone(()=>t.processLeaveNode(e))}function xw(t,e){for(let n=0;ni.add(s)):e.set(t,r),n.delete(t),!0}class nl{constructor(e,n,r){this.bodyNode=e,this._driver=n,this._normalizer=r,this._triggerCache={},this.onRemovalComplete=(i,s)=>{},this._transitionEngine=new J1(e,n,r),this._timelineEngine=new q1(e,n,r),this._transitionEngine.onRemovalComplete=(i,s)=>this.onRemovalComplete(i,s)}registerTrigger(e,n,r,i,s){const o=e+"-"+i;let a=this._triggerCache[o];if(!a){const l=[],c=vf(this._driver,s,l,[]);if(l.length)throw function HO(t,e){return new _(3404,!1)}();a=function B1(t,e,n){return new U1(t,e,n)}(i,c,this._normalizer),this._triggerCache[o]=a}this._transitionEngine.registerTrigger(n,i,a)}register(e,n){this._transitionEngine.register(e,n)}destroy(e,n){this._transitionEngine.destroy(e,n)}onInsert(e,n,r,i){this._transitionEngine.insertNode(e,n,r,i)}onRemove(e,n,r,i){this._transitionEngine.removeNode(e,n,i||!1,r)}disableAnimations(e,n){this._transitionEngine.markElementAsDisabled(e,n)}process(e,n,r,i){if("@"==r.charAt(0)){const[s,o]=ow(r);this._timelineEngine.command(s,n,o,i)}else this._transitionEngine.trigger(e,n,r,i)}listen(e,n,r,i,s){if("@"==r.charAt(0)){const[o,a]=ow(r);return this._timelineEngine.listen(o,n,a,s)}return this._transitionEngine.listen(e,n,r,i,s)}flush(e=-1){this._transitionEngine.flush(e)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}let ak=(()=>{class t{constructor(n,r,i){this._element=n,this._startStyles=r,this._endStyles=i,this._state=0;let s=t.initialStylesByElement.get(n);s||t.initialStylesByElement.set(n,s=new Map),this._initialStyles=s}start(){this._state<1&&(this._startStyles&&Xt(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Xt(this._element,this._initialStyles),this._endStyles&&(Xt(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(mr(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(mr(this._element,this._endStyles),this._endStyles=null),Xt(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function Af(t){let e=null;return t.forEach((n,r)=>{(function lk(t){return"display"===t||"position"===t})(r)&&(e=e||new Map,e.set(r,n))}),e}class Ow{constructor(e,n,r,i){this.element=e,this.keyframes=n,this.options=r,this._specialStyles=i,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this._originalOnDoneFns=[],this._originalOnStartFns=[],this.time=0,this.parentPlayer=null,this.currentSnapshot=new Map,this._duration=r.duration,this._delay=r.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(e=>e()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;const e=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,e,this.options),this._finalKeyframe=e.length?e[e.length-1]:new Map,this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(e){const n=[];return e.forEach(r=>{n.push(Object.fromEntries(r))}),n}_triggerWebAnimation(e,n,r){return e.animate(this._convertKeyframesToObject(n),r)}onStart(e){this._originalOnStartFns.push(e),this._onStartFns.push(e)}onDone(e){this._originalOnDoneFns.push(e),this._onDoneFns.push(e)}onDestroy(e){this._onDestroyFns.push(e)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(e=>e()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(e=>e()),this._onDestroyFns=[])}setPosition(e){void 0===this.domPlayer&&this.init(),this.domPlayer.currentTime=e*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const e=new Map;this.hasStarted()&&this._finalKeyframe.forEach((r,i)=>{"offset"!==i&&e.set(i,this._finished?r:_w(this.element,i))}),this.currentSnapshot=e}triggerCallback(e){const n="start"===e?this._onStartFns:this._onDoneFns;n.forEach(r=>r()),n.length=0}}class uk{validateStyleProperty(e){return!0}validateAnimatableStyleProperty(e){return!0}matchesElement(e,n){return!1}containsElement(e,n){return cw(e,n)}getParentElement(e){return df(e)}query(e,n,r){return dw(e,n,r)}computeStyle(e,n,r){return window.getComputedStyle(e)[n]}animate(e,n,r,i,s,o=[]){const l={duration:r,delay:i,fill:0==i?"both":"forwards"};s&&(l.easing=s);const u=new Map,c=o.filter(h=>h instanceof Ow);(function h1(t,e){return 0===t||0===e})(r,i)&&c.forEach(h=>{h.currentSnapshot.forEach((p,g)=>u.set(g,p))});let d=function u1(t){return t.length?t[0]instanceof Map?t:t.map(e=>gw(e)):[]}(n).map(h=>Un(h));d=function p1(t,e,n){if(n.size&&e.length){let r=e[0],i=[];if(n.forEach((s,o)=>{r.has(o)||i.push(o),r.set(o,s)}),i.length)for(let s=1;so.set(a,_w(t,a)))}}return e}(e,d,u);const f=function ok(t,e){let n=null,r=null;return Array.isArray(e)&&e.length?(n=Af(e[0]),e.length>1&&(r=Af(e[e.length-1]))):e instanceof Map&&(n=Af(e)),n||r?new ak(t,n,r):null}(e,d);return new Ow(e,d,l,f)}}let ck=(()=>{class t extends J_{constructor(n,r){super(),this._nextAnimationId=0,this._renderer=n.createRenderer(r.body,{id:"0",encapsulation:Mt.None,styles:[],data:{animation:[]}})}build(n){const r=this._nextAnimationId.toString();this._nextAnimationId++;const i=Array.isArray(n)?ew(n):n;return kw(this._renderer,null,r,"register",[i]),new dk(r,this._renderer)}}return t.\u0275fac=function(n){return new(n||t)(I(Zi),I(je))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();class dk extends class wO{}{constructor(e,n){super(),this._id=e,this._renderer=n}create(e,n){return new fk(this._id,e,n||{},this._renderer)}}class fk{constructor(e,n,r,i){this.id=e,this.element=n,this._renderer=i,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",r)}_listen(e,n){return this._renderer.listen(this.element,`@@${this.id}:${e}`,n)}_command(e,...n){return kw(this._renderer,this.element,this.id,e,n)}onDone(e){this._listen("done",e)}onStart(e){this._listen("start",e)}onDestroy(e){this._listen("destroy",e)}init(){this._command("init")}hasStarted(){return this._started}play(){this._command("play"),this._started=!0}pause(){this._command("pause")}restart(){this._command("restart")}finish(){this._command("finish")}destroy(){this._command("destroy")}reset(){this._command("reset"),this._started=!1}setPosition(e){this._command("setPosition",e)}getPosition(){return this._renderer.engine.players[+this.id]?.getPosition()??0}}function kw(t,e,n,r,i){return t.setProperty(e,`@@${n}:${r}`,i)}const Lw="@.disabled";let hk=(()=>{class t{constructor(n,r,i){this.delegate=n,this.engine=r,this._zone=i,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),r.onRemovalComplete=(s,o)=>{const a=o?.parentNode(s);a&&o.removeChild(a,s)}}createRenderer(n,r){const s=this.delegate.createRenderer(n,r);if(!(n&&r&&r.data&&r.data.animation)){let c=this._rendererCache.get(s);return c||(c=new Vw("",s,this.engine,()=>this._rendererCache.delete(s)),this._rendererCache.set(s,c)),c}const o=r.id,a=r.id+"-"+this._currentId;this._currentId++,this.engine.register(a,n);const l=c=>{Array.isArray(c)?c.forEach(l):this.engine.registerTrigger(o,a,n,c.name,c)};return r.data.animation.forEach(l),new pk(this,a,s,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(n,r,i){n>=0&&nr(i)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(s=>{const[o,a]=s;o(a)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([r,i]))}end(){this._cdRecurDepth--,0==this._cdRecurDepth&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}}return t.\u0275fac=function(n){return new(n||t)(I(Zi),I(nl),I(ge))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})();class Vw{constructor(e,n,r,i){this.namespaceId=e,this.delegate=n,this.engine=r,this._onDestroy=i,this.destroyNode=this.delegate.destroyNode?s=>n.destroyNode(s):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy(),this._onDestroy?.()}createElement(e,n){return this.delegate.createElement(e,n)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}appendChild(e,n){this.delegate.appendChild(e,n),this.engine.onInsert(this.namespaceId,n,e,!1)}insertBefore(e,n,r,i=!0){this.delegate.insertBefore(e,n,r),this.engine.onInsert(this.namespaceId,n,e,i)}removeChild(e,n,r){this.engine.onRemove(this.namespaceId,n,this.delegate,r)}selectRootElement(e,n){return this.delegate.selectRootElement(e,n)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,n,r,i){this.delegate.setAttribute(e,n,r,i)}removeAttribute(e,n,r){this.delegate.removeAttribute(e,n,r)}addClass(e,n){this.delegate.addClass(e,n)}removeClass(e,n){this.delegate.removeClass(e,n)}setStyle(e,n,r,i){this.delegate.setStyle(e,n,r,i)}removeStyle(e,n,r){this.delegate.removeStyle(e,n,r)}setProperty(e,n,r){"@"==n.charAt(0)&&n==Lw?this.disableAnimations(e,!!r):this.delegate.setProperty(e,n,r)}setValue(e,n){this.delegate.setValue(e,n)}listen(e,n,r){return this.delegate.listen(e,n,r)}disableAnimations(e,n){this.engine.disableAnimations(e,n)}}class pk extends Vw{constructor(e,n,r,i,s){super(n,r,i,s),this.factory=e,this.namespaceId=n}setProperty(e,n,r){"@"==n.charAt(0)?"."==n.charAt(1)&&n==Lw?this.disableAnimations(e,r=void 0===r||!!r):this.engine.process(this.namespaceId,e,n.slice(1),r):this.delegate.setProperty(e,n,r)}listen(e,n,r){if("@"==n.charAt(0)){const i=function gk(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(e);let s=n.slice(1),o="";return"@"!=s.charAt(0)&&([s,o]=function mk(t){const e=t.indexOf(".");return[t.substring(0,e),t.slice(e+1)]}(s)),this.engine.listen(this.namespaceId,i,s,o,a=>{this.factory.scheduleListenerCallback(a._data||-1,r,a)})}return this.delegate.listen(e,n,r)}}const $w=[{provide:J_,useClass:ck},{provide:Cf,useFactory:function vk(){return new L1}},{provide:nl,useClass:(()=>{class t extends nl{constructor(n,r,i,s){super(n.body,r,i)}ngOnDestroy(){this.flush()}}return t.\u0275fac=function(n){return new(n||t)(I(je),I(ff),I(Cf),I(ds))},t.\u0275prov=V({token:t,factory:t.\u0275fac}),t})()},{provide:Zi,useFactory:function Dk(t,e,n){return new hk(t,e,n)},deps:[Da,nl,ge]}],Rf=[{provide:ff,useFactory:()=>new uk},{provide:_v,useValue:"BrowserAnimations"},...$w],jw=[{provide:ff,useClass:fw},{provide:_v,useValue:"NoopAnimations"},...$w];let _k=(()=>{class t{static withConfig(n){return{ngModule:t,providers:n.disableAnimations?jw:Rf}}}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=bn({type:t}),t.\u0275inj=sn({providers:Rf,imports:[OD]}),t})(),wk=(()=>{class t{}return t.\u0275fac=function(n){return new(n||t)},t.\u0275mod=bn({type:t,bootstrap:[_O]}),t.\u0275inj=sn({imports:[OD,DO,_k]}),t})();(function jA(){Lv=!1})(),AP().bootstrapModule(wk).catch(t=>console.error(t))}},re=>{re(re.s=727)}]);
\ No newline at end of file
diff --git a/cmd/pkgdash/assets/ui/polyfills.5822e5466085ff0d.js b/cmd/pkgdash/assets/ui/polyfills.5822e5466085ff0d.js
new file mode 100644
index 0000000..e1edda8
--- /dev/null
+++ b/cmd/pkgdash/assets/ui/polyfills.5822e5466085ff0d.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkui=self.webpackChunkui||[]).push([[429],{435:(ie,Ee,de)=>{de(583)},583:()=>{!function(e){const n=e.performance;function i(M){n&&n.mark&&n.mark(M)}function o(M,E){n&&n.measure&&n.measure(M,E)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function a(M){return c+M}const y=!0===e[a("forceDuplicateZoneCheck")];if(e.Zone){if(y||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let d=(()=>{class M{constructor(t,r){this._parent=t,this._name=r?r.name||"unnamed":"",this._properties=r&&r.properties||{},this._zoneDelegate=new v(this,this._parent&&this._parent._zoneDelegate,r)}static assertZonePatched(){if(e.Promise!==oe.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=M.current;for(;t.parent;)t=t.parent;return t}static get current(){return U.zone}static get currentTask(){return re}static __load_patch(t,r,k=!1){if(oe.hasOwnProperty(t)){if(!k&&y)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const C="Zone:"+t;i(C),oe[t]=r(e,M,z),o(C,C)}}get parent(){return this._parent}get name(){return this._name}get(t){const r=this.getZoneWith(t);if(r)return r._properties[t]}getZoneWith(t){let r=this;for(;r;){if(r._properties.hasOwnProperty(t))return r;r=r._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,r){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const k=this._zoneDelegate.intercept(this,t,r),C=this;return function(){return C.runGuarded(k,this,arguments,r)}}run(t,r,k,C){U={parent:U,zone:this};try{return this._zoneDelegate.invoke(this,t,r,k,C)}finally{U=U.parent}}runGuarded(t,r=null,k,C){U={parent:U,zone:this};try{try{return this._zoneDelegate.invoke(this,t,r,k,C)}catch($){if(this._zoneDelegate.handleError(this,$))throw $}}finally{U=U.parent}}runTask(t,r,k){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");if(t.state===x&&(t.type===Q||t.type===w))return;const C=t.state!=p;C&&t._transitionTo(p,j),t.runCount++;const $=re;re=t,U={parent:U,zone:this};try{t.type==w&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,r,k)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==x&&t.state!==h&&(t.type==Q||t.data&&t.data.isPeriodic?C&&t._transitionTo(j,p):(t.runCount=0,this._updateTaskCount(t,-1),C&&t._transitionTo(x,p,x))),U=U.parent,re=$}}scheduleTask(t){if(t.zone&&t.zone!==this){let k=this;for(;k;){if(k===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);k=k.parent}}t._transitionTo(X,x);const r=[];t._zoneDelegates=r,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(k){throw t._transitionTo(h,X,x),this._zoneDelegate.handleError(this,k),k}return t._zoneDelegates===r&&this._updateTaskCount(t,1),t.state==X&&t._transitionTo(j,X),t}scheduleMicroTask(t,r,k,C){return this.scheduleTask(new m(I,t,r,k,C,void 0))}scheduleMacroTask(t,r,k,C,$){return this.scheduleTask(new m(w,t,r,k,C,$))}scheduleEventTask(t,r,k,C,$){return this.scheduleTask(new m(Q,t,r,k,C,$))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||K).name+"; Execution: "+this.name+")");t._transitionTo(G,j,p);try{this._zoneDelegate.cancelTask(this,t)}catch(r){throw t._transitionTo(h,G),this._zoneDelegate.handleError(this,r),r}return this._updateTaskCount(t,-1),t._transitionTo(x,G),t.runCount=0,t}_updateTaskCount(t,r){const k=t._zoneDelegates;-1==r&&(t._zoneDelegates=null);for(let C=0;CM.hasTask(t,r),onScheduleTask:(M,E,t,r)=>M.scheduleTask(t,r),onInvokeTask:(M,E,t,r,k,C)=>M.invokeTask(t,r,k,C),onCancelTask:(M,E,t,r)=>M.cancelTask(t,r)};class v{constructor(E,t,r){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=E,this._parentDelegate=t,this._forkZS=r&&(r&&r.onFork?r:t._forkZS),this._forkDlgt=r&&(r.onFork?t:t._forkDlgt),this._forkCurrZone=r&&(r.onFork?this.zone:t._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:t._interceptZS),this._interceptDlgt=r&&(r.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:t._invokeZS),this._invokeDlgt=r&&(r.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:t._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:t._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:t._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:t._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const k=r&&r.onHasTask;(k||t&&t._hasTaskZS)&&(this._hasTaskZS=k?r:P,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=E,r.onScheduleTask||(this._scheduleTaskZS=P,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),r.onInvokeTask||(this._invokeTaskZS=P,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),r.onCancelTask||(this._cancelTaskZS=P,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(E,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,E,t):new d(E,t)}intercept(E,t,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,E,t,r):t}invoke(E,t,r,k,C){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,E,t,r,k,C):t.apply(r,k)}handleError(E,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,E,t)}scheduleTask(E,t){let r=t;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,E,t),r||(r=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=I)throw new Error("Task is missing scheduleFn.");R(t)}return r}invokeTask(E,t,r,k){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,E,t,r,k):t.callback.apply(r,k)}cancelTask(E,t){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,E,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");r=t.cancelFn(t)}return r}hasTask(E,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,E,t)}catch(r){this.handleError(E,r)}}_updateTaskCount(E,t){const r=this._taskCounts,k=r[E],C=r[E]=k+t;if(C<0)throw new Error("More tasks executed then were scheduled.");0!=k&&0!=C||this.hasTask(this.zone,{microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:E})}}class m{constructor(E,t,r,k,C,$){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=E,this.source=t,this.data=k,this.scheduleFn=C,this.cancelFn=$,!r)throw new Error("callback is not defined");this.callback=r;const l=this;this.invoke=E===Q&&k&&k.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(E,t,r){E||(E=this),ee++;try{return E.runCount++,E.zone.runTask(E,t,r)}finally{1==ee&&_(),ee--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(x,X)}_transitionTo(E,t,r){if(this._state!==t&&this._state!==r)throw new Error(`${this.type} '${this.source}': can not transition to '${E}', expecting state '${t}'${r?" or '"+r+"'":""}, was '${this._state}'.`);this._state=E,E==x&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const L=a("setTimeout"),Z=a("Promise"),N=a("then");let J,B=[],H=!1;function q(M){if(J||e[Z]&&(J=e[Z].resolve(0)),J){let E=J[N];E||(E=J.then),E.call(J,M)}else e[L](M,0)}function R(M){0===ee&&0===B.length&&q(_),M&&B.push(M)}function _(){if(!H){for(H=!0;B.length;){const M=B;B=[];for(let E=0;EU,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:R,showUncaughtError:()=>!d[a("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:q};let U={parent:null,zone:new d(null,null)},re=null,ee=0;function W(){}o("Zone","Zone"),e.Zone=d}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ie=Object.getOwnPropertyDescriptor,Ee=Object.defineProperty,de=Object.getPrototypeOf,ge=Object.create,Ve=Array.prototype.slice,Oe="addEventListener",Se="removeEventListener",Ze=Zone.__symbol__(Oe),Ne=Zone.__symbol__(Se),ce="true",ae="false",ke=Zone.__symbol__("");function Ie(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,o,c){return Zone.current.scheduleMacroTask(e,n,i,o,c)}const A=Zone.__symbol__,Pe=typeof window<"u",Te=Pe?window:void 0,Y=Pe&&Te||"object"==typeof self&&self||global;function Le(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Ie(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Be=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,we=!("nw"in Y)&&typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process),je=!we&&!Be&&!(!Pe||!Te.HTMLElement),Ue=typeof Y.process<"u"&&"[object process]"==={}.toString.call(Y.process)&&!Be&&!(!Pe||!Te.HTMLElement),Re={},We=function(e){if(!(e=e||Y.event))return;let n=Re[e.type];n||(n=Re[e.type]=A("ON_PROPERTY"+e.type));const i=this||e.target||Y,o=i[n];let c;if(je&&i===Te&&"error"===e.type){const a=e;c=o&&o.call(this,a.message,a.filename,a.lineno,a.colno,a.error),!0===c&&e.preventDefault()}else c=o&&o.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function qe(e,n,i){let o=ie(e,n);if(!o&&i&&ie(i,n)&&(o={enumerable:!0,configurable:!0}),!o||!o.configurable)return;const c=A("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete o.writable,delete o.value;const a=o.get,y=o.set,d=n.slice(2);let P=Re[d];P||(P=Re[d]=A("ON_PROPERTY"+d)),o.set=function(v){let m=this;!m&&e===Y&&(m=Y),m&&("function"==typeof m[P]&&m.removeEventListener(d,We),y&&y.call(m,null),m[P]=v,"function"==typeof v&&m.addEventListener(d,We,!1))},o.get=function(){let v=this;if(!v&&e===Y&&(v=Y),!v)return null;const m=v[P];if(m)return m;if(a){let L=a.call(this);if(L)return o.set.call(this,L),"function"==typeof v.removeAttribute&&v.removeAttribute(n),L}return null},Ee(e,n,o),e[c]=!0}function Xe(e,n,i){if(n)for(let o=0;ofunction(y,d){const P=i(y,d);return P.cbIdx>=0&&"function"==typeof d[P.cbIdx]?Me(P.name,d[P.cbIdx],P,c):a.apply(y,d)})}function ue(e,n){e[A("OriginalDelegate")]=n}let ze=!1,Ae=!1;function ft(){if(ze)return Ae;ze=!0;try{const e=Te.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(Ae=!0)}catch{}return Ae}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const o=Object.getOwnPropertyDescriptor,c=Object.defineProperty,y=i.symbol,d=[],P=!0===e[y("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],v=y("Promise"),m=y("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const u=l&&l.rejection;u?console.error("Unhandled Promise rejection:",u instanceof Error?u.message:u,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",u,u instanceof Error?u.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;d.length;){const l=d.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(u){N(u)}}};const Z=y("unhandledPromiseRejectionHandler");function N(l){i.onUnhandledError(l);try{const u=n[Z];"function"==typeof u&&u.call(this,l)}catch{}}function B(l){return l&&l.then}function H(l){return l}function J(l){return t.reject(l)}const q=y("state"),R=y("value"),_=y("finally"),K=y("parentPromiseValue"),x=y("parentPromiseState"),j=null,p=!0,G=!1;function I(l,u){return s=>{try{z(l,u,s)}catch(f){z(l,!1,f)}}}const w=function(){let l=!1;return function(s){return function(){l||(l=!0,s.apply(null,arguments))}}},oe=y("currentTaskTrace");function z(l,u,s){const f=w();if(l===s)throw new TypeError("Promise resolved with itself");if(l[q]===j){let g=null;try{("object"==typeof s||"function"==typeof s)&&(g=s&&s.then)}catch(b){return f(()=>{z(l,!1,b)})(),l}if(u!==G&&s instanceof t&&s.hasOwnProperty(q)&&s.hasOwnProperty(R)&&s[q]!==j)re(s),z(l,s[q],s[R]);else if(u!==G&&"function"==typeof g)try{g.call(s,f(I(l,u)),f(I(l,!1)))}catch(b){f(()=>{z(l,!1,b)})()}else{l[q]=u;const b=l[R];if(l[R]=s,l[_]===_&&u===p&&(l[q]=l[x],l[R]=l[K]),u===G&&s instanceof Error){const T=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;T&&c(s,oe,{configurable:!0,enumerable:!1,writable:!0,value:T})}for(let T=0;T{try{const D=l[R],O=!!s&&_===s[_];O&&(s[K]=D,s[x]=b);const S=u.run(T,void 0,O&&T!==J&&T!==H?[]:[D]);z(s,!0,S)}catch(D){z(s,!1,D)}},s)}const M=function(){},E=e.AggregateError;class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(u){return z(new this(null),p,u)}static reject(u){return z(new this(null),G,u)}static any(u){if(!u||"function"!=typeof u[Symbol.iterator])return Promise.reject(new E([],"All promises were rejected"));const s=[];let f=0;try{for(let T of u)f++,s.push(t.resolve(T))}catch{return Promise.reject(new E([],"All promises were rejected"))}if(0===f)return Promise.reject(new E([],"All promises were rejected"));let g=!1;const b=[];return new t((T,D)=>{for(let O=0;O{g||(g=!0,T(S))},S=>{b.push(S),f--,0===f&&(g=!0,D(new E(b,"All promises were rejected")))})})}static race(u){let s,f,g=new this((D,O)=>{s=D,f=O});function b(D){s(D)}function T(D){f(D)}for(let D of u)B(D)||(D=this.resolve(D)),D.then(b,T);return g}static all(u){return t.allWithCallback(u)}static allSettled(u){return(this&&this.prototype instanceof t?this:t).allWithCallback(u,{thenCallback:f=>({status:"fulfilled",value:f}),errorCallback:f=>({status:"rejected",reason:f})})}static allWithCallback(u,s){let f,g,b=new this((S,V)=>{f=S,g=V}),T=2,D=0;const O=[];for(let S of u){B(S)||(S=this.resolve(S));const V=D;try{S.then(F=>{O[V]=s?s.thenCallback(F):F,T--,0===T&&f(O)},F=>{s?(O[V]=s.errorCallback(F),T--,0===T&&f(O)):g(F)})}catch(F){g(F)}T++,D++}return T-=2,0===T&&f(O),b}constructor(u){const s=this;if(!(s instanceof t))throw new Error("Must be an instanceof Promise.");s[q]=j,s[R]=[];try{const f=w();u&&u(f(I(s,p)),f(I(s,G)))}catch(f){z(s,!1,f)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(u,s){var f;let g=null===(f=this.constructor)||void 0===f?void 0:f[Symbol.species];(!g||"function"!=typeof g)&&(g=this.constructor||t);const b=new g(M),T=n.current;return this[q]==j?this[R].push(T,b,u,s):ee(this,T,b,u,s),b}catch(u){return this.then(null,u)}finally(u){var s;let f=null===(s=this.constructor)||void 0===s?void 0:s[Symbol.species];(!f||"function"!=typeof f)&&(f=t);const g=new f(M);g[_]=_;const b=n.current;return this[q]==j?this[R].push(b,g,u,u):ee(this,b,g,u,u),g}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const r=e[v]=e.Promise;e.Promise=t;const k=y("thenPatched");function C(l){const u=l.prototype,s=o(u,"then");if(s&&(!1===s.writable||!s.configurable))return;const f=u.then;u[m]=f,l.prototype.then=function(g,b){return new t((D,O)=>{f.call(this,D,O)}).then(g,b)},l[k]=!0}return i.patchThen=C,r&&(C(r),le(e,"fetch",l=>function $(l){return function(u,s){let f=l.apply(u,s);if(f instanceof t)return f;let g=f.constructor;return g[k]||C(g),f}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=d,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=A("OriginalDelegate"),o=A("Promise"),c=A("Error"),a=function(){if("function"==typeof this){const v=this[i];if(v)return"function"==typeof v?n.call(v):Object.prototype.toString.call(v);if(this===Promise){const m=e[o];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};a[i]=n,Function.prototype.toString=a;const y=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":y.call(this)}});let ye=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){ye=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{ye=!1}const ht={useG:!0},te={},Ye={},$e=new RegExp("^"+ke+"(\\w+)(true|false)$"),Ke=A("propagationStopped");function Je(e,n){const i=(n?n(e):e)+ae,o=(n?n(e):e)+ce,c=ke+i,a=ke+o;te[e]={},te[e][ae]=c,te[e][ce]=a}function dt(e,n,i,o){const c=o&&o.add||Oe,a=o&&o.rm||Se,y=o&&o.listeners||"eventListeners",d=o&&o.rmAll||"removeAllListeners",P=A(c),v="."+c+":",Z=function(R,_,K){if(R.isRemoved)return;const x=R.callback;let X;"object"==typeof x&&x.handleEvent&&(R.callback=p=>x.handleEvent(p),R.originalDelegate=x);try{R.invoke(R,_,[K])}catch(p){X=p}const j=R.options;return j&&"object"==typeof j&&j.once&&_[a].call(_,K.type,R.originalDelegate?R.originalDelegate:R.callback,j),X};function N(R,_,K){if(!(_=_||e.event))return;const x=R||_.target||e,X=x[te[_.type][K?ce:ae]];if(X){const j=[];if(1===X.length){const p=Z(X[0],x,_);p&&j.push(p)}else{const p=X.slice();for(let G=0;G{throw G})}}}const B=function(R){return N(this,R,!1)},H=function(R){return N(this,R,!0)};function J(R,_){if(!R)return!1;let K=!0;_&&void 0!==_.useG&&(K=_.useG);const x=_&&_.vh;let X=!0;_&&void 0!==_.chkDup&&(X=_.chkDup);let j=!1;_&&void 0!==_.rt&&(j=_.rt);let p=R;for(;p&&!p.hasOwnProperty(c);)p=de(p);if(!p&&R[c]&&(p=R),!p||p[P])return!1;const G=_&&_.eventNameToString,h={},I=p[P]=p[c],w=p[A(a)]=p[a],Q=p[A(y)]=p[y],oe=p[A(d)]=p[d];let z;function U(s,f){return!ye&&"object"==typeof s&&s?!!s.capture:ye&&f?"boolean"==typeof s?{capture:s,passive:!0}:s?"object"==typeof s&&!1!==s.passive?Object.assign(Object.assign({},s),{passive:!0}):s:{passive:!0}:s}_&&_.prepend&&(z=p[A(_.prepend)]=p[_.prepend]);const t=K?function(s){if(!h.isExisting)return I.call(h.target,h.eventName,h.capture?H:B,h.options)}:function(s){return I.call(h.target,h.eventName,s.invoke,h.options)},r=K?function(s){if(!s.isRemoved){const f=te[s.eventName];let g;f&&(g=f[s.capture?ce:ae]);const b=g&&s.target[g];if(b)for(let T=0;Tfunction(c,a){c[Ke]=!0,o&&o.apply(c,a)})}function Et(e,n,i,o,c){const a=Zone.__symbol__(o);if(n[a])return;const y=n[a]=n[o];n[o]=function(d,P,v){return P&&P.prototype&&c.forEach(function(m){const L=`${i}.${o}::`+m,Z=P.prototype;try{if(Z.hasOwnProperty(m)){const N=e.ObjectGetOwnPropertyDescriptor(Z,m);N&&N.value?(N.value=e.wrapWithCurrentZone(N.value,L),e._redefineProperty(P.prototype,m,N)):Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}else Z[m]&&(Z[m]=e.wrapWithCurrentZone(Z[m],L))}catch{}}),y.call(n,d,P,v)},e.attachOriginToPatched(n[o],y)}function et(e,n,i){if(!i||0===i.length)return n;const o=i.filter(a=>a.target===e);if(!o||0===o.length)return n;const c=o[0].ignoreProperties;return n.filter(a=>-1===c.indexOf(a))}function tt(e,n,i,o){e&&Xe(e,et(e,n,i),o)}function He(e){return Object.getOwnPropertyNames(e).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}Zone.__load_patch("util",(e,n,i)=>{const o=He(e);i.patchOnProperties=Xe,i.patchMethod=le,i.bindArguments=Le,i.patchMacroTask=lt;const c=n.__symbol__("BLACK_LISTED_EVENTS"),a=n.__symbol__("UNPATCHED_EVENTS");e[a]&&(e[c]=e[a]),e[c]&&(n[c]=n[a]=e[c]),i.patchEventPrototype=_t,i.patchEventTarget=dt,i.isIEOrEdge=ft,i.ObjectDefineProperty=Ee,i.ObjectGetOwnPropertyDescriptor=ie,i.ObjectCreate=ge,i.ArraySlice=Ve,i.patchClass=ve,i.wrapWithCurrentZone=Ie,i.filterProperties=et,i.attachOriginToPatched=ue,i._redefineProperty=Object.defineProperty,i.patchCallbacks=Et,i.getGlobalObjects=()=>({globalSources:Ye,zoneSymbolEventNames:te,eventNames:o,isBrowser:je,isMix:Ue,isNode:we,TRUE_STR:ce,FALSE_STR:ae,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Oe,REMOVE_EVENT_LISTENER_STR:Se})});const Ce=A("zoneTask");function pe(e,n,i,o){let c=null,a=null;i+=o;const y={};function d(v){const m=v.data;return m.args[0]=function(){return v.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),v}function P(v){return a.call(e,v.data.handleId)}c=le(e,n+=o,v=>function(m,L){if("function"==typeof L[0]){const Z={isPeriodic:"Interval"===o,delay:"Timeout"===o||"Interval"===o?L[1]||0:void 0,args:L},N=L[0];L[0]=function(){try{return N.apply(this,arguments)}finally{Z.isPeriodic||("number"==typeof Z.handleId?delete y[Z.handleId]:Z.handleId&&(Z.handleId[Ce]=null))}};const B=Me(n,L[0],Z,d,P);if(!B)return B;const H=B.data.handleId;return"number"==typeof H?y[H]=B:H&&(H[Ce]=B),H&&H.ref&&H.unref&&"function"==typeof H.ref&&"function"==typeof H.unref&&(B.ref=H.ref.bind(H),B.unref=H.unref.bind(H)),"number"==typeof H||H?H:B}return v.apply(e,L)}),a=le(e,i,v=>function(m,L){const Z=L[0];let N;"number"==typeof Z?N=y[Z]:(N=Z&&Z[Ce],N||(N=Z)),N&&"string"==typeof N.type?"notScheduled"!==N.state&&(N.cancelFn&&N.data.isPeriodic||0===N.runCount)&&("number"==typeof Z?delete y[Z]:Z&&(Z[Ce]=null),N.zone.cancelTask(N)):v.apply(e,L)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",o=>function(c,a){n.current.scheduleMicroTask("queueMicrotask",a[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";pe(e,n,i,"Timeout"),pe(e,n,i,"Interval"),pe(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{pe(e,"request","cancel","AnimationFrame"),pe(e,"mozRequest","mozCancel","AnimationFrame"),pe(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let o=0;ofunction(P,v){return n.current.run(a,e,v,d)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function mt(e,n){n.patchEventPrototype(e,n)})(e,i),function pt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:o,TRUE_STR:c,FALSE_STR:a,ZONE_SYMBOL_PREFIX:y}=n.getGlobalObjects();for(let P=0;P{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Tt(e,n){if(we&&!Ue||Zone[e.symbol("patchEvents")])return;const i=n.__Zone_ignore_on_properties;let o=[];if(je){const c=window;o=o.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);const a=function ut(){try{const e=Te.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:c,ignoreProperties:["error"]}]:[];tt(c,He(c),i&&i.concat(a),de(c))}o=o.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{!function yt(e,n){const{isBrowser:i,isMix:o}=n.getGlobalObjects();(i||o)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function P(v){const m=v.XMLHttpRequest;if(!m)return;const L=m.prototype;let N=L[Ze],B=L[Ne];if(!N){const h=v.XMLHttpRequestEventTarget;if(h){const I=h.prototype;N=I[Ze],B=I[Ne]}}const H="readystatechange",J="scheduled";function q(h){const I=h.data,w=I.target;w[a]=!1,w[d]=!1;const Q=w[c];N||(N=w[Ze],B=w[Ne]),Q&&B.call(w,H,Q);const oe=w[c]=()=>{if(w.readyState===w.DONE)if(!I.aborted&&w[a]&&h.state===J){const U=w[n.__symbol__("loadfalse")];if(0!==w.status&&U&&U.length>0){const re=h.invoke;h.invoke=function(){const ee=w[n.__symbol__("loadfalse")];for(let W=0;Wfunction(h,I){return h[o]=0==I[2],h[y]=I[1],K.apply(h,I)}),X=A("fetchTaskAborting"),j=A("fetchTaskScheduling"),p=le(L,"send",()=>function(h,I){if(!0===n.current[j]||h[o])return p.apply(h,I);{const w={target:h,url:h[y],isPeriodic:!1,args:I,aborted:!1},Q=Me("XMLHttpRequest.send",R,w,q,_);h&&!0===h[d]&&!w.aborted&&Q.state===J&&Q.invoke()}}),G=le(L,"abort",()=>function(h,I){const w=function Z(h){return h[i]}(h);if(w&&"string"==typeof w.type){if(null==w.cancelFn||w.data&&w.data.aborted)return;w.zone.cancelTask(w)}else if(!0===n.current[X])return G.apply(h,I)})}(e);const i=A("xhrTask"),o=A("xhrSync"),c=A("xhrListener"),a=A("xhrScheduled"),y=A("xhrURL"),d=A("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function at(e,n){const i=e.constructor.name;for(let o=0;o{const P=function(){return d.apply(this,Le(arguments,i+"."+c))};return ue(P,d),P})(a)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(o){return function(c){Qe(e,o).forEach(y=>{const d=e.PromiseRejectionEvent;if(d){const P=new d(o,{promise:c.promise,reason:c.rejection});y.invoke(P)}})}}e.PromiseRejectionEvent&&(n[A("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[A("rejectionHandledHandler")]=i("rejectionhandled"))})}},ie=>{ie(ie.s=435)}]);
\ No newline at end of file
diff --git a/cmd/pkgdash/assets/ui/runtime.7cb62255c16cf7ce.js b/cmd/pkgdash/assets/ui/runtime.7cb62255c16cf7ce.js
new file mode 100644
index 0000000..c51d3cc
--- /dev/null
+++ b/cmd/pkgdash/assets/ui/runtime.7cb62255c16cf7ce.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,_={},i={};function n(e){var a=i[e];if(void 0!==a)return a.exports;var r=i[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,t,u)=>{if(!r){var o=1/0;for(f=0;f=u)&&Object.keys(n.O).every(h=>n.O[h](r[l]))?r.splice(l--,1):(s=!1,u0&&e[f-1][2]>u;f--)e[f]=e[f-1];e[f]=[r,t,u]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=t=>0===e[t];var a=(t,u)=>{var l,c,[f,o,s]=u,v=0;if(f.some(d=>0!==e[d])){for(l in o)n.o(o,l)&&(n.m[l]=o[l]);if(s)var b=s(n)}for(t&&t(u);v.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){color:#00000061}.mat-form-field-disabled .mat-date-range-input-separator{color:#00000061}.mat-calendar-body-in-preview{color:#0000003d}.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#00000061}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){border-color:#0000002e}.mat-calendar-body-in-range:before{background:rgba(63,81,181,.2)}.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-calendar-body-comparison-bridge-start:before,[dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-comparison-bridge-end:before,[dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(63,81,181,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-calendar-body-selected{background-color:#3f51b5;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#3f51b566}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#3f51b54d}.mat-datepicker-content{box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;background-color:#fff;color:#000000de}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range:before{background:rgba(255,64,129,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-accent [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(255,64,129,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-accent .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-accent .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-accent .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-accent .mat-calendar-body-selected{background-color:#ff4081;color:#fff}.mat-datepicker-content.mat-accent .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#ff408166}.mat-datepicker-content.mat-accent .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-accent .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-accent .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#ff40814d}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range:before{background:rgba(244,67,54,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range:before{background:rgba(249,171,0,.2)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-start:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-end:before{background:linear-gradient(to right,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-bridge-end:before,.mat-datepicker-content.mat-warn [dir=rtl] .mat-calendar-body-comparison-bridge-start:before{background:linear-gradient(to left,rgba(244,67,54,.2) 50%,rgba(249,171,0,.2) 50%)}.mat-datepicker-content.mat-warn .mat-calendar-body-in-range>.mat-calendar-body-comparison-identical,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range:after{background:#a8dab5}.mat-datepicker-content.mat-warn .mat-calendar-body-comparison-identical.mat-calendar-body-selected,.mat-datepicker-content.mat-warn .mat-calendar-body-in-comparison-range>.mat-calendar-body-selected{background:#46a35e}.mat-datepicker-content.mat-warn .mat-calendar-body-selected{background-color:#f44336;color:#fff}.mat-datepicker-content.mat-warn .mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:#f4433666}.mat-datepicker-content.mat-warn .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-datepicker-content.mat-warn .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical),.mat-datepicker-content.mat-warn .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background-color:#f443364d}.mat-datepicker-content-touch{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f}.mat-datepicker-toggle-active{color:#3f51b5}.mat-datepicker-toggle-active.mat-accent{color:#ff4081}.mat-datepicker-toggle-active.mat-warn{color:#f44336}.mat-date-range-input-inner[disabled]{color:#00000061}.mat-dialog-container{box-shadow:0 11px 15px -7px #0003,0 24px 38px 3px #00000024,0 9px 46px 8px #0000001f;background:#fff;color:#000000de}.mat-divider{border-top-color:#0000001f}.mat-divider-vertical{border-right-color:#0000001f}.mat-expansion-panel{background:#fff;color:#000000de}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.mat-action-row{border-top-color:#0000001f}.mat-expansion-panel .mat-expansion-panel-header.cdk-keyboard-focused:not([aria-disabled=true]),.mat-expansion-panel .mat-expansion-panel-header.cdk-program-focused:not([aria-disabled=true]),.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:hover:not([aria-disabled=true]){background:rgba(0,0,0,.04)}@media (hover: none){.mat-expansion-panel:not(.mat-expanded):not([aria-disabled=true]) .mat-expansion-panel-header:hover{background:#fff}}.mat-expansion-panel-header-title{color:#000000de}.mat-expansion-panel-header-description,.mat-expansion-indicator:after{color:#0000008a}.mat-expansion-panel-header[aria-disabled=true]{color:#00000042}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header{height:48px}.mat-expansion-panel-header.mat-expanded{height:64px}.mat-form-field-label,.mat-hint{color:#0009}.mat-form-field.mat-focused .mat-form-field-label{color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-label.mat-accent{color:#ff4081}.mat-form-field.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ff4081}.mat-form-field-ripple{background-color:#000000de}.mat-form-field.mat-focused .mat-form-field-ripple{background-color:#3f51b5}.mat-form-field.mat-focused .mat-form-field-ripple.mat-accent{background-color:#ff4081}.mat-form-field.mat-focused .mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) .mat-form-field-infix:after{color:#3f51b5}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-accent .mat-form-field-infix:after{color:#ff4081}.mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid).mat-warn .mat-form-field-infix:after{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-label,.mat-form-field.mat-form-field-invalid .mat-form-field-label.mat-accent,.mat-form-field.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker{color:#f44336}.mat-form-field.mat-form-field-invalid .mat-form-field-ripple,.mat-form-field.mat-form-field-invalid .mat-form-field-ripple.mat-accent{background-color:#f44336}.mat-error{color:#f44336}.mat-form-field-appearance-legacy .mat-form-field-label,.mat-form-field-appearance-legacy .mat-hint{color:#0000008a}.mat-form-field-appearance-legacy .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-legacy.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-standard .mat-form-field-underline{background-color:#0000006b}.mat-form-field-appearance-standard.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0%,rgba(0,0,0,.42) 33%,transparent 0%);background-size:4px 100%;background-repeat:repeat-x}.mat-form-field-appearance-fill .mat-form-field-flex{background-color:#0000000a}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-flex{background-color:#00000005}.mat-form-field-appearance-fill .mat-form-field-underline:before{background-color:#0000006b}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-fill.mat-form-field-disabled .mat-form-field-underline:before{background-color:transparent}.mat-form-field-appearance-outline .mat-form-field-outline{color:#0000001f}.mat-form-field-appearance-outline .mat-form-field-outline-thick{color:#000000de}.mat-form-field-appearance-outline.mat-focused .mat-form-field-outline-thick{color:#3f51b5}.mat-form-field-appearance-outline.mat-focused.mat-accent .mat-form-field-outline-thick{color:#ff4081}.mat-form-field-appearance-outline.mat-focused.mat-warn .mat-form-field-outline-thick,.mat-form-field-appearance-outline.mat-form-field-invalid.mat-form-field-invalid .mat-form-field-outline-thick{color:#f44336}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-label{color:#00000061}.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{color:#0000000f}.mat-icon.mat-primary{color:#3f51b5}.mat-icon.mat-accent{color:#ff4081}.mat-icon.mat-warn{color:#f44336}.mat-form-field-type-mat-native-select .mat-form-field-infix:after{color:#0000008a}.mat-input-element:disabled,.mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix:after{color:#00000061}.mat-input-element{caret-color:#3f51b5}.mat-input-element::placeholder{color:#0000006b}.mat-input-element::-moz-placeholder{color:#0000006b}.mat-input-element::-webkit-input-placeholder{color:#0000006b}.mat-input-element:-ms-input-placeholder{color:#0000006b}.mat-form-field.mat-accent .mat-input-element{caret-color:#ff4081}.mat-form-field.mat-warn .mat-input-element,.mat-form-field-invalid .mat-input-element{caret-color:#f44336}.mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix:after{color:#f44336}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{color:#000000de}.mat-list-base .mat-subheader{color:#0000008a}.mat-list-item-disabled{background-color:#eee}.mat-list-option:hover,.mat-list-option:focus,.mat-nav-list .mat-list-item:hover,.mat-nav-list .mat-list-item:focus,.mat-action-list .mat-list-item:hover,.mat-action-list .mat-list-item:focus{background:rgba(0,0,0,.04)}.mat-list-single-selected-option,.mat-list-single-selected-option:hover,.mat-list-single-selected-option:focus{background:rgba(0,0,0,.12)}.mat-menu-panel{background:#fff}.mat-menu-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-menu-item{background:transparent;color:#000000de}.mat-menu-item[disabled],.mat-menu-item[disabled] .mat-menu-submenu-icon,.mat-menu-item[disabled] .mat-icon-no-color{color:#00000061}.mat-menu-item .mat-icon-no-color,.mat-menu-submenu-icon{color:#0000008a}.mat-menu-item:hover:not([disabled]),.mat-menu-item.cdk-program-focused:not([disabled]),.mat-menu-item.cdk-keyboard-focused:not([disabled]),.mat-menu-item-highlighted:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:#0000008a}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-paginator-first,.mat-paginator-last{border-top:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment,.mat-icon-button[disabled] .mat-paginator-first,.mat-icon-button[disabled] .mat-paginator-last{border-color:#00000061}.mat-paginator-container{min-height:56px}.mat-progress-bar-background{fill:#cbd0e9}.mat-progress-bar-buffer{background-color:#cbd0e9}.mat-progress-bar-fill:after{background-color:#3f51b5}.mat-progress-bar.mat-accent .mat-progress-bar-background{fill:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#fbccdc}.mat-progress-bar.mat-accent .mat-progress-bar-fill:after{background-color:#ff4081}.mat-progress-bar.mat-warn .mat-progress-bar-background{fill:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#f9ccc9}.mat-progress-bar.mat-warn .mat-progress-bar-fill:after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#3f51b5}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ff4081}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:#0000008a}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#3f51b5}.mat-radio-button.mat-primary .mat-radio-inner-circle,.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-primary:active .mat-radio-persistent-ripple{background-color:#3f51b5}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ff4081}.mat-radio-button.mat-accent .mat-radio-inner-circle,.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-accent:active .mat-radio-persistent-ripple{background-color:#ff4081}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle,.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-persistent-ripple,.mat-radio-button.mat-warn:active .mat-radio-persistent-ripple{background-color:#f44336}.mat-radio-button.mat-radio-disabled.mat-radio-checked .mat-radio-outer-circle,.mat-radio-button.mat-radio-disabled .mat-radio-outer-circle{border-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-ripple .mat-ripple-element,.mat-radio-button.mat-radio-disabled .mat-radio-inner-circle{background-color:#00000061}.mat-radio-button.mat-radio-disabled .mat-radio-label-content{color:#00000061}.mat-radio-button .mat-ripple-element{background-color:#000}.mat-select-value{color:#000000de}.mat-select-placeholder{color:#0000006b}.mat-select-disabled .mat-select-value{color:#00000061}.mat-select-arrow{color:#0000008a}.mat-select-panel{background:#fff}.mat-select-panel:not([class*=mat-elevation-z]){box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#3f51b5}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ff4081}.mat-form-field.mat-focused.mat-warn .mat-select-arrow,.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:#00000061}.mat-drawer-container{background-color:#fafafa;color:#000000de}.mat-drawer{background-color:#fff;color:#000000de}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer:not(.mat-drawer-side){box-shadow:0 8px 10px -5px #0003,0 16px 24px 2px #00000024,0 6px 30px 5px #0000001f}.mat-drawer-side{border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-side.mat-drawer-end,[dir=rtl] .mat-drawer-side{border-left:solid 1px rgba(0,0,0,.12);border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-left:none;border-right:solid 1px rgba(0,0,0,.12)}.mat-drawer-backdrop.mat-drawer-shown{background-color:#0009}.mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:#ff4081}.mat-slide-toggle.mat-checked .mat-slide-toggle-bar{background-color:#ff40818a}.mat-slide-toggle.mat-checked .mat-ripple-element{background-color:#ff4081}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-thumb{background-color:#3f51b5}.mat-slide-toggle.mat-primary.mat-checked .mat-slide-toggle-bar{background-color:#3f51b58a}.mat-slide-toggle.mat-primary.mat-checked .mat-ripple-element{background-color:#3f51b5}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked .mat-slide-toggle-bar{background-color:#f443368a}.mat-slide-toggle.mat-warn.mat-checked .mat-ripple-element{background-color:#f44336}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:#000}.mat-slide-toggle-thumb{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f;background-color:#fafafa}.mat-slide-toggle-bar{background-color:#00000061}.mat-slider-track-background{background-color:#00000042}.mat-primary .mat-slider-track-fill,.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label{background-color:#3f51b5}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-primary .mat-slider-focus-ring{background-color:#3f51b533}.mat-accent .mat-slider-track-fill,.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label{background-color:#ff4081}.mat-accent .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-focus-ring{background-color:#ff408133}.mat-warn .mat-slider-track-fill,.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-warn .mat-slider-focus-ring{background-color:#f4433633}.mat-slider:hover .mat-slider-track-background,.mat-slider.cdk-focused .mat-slider-track-background{background-color:#00000061}.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill,.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled:hover .mat-slider-track-background{background-color:#00000042}.mat-slider-min-value .mat-slider-focus-ring{background-color:#0000001f}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:#000000de}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:#00000042}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:#00000042;background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb{border-color:#00000061}.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb{border-color:#00000042}.mat-slider-has-ticks .mat-slider-wrapper:after{border-color:#000000b3}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover:not([aria-disabled]),.mat-step-header:hover[aria-disabled=false]{background-color:#0000000a}.mat-step-header:hover[aria-disabled=true]{cursor:default}@media (hover: none){.mat-step-header:hover{background:none}}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:#0000008a}.mat-step-header .mat-step-icon{background-color:#0000008a;color:#fff}.mat-step-header .mat-step-icon-selected,.mat-step-header .mat-step-icon-state-done,.mat-step-header .mat-step-icon-state-edit{background-color:#3f51b5;color:#fff}.mat-step-header.mat-accent .mat-step-icon{color:#fff}.mat-step-header.mat-accent .mat-step-icon-selected,.mat-step-header.mat-accent .mat-step-icon-state-done,.mat-step-header.mat-accent .mat-step-icon-state-edit{background-color:#ff4081;color:#fff}.mat-step-header.mat-warn .mat-step-icon{color:#fff}.mat-step-header.mat-warn .mat-step-icon-selected,.mat-step-header.mat-warn .mat-step-icon-state-done,.mat-step-header.mat-warn .mat-step-icon-state-edit{background-color:#f44336;color:#fff}.mat-step-header .mat-step-icon-state-error{background-color:transparent;color:#f44336}.mat-step-header .mat-step-label.mat-step-label-active{color:#000000de}.mat-step-header .mat-step-label.mat-step-label-error{color:#f44336}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line:before{border-left-color:#0000001f}.mat-horizontal-stepper-header:before,.mat-horizontal-stepper-header:after,.mat-stepper-horizontal-line{border-top-color:#0000001f}.mat-horizontal-stepper-header{height:72px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header,.mat-vertical-stepper-header{padding:24px}.mat-stepper-vertical-line:before{top:-16px;bottom:-16px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:after,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:before{top:36px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{top:36px}.mat-sort-header-arrow{color:#757575}.mat-tab-nav-bar,.mat-tab-header{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-nav-bar,.mat-tab-group-inverted-header .mat-tab-header{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:#000000de}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:#00000061}.mat-tab-header-pagination-chevron{border-color:#000000de}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#00000061}.mat-tab-group[class*=mat-background-]>.mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#3f51b5}.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ff4081}.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.mat-tab-group.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-header .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn>.mat-tab-link-container .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-primary .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#c5cae94d}.mat-tab-group.mat-background-primary>.mat-tab-header,.mat-tab-group.mat-background-primary>.mat-tab-link-container,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination{background-color:#3f51b5}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-primary>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-tab-group.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-accent .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ff80ab4d}.mat-tab-group.mat-background-accent>.mat-tab-header,.mat-tab-group.mat-background-accent>.mat-tab-link-container,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination{background-color:#ff4081}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-accent>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-tab-group.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-group.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-label.cdk-program-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-keyboard-focused:not(.mat-tab-disabled),.mat-tab-nav-bar.mat-background-warn .mat-tab-link.cdk-program-focused:not(.mat-tab-disabled){background-color:#ffcdd24d}.mat-tab-group.mat-background-warn>.mat-tab-header,.mat-tab-group.mat-background-warn>.mat-tab-link-container,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination{background-color:#f44336}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-tab-link.mat-tab-disabled{color:#fff6}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-group.mat-background-warn>.mat-tab-header .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-focus-indicator:before,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-focus-indicator:before{border-color:#fff}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#fff;opacity:.4}.mat-tab-group.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-group.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-link-container .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn>.mat-tab-header-pagination .mat-ripple-element{background-color:#fff;opacity:.12}.mat-toolbar{background:#f5f5f5;color:#000000de}.mat-toolbar.mat-primary{background:#3f51b5;color:#fff}.mat-toolbar.mat-accent{background:#ff4081;color:#fff}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-toolbar .mat-form-field-underline,.mat-toolbar .mat-form-field-ripple,.mat-toolbar .mat-focused .mat-form-field-ripple{background-color:currentColor}.mat-toolbar .mat-form-field-label,.mat-toolbar .mat-focused .mat-form-field-label,.mat-toolbar .mat-select-value,.mat-toolbar .mat-select-arrow,.mat-toolbar .mat-form-field.mat-focused .mat-select-arrow{color:inherit}.mat-toolbar .mat-input-element{caret-color:currentColor}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width: 599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-tree{background:#fff}.mat-tree-node,.mat-nested-tree-node{color:#000000de}.mat-tree-node{min-height:48px}.mat-snack-bar-container{color:#ffffffb3;background:#323232;box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.mat-simple-snackbar-action{color:#ff4081}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}
diff --git a/cmd/pkgdash/main.go b/cmd/pkgdash/main.go
index 13398aa..ee19e9c 100644
--- a/cmd/pkgdash/main.go
+++ b/cmd/pkgdash/main.go
@@ -4,6 +4,7 @@ import (
"context"
"crypto/tls"
"embed"
+ "io/fs"
"net/http"
"time"
@@ -25,6 +26,8 @@ import (
httpsrv "go.unistack.org/micro-server-http/v4"
healthhandler "go.unistack.org/micro-server-http/v4/handler/health"
meterhandler "go.unistack.org/micro-server-http/v4/handler/meter"
+ spahandler "go.unistack.org/micro-server-http/v4/handler/spa"
+ swaggerui "go.unistack.org/micro-server-http/v4/handler/swagger-ui"
"go.unistack.org/micro/v4"
"go.unistack.org/micro/v4/config"
"go.unistack.org/micro/v4/logger"
@@ -41,6 +44,8 @@ var (
AppVersion string = "latest" // filled when build
)
+//go:generate rm -rf assets
+//go:generate mkdir assets
//go:generate cp -vr ../../ui/dist/ui assets/
//go:embed assets/*
var assets embed.FS
@@ -98,6 +103,8 @@ func main() {
logger.Fatalf(ctx, "failed to validate config: %v", err)
}
+ swaggerui.Config["url"] = "../service.swagger.yaml"
+
meter.DefaultMeter = victoriameter.NewMeter(
meter.Path(cfg.Meter.Path),
meter.WriteFDMetrics(true),
@@ -115,6 +122,11 @@ func main() {
logger.Fatalf(ctx, "failed to init service: %v", err)
}
+ assetsUI, err := fs.Sub(assets, "assets/ui")
+ if err != nil {
+ logger.Fatalf(ctx, "failed to get assets: %v", err)
+ }
+
if err := svc.Server("http").Init(
options.Address(cfg.Server.Addr),
options.Name(cfg.Server.Name),
@@ -122,6 +134,9 @@ func main() {
options.Codecs("application/json", jsonpbcodec.NewCodec()),
options.Address(cfg.Server.Addr),
options.Context(ctx),
+ httpsrv.PathHandler(http.MethodGet, "/ui/*", spahandler.Handler("/ui/", assetsUI)),
+ httpsrv.PathHandler(http.MethodHead, "/ui/*", spahandler.Handler("/ui/", assetsUI)),
+ httpsrv.PathHandler(http.MethodGet, "/swagger-ui/*", swaggerui.Handler("/swagger-ui")),
); err != nil {
logger.Fatalf(ctx, "failed to init service: %v", err)
}
diff --git a/database.db b/database.db
new file mode 100644
index 0000000..3667d99
Binary files /dev/null and b/database.db differ
diff --git a/go.mod b/go.mod
index 7a38373..cbaa451 100644
--- a/go.mod
+++ b/go.mod
@@ -9,7 +9,6 @@ require (
github.com/google/uuid v1.3.0
github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c
github.com/jmoiron/sqlx v1.3.1
- github.com/lib/pq v1.10.2
github.com/pkg/errors v0.9.1
go.unistack.org/micro-client-http/v4 v4.0.2
go.unistack.org/micro-codec-json/v4 v4.0.0
@@ -21,7 +20,7 @@ require (
go.unistack.org/micro-logger-zerolog/v4 v4.0.3
go.unistack.org/micro-meter-victoriametrics/v4 v4.0.1
go.unistack.org/micro-proto/v4 v4.0.1
- go.unistack.org/micro-server-http/v4 v4.0.12
+ go.unistack.org/micro-server-http/v4 v4.0.13
go.unistack.org/micro/v4 v4.0.7
go.unistack.org/protoc-gen-go-micro/v4 v4.0.7
golang.org/x/mod v0.12.0
diff --git a/go.sum b/go.sum
index f2a0011..0f1c959 100644
--- a/go.sum
+++ b/go.sum
@@ -1081,8 +1081,8 @@ go.unistack.org/micro-meter-victoriametrics/v4 v4.0.1 h1:r/AyMnwPLfP4l3Ja0X2NTOF
go.unistack.org/micro-meter-victoriametrics/v4 v4.0.1/go.mod h1:QQo/Hs6XuvFQViCPAJ+CAlP2Q/+QppI0g2hiPfJ76UU=
go.unistack.org/micro-proto/v4 v4.0.1 h1:2RKHgtCOOcAFgKsnngGK5bqM/6MWXOjVCdw03dbuoF8=
go.unistack.org/micro-proto/v4 v4.0.1/go.mod h1:ArmK7o+uFvxSY3dbJhKBBX4Pm1rhWdLEFf3LxBrMtec=
-go.unistack.org/micro-server-http/v4 v4.0.12 h1:cwlA9t/iNlQ/+LvYRxpreU3v3xRQYKQGVfvLpH3BM8I=
-go.unistack.org/micro-server-http/v4 v4.0.12/go.mod h1:mQ18qN/1PxeTCKMNslh5qgswV582DP9QnsaI/ohFo/k=
+go.unistack.org/micro-server-http/v4 v4.0.13 h1:/EUEE32ddsNH9qbBilg2cdnnMWXPOyL6TfG++Las4E4=
+go.unistack.org/micro-server-http/v4 v4.0.13/go.mod h1:mQ18qN/1PxeTCKMNslh5qgswV582DP9QnsaI/ohFo/k=
go.unistack.org/micro/v4 v4.0.7 h1:2lwtZlHcSwgkahhFbkI4x1lOS79lw8uLHtcEhlFF+AM=
go.unistack.org/micro/v4 v4.0.7/go.mod h1:bVEYTlPi0EsdgZZt311bIroDg9ict7ky3C87dSCCAGk=
go.unistack.org/protoc-gen-go-micro/v4 v4.0.7 h1:c3CeBvjWV9MBrGGPaQCcHZrnuLY9sVJHv7vACI/dvuM=
diff --git a/internal/database/migrations/sqlite/000001_init_schema.up.sql b/internal/database/migrations/sqlite/000001_init_schema.up.sql
index f01fd9a..8a688b0 100644
--- a/internal/database/migrations/sqlite/000001_init_schema.up.sql
+++ b/internal/database/migrations/sqlite/000001_init_schema.up.sql
@@ -19,9 +19,11 @@ create table if not exists packages (
id integer primary key autoincrement not null,
name varchar not null,
url varchar not null,
+ desc varchar,
modules integer default 0,
issues integer default 0,
comments integer default 0,
+ coverage number default 0,
created timestamp not null default current_timestamp,
updated timestamp not null default current_timestamp,
status integer default 1,
diff --git a/internal/handler/comments_create.go b/internal/handler/comment_create.go
similarity index 83%
rename from internal/handler/comments_create.go
rename to internal/handler/comment_create.go
index 747aa33..d0c8ca3 100644
--- a/internal/handler/comments_create.go
+++ b/internal/handler/comment_create.go
@@ -12,7 +12,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) CommentsCreate(ctx context.Context, req *pb.CommentsCreateReq, rsp *pb.CommentsCreateRsp) error {
+func (h *Handler) CommentCreate(ctx context.Context, req *pb.CommentCreateReq, rsp *pb.CommentCreateRsp) error {
logger.Debug(ctx, "Start AddComment")
err := req.Validate()
@@ -23,7 +23,7 @@ func (h *Handler) CommentsCreate(ctx context.Context, req *pb.CommentsCreateReq,
}
var com *models.Comment
- if com, err = h.store.CommentsCreate(ctx, req); err != nil {
+ if com, err = h.store.CommentCreate(ctx, req); err != nil {
logger.Error(ctx, err)
if errors.Is(err, sql.ErrNoRows) {
httpsrv.SetRspCode(ctx, http.StatusNotFound)
diff --git a/internal/handler/comments_delete.go b/internal/handler/comment_delete.go
similarity index 81%
rename from internal/handler/comments_delete.go
rename to internal/handler/comment_delete.go
index eadce29..5bab6fa 100644
--- a/internal/handler/comments_delete.go
+++ b/internal/handler/comment_delete.go
@@ -11,7 +11,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) CommentsDelete(ctx context.Context, req *pb.CommentsDeleteReq, rsp *pb.CommentsDeleteRsp) error {
+func (h *Handler) CommentDelete(ctx context.Context, req *pb.CommentDeleteReq, rsp *pb.CommentDeleteRsp) error {
logger.Debug(ctx, "Start AddComment")
err := req.Validate()
@@ -21,7 +21,7 @@ func (h *Handler) CommentsDelete(ctx context.Context, req *pb.CommentsDeleteReq,
return httpsrv.SetError(NewValidationError(err))
}
- if err = h.store.CommentsDelete(ctx, req); err != nil {
+ if err = h.store.CommentDelete(ctx, req); err != nil {
logger.Error(ctx, err)
if errors.Is(err, sql.ErrNoRows) {
httpsrv.SetRspCode(ctx, http.StatusNotFound)
diff --git a/internal/handler/comments_list.go b/internal/handler/comment_list.go
similarity index 82%
rename from internal/handler/comments_list.go
rename to internal/handler/comment_list.go
index b9a2c5e..9bccf2f 100644
--- a/internal/handler/comments_list.go
+++ b/internal/handler/comment_list.go
@@ -10,7 +10,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) CommentsList(ctx context.Context, req *pb.CommentsListReq, rsp *pb.CommentsListRsp) error {
+func (h *Handler) CommentList(ctx context.Context, req *pb.CommentListReq, rsp *pb.CommentListRsp) error {
logger.Debug(ctx, "Start GetModule")
err := req.Validate()
@@ -20,7 +20,7 @@ func (h *Handler) CommentsList(ctx context.Context, req *pb.CommentsListReq, rsp
return httpsrv.SetError(NewValidationError(err))
}
- comments, err := h.store.CommentsList(ctx, req)
+ comments, err := h.store.CommentList(ctx, req)
if err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/handler/comment_lookup.go b/internal/handler/comment_lookup.go
new file mode 100644
index 0000000..2fb910b
--- /dev/null
+++ b/internal/handler/comment_lookup.go
@@ -0,0 +1,11 @@
+package handler
+
+import (
+ "context"
+
+ pb "git.unistack.org/unistack-org/pkgdash/proto"
+)
+
+func (h *Handler) CommentLookup(ctx context.Context, req *pb.CommentLookupReq, rsp *pb.CommentLookupRsp) error {
+ return nil
+}
diff --git a/internal/handler/comments_lookup.go b/internal/handler/comments_lookup.go
deleted file mode 100644
index e3df816..0000000
--- a/internal/handler/comments_lookup.go
+++ /dev/null
@@ -1,11 +0,0 @@
-package handler
-
-import (
- "context"
-
- pb "git.unistack.org/unistack-org/pkgdash/proto"
-)
-
-func (h *Handler) CommentsLookup(ctx context.Context, req *pb.CommentsLookupReq, rsp *pb.CommentsLookupRsp) error {
- return nil
-}
diff --git a/internal/handler/handler.go b/internal/handler/handler.go
index 647e452..0a81c4a 100644
--- a/internal/handler/handler.go
+++ b/internal/handler/handler.go
@@ -12,9 +12,8 @@ import (
)
type Handler struct {
- store storage.Storage
- codec codec.Codec
- chanUrl chan *pb.PackagesCreateReq
+ store storage.Storage
+ codec codec.Codec
}
func NewNotFoundError(err error) *pb.ErrorRsp {
diff --git a/internal/handler/modules_list.go b/internal/handler/modules_list.go
index c1b3896..97849f5 100644
--- a/internal/handler/modules_list.go
+++ b/internal/handler/modules_list.go
@@ -10,7 +10,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) ModulesList(ctx context.Context, req *pb.ModulesListReq, rsp *pb.ModulesListRsp) error {
+func (h *Handler) ModuleList(ctx context.Context, req *pb.ModuleListReq, rsp *pb.ModuleListRsp) error {
logger.Debug(ctx, "Start GetModule")
err := req.Validate()
@@ -20,7 +20,7 @@ func (h *Handler) ModulesList(ctx context.Context, req *pb.ModulesListReq, rsp *
return httpsrv.SetError(NewValidationError(err))
}
- modules, err := h.store.ModulesList(ctx, req)
+ modules, err := h.store.ModuleList(ctx, req)
if err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/handler/packages_create.go b/internal/handler/package_create.go
similarity index 81%
rename from internal/handler/packages_create.go
rename to internal/handler/package_create.go
index 4fdef05..e63de0d 100644
--- a/internal/handler/packages_create.go
+++ b/internal/handler/package_create.go
@@ -10,7 +10,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesCreate(ctx context.Context, req *pb.PackagesCreateReq, rsp *pb.PackagesCreateRsp) error {
+func (h *Handler) PackageCreate(ctx context.Context, req *pb.PackageCreateReq, rsp *pb.PackageCreateRsp) error {
logger.Debug(ctx, "PackagesCreate handler start")
if err := req.Validate(); err != nil {
@@ -19,7 +19,7 @@ func (h *Handler) PackagesCreate(ctx context.Context, req *pb.PackagesCreateReq,
return httpsrv.SetError(NewValidationError(err))
}
- pkg, err := h.store.PackagesCreate(ctx, req)
+ pkg, err := h.store.PackageCreate(ctx, req)
if err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusBadRequest)
diff --git a/internal/handler/packages_delete.go b/internal/handler/package_delete.go
similarity index 77%
rename from internal/handler/packages_delete.go
rename to internal/handler/package_delete.go
index dc2d52c..294ec72 100644
--- a/internal/handler/packages_delete.go
+++ b/internal/handler/package_delete.go
@@ -9,7 +9,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesDelete(ctx context.Context, req *pb.PackagesDeleteReq, rsp *pb.PackagesDeleteRsp) error {
+func (h *Handler) PackageDelete(ctx context.Context, req *pb.PackageDeleteReq, rsp *pb.PackageDeleteRsp) error {
logger.Debug(ctx, "Start UpdatePackage")
if err := req.Validate(); err != nil {
@@ -18,7 +18,7 @@ func (h *Handler) PackagesDelete(ctx context.Context, req *pb.PackagesDeleteReq,
return httpsrv.SetError(NewValidationError(err))
}
- if err := h.store.PackagesDelete(ctx, req); err != nil {
+ if err := h.store.PackageDelete(ctx, req); err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
return httpsrv.SetError(NewInternalError(err))
diff --git a/internal/handler/packages_list.go b/internal/handler/package_list.go
similarity index 79%
rename from internal/handler/packages_list.go
rename to internal/handler/package_list.go
index a7ca5da..5cd92d2 100644
--- a/internal/handler/packages_list.go
+++ b/internal/handler/package_list.go
@@ -10,10 +10,10 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesList(ctx context.Context, req *pb.PackagesListReq, rsp *pb.PackagesListRsp) error {
+func (h *Handler) PackageList(ctx context.Context, req *pb.PackageListReq, rsp *pb.PackageListRsp) error {
logger.Debug(ctx, "PackagesList handler start")
- packages, err := h.store.PackagesList(ctx, req)
+ packages, err := h.store.PackageList(ctx, req)
if err != nil {
logger.Errorf(ctx, "error db response: %v", err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/handler/packages_lookup.go b/internal/handler/package_lookup.go
similarity index 81%
rename from internal/handler/packages_lookup.go
rename to internal/handler/package_lookup.go
index 1157b23..0aa82cc 100644
--- a/internal/handler/packages_lookup.go
+++ b/internal/handler/package_lookup.go
@@ -10,7 +10,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesLookup(ctx context.Context, req *pb.PackagesLookupReq, rsp *pb.PackagesLookupRsp) error {
+func (h *Handler) PackageLookup(ctx context.Context, req *pb.PackageLookupReq, rsp *pb.PackageLookupRsp) error {
logger.Debug(ctx, "Start PackagesLookup")
if err := req.Validate(); err != nil {
@@ -19,7 +19,7 @@ func (h *Handler) PackagesLookup(ctx context.Context, req *pb.PackagesLookupReq,
return httpsrv.SetError(NewValidationError(err))
}
- pkg, err := h.store.PackagesLookup(ctx, req)
+ pkg, err := h.store.PackageLookup(ctx, req)
if err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/handler/packages_modules.go b/internal/handler/package_modules.go
similarity index 72%
rename from internal/handler/packages_modules.go
rename to internal/handler/package_modules.go
index efac183..8001ae4 100644
--- a/internal/handler/packages_modules.go
+++ b/internal/handler/package_modules.go
@@ -10,10 +10,10 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesModules(ctx context.Context, req *pb.PackagesModulesReq, rsp *pb.PackagesModulesRsp) error {
- logger.Debug(ctx, "PackagesModuleshandler start")
+func (h *Handler) PackageModules(ctx context.Context, req *pb.PackageModulesReq, rsp *pb.PackageModulesRsp) error {
+ logger.Debug(ctx, "PackageModules handler start")
- modules, err := h.store.PackagesModules(ctx, req)
+ modules, err := h.store.PackageModules(ctx, req)
if err != nil {
logger.Errorf(ctx, "error db response: %v", err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/handler/packages_update.go b/internal/handler/package_update.go
similarity index 81%
rename from internal/handler/packages_update.go
rename to internal/handler/package_update.go
index 7c98181..0183c2c 100644
--- a/internal/handler/packages_update.go
+++ b/internal/handler/package_update.go
@@ -10,7 +10,7 @@ import (
"go.unistack.org/micro/v4/logger"
)
-func (h *Handler) PackagesUpdate(ctx context.Context, req *pb.PackagesUpdateReq, rsp *pb.PackagesUpdateRsp) error {
+func (h *Handler) PackageUpdate(ctx context.Context, req *pb.PackageUpdateReq, rsp *pb.PackageUpdateRsp) error {
logger.Debug(ctx, "Start UpdatePackage")
if err := req.Validate(); err != nil {
@@ -19,7 +19,7 @@ func (h *Handler) PackagesUpdate(ctx context.Context, req *pb.PackagesUpdateReq,
return httpsrv.SetError(NewValidationError(err))
}
- pkg, err := h.store.PackagesUpdate(ctx, req)
+ pkg, err := h.store.PackageUpdate(ctx, req)
if err != nil {
logger.Error(ctx, err)
httpsrv.SetRspCode(ctx, http.StatusInternalServerError)
diff --git a/internal/storage/sqlite/storage.go b/internal/storage/sqlite/storage.go
index 3f8d89a..308daea 100644
--- a/internal/storage/sqlite/storage.go
+++ b/internal/storage/sqlite/storage.go
@@ -28,7 +28,7 @@ func NewStorage() func(*sqlx.DB) interface{} {
}
}
-func (s *Sqlite) PackagesModulesCreate(ctx context.Context, pkg *models.Package, modules []*models.Module) error {
+func (s *Sqlite) PackageModulesCreate(ctx context.Context, pkg *models.Package, modules []*models.Module) error {
tx, err := s.db.BeginTxx(ctx, nil)
if err != nil {
return err
@@ -56,15 +56,15 @@ func (s *Sqlite) PackagesModulesCreate(ctx context.Context, pkg *models.Package,
return nil
}
-func (s *Sqlite) PackagesDelete(ctx context.Context, req *pb.PackagesDeleteReq) error {
+func (s *Sqlite) PackageDelete(ctx context.Context, req *pb.PackageDeleteReq) error {
return fmt.Errorf("need implement")
}
-func (s *Sqlite) PackagesUpdate(ctx context.Context, req *pb.PackagesUpdateReq) (*models.Package, error) {
+func (s *Sqlite) PackageUpdate(ctx context.Context, req *pb.PackageUpdateReq) (*models.Package, error) {
return nil, fmt.Errorf("need implement")
}
-func (s *Sqlite) PackagesLookup(ctx context.Context, req *pb.PackagesLookupReq) (*models.Package, error) {
+func (s *Sqlite) PackageLookup(ctx context.Context, req *pb.PackageLookupReq) (*models.Package, error) {
pkg := &models.Package{}
err := s.db.GetContext(ctx, pkg, queryPackagesLookup, req.Id)
@@ -75,7 +75,7 @@ func (s *Sqlite) PackagesLookup(ctx context.Context, req *pb.PackagesLookupReq)
return pkg, err
}
-func (s *Sqlite) PackagesList(ctx context.Context, req *pb.PackagesListReq) ([]*models.Package, error) {
+func (s *Sqlite) PackageList(ctx context.Context, req *pb.PackageListReq) ([]*models.Package, error) {
var packages []*models.Package
err := s.db.SelectContext(ctx, &packages, queryPackagesList)
@@ -86,7 +86,7 @@ func (s *Sqlite) PackagesList(ctx context.Context, req *pb.PackagesListReq) ([]*
return packages, nil
}
-func (s *Sqlite) PackagesModules(ctx context.Context, req *pb.PackagesModulesReq) ([]*models.Module, error) {
+func (s *Sqlite) PackageModules(ctx context.Context, req *pb.PackageModulesReq) ([]*models.Module, error) {
var modules []*models.Module
err := s.db.SelectContext(ctx, &modules, queryPackagesModules, req.Package)
@@ -97,11 +97,11 @@ func (s *Sqlite) PackagesModules(ctx context.Context, req *pb.PackagesModulesReq
return modules, nil
}
-func (s *Sqlite) CommentsDelete(ctx context.Context, req *pb.CommentsDeleteReq) error {
+func (s *Sqlite) CommentDelete(ctx context.Context, req *pb.CommentDeleteReq) error {
return nil
}
-func (s *Sqlite) CommentsCreate(ctx context.Context, req *pb.CommentsCreateReq) (*models.Comment, error) {
+func (s *Sqlite) CommentCreate(ctx context.Context, req *pb.CommentCreateReq) (*models.Comment, error) {
tx, err := s.db.BeginTx(ctx, nil)
if err != nil {
return nil, err
@@ -164,7 +164,7 @@ func (s *Sqlite) ModulesProcess(ctx context.Context, td time.Duration) ([]*model
return modules, nil
}
-func (s *Sqlite) PackagesCreate(ctx context.Context, req *pb.PackagesCreateReq) (*models.Package, error) {
+func (s *Sqlite) PackageCreate(ctx context.Context, req *pb.PackageCreateReq) (*models.Package, error) {
pkg := &models.Package{}
err := s.db.GetContext(ctx, pkg, queryPackagesCreate, req.Name, req.Url)
if err != nil {
@@ -174,7 +174,7 @@ func (s *Sqlite) PackagesCreate(ctx context.Context, req *pb.PackagesCreateReq)
return pkg, nil
}
-func (s *Sqlite) ModulesCreate(ctx context.Context, modules []*models.Module) error {
+func (s *Sqlite) ModuleCreate(ctx context.Context, modules []*models.Module) error {
tx, err := s.db.BeginTxx(ctx, nil)
if err != nil {
return err
@@ -196,7 +196,7 @@ func (s *Sqlite) ModulesCreate(ctx context.Context, modules []*models.Module) er
return nil
}
-func (s *Sqlite) ModulesList(ctx context.Context, req *pb.ModulesListReq) ([]*models.Module, error) {
+func (s *Sqlite) ModuleList(ctx context.Context, req *pb.ModuleListReq) ([]*models.Module, error) {
var modules []*models.Module
err := s.db.SelectContext(ctx, &modules, queryModulesList)
@@ -207,7 +207,7 @@ func (s *Sqlite) ModulesList(ctx context.Context, req *pb.ModulesListReq) ([]*mo
return modules, nil
}
-func (s *Sqlite) CommentsList(ctx context.Context, req *pb.CommentsListReq) ([]*models.Comment, error) {
+func (s *Sqlite) CommentList(ctx context.Context, req *pb.CommentListReq) ([]*models.Comment, error) {
var comments []*models.Comment
err := s.db.SelectContext(ctx, &comments, queryCommentsList, req.PackageId)
diff --git a/internal/storage/storage.go b/internal/storage/storage.go
index 504497b..1741951 100644
--- a/internal/storage/storage.go
+++ b/internal/storage/storage.go
@@ -17,21 +17,21 @@ func RegisterStorage(name string, fn func(*sqlx.DB) interface{}) {
var storages = map[string]func(*sqlx.DB) interface{}{}
type Storage interface {
- PackagesModulesCreate(ctx context.Context, pkg *models.Package, modules []*models.Module) error
+ PackageModulesCreate(ctx context.Context, pkg *models.Package, modules []*models.Module) error
PackagesUpdateLastCheck(ctx context.Context, packages []*models.Package) error
- PackagesModules(ctx context.Context, req *pb.PackagesModulesReq) ([]*models.Module, error)
+ PackageModules(ctx context.Context, req *pb.PackageModulesReq) ([]*models.Module, error)
ModulesProcess(ctx context.Context, td time.Duration) ([]*models.Module, error)
PackagesProcess(ctx context.Context, td time.Duration) ([]*models.Package, error)
- PackagesCreate(ctx context.Context, req *pb.PackagesCreateReq) (*models.Package, error)
- PackagesList(ctx context.Context, req *pb.PackagesListReq) ([]*models.Package, error)
- PackagesLookup(ctx context.Context, req *pb.PackagesLookupReq) (*models.Package, error)
- PackagesUpdate(ctx context.Context, req *pb.PackagesUpdateReq) (*models.Package, error)
- PackagesDelete(ctx context.Context, req *pb.PackagesDeleteReq) error
- CommentsCreate(ctx context.Context, req *pb.CommentsCreateReq) (*models.Comment, error)
- CommentsDelete(ctx context.Context, req *pb.CommentsDeleteReq) error
- CommentsList(ctx context.Context, req *pb.CommentsListReq) ([]*models.Comment, error)
- ModulesList(ctx context.Context, req *pb.ModulesListReq) ([]*models.Module, error)
- ModulesCreate(ctx context.Context, modules []*models.Module) error
+ PackageCreate(ctx context.Context, req *pb.PackageCreateReq) (*models.Package, error)
+ PackageList(ctx context.Context, req *pb.PackageListReq) ([]*models.Package, error)
+ PackageLookup(ctx context.Context, req *pb.PackageLookupReq) (*models.Package, error)
+ PackageUpdate(ctx context.Context, req *pb.PackageUpdateReq) (*models.Package, error)
+ PackageDelete(ctx context.Context, req *pb.PackageDeleteReq) error
+ CommentCreate(ctx context.Context, req *pb.CommentCreateReq) (*models.Comment, error)
+ CommentDelete(ctx context.Context, req *pb.CommentDeleteReq) error
+ CommentList(ctx context.Context, req *pb.CommentListReq) ([]*models.Comment, error)
+ ModuleList(ctx context.Context, req *pb.ModuleListReq) ([]*models.Module, error)
+ ModuleCreate(ctx context.Context, modules []*models.Module) error
}
func NewStorage(name string, db *sqlx.DB) (Storage, error) {
diff --git a/internal/worker/worker.go b/internal/worker/worker.go
index 4a9fbce..cde4849 100644
--- a/internal/worker/worker.go
+++ b/internal/worker/worker.go
@@ -155,7 +155,7 @@ func parseModFile(ctx context.Context, store storage.Storage, pkg *models.Packag
return modules[i].Name < modules[j].Name
})
- if err = store.PackagesModulesCreate(ctx, pkg, modules); err != nil {
+ if err = store.PackageModulesCreate(ctx, pkg, modules); err != nil {
logger.Errorf(ctx, "failed to set create modules: %v", err)
return err
}
@@ -189,7 +189,7 @@ func processModules(ctx context.Context, store storage.Storage, mods []*models.M
},
})
- if err := store.ModulesCreate(ctx, mods); err != nil {
+ if err := store.ModuleCreate(ctx, mods); err != nil {
return err
}
diff --git a/proto/apidocs.swagger.yaml b/proto/apidocs.swagger.yaml
index 742501c..2890251 100644
--- a/proto/apidocs.swagger.yaml
+++ b/proto/apidocs.swagger.yaml
@@ -2,14 +2,14 @@
openapi: 3.0.3
info:
- title: PkgdashService API
+ title: Pkgdash API
version: 0.0.1
paths:
/v1/comments/{id}/comments:
get:
tags:
- - PkgdashService
- operationId: CommentsLookup
+ - Pkgdash
+ operationId: CommentLookup
parameters:
- name: id
in: path
@@ -34,12 +34,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/CommentsLookupRsp'
+ $ref: '#/components/schemas/CommentLookupRsp'
/v1/modules:
get:
tags:
- - PkgdashService
- operationId: ModulesList
+ - Pkgdash
+ operationId: ModuleList
responses:
default:
description: Default
@@ -52,12 +52,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/ModulesListRsp'
+ $ref: '#/components/schemas/ModuleListRsp'
/v1/packages:
get:
tags:
- - PkgdashService
- operationId: PackagesList
+ - Pkgdash
+ operationId: PackageList
responses:
default:
description: Default
@@ -70,16 +70,16 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesListRsp'
+ $ref: '#/components/schemas/PackageListRsp'
post:
tags:
- - PkgdashService
- operationId: PackagesCreate
+ - Pkgdash
+ operationId: PackageCreate
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesCreateReq'
+ $ref: '#/components/schemas/PackageCreateReq'
required: true
responses:
default:
@@ -93,12 +93,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesCreateRsp'
+ $ref: '#/components/schemas/PackageCreateRsp'
/v1/packages/{id}:
get:
tags:
- - PkgdashService
- operationId: PackagesLookup
+ - Pkgdash
+ operationId: PackageLookup
parameters:
- name: id
in: path
@@ -118,11 +118,11 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesLookupRsp'
+ $ref: '#/components/schemas/PackageLookupRsp'
put:
tags:
- - PkgdashService
- operationId: PackagesUpdate
+ - Pkgdash
+ operationId: PackageUpdate
parameters:
- name: id
in: path
@@ -134,7 +134,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesUpdateReq'
+ $ref: '#/components/schemas/PackageUpdateReq'
required: true
responses:
default:
@@ -148,11 +148,11 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesUpdateRsp'
+ $ref: '#/components/schemas/PackageUpdateRsp'
delete:
tags:
- - PkgdashService
- operationId: PackagesDelete
+ - Pkgdash
+ operationId: PackageDelete
parameters:
- name: id
in: path
@@ -172,12 +172,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesDeleteRsp'
+ $ref: '#/components/schemas/PackageDeleteRsp'
/v1/packages/{package_id}/comments/{id}:
delete:
tags:
- - PkgdashService
- operationId: CommentsDelete
+ - Pkgdash
+ operationId: CommentDelete
parameters:
- name: package_id
in: path
@@ -203,12 +203,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/CommentsDeleteRsp'
+ $ref: '#/components/schemas/CommentDeleteRsp'
/v1/packages/{package}/comments:
get:
tags:
- - PkgdashService
- operationId: CommentsList
+ - Pkgdash
+ operationId: CommentList
parameters:
- name: package
in: path
@@ -232,11 +232,11 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/CommentsListRsp'
+ $ref: '#/components/schemas/CommentListRsp'
post:
tags:
- - PkgdashService
- operationId: CommentsCreate
+ - Pkgdash
+ operationId: CommentCreate
parameters:
- name: package
in: path
@@ -247,7 +247,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/CommentsCreateReq'
+ $ref: '#/components/schemas/CommentCreateReq'
required: true
responses:
default:
@@ -261,12 +261,12 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/CommentsCreateRsp'
+ $ref: '#/components/schemas/CommentCreateRsp'
/v1/packages/{package}/modules:
get:
tags:
- - PkgdashService
- operationId: PackagesModules
+ - Pkgdash
+ operationId: PackageModules
parameters:
- name: package
in: path
@@ -286,7 +286,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PackagesModulesRsp'
+ $ref: '#/components/schemas/PackageModulesRsp'
components:
schemas:
Comment:
@@ -306,7 +306,7 @@ components:
updated:
type: string
format: RFC3339
- CommentsCreateReq:
+ CommentCreateReq:
type: object
properties:
package_id:
@@ -314,22 +314,22 @@ components:
format: uint64
comment:
type: string
- CommentsCreateRsp:
+ CommentCreateRsp:
type: object
properties:
comment:
$ref: '#/components/schemas/Comment'
- CommentsDeleteRsp:
+ CommentDeleteRsp:
type: object
properties: {}
- CommentsListRsp:
+ CommentListRsp:
type: object
properties:
comments:
type: array
items:
$ref: '#/components/schemas/Comment'
- CommentsLookupRsp:
+ CommentLookupRsp:
type: object
properties:
comment:
@@ -358,7 +358,7 @@ components:
last_check:
type: string
format: RFC3339
- ModulesListRsp:
+ ModuleListRsp:
type: object
properties:
modules:
@@ -375,6 +375,8 @@ components:
type: string
url:
type: string
+ description:
+ type: string
modules:
type: integer
format: uint64
@@ -393,7 +395,7 @@ components:
last_check:
type: string
format: RFC3339
- PackagesCreateReq:
+ PackageCreateReq:
type: object
properties:
name:
@@ -405,34 +407,34 @@ components:
items:
type: integer
format: uint64
- PackagesCreateRsp:
+ PackageCreateRsp:
type: object
properties:
package:
$ref: '#/components/schemas/Package'
- PackagesDeleteRsp:
+ PackageDeleteRsp:
type: object
properties: {}
- PackagesListRsp:
+ PackageListRsp:
type: object
properties:
packages:
type: array
items:
$ref: '#/components/schemas/Package'
- PackagesLookupRsp:
+ PackageLookupRsp:
type: object
properties:
package:
$ref: '#/components/schemas/Package'
- PackagesModulesRsp:
+ PackageModulesRsp:
type: object
properties:
modules:
type: array
items:
$ref: '#/components/schemas/Module'
- PackagesUpdateReq:
+ PackageUpdateReq:
type: object
properties:
id:
@@ -452,10 +454,10 @@ components:
items:
type: integer
format: uint64
- PackagesUpdateRsp:
+ PackageUpdateRsp:
type: object
properties:
package:
$ref: '#/components/schemas/Package'
tags:
- - name: PkgdashService
+ - name: Pkgdash
diff --git a/proto/pkgdash.pb.go b/proto/pkgdash.pb.go
index 8ed7608..10e2194 100644
--- a/proto/pkgdash.pb.go
+++ b/proto/pkgdash.pb.go
@@ -24,7 +24,7 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
-type PackagesModulesReq struct {
+type PackageModulesReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -32,8 +32,8 @@ type PackagesModulesReq struct {
Package uint64 `protobuf:"varint,1,opt,name=package,proto3" json:"package,omitempty"`
}
-func (x *PackagesModulesReq) Reset() {
- *x = PackagesModulesReq{}
+func (x *PackageModulesReq) Reset() {
+ *x = PackageModulesReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -41,13 +41,13 @@ func (x *PackagesModulesReq) Reset() {
}
}
-func (x *PackagesModulesReq) String() string {
+func (x *PackageModulesReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesModulesReq) ProtoMessage() {}
+func (*PackageModulesReq) ProtoMessage() {}
-func (x *PackagesModulesReq) ProtoReflect() protoreflect.Message {
+func (x *PackageModulesReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -59,19 +59,19 @@ func (x *PackagesModulesReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesModulesReq.ProtoReflect.Descriptor instead.
-func (*PackagesModulesReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageModulesReq.ProtoReflect.Descriptor instead.
+func (*PackageModulesReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{0}
}
-func (x *PackagesModulesReq) GetPackage() uint64 {
+func (x *PackageModulesReq) GetPackage() uint64 {
if x != nil {
return x.Package
}
return 0
}
-type PackagesModulesRsp struct {
+type PackageModulesRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -79,8 +79,8 @@ type PackagesModulesRsp struct {
Modules []*Module `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"`
}
-func (x *PackagesModulesRsp) Reset() {
- *x = PackagesModulesRsp{}
+func (x *PackageModulesRsp) Reset() {
+ *x = PackageModulesRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -88,13 +88,13 @@ func (x *PackagesModulesRsp) Reset() {
}
}
-func (x *PackagesModulesRsp) String() string {
+func (x *PackageModulesRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesModulesRsp) ProtoMessage() {}
+func (*PackageModulesRsp) ProtoMessage() {}
-func (x *PackagesModulesRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageModulesRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -106,19 +106,19 @@ func (x *PackagesModulesRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesModulesRsp.ProtoReflect.Descriptor instead.
-func (*PackagesModulesRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageModulesRsp.ProtoReflect.Descriptor instead.
+func (*PackageModulesRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{1}
}
-func (x *PackagesModulesRsp) GetModules() []*Module {
+func (x *PackageModulesRsp) GetModules() []*Module {
if x != nil {
return x.Modules
}
return nil
}
-type PackagesLookupReq struct {
+type PackageLookupReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -126,8 +126,8 @@ type PackagesLookupReq struct {
Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}
-func (x *PackagesLookupReq) Reset() {
- *x = PackagesLookupReq{}
+func (x *PackageLookupReq) Reset() {
+ *x = PackageLookupReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -135,13 +135,13 @@ func (x *PackagesLookupReq) Reset() {
}
}
-func (x *PackagesLookupReq) String() string {
+func (x *PackageLookupReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesLookupReq) ProtoMessage() {}
+func (*PackageLookupReq) ProtoMessage() {}
-func (x *PackagesLookupReq) ProtoReflect() protoreflect.Message {
+func (x *PackageLookupReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -153,19 +153,19 @@ func (x *PackagesLookupReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesLookupReq.ProtoReflect.Descriptor instead.
-func (*PackagesLookupReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageLookupReq.ProtoReflect.Descriptor instead.
+func (*PackageLookupReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{2}
}
-func (x *PackagesLookupReq) GetId() uint64 {
+func (x *PackageLookupReq) GetId() uint64 {
if x != nil {
return x.Id
}
return 0
}
-type PackagesLookupRsp struct {
+type PackageLookupRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -173,8 +173,8 @@ type PackagesLookupRsp struct {
Package *Package `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"`
}
-func (x *PackagesLookupRsp) Reset() {
- *x = PackagesLookupRsp{}
+func (x *PackageLookupRsp) Reset() {
+ *x = PackageLookupRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -182,13 +182,13 @@ func (x *PackagesLookupRsp) Reset() {
}
}
-func (x *PackagesLookupRsp) String() string {
+func (x *PackageLookupRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesLookupRsp) ProtoMessage() {}
+func (*PackageLookupRsp) ProtoMessage() {}
-func (x *PackagesLookupRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageLookupRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -200,12 +200,12 @@ func (x *PackagesLookupRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesLookupRsp.ProtoReflect.Descriptor instead.
-func (*PackagesLookupRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageLookupRsp.ProtoReflect.Descriptor instead.
+func (*PackageLookupRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{3}
}
-func (x *PackagesLookupRsp) GetPackage() *Package {
+func (x *PackageLookupRsp) GetPackage() *Package {
if x != nil {
return x.Package
}
@@ -288,15 +288,16 @@ type Package struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
- Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
- Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
- Modules uint64 `protobuf:"varint,4,opt,name=modules,proto3" json:"modules,omitempty"`
- Issues uint64 `protobuf:"varint,5,opt,name=issues,proto3" json:"issues,omitempty"`
- Comments uint64 `protobuf:"varint,6,opt,name=comments,proto3" json:"comments,omitempty"`
- Created *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created,proto3" json:"created,omitempty"`
- Updated *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated,proto3" json:"updated,omitempty"`
- LastCheck *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=last_check,json=lastCheck,proto3" json:"last_check,omitempty"`
+ Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
+ Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
+ Modules uint64 `protobuf:"varint,5,opt,name=modules,proto3" json:"modules,omitempty"`
+ Issues uint64 `protobuf:"varint,6,opt,name=issues,proto3" json:"issues,omitempty"`
+ Comments uint64 `protobuf:"varint,7,opt,name=comments,proto3" json:"comments,omitempty"`
+ Created *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created,proto3" json:"created,omitempty"`
+ Updated *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=updated,proto3" json:"updated,omitempty"`
+ LastCheck *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=last_check,json=lastCheck,proto3" json:"last_check,omitempty"`
}
func (x *Package) Reset() {
@@ -352,6 +353,13 @@ func (x *Package) GetUrl() string {
return ""
}
+func (x *Package) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
func (x *Package) GetModules() uint64 {
if x != nil {
return x.Modules
@@ -639,7 +647,7 @@ func (x *Comment) GetUpdated() *timestamppb.Timestamp {
return nil
}
-type CommentsDeleteReq struct {
+type CommentDeleteReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -648,8 +656,8 @@ type CommentsDeleteReq struct {
PackageId uint64 `protobuf:"varint,2,opt,name=package_id,proto3" json:"package_id,omitempty"`
}
-func (x *CommentsDeleteReq) Reset() {
- *x = CommentsDeleteReq{}
+func (x *CommentDeleteReq) Reset() {
+ *x = CommentDeleteReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -657,13 +665,13 @@ func (x *CommentsDeleteReq) Reset() {
}
}
-func (x *CommentsDeleteReq) String() string {
+func (x *CommentDeleteReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsDeleteReq) ProtoMessage() {}
+func (*CommentDeleteReq) ProtoMessage() {}
-func (x *CommentsDeleteReq) ProtoReflect() protoreflect.Message {
+func (x *CommentDeleteReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -675,33 +683,33 @@ func (x *CommentsDeleteReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsDeleteReq.ProtoReflect.Descriptor instead.
-func (*CommentsDeleteReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentDeleteReq.ProtoReflect.Descriptor instead.
+func (*CommentDeleteReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{9}
}
-func (x *CommentsDeleteReq) GetId() uint64 {
+func (x *CommentDeleteReq) GetId() uint64 {
if x != nil {
return x.Id
}
return 0
}
-func (x *CommentsDeleteReq) GetPackageId() uint64 {
+func (x *CommentDeleteReq) GetPackageId() uint64 {
if x != nil {
return x.PackageId
}
return 0
}
-type CommentsDeleteRsp struct {
+type CommentDeleteRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
-func (x *CommentsDeleteRsp) Reset() {
- *x = CommentsDeleteRsp{}
+func (x *CommentDeleteRsp) Reset() {
+ *x = CommentDeleteRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -709,13 +717,13 @@ func (x *CommentsDeleteRsp) Reset() {
}
}
-func (x *CommentsDeleteRsp) String() string {
+func (x *CommentDeleteRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsDeleteRsp) ProtoMessage() {}
+func (*CommentDeleteRsp) ProtoMessage() {}
-func (x *CommentsDeleteRsp) ProtoReflect() protoreflect.Message {
+func (x *CommentDeleteRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -727,12 +735,12 @@ func (x *CommentsDeleteRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsDeleteRsp.ProtoReflect.Descriptor instead.
-func (*CommentsDeleteRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentDeleteRsp.ProtoReflect.Descriptor instead.
+func (*CommentDeleteRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{10}
}
-type PackagesDeleteReq struct {
+type PackageDeleteReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -740,8 +748,8 @@ type PackagesDeleteReq struct {
Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}
-func (x *PackagesDeleteReq) Reset() {
- *x = PackagesDeleteReq{}
+func (x *PackageDeleteReq) Reset() {
+ *x = PackageDeleteReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -749,13 +757,13 @@ func (x *PackagesDeleteReq) Reset() {
}
}
-func (x *PackagesDeleteReq) String() string {
+func (x *PackageDeleteReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesDeleteReq) ProtoMessage() {}
+func (*PackageDeleteReq) ProtoMessage() {}
-func (x *PackagesDeleteReq) ProtoReflect() protoreflect.Message {
+func (x *PackageDeleteReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -767,26 +775,26 @@ func (x *PackagesDeleteReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesDeleteReq.ProtoReflect.Descriptor instead.
-func (*PackagesDeleteReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageDeleteReq.ProtoReflect.Descriptor instead.
+func (*PackageDeleteReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{11}
}
-func (x *PackagesDeleteReq) GetId() uint64 {
+func (x *PackageDeleteReq) GetId() uint64 {
if x != nil {
return x.Id
}
return 0
}
-type PackagesDeleteRsp struct {
+type PackageDeleteRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
-func (x *PackagesDeleteRsp) Reset() {
- *x = PackagesDeleteRsp{}
+func (x *PackageDeleteRsp) Reset() {
+ *x = PackageDeleteRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -794,13 +802,13 @@ func (x *PackagesDeleteRsp) Reset() {
}
}
-func (x *PackagesDeleteRsp) String() string {
+func (x *PackageDeleteRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesDeleteRsp) ProtoMessage() {}
+func (*PackageDeleteRsp) ProtoMessage() {}
-func (x *PackagesDeleteRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageDeleteRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -812,19 +820,19 @@ func (x *PackagesDeleteRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesDeleteRsp.ProtoReflect.Descriptor instead.
-func (*PackagesDeleteRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageDeleteRsp.ProtoReflect.Descriptor instead.
+func (*PackageDeleteRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{12}
}
-type PackagesListReq struct {
+type PackageListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
-func (x *PackagesListReq) Reset() {
- *x = PackagesListReq{}
+func (x *PackageListReq) Reset() {
+ *x = PackageListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -832,13 +840,13 @@ func (x *PackagesListReq) Reset() {
}
}
-func (x *PackagesListReq) String() string {
+func (x *PackageListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesListReq) ProtoMessage() {}
+func (*PackageListReq) ProtoMessage() {}
-func (x *PackagesListReq) ProtoReflect() protoreflect.Message {
+func (x *PackageListReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -850,12 +858,12 @@ func (x *PackagesListReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesListReq.ProtoReflect.Descriptor instead.
-func (*PackagesListReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageListReq.ProtoReflect.Descriptor instead.
+func (*PackageListReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{13}
}
-type PackagesListRsp struct {
+type PackageListRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -863,8 +871,8 @@ type PackagesListRsp struct {
Packages []*Package `protobuf:"bytes,1,rep,name=packages,proto3" json:"packages,omitempty"`
}
-func (x *PackagesListRsp) Reset() {
- *x = PackagesListRsp{}
+func (x *PackageListRsp) Reset() {
+ *x = PackageListRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -872,13 +880,13 @@ func (x *PackagesListRsp) Reset() {
}
}
-func (x *PackagesListRsp) String() string {
+func (x *PackageListRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesListRsp) ProtoMessage() {}
+func (*PackageListRsp) ProtoMessage() {}
-func (x *PackagesListRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageListRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -890,19 +898,19 @@ func (x *PackagesListRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesListRsp.ProtoReflect.Descriptor instead.
-func (*PackagesListRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageListRsp.ProtoReflect.Descriptor instead.
+func (*PackageListRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{14}
}
-func (x *PackagesListRsp) GetPackages() []*Package {
+func (x *PackageListRsp) GetPackages() []*Package {
if x != nil {
return x.Packages
}
return nil
}
-type PackagesUpdateReq struct {
+type PackageUpdateReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -914,8 +922,8 @@ type PackagesUpdateReq struct {
Issues []uint64 `protobuf:"varint,5,rep,packed,name=issues,proto3" json:"issues,omitempty"`
}
-func (x *PackagesUpdateReq) Reset() {
- *x = PackagesUpdateReq{}
+func (x *PackageUpdateReq) Reset() {
+ *x = PackageUpdateReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -923,13 +931,13 @@ func (x *PackagesUpdateReq) Reset() {
}
}
-func (x *PackagesUpdateReq) String() string {
+func (x *PackageUpdateReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesUpdateReq) ProtoMessage() {}
+func (*PackageUpdateReq) ProtoMessage() {}
-func (x *PackagesUpdateReq) ProtoReflect() protoreflect.Message {
+func (x *PackageUpdateReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -941,47 +949,47 @@ func (x *PackagesUpdateReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesUpdateReq.ProtoReflect.Descriptor instead.
-func (*PackagesUpdateReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageUpdateReq.ProtoReflect.Descriptor instead.
+func (*PackageUpdateReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{15}
}
-func (x *PackagesUpdateReq) GetId() uint64 {
+func (x *PackageUpdateReq) GetId() uint64 {
if x != nil {
return x.Id
}
return 0
}
-func (x *PackagesUpdateReq) GetName() string {
+func (x *PackageUpdateReq) GetName() string {
if x != nil {
return x.Name
}
return ""
}
-func (x *PackagesUpdateReq) GetUrl() string {
+func (x *PackageUpdateReq) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
-func (x *PackagesUpdateReq) GetModules() []uint64 {
+func (x *PackageUpdateReq) GetModules() []uint64 {
if x != nil {
return x.Modules
}
return nil
}
-func (x *PackagesUpdateReq) GetIssues() []uint64 {
+func (x *PackageUpdateReq) GetIssues() []uint64 {
if x != nil {
return x.Issues
}
return nil
}
-type PackagesUpdateRsp struct {
+type PackageUpdateRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -989,8 +997,8 @@ type PackagesUpdateRsp struct {
Package *Package `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"`
}
-func (x *PackagesUpdateRsp) Reset() {
- *x = PackagesUpdateRsp{}
+func (x *PackageUpdateRsp) Reset() {
+ *x = PackageUpdateRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -998,13 +1006,13 @@ func (x *PackagesUpdateRsp) Reset() {
}
}
-func (x *PackagesUpdateRsp) String() string {
+func (x *PackageUpdateRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesUpdateRsp) ProtoMessage() {}
+func (*PackageUpdateRsp) ProtoMessage() {}
-func (x *PackagesUpdateRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageUpdateRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1016,19 +1024,19 @@ func (x *PackagesUpdateRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesUpdateRsp.ProtoReflect.Descriptor instead.
-func (*PackagesUpdateRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageUpdateRsp.ProtoReflect.Descriptor instead.
+func (*PackageUpdateRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{16}
}
-func (x *PackagesUpdateRsp) GetPackage() *Package {
+func (x *PackageUpdateRsp) GetPackage() *Package {
if x != nil {
return x.Package
}
return nil
}
-type CommentsCreateReq struct {
+type CommentCreateReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1037,8 +1045,8 @@ type CommentsCreateReq struct {
Comment string `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"`
}
-func (x *CommentsCreateReq) Reset() {
- *x = CommentsCreateReq{}
+func (x *CommentCreateReq) Reset() {
+ *x = CommentCreateReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1046,13 +1054,13 @@ func (x *CommentsCreateReq) Reset() {
}
}
-func (x *CommentsCreateReq) String() string {
+func (x *CommentCreateReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsCreateReq) ProtoMessage() {}
+func (*CommentCreateReq) ProtoMessage() {}
-func (x *CommentsCreateReq) ProtoReflect() protoreflect.Message {
+func (x *CommentCreateReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1064,26 +1072,26 @@ func (x *CommentsCreateReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsCreateReq.ProtoReflect.Descriptor instead.
-func (*CommentsCreateReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentCreateReq.ProtoReflect.Descriptor instead.
+func (*CommentCreateReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{17}
}
-func (x *CommentsCreateReq) GetPackageId() uint64 {
+func (x *CommentCreateReq) GetPackageId() uint64 {
if x != nil {
return x.PackageId
}
return 0
}
-func (x *CommentsCreateReq) GetComment() string {
+func (x *CommentCreateReq) GetComment() string {
if x != nil {
return x.Comment
}
return ""
}
-type CommentsCreateRsp struct {
+type CommentCreateRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1091,8 +1099,8 @@ type CommentsCreateRsp struct {
Comment *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
}
-func (x *CommentsCreateRsp) Reset() {
- *x = CommentsCreateRsp{}
+func (x *CommentCreateRsp) Reset() {
+ *x = CommentCreateRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1100,13 +1108,13 @@ func (x *CommentsCreateRsp) Reset() {
}
}
-func (x *CommentsCreateRsp) String() string {
+func (x *CommentCreateRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsCreateRsp) ProtoMessage() {}
+func (*CommentCreateRsp) ProtoMessage() {}
-func (x *CommentsCreateRsp) ProtoReflect() protoreflect.Message {
+func (x *CommentCreateRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1118,19 +1126,19 @@ func (x *CommentsCreateRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsCreateRsp.ProtoReflect.Descriptor instead.
-func (*CommentsCreateRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentCreateRsp.ProtoReflect.Descriptor instead.
+func (*CommentCreateRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{18}
}
-func (x *CommentsCreateRsp) GetComment() *Comment {
+func (x *CommentCreateRsp) GetComment() *Comment {
if x != nil {
return x.Comment
}
return nil
}
-type PackagesCreateReq struct {
+type PackageCreateReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1140,8 +1148,8 @@ type PackagesCreateReq struct {
Modules []uint64 `protobuf:"varint,3,rep,packed,name=modules,proto3" json:"modules,omitempty"`
}
-func (x *PackagesCreateReq) Reset() {
- *x = PackagesCreateReq{}
+func (x *PackageCreateReq) Reset() {
+ *x = PackageCreateReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1149,13 +1157,13 @@ func (x *PackagesCreateReq) Reset() {
}
}
-func (x *PackagesCreateReq) String() string {
+func (x *PackageCreateReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesCreateReq) ProtoMessage() {}
+func (*PackageCreateReq) ProtoMessage() {}
-func (x *PackagesCreateReq) ProtoReflect() protoreflect.Message {
+func (x *PackageCreateReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1167,33 +1175,33 @@ func (x *PackagesCreateReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesCreateReq.ProtoReflect.Descriptor instead.
-func (*PackagesCreateReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageCreateReq.ProtoReflect.Descriptor instead.
+func (*PackageCreateReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{19}
}
-func (x *PackagesCreateReq) GetName() string {
+func (x *PackageCreateReq) GetName() string {
if x != nil {
return x.Name
}
return ""
}
-func (x *PackagesCreateReq) GetUrl() string {
+func (x *PackageCreateReq) GetUrl() string {
if x != nil {
return x.Url
}
return ""
}
-func (x *PackagesCreateReq) GetModules() []uint64 {
+func (x *PackageCreateReq) GetModules() []uint64 {
if x != nil {
return x.Modules
}
return nil
}
-type PackagesCreateRsp struct {
+type PackageCreateRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1201,8 +1209,8 @@ type PackagesCreateRsp struct {
Package *Package `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"`
}
-func (x *PackagesCreateRsp) Reset() {
- *x = PackagesCreateRsp{}
+func (x *PackageCreateRsp) Reset() {
+ *x = PackageCreateRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1210,13 +1218,13 @@ func (x *PackagesCreateRsp) Reset() {
}
}
-func (x *PackagesCreateRsp) String() string {
+func (x *PackageCreateRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*PackagesCreateRsp) ProtoMessage() {}
+func (*PackageCreateRsp) ProtoMessage() {}
-func (x *PackagesCreateRsp) ProtoReflect() protoreflect.Message {
+func (x *PackageCreateRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1228,26 +1236,26 @@ func (x *PackagesCreateRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use PackagesCreateRsp.ProtoReflect.Descriptor instead.
-func (*PackagesCreateRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use PackageCreateRsp.ProtoReflect.Descriptor instead.
+func (*PackageCreateRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{20}
}
-func (x *PackagesCreateRsp) GetPackage() *Package {
+func (x *PackageCreateRsp) GetPackage() *Package {
if x != nil {
return x.Package
}
return nil
}
-type ModulesListReq struct {
+type ModuleListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
-func (x *ModulesListReq) Reset() {
- *x = ModulesListReq{}
+func (x *ModuleListReq) Reset() {
+ *x = ModuleListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1255,13 +1263,13 @@ func (x *ModulesListReq) Reset() {
}
}
-func (x *ModulesListReq) String() string {
+func (x *ModuleListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ModulesListReq) ProtoMessage() {}
+func (*ModuleListReq) ProtoMessage() {}
-func (x *ModulesListReq) ProtoReflect() protoreflect.Message {
+func (x *ModuleListReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1273,12 +1281,12 @@ func (x *ModulesListReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ModulesListReq.ProtoReflect.Descriptor instead.
-func (*ModulesListReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use ModuleListReq.ProtoReflect.Descriptor instead.
+func (*ModuleListReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{21}
}
-type ModulesListRsp struct {
+type ModuleListRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1286,8 +1294,8 @@ type ModulesListRsp struct {
Modules []*Module `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"`
}
-func (x *ModulesListRsp) Reset() {
- *x = ModulesListRsp{}
+func (x *ModuleListRsp) Reset() {
+ *x = ModuleListRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1295,13 +1303,13 @@ func (x *ModulesListRsp) Reset() {
}
}
-func (x *ModulesListRsp) String() string {
+func (x *ModuleListRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*ModulesListRsp) ProtoMessage() {}
+func (*ModuleListRsp) ProtoMessage() {}
-func (x *ModulesListRsp) ProtoReflect() protoreflect.Message {
+func (x *ModuleListRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1313,19 +1321,19 @@ func (x *ModulesListRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use ModulesListRsp.ProtoReflect.Descriptor instead.
-func (*ModulesListRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use ModuleListRsp.ProtoReflect.Descriptor instead.
+func (*ModuleListRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{22}
}
-func (x *ModulesListRsp) GetModules() []*Module {
+func (x *ModuleListRsp) GetModules() []*Module {
if x != nil {
return x.Modules
}
return nil
}
-type CommentsListReq struct {
+type CommentListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1333,8 +1341,8 @@ type CommentsListReq struct {
PackageId uint64 `protobuf:"varint,1,opt,name=package_id,proto3" json:"package_id,omitempty"`
}
-func (x *CommentsListReq) Reset() {
- *x = CommentsListReq{}
+func (x *CommentListReq) Reset() {
+ *x = CommentListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1342,13 +1350,13 @@ func (x *CommentsListReq) Reset() {
}
}
-func (x *CommentsListReq) String() string {
+func (x *CommentListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsListReq) ProtoMessage() {}
+func (*CommentListReq) ProtoMessage() {}
-func (x *CommentsListReq) ProtoReflect() protoreflect.Message {
+func (x *CommentListReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1360,19 +1368,19 @@ func (x *CommentsListReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsListReq.ProtoReflect.Descriptor instead.
-func (*CommentsListReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentListReq.ProtoReflect.Descriptor instead.
+func (*CommentListReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{23}
}
-func (x *CommentsListReq) GetPackageId() uint64 {
+func (x *CommentListReq) GetPackageId() uint64 {
if x != nil {
return x.PackageId
}
return 0
}
-type CommentsListRsp struct {
+type CommentListRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1380,8 +1388,8 @@ type CommentsListRsp struct {
Comments []*Comment `protobuf:"bytes,1,rep,name=comments,proto3" json:"comments,omitempty"`
}
-func (x *CommentsListRsp) Reset() {
- *x = CommentsListRsp{}
+func (x *CommentListRsp) Reset() {
+ *x = CommentListRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1389,13 +1397,13 @@ func (x *CommentsListRsp) Reset() {
}
}
-func (x *CommentsListRsp) String() string {
+func (x *CommentListRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsListRsp) ProtoMessage() {}
+func (*CommentListRsp) ProtoMessage() {}
-func (x *CommentsListRsp) ProtoReflect() protoreflect.Message {
+func (x *CommentListRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1407,19 +1415,19 @@ func (x *CommentsListRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsListRsp.ProtoReflect.Descriptor instead.
-func (*CommentsListRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentListRsp.ProtoReflect.Descriptor instead.
+func (*CommentListRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{24}
}
-func (x *CommentsListRsp) GetComments() []*Comment {
+func (x *CommentListRsp) GetComments() []*Comment {
if x != nil {
return x.Comments
}
return nil
}
-type CommentsLookupReq struct {
+type CommentLookupReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1428,8 +1436,8 @@ type CommentsLookupReq struct {
PackageId uint64 `protobuf:"varint,2,opt,name=package_id,proto3" json:"package_id,omitempty"`
}
-func (x *CommentsLookupReq) Reset() {
- *x = CommentsLookupReq{}
+func (x *CommentLookupReq) Reset() {
+ *x = CommentLookupReq{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1437,13 +1445,13 @@ func (x *CommentsLookupReq) Reset() {
}
}
-func (x *CommentsLookupReq) String() string {
+func (x *CommentLookupReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsLookupReq) ProtoMessage() {}
+func (*CommentLookupReq) ProtoMessage() {}
-func (x *CommentsLookupReq) ProtoReflect() protoreflect.Message {
+func (x *CommentLookupReq) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1455,26 +1463,26 @@ func (x *CommentsLookupReq) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsLookupReq.ProtoReflect.Descriptor instead.
-func (*CommentsLookupReq) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentLookupReq.ProtoReflect.Descriptor instead.
+func (*CommentLookupReq) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{25}
}
-func (x *CommentsLookupReq) GetId() uint64 {
+func (x *CommentLookupReq) GetId() uint64 {
if x != nil {
return x.Id
}
return 0
}
-func (x *CommentsLookupReq) GetPackageId() uint64 {
+func (x *CommentLookupReq) GetPackageId() uint64 {
if x != nil {
return x.PackageId
}
return 0
}
-type CommentsLookupRsp struct {
+type CommentLookupRsp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
@@ -1482,8 +1490,8 @@ type CommentsLookupRsp struct {
Comment *Comment `protobuf:"bytes,1,opt,name=comment,proto3" json:"comment,omitempty"`
}
-func (x *CommentsLookupRsp) Reset() {
- *x = CommentsLookupRsp{}
+func (x *CommentLookupRsp) Reset() {
+ *x = CommentLookupRsp{}
if protoimpl.UnsafeEnabled {
mi := &file_pkgdash_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1491,13 +1499,13 @@ func (x *CommentsLookupRsp) Reset() {
}
}
-func (x *CommentsLookupRsp) String() string {
+func (x *CommentLookupRsp) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*CommentsLookupRsp) ProtoMessage() {}
+func (*CommentLookupRsp) ProtoMessage() {}
-func (x *CommentsLookupRsp) ProtoReflect() protoreflect.Message {
+func (x *CommentLookupRsp) ProtoReflect() protoreflect.Message {
mi := &file_pkgdash_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -1509,12 +1517,12 @@ func (x *CommentsLookupRsp) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
-// Deprecated: Use CommentsLookupRsp.ProtoReflect.Descriptor instead.
-func (*CommentsLookupRsp) Descriptor() ([]byte, []int) {
+// Deprecated: Use CommentLookupRsp.ProtoReflect.Descriptor instead.
+func (*CommentLookupRsp) Descriptor() ([]byte, []int) {
return file_pkgdash_proto_rawDescGZIP(), []int{26}
}
-func (x *CommentsLookupRsp) GetComment() *Comment {
+func (x *CommentLookupRsp) GetComment() *Comment {
if x != nil {
return x.Comment
}
@@ -1532,102 +1540,104 @@ var file_pkgdash_proto_rawDesc = []byte{
0x1a, 0x1b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x2f, 0x61, 0x6e, 0x6e, 0x6f,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76,
0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2e, 0x0a, 0x12, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
- 0x65, 0x73, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07,
- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x3f, 0x0a, 0x12, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
- 0x65, 0x73, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x07,
- 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
- 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07,
- 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x23, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61,
- 0x67, 0x65, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3f, 0x0a, 0x11,
- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x73,
- 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a,
- 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69,
- 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69,
- 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
- 0x73, 0x22, 0xcf, 0x02, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a,
- 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02,
- 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18,
- 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75,
- 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73,
- 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07,
- 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
- 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61,
+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x3e, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x73, 0x70, 0x12, 0x2a, 0x0a,
+ 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
+ 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x08, 0x45, 0x72, 0x72,
+ 0x6f, 0x72, 0x52, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
+ 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75,
+ 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xfa, 0x02,
+ 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+ 0x19, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
+ 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x0b, 0x64, 0x65,
+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42,
+ 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12,
+ 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12,
+ 0x39, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
- 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74,
- 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+ 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x9c, 0x01, 0x0a, 0x06, 0x4d,
+ 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b,
+ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
+ 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x76,
+ 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42,
+ 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39,
+ 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
+ 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x22, 0x87, 0x02, 0x0a, 0x05, 0x49, 0x73,
+ 0x73, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42,
+ 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42,
+ 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a,
+ 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04,
+ 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x61,
+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04,
+ 0x32, 0x02, 0x20, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a,
+ 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07,
+ 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a,
+ 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12,
+ 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04,
+ 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02,
+ 0x20, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x75,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68,
- 0x65, 0x63, 0x6b, 0x22, 0x9c, 0x01, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x17,
- 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32,
- 0x02, 0x20, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07,
- 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f,
- 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x65,
- 0x63, 0x6b, 0x22, 0x87, 0x02, 0x0a, 0x05, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x02,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20,
- 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x06,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x64,
- 0x65, 0x73, 0x63, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x07, 0x70,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65,
- 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73,
- 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
- 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xcb, 0x01, 0x0a,
- 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69,
- 0x64, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34,
- 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12,
- 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12,
- 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22,
- 0x13, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x52, 0x73, 0x70, 0x22, 0x23, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x11,
- 0x0a, 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x71, 0x22, 0x3f, 0x0a, 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x69, 0x73,
- 0x74, 0x52, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
- 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
- 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
- 0x65, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x55,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x22, 0x42, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61,
+ 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x22, 0x0a, 0x10, 0x50, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a,
+ 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x12, 0x0a,
+ 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73,
+ 0x70, 0x22, 0x10, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74,
+ 0x52, 0x65, 0x71, 0x22, 0x3e, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69,
+ 0x73, 0x74, 0x52, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
+ 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x08, 0x70, 0x61, 0x63, 0x6b, 0x61,
+ 0x67, 0x65, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x02, 0x69,
0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
@@ -1636,165 +1646,161 @@ var file_pkgdash_proto_rawDesc = []byte{
0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64,
0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75,
0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x05, 0x20,
- 0x03, 0x28, 0x04, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x50,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70,
- 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b,
- 0x61, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x56, 0x0a, 0x11,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x12, 0x27, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x0a,
- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
- 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x3f, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
- 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67,
- 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x65, 0x0a, 0x11, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10,
- 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x75,
- 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x04, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11,
- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73,
- 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x10, 0x0a,
- 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22,
- 0x3b, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73,
- 0x70, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64,
- 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x31, 0x0a, 0x0f,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12,
- 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22,
- 0x3f, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52,
- 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x22, 0x43, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x6f, 0x6b,
- 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61,
- 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x3f, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b,
- 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63,
- 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0xd1, 0x0d, 0x0a, 0x0e, 0x50, 0x6b, 0x67, 0x64, 0x61,
- 0x73, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x50, 0x61,
- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1a, 0x2e, 0x70,
- 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c,
- 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61,
- 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75,
- 0x70, 0x52, 0x73, 0x70, 0x22, 0x47, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a, 0x0e, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x12,
+ 0x03, 0x28, 0x04, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x50,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12,
+ 0x2a, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61,
+ 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12,
+ 0x27, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x04, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x32, 0x02, 0x20, 0x00, 0x52, 0x0a, 0x70, 0x61,
+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
+ 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x22, 0x64, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18,
+ 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52,
+ 0x07, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x07,
+ 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
+ 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52,
+ 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75,
+ 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3a, 0x0a, 0x0d, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x07, 0x6d, 0x6f,
+ 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x30, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61,
+ 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x08, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x10, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x73, 0x70, 0x12,
+ 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x10, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x32, 0x9e, 0x0d, 0x0a, 0x07,
+ 0x50, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x12, 0x8d, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64,
+ 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75,
+ 0x70, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x73, 0x70, 0x22,
+ 0x46, 0xaa, 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c,
+ 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea,
+ 0xff, 0xf9, 0x01, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x8b, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64,
+ 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22,
+ 0x44, 0xaa, 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea,
+ 0xff, 0xf9, 0x01, 0x11, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x8d, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
+ 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
+ 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x46, 0xaa,
+ 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64,
+ 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9,
+ 0x01, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
+ 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x80, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e,
+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17,
+ 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x22, 0x3f, 0xaa, 0x84, 0x9e, 0x03, 0x26, 0x2a, 0x0b,
+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x12,
0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f,
- 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f,
- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x8f, 0x01,
- 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x12, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61,
- 0x67, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70,
- 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x43,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x45, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a,
- 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42,
- 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e,
- 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x11, 0x22, 0x0c,
- 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0x12,
- 0x91, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x47, 0xaa, 0x84, 0x9e, 0x03,
- 0x29, 0x2a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
- 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x13,
- 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b,
- 0x69, 0x64, 0x7d, 0x12, 0x84, 0x01, 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73,
- 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x22, 0x40, 0xaa, 0x84, 0x9e, 0x03, 0x27, 0x2a,
- 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x17, 0x0a,
- 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72,
- 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x0e, 0x12, 0x0c, 0x2f, 0x76,
- 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0xa2, 0x01, 0x0a, 0x0f, 0x50,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1b,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x73, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x70, 0x6b,
- 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x6f,
- 0x64, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x73, 0x70, 0x22, 0x55, 0xaa, 0x84, 0x9e, 0x03, 0x2a, 0x2a,
- 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73,
- 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
- 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x20, 0x12,
- 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x70,
- 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x7d, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12,
- 0x94, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x4a, 0xaa, 0x84, 0x9e, 0x03,
- 0x29, 0x2a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
- 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x16,
- 0x1a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b,
- 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0xa2, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
- 0x6e, 0x74, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64,
- 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x72, 0x65, 0x61,
- 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x73,
- 0x70, 0x22, 0x58, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
- 0x74, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73,
- 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x24, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63,
- 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x7d, 0x2f,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xc2, 0x01, 0x0a, 0x0e,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x1a,
- 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x6b, 0x67,
- 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x6f,
- 0x6b, 0x75, 0x70, 0x52, 0x73, 0x70, 0x22, 0x78, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a, 0x0e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x17, 0x0a,
- 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72,
- 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x44, 0x12, 0x1a, 0x2f, 0x76,
- 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5a, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67,
- 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d,
- 0x12, 0x97, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73,
- 0x74, 0x12, 0x18, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
- 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x6b,
- 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69,
- 0x73, 0x74, 0x52, 0x73, 0x70, 0x22, 0x53, 0xaa, 0x84, 0x9e, 0x03, 0x27, 0x2a, 0x0c, 0x43, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13,
+ 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x0e, 0x12, 0x0c, 0x2f, 0x76, 0x31, 0x2f,
+ 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x0e, 0x50, 0x61, 0x63,
+ 0x6b, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
+ 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73,
+ 0x52, 0x73, 0x70, 0x22, 0x54, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a, 0x0e, 0x50, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13,
0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72,
- 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70,
+ 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x70,
0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
- 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x43,
- 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1a, 0x2e,
- 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x70, 0x6b, 0x67, 0x64,
- 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x72, 0xaa, 0x84, 0x9e, 0x03, 0x29, 0x2a, 0x0e, 0x43, 0x6f,
- 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15,
- 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72,
- 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x3e, 0x2a, 0x27, 0x2f, 0x76, 0x31,
- 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61,
- 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f,
- 0x7b, 0x69, 0x64, 0x7d, 0x5a, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
- 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7f, 0x0a, 0x0b, 0x4d, 0x6f, 0x64,
- 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61,
- 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75,
- 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x22, 0x3e, 0xaa, 0x84, 0x9e, 0x03,
- 0x26, 0x2a, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x17,
- 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45,
- 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x0d, 0x12, 0x0b, 0x2f,
- 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f,
- 0x2e, 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x75, 0x6e,
- 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x6b, 0x67, 0x64, 0x61,
- 0x73, 0x68, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
- 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x7d, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0d, 0x50, 0x61,
+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x6b,
+ 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
+ 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x73,
+ 0x70, 0x22, 0x49, 0xaa, 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
+ 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e,
+ 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70,
+ 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x16, 0x1a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b,
+ 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x01, 0x2a, 0x12, 0x9e, 0x01, 0x0a,
+ 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19,
+ 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64,
+ 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x52, 0x73, 0x70, 0x22, 0x57, 0xaa, 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13,
+ 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72,
+ 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x24, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70,
+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0xbe, 0x01,
+ 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12,
+ 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67,
+ 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b,
+ 0x75, 0x70, 0x52, 0x73, 0x70, 0x22, 0x77, 0xaa, 0x84, 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x42, 0x17, 0x0a, 0x15, 0x12,
+ 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x44, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5a, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x7d,
+ 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x93,
+ 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x17,
+ 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73,
+ 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70,
+ 0x22, 0x52, 0xaa, 0x84, 0x9e, 0x03, 0x26, 0x2a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x4c, 0x69, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67,
+ 0x64, 0x61, 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff,
+ 0xf9, 0x01, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+ 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x12, 0xb8, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
+ 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
+ 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x73, 0x70, 0x22, 0x71, 0xaa, 0x84,
+ 0x9e, 0x03, 0x28, 0x2a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x65,
+ 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61,
+ 0x73, 0x68, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01,
+ 0x3e, 0x2a, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x73, 0x2f,
+ 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x5a, 0x13, 0x2a, 0x11, 0x2f, 0x76,
+ 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12,
+ 0x7b, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e,
+ 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69,
+ 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68, 0x2e,
+ 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x22, 0x3d, 0xaa,
+ 0x84, 0x9e, 0x03, 0x25, 0x2a, 0x0a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
+ 0x42, 0x17, 0x0a, 0x15, 0x12, 0x13, 0x0a, 0x11, 0x2e, 0x70, 0x6b, 0x67, 0x64, 0x61, 0x73, 0x68,
+ 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x73, 0x70, 0xb2, 0xea, 0xff, 0xf9, 0x01, 0x0d, 0x12,
+ 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x36, 0x5a, 0x34,
+ 0x67, 0x6f, 0x2e, 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
+ 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x6b, 0x67,
+ 0x64, 0x61, 0x73, 0x68, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x70, 0x6b, 0x67, 0x64, 0x61,
+ 0x73, 0x68, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1811,38 +1817,38 @@ func file_pkgdash_proto_rawDescGZIP() []byte {
var file_pkgdash_proto_msgTypes = make([]protoimpl.MessageInfo, 27)
var file_pkgdash_proto_goTypes = []interface{}{
- (*PackagesModulesReq)(nil), // 0: pkgdash.PackagesModulesReq
- (*PackagesModulesRsp)(nil), // 1: pkgdash.PackagesModulesRsp
- (*PackagesLookupReq)(nil), // 2: pkgdash.PackagesLookupReq
- (*PackagesLookupRsp)(nil), // 3: pkgdash.PackagesLookupRsp
+ (*PackageModulesReq)(nil), // 0: pkgdash.PackageModulesReq
+ (*PackageModulesRsp)(nil), // 1: pkgdash.PackageModulesRsp
+ (*PackageLookupReq)(nil), // 2: pkgdash.PackageLookupReq
+ (*PackageLookupRsp)(nil), // 3: pkgdash.PackageLookupRsp
(*ErrorRsp)(nil), // 4: pkgdash.ErrorRsp
(*Package)(nil), // 5: pkgdash.Package
(*Module)(nil), // 6: pkgdash.Module
(*Issue)(nil), // 7: pkgdash.Issue
(*Comment)(nil), // 8: pkgdash.Comment
- (*CommentsDeleteReq)(nil), // 9: pkgdash.CommentsDeleteReq
- (*CommentsDeleteRsp)(nil), // 10: pkgdash.CommentsDeleteRsp
- (*PackagesDeleteReq)(nil), // 11: pkgdash.PackagesDeleteReq
- (*PackagesDeleteRsp)(nil), // 12: pkgdash.PackagesDeleteRsp
- (*PackagesListReq)(nil), // 13: pkgdash.PackagesListReq
- (*PackagesListRsp)(nil), // 14: pkgdash.PackagesListRsp
- (*PackagesUpdateReq)(nil), // 15: pkgdash.PackagesUpdateReq
- (*PackagesUpdateRsp)(nil), // 16: pkgdash.PackagesUpdateRsp
- (*CommentsCreateReq)(nil), // 17: pkgdash.CommentsCreateReq
- (*CommentsCreateRsp)(nil), // 18: pkgdash.CommentsCreateRsp
- (*PackagesCreateReq)(nil), // 19: pkgdash.PackagesCreateReq
- (*PackagesCreateRsp)(nil), // 20: pkgdash.PackagesCreateRsp
- (*ModulesListReq)(nil), // 21: pkgdash.ModulesListReq
- (*ModulesListRsp)(nil), // 22: pkgdash.ModulesListRsp
- (*CommentsListReq)(nil), // 23: pkgdash.CommentsListReq
- (*CommentsListRsp)(nil), // 24: pkgdash.CommentsListRsp
- (*CommentsLookupReq)(nil), // 25: pkgdash.CommentsLookupReq
- (*CommentsLookupRsp)(nil), // 26: pkgdash.CommentsLookupRsp
+ (*CommentDeleteReq)(nil), // 9: pkgdash.CommentDeleteReq
+ (*CommentDeleteRsp)(nil), // 10: pkgdash.CommentDeleteRsp
+ (*PackageDeleteReq)(nil), // 11: pkgdash.PackageDeleteReq
+ (*PackageDeleteRsp)(nil), // 12: pkgdash.PackageDeleteRsp
+ (*PackageListReq)(nil), // 13: pkgdash.PackageListReq
+ (*PackageListRsp)(nil), // 14: pkgdash.PackageListRsp
+ (*PackageUpdateReq)(nil), // 15: pkgdash.PackageUpdateReq
+ (*PackageUpdateRsp)(nil), // 16: pkgdash.PackageUpdateRsp
+ (*CommentCreateReq)(nil), // 17: pkgdash.CommentCreateReq
+ (*CommentCreateRsp)(nil), // 18: pkgdash.CommentCreateRsp
+ (*PackageCreateReq)(nil), // 19: pkgdash.PackageCreateReq
+ (*PackageCreateRsp)(nil), // 20: pkgdash.PackageCreateRsp
+ (*ModuleListReq)(nil), // 21: pkgdash.ModuleListReq
+ (*ModuleListRsp)(nil), // 22: pkgdash.ModuleListRsp
+ (*CommentListReq)(nil), // 23: pkgdash.CommentListReq
+ (*CommentListRsp)(nil), // 24: pkgdash.CommentListRsp
+ (*CommentLookupReq)(nil), // 25: pkgdash.CommentLookupReq
+ (*CommentLookupRsp)(nil), // 26: pkgdash.CommentLookupRsp
(*timestamppb.Timestamp)(nil), // 27: google.protobuf.Timestamp
}
var file_pkgdash_proto_depIdxs = []int32{
- 6, // 0: pkgdash.PackagesModulesRsp.modules:type_name -> pkgdash.Module
- 5, // 1: pkgdash.PackagesLookupRsp.package:type_name -> pkgdash.Package
+ 6, // 0: pkgdash.PackageModulesRsp.modules:type_name -> pkgdash.Module
+ 5, // 1: pkgdash.PackageLookupRsp.package:type_name -> pkgdash.Package
27, // 2: pkgdash.Package.created:type_name -> google.protobuf.Timestamp
27, // 3: pkgdash.Package.updated:type_name -> google.protobuf.Timestamp
27, // 4: pkgdash.Package.last_check:type_name -> google.protobuf.Timestamp
@@ -1851,35 +1857,35 @@ var file_pkgdash_proto_depIdxs = []int32{
27, // 7: pkgdash.Issue.updated:type_name -> google.protobuf.Timestamp
27, // 8: pkgdash.Comment.created:type_name -> google.protobuf.Timestamp
27, // 9: pkgdash.Comment.updated:type_name -> google.protobuf.Timestamp
- 5, // 10: pkgdash.PackagesListRsp.packages:type_name -> pkgdash.Package
- 5, // 11: pkgdash.PackagesUpdateRsp.package:type_name -> pkgdash.Package
- 8, // 12: pkgdash.CommentsCreateRsp.comment:type_name -> pkgdash.Comment
- 5, // 13: pkgdash.PackagesCreateRsp.package:type_name -> pkgdash.Package
- 6, // 14: pkgdash.ModulesListRsp.modules:type_name -> pkgdash.Module
- 8, // 15: pkgdash.CommentsListRsp.comments:type_name -> pkgdash.Comment
- 8, // 16: pkgdash.CommentsLookupRsp.comment:type_name -> pkgdash.Comment
- 2, // 17: pkgdash.PkgdashService.PackagesLookup:input_type -> pkgdash.PackagesLookupReq
- 19, // 18: pkgdash.PkgdashService.PackagesCreate:input_type -> pkgdash.PackagesCreateReq
- 11, // 19: pkgdash.PkgdashService.PackagesDelete:input_type -> pkgdash.PackagesDeleteReq
- 13, // 20: pkgdash.PkgdashService.PackagesList:input_type -> pkgdash.PackagesListReq
- 0, // 21: pkgdash.PkgdashService.PackagesModules:input_type -> pkgdash.PackagesModulesReq
- 15, // 22: pkgdash.PkgdashService.PackagesUpdate:input_type -> pkgdash.PackagesUpdateReq
- 17, // 23: pkgdash.PkgdashService.CommentsCreate:input_type -> pkgdash.CommentsCreateReq
- 25, // 24: pkgdash.PkgdashService.CommentsLookup:input_type -> pkgdash.CommentsLookupReq
- 23, // 25: pkgdash.PkgdashService.CommentsList:input_type -> pkgdash.CommentsListReq
- 9, // 26: pkgdash.PkgdashService.CommentsDelete:input_type -> pkgdash.CommentsDeleteReq
- 21, // 27: pkgdash.PkgdashService.ModulesList:input_type -> pkgdash.ModulesListReq
- 3, // 28: pkgdash.PkgdashService.PackagesLookup:output_type -> pkgdash.PackagesLookupRsp
- 20, // 29: pkgdash.PkgdashService.PackagesCreate:output_type -> pkgdash.PackagesCreateRsp
- 12, // 30: pkgdash.PkgdashService.PackagesDelete:output_type -> pkgdash.PackagesDeleteRsp
- 14, // 31: pkgdash.PkgdashService.PackagesList:output_type -> pkgdash.PackagesListRsp
- 1, // 32: pkgdash.PkgdashService.PackagesModules:output_type -> pkgdash.PackagesModulesRsp
- 16, // 33: pkgdash.PkgdashService.PackagesUpdate:output_type -> pkgdash.PackagesUpdateRsp
- 18, // 34: pkgdash.PkgdashService.CommentsCreate:output_type -> pkgdash.CommentsCreateRsp
- 26, // 35: pkgdash.PkgdashService.CommentsLookup:output_type -> pkgdash.CommentsLookupRsp
- 24, // 36: pkgdash.PkgdashService.CommentsList:output_type -> pkgdash.CommentsListRsp
- 10, // 37: pkgdash.PkgdashService.CommentsDelete:output_type -> pkgdash.CommentsDeleteRsp
- 22, // 38: pkgdash.PkgdashService.ModulesList:output_type -> pkgdash.ModulesListRsp
+ 5, // 10: pkgdash.PackageListRsp.packages:type_name -> pkgdash.Package
+ 5, // 11: pkgdash.PackageUpdateRsp.package:type_name -> pkgdash.Package
+ 8, // 12: pkgdash.CommentCreateRsp.comment:type_name -> pkgdash.Comment
+ 5, // 13: pkgdash.PackageCreateRsp.package:type_name -> pkgdash.Package
+ 6, // 14: pkgdash.ModuleListRsp.modules:type_name -> pkgdash.Module
+ 8, // 15: pkgdash.CommentListRsp.comments:type_name -> pkgdash.Comment
+ 8, // 16: pkgdash.CommentLookupRsp.comment:type_name -> pkgdash.Comment
+ 2, // 17: pkgdash.Pkgdash.PackageLookup:input_type -> pkgdash.PackageLookupReq
+ 19, // 18: pkgdash.Pkgdash.PackageCreate:input_type -> pkgdash.PackageCreateReq
+ 11, // 19: pkgdash.Pkgdash.PackageDelete:input_type -> pkgdash.PackageDeleteReq
+ 13, // 20: pkgdash.Pkgdash.PackageList:input_type -> pkgdash.PackageListReq
+ 0, // 21: pkgdash.Pkgdash.PackageModules:input_type -> pkgdash.PackageModulesReq
+ 15, // 22: pkgdash.Pkgdash.PackageUpdate:input_type -> pkgdash.PackageUpdateReq
+ 17, // 23: pkgdash.Pkgdash.CommentCreate:input_type -> pkgdash.CommentCreateReq
+ 25, // 24: pkgdash.Pkgdash.CommentLookup:input_type -> pkgdash.CommentLookupReq
+ 23, // 25: pkgdash.Pkgdash.CommentList:input_type -> pkgdash.CommentListReq
+ 9, // 26: pkgdash.Pkgdash.CommentDelete:input_type -> pkgdash.CommentDeleteReq
+ 21, // 27: pkgdash.Pkgdash.ModuleList:input_type -> pkgdash.ModuleListReq
+ 3, // 28: pkgdash.Pkgdash.PackageLookup:output_type -> pkgdash.PackageLookupRsp
+ 20, // 29: pkgdash.Pkgdash.PackageCreate:output_type -> pkgdash.PackageCreateRsp
+ 12, // 30: pkgdash.Pkgdash.PackageDelete:output_type -> pkgdash.PackageDeleteRsp
+ 14, // 31: pkgdash.Pkgdash.PackageList:output_type -> pkgdash.PackageListRsp
+ 1, // 32: pkgdash.Pkgdash.PackageModules:output_type -> pkgdash.PackageModulesRsp
+ 16, // 33: pkgdash.Pkgdash.PackageUpdate:output_type -> pkgdash.PackageUpdateRsp
+ 18, // 34: pkgdash.Pkgdash.CommentCreate:output_type -> pkgdash.CommentCreateRsp
+ 26, // 35: pkgdash.Pkgdash.CommentLookup:output_type -> pkgdash.CommentLookupRsp
+ 24, // 36: pkgdash.Pkgdash.CommentList:output_type -> pkgdash.CommentListRsp
+ 10, // 37: pkgdash.Pkgdash.CommentDelete:output_type -> pkgdash.CommentDeleteRsp
+ 22, // 38: pkgdash.Pkgdash.ModuleList:output_type -> pkgdash.ModuleListRsp
28, // [28:39] is the sub-list for method output_type
17, // [17:28] is the sub-list for method input_type
17, // [17:17] is the sub-list for extension type_name
@@ -1894,7 +1900,7 @@ func file_pkgdash_proto_init() {
}
if !protoimpl.UnsafeEnabled {
file_pkgdash_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesModulesReq); i {
+ switch v := v.(*PackageModulesReq); i {
case 0:
return &v.state
case 1:
@@ -1906,7 +1912,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesModulesRsp); i {
+ switch v := v.(*PackageModulesRsp); i {
case 0:
return &v.state
case 1:
@@ -1918,7 +1924,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesLookupReq); i {
+ switch v := v.(*PackageLookupReq); i {
case 0:
return &v.state
case 1:
@@ -1930,7 +1936,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesLookupRsp); i {
+ switch v := v.(*PackageLookupRsp); i {
case 0:
return &v.state
case 1:
@@ -2002,7 +2008,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsDeleteReq); i {
+ switch v := v.(*CommentDeleteReq); i {
case 0:
return &v.state
case 1:
@@ -2014,7 +2020,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsDeleteRsp); i {
+ switch v := v.(*CommentDeleteRsp); i {
case 0:
return &v.state
case 1:
@@ -2026,7 +2032,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesDeleteReq); i {
+ switch v := v.(*PackageDeleteReq); i {
case 0:
return &v.state
case 1:
@@ -2038,7 +2044,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesDeleteRsp); i {
+ switch v := v.(*PackageDeleteRsp); i {
case 0:
return &v.state
case 1:
@@ -2050,7 +2056,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesListReq); i {
+ switch v := v.(*PackageListReq); i {
case 0:
return &v.state
case 1:
@@ -2062,7 +2068,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesListRsp); i {
+ switch v := v.(*PackageListRsp); i {
case 0:
return &v.state
case 1:
@@ -2074,7 +2080,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesUpdateReq); i {
+ switch v := v.(*PackageUpdateReq); i {
case 0:
return &v.state
case 1:
@@ -2086,7 +2092,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesUpdateRsp); i {
+ switch v := v.(*PackageUpdateRsp); i {
case 0:
return &v.state
case 1:
@@ -2098,7 +2104,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsCreateReq); i {
+ switch v := v.(*CommentCreateReq); i {
case 0:
return &v.state
case 1:
@@ -2110,7 +2116,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsCreateRsp); i {
+ switch v := v.(*CommentCreateRsp); i {
case 0:
return &v.state
case 1:
@@ -2122,7 +2128,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesCreateReq); i {
+ switch v := v.(*PackageCreateReq); i {
case 0:
return &v.state
case 1:
@@ -2134,7 +2140,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PackagesCreateRsp); i {
+ switch v := v.(*PackageCreateRsp); i {
case 0:
return &v.state
case 1:
@@ -2146,7 +2152,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ModulesListReq); i {
+ switch v := v.(*ModuleListReq); i {
case 0:
return &v.state
case 1:
@@ -2158,7 +2164,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ModulesListRsp); i {
+ switch v := v.(*ModuleListRsp); i {
case 0:
return &v.state
case 1:
@@ -2170,7 +2176,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsListReq); i {
+ switch v := v.(*CommentListReq); i {
case 0:
return &v.state
case 1:
@@ -2182,7 +2188,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsListRsp); i {
+ switch v := v.(*CommentListRsp); i {
case 0:
return &v.state
case 1:
@@ -2194,7 +2200,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsLookupReq); i {
+ switch v := v.(*CommentLookupReq); i {
case 0:
return &v.state
case 1:
@@ -2206,7 +2212,7 @@ func file_pkgdash_proto_init() {
}
}
file_pkgdash_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommentsLookupRsp); i {
+ switch v := v.(*CommentLookupRsp); i {
case 0:
return &v.state
case 1:
diff --git a/proto/pkgdash.pb.validate.go b/proto/pkgdash.pb.validate.go
index 25a204f..b3d1a43 100644
--- a/proto/pkgdash.pb.validate.go
+++ b/proto/pkgdash.pb.validate.go
@@ -35,22 +35,22 @@ var (
_ = sort.Sort
)
-// Validate checks the field values on PackagesModulesReq with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the first error encountered is returned, or nil if there are no violations.
-func (m *PackagesModulesReq) Validate() error {
+// Validate checks the field values on PackageModulesReq with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// first error encountered is returned, or nil if there are no violations.
+func (m *PackageModulesReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesModulesReq with the rules
+// ValidateAll checks the field values on PackageModulesReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesModulesReqMultiError, or nil if none found.
-func (m *PackagesModulesReq) ValidateAll() error {
+// PackageModulesReqMultiError, or nil if none found.
+func (m *PackageModulesReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesModulesReq) validate(all bool) error {
+func (m *PackageModulesReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -60,18 +60,18 @@ func (m *PackagesModulesReq) validate(all bool) error {
// no validation rules for Package
if len(errors) > 0 {
- return PackagesModulesReqMultiError(errors)
+ return PackageModulesReqMultiError(errors)
}
return nil
}
-// PackagesModulesReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesModulesReq.ValidateAll() if the designated constraints
+// PackageModulesReqMultiError is an error wrapping multiple validation errors
+// returned by PackageModulesReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesModulesReqMultiError []error
+type PackageModulesReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesModulesReqMultiError) Error() string {
+func (m PackageModulesReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -80,11 +80,11 @@ func (m PackagesModulesReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesModulesReqMultiError) AllErrors() []error { return m }
+func (m PackageModulesReqMultiError) AllErrors() []error { return m }
-// PackagesModulesReqValidationError is the validation error returned by
-// PackagesModulesReq.Validate if the designated constraints aren't met.
-type PackagesModulesReqValidationError struct {
+// PackageModulesReqValidationError is the validation error returned by
+// PackageModulesReq.Validate if the designated constraints aren't met.
+type PackageModulesReqValidationError struct {
field string
reason string
cause error
@@ -92,24 +92,24 @@ type PackagesModulesReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesModulesReqValidationError) Field() string { return e.field }
+func (e PackageModulesReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesModulesReqValidationError) Reason() string { return e.reason }
+func (e PackageModulesReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesModulesReqValidationError) Cause() error { return e.cause }
+func (e PackageModulesReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesModulesReqValidationError) Key() bool { return e.key }
+func (e PackageModulesReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesModulesReqValidationError) ErrorName() string {
- return "PackagesModulesReqValidationError"
+func (e PackageModulesReqValidationError) ErrorName() string {
+ return "PackageModulesReqValidationError"
}
// Error satisfies the builtin error interface
-func (e PackagesModulesReqValidationError) Error() string {
+func (e PackageModulesReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -121,14 +121,14 @@ func (e PackagesModulesReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesModulesReq.%s: %s%s",
+ "invalid %sPackageModulesReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesModulesReqValidationError{}
+var _ error = PackageModulesReqValidationError{}
var _ interface {
Field() string
@@ -136,24 +136,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesModulesReqValidationError{}
+} = PackageModulesReqValidationError{}
-// Validate checks the field values on PackagesModulesRsp with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the first error encountered is returned, or nil if there are no violations.
-func (m *PackagesModulesRsp) Validate() error {
+// Validate checks the field values on PackageModulesRsp with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// first error encountered is returned, or nil if there are no violations.
+func (m *PackageModulesRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesModulesRsp with the rules
+// ValidateAll checks the field values on PackageModulesRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesModulesRspMultiError, or nil if none found.
-func (m *PackagesModulesRsp) ValidateAll() error {
+// PackageModulesRspMultiError, or nil if none found.
+func (m *PackageModulesRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesModulesRsp) validate(all bool) error {
+func (m *PackageModulesRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -167,7 +167,7 @@ func (m *PackagesModulesRsp) validate(all bool) error {
switch v := interface{}(item).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, PackagesModulesRspValidationError{
+ errors = append(errors, PackageModulesRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -175,7 +175,7 @@ func (m *PackagesModulesRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, PackagesModulesRspValidationError{
+ errors = append(errors, PackageModulesRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -184,7 +184,7 @@ func (m *PackagesModulesRsp) validate(all bool) error {
}
} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return PackagesModulesRspValidationError{
+ return PackageModulesRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -195,18 +195,18 @@ func (m *PackagesModulesRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesModulesRspMultiError(errors)
+ return PackageModulesRspMultiError(errors)
}
return nil
}
-// PackagesModulesRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesModulesRsp.ValidateAll() if the designated constraints
+// PackageModulesRspMultiError is an error wrapping multiple validation errors
+// returned by PackageModulesRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesModulesRspMultiError []error
+type PackageModulesRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesModulesRspMultiError) Error() string {
+func (m PackageModulesRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -215,11 +215,11 @@ func (m PackagesModulesRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesModulesRspMultiError) AllErrors() []error { return m }
+func (m PackageModulesRspMultiError) AllErrors() []error { return m }
-// PackagesModulesRspValidationError is the validation error returned by
-// PackagesModulesRsp.Validate if the designated constraints aren't met.
-type PackagesModulesRspValidationError struct {
+// PackageModulesRspValidationError is the validation error returned by
+// PackageModulesRsp.Validate if the designated constraints aren't met.
+type PackageModulesRspValidationError struct {
field string
reason string
cause error
@@ -227,24 +227,24 @@ type PackagesModulesRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesModulesRspValidationError) Field() string { return e.field }
+func (e PackageModulesRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesModulesRspValidationError) Reason() string { return e.reason }
+func (e PackageModulesRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesModulesRspValidationError) Cause() error { return e.cause }
+func (e PackageModulesRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesModulesRspValidationError) Key() bool { return e.key }
+func (e PackageModulesRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesModulesRspValidationError) ErrorName() string {
- return "PackagesModulesRspValidationError"
+func (e PackageModulesRspValidationError) ErrorName() string {
+ return "PackageModulesRspValidationError"
}
// Error satisfies the builtin error interface
-func (e PackagesModulesRspValidationError) Error() string {
+func (e PackageModulesRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -256,14 +256,14 @@ func (e PackagesModulesRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesModulesRsp.%s: %s%s",
+ "invalid %sPackageModulesRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesModulesRspValidationError{}
+var _ error = PackageModulesRspValidationError{}
var _ interface {
Field() string
@@ -271,24 +271,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesModulesRspValidationError{}
+} = PackageModulesRspValidationError{}
-// Validate checks the field values on PackagesLookupReq with the rules defined
+// Validate checks the field values on PackageLookupReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesLookupReq) Validate() error {
+func (m *PackageLookupReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesLookupReq with the rules
+// ValidateAll checks the field values on PackageLookupReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesLookupReqMultiError, or nil if none found.
-func (m *PackagesLookupReq) ValidateAll() error {
+// PackageLookupReqMultiError, or nil if none found.
+func (m *PackageLookupReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesLookupReq) validate(all bool) error {
+func (m *PackageLookupReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -298,18 +298,18 @@ func (m *PackagesLookupReq) validate(all bool) error {
// no validation rules for Id
if len(errors) > 0 {
- return PackagesLookupReqMultiError(errors)
+ return PackageLookupReqMultiError(errors)
}
return nil
}
-// PackagesLookupReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesLookupReq.ValidateAll() if the designated constraints
+// PackageLookupReqMultiError is an error wrapping multiple validation errors
+// returned by PackageLookupReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesLookupReqMultiError []error
+type PackageLookupReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesLookupReqMultiError) Error() string {
+func (m PackageLookupReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -318,11 +318,11 @@ func (m PackagesLookupReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesLookupReqMultiError) AllErrors() []error { return m }
+func (m PackageLookupReqMultiError) AllErrors() []error { return m }
-// PackagesLookupReqValidationError is the validation error returned by
-// PackagesLookupReq.Validate if the designated constraints aren't met.
-type PackagesLookupReqValidationError struct {
+// PackageLookupReqValidationError is the validation error returned by
+// PackageLookupReq.Validate if the designated constraints aren't met.
+type PackageLookupReqValidationError struct {
field string
reason string
cause error
@@ -330,24 +330,22 @@ type PackagesLookupReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesLookupReqValidationError) Field() string { return e.field }
+func (e PackageLookupReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesLookupReqValidationError) Reason() string { return e.reason }
+func (e PackageLookupReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesLookupReqValidationError) Cause() error { return e.cause }
+func (e PackageLookupReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesLookupReqValidationError) Key() bool { return e.key }
+func (e PackageLookupReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesLookupReqValidationError) ErrorName() string {
- return "PackagesLookupReqValidationError"
-}
+func (e PackageLookupReqValidationError) ErrorName() string { return "PackageLookupReqValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesLookupReqValidationError) Error() string {
+func (e PackageLookupReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -359,14 +357,14 @@ func (e PackagesLookupReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesLookupReq.%s: %s%s",
+ "invalid %sPackageLookupReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesLookupReqValidationError{}
+var _ error = PackageLookupReqValidationError{}
var _ interface {
Field() string
@@ -374,24 +372,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesLookupReqValidationError{}
+} = PackageLookupReqValidationError{}
-// Validate checks the field values on PackagesLookupRsp with the rules defined
+// Validate checks the field values on PackageLookupRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesLookupRsp) Validate() error {
+func (m *PackageLookupRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesLookupRsp with the rules
+// ValidateAll checks the field values on PackageLookupRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesLookupRspMultiError, or nil if none found.
-func (m *PackagesLookupRsp) ValidateAll() error {
+// PackageLookupRspMultiError, or nil if none found.
+func (m *PackageLookupRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesLookupRsp) validate(all bool) error {
+func (m *PackageLookupRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -402,7 +400,7 @@ func (m *PackagesLookupRsp) validate(all bool) error {
switch v := interface{}(m.GetPackage()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, PackagesLookupRspValidationError{
+ errors = append(errors, PackageLookupRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -410,7 +408,7 @@ func (m *PackagesLookupRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, PackagesLookupRspValidationError{
+ errors = append(errors, PackageLookupRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -419,7 +417,7 @@ func (m *PackagesLookupRsp) validate(all bool) error {
}
} else if v, ok := interface{}(m.GetPackage()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return PackagesLookupRspValidationError{
+ return PackageLookupRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -428,18 +426,18 @@ func (m *PackagesLookupRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesLookupRspMultiError(errors)
+ return PackageLookupRspMultiError(errors)
}
return nil
}
-// PackagesLookupRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesLookupRsp.ValidateAll() if the designated constraints
+// PackageLookupRspMultiError is an error wrapping multiple validation errors
+// returned by PackageLookupRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesLookupRspMultiError []error
+type PackageLookupRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesLookupRspMultiError) Error() string {
+func (m PackageLookupRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -448,11 +446,11 @@ func (m PackagesLookupRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesLookupRspMultiError) AllErrors() []error { return m }
+func (m PackageLookupRspMultiError) AllErrors() []error { return m }
-// PackagesLookupRspValidationError is the validation error returned by
-// PackagesLookupRsp.Validate if the designated constraints aren't met.
-type PackagesLookupRspValidationError struct {
+// PackageLookupRspValidationError is the validation error returned by
+// PackageLookupRsp.Validate if the designated constraints aren't met.
+type PackageLookupRspValidationError struct {
field string
reason string
cause error
@@ -460,24 +458,22 @@ type PackagesLookupRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesLookupRspValidationError) Field() string { return e.field }
+func (e PackageLookupRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesLookupRspValidationError) Reason() string { return e.reason }
+func (e PackageLookupRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesLookupRspValidationError) Cause() error { return e.cause }
+func (e PackageLookupRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesLookupRspValidationError) Key() bool { return e.key }
+func (e PackageLookupRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesLookupRspValidationError) ErrorName() string {
- return "PackagesLookupRspValidationError"
-}
+func (e PackageLookupRspValidationError) ErrorName() string { return "PackageLookupRspValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesLookupRspValidationError) Error() string {
+func (e PackageLookupRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -489,14 +485,14 @@ func (e PackagesLookupRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesLookupRsp.%s: %s%s",
+ "invalid %sPackageLookupRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesLookupRspValidationError{}
+var _ error = PackageLookupRspValidationError{}
var _ interface {
Field() string
@@ -504,7 +500,7 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesLookupRspValidationError{}
+} = PackageLookupRspValidationError{}
// Validate checks the field values on ErrorRsp with the rules defined in the
// proto definition for this message. If any rules are violated, the first
@@ -666,6 +662,17 @@ func (m *Package) validate(all bool) error {
errors = append(errors, err)
}
+ if utf8.RuneCountInString(m.GetDescription()) < 1 {
+ err := PackageValidationError{
+ field: "Description",
+ reason: "value length must be at least 1 runes",
+ }
+ if !all {
+ return err
+ }
+ errors = append(errors, err)
+ }
+
// no validation rules for Modules
// no validation rules for Issues
@@ -1372,22 +1379,22 @@ var _ interface {
ErrorName() string
} = CommentValidationError{}
-// Validate checks the field values on CommentsDeleteReq with the rules defined
+// Validate checks the field values on CommentDeleteReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsDeleteReq) Validate() error {
+func (m *CommentDeleteReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsDeleteReq with the rules
+// ValidateAll checks the field values on CommentDeleteReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsDeleteReqMultiError, or nil if none found.
-func (m *CommentsDeleteReq) ValidateAll() error {
+// CommentDeleteReqMultiError, or nil if none found.
+func (m *CommentDeleteReq) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsDeleteReq) validate(all bool) error {
+func (m *CommentDeleteReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -1399,18 +1406,18 @@ func (m *CommentsDeleteReq) validate(all bool) error {
// no validation rules for PackageId
if len(errors) > 0 {
- return CommentsDeleteReqMultiError(errors)
+ return CommentDeleteReqMultiError(errors)
}
return nil
}
-// CommentsDeleteReqMultiError is an error wrapping multiple validation errors
-// returned by CommentsDeleteReq.ValidateAll() if the designated constraints
+// CommentDeleteReqMultiError is an error wrapping multiple validation errors
+// returned by CommentDeleteReq.ValidateAll() if the designated constraints
// aren't met.
-type CommentsDeleteReqMultiError []error
+type CommentDeleteReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsDeleteReqMultiError) Error() string {
+func (m CommentDeleteReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1419,11 +1426,11 @@ func (m CommentsDeleteReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsDeleteReqMultiError) AllErrors() []error { return m }
+func (m CommentDeleteReqMultiError) AllErrors() []error { return m }
-// CommentsDeleteReqValidationError is the validation error returned by
-// CommentsDeleteReq.Validate if the designated constraints aren't met.
-type CommentsDeleteReqValidationError struct {
+// CommentDeleteReqValidationError is the validation error returned by
+// CommentDeleteReq.Validate if the designated constraints aren't met.
+type CommentDeleteReqValidationError struct {
field string
reason string
cause error
@@ -1431,24 +1438,22 @@ type CommentsDeleteReqValidationError struct {
}
// Field function returns field value.
-func (e CommentsDeleteReqValidationError) Field() string { return e.field }
+func (e CommentDeleteReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsDeleteReqValidationError) Reason() string { return e.reason }
+func (e CommentDeleteReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsDeleteReqValidationError) Cause() error { return e.cause }
+func (e CommentDeleteReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsDeleteReqValidationError) Key() bool { return e.key }
+func (e CommentDeleteReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsDeleteReqValidationError) ErrorName() string {
- return "CommentsDeleteReqValidationError"
-}
+func (e CommentDeleteReqValidationError) ErrorName() string { return "CommentDeleteReqValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsDeleteReqValidationError) Error() string {
+func (e CommentDeleteReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1460,14 +1465,14 @@ func (e CommentsDeleteReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsDeleteReq.%s: %s%s",
+ "invalid %sCommentDeleteReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsDeleteReqValidationError{}
+var _ error = CommentDeleteReqValidationError{}
var _ interface {
Field() string
@@ -1475,24 +1480,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsDeleteReqValidationError{}
+} = CommentDeleteReqValidationError{}
-// Validate checks the field values on CommentsDeleteRsp with the rules defined
+// Validate checks the field values on CommentDeleteRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsDeleteRsp) Validate() error {
+func (m *CommentDeleteRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsDeleteRsp with the rules
+// ValidateAll checks the field values on CommentDeleteRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsDeleteRspMultiError, or nil if none found.
-func (m *CommentsDeleteRsp) ValidateAll() error {
+// CommentDeleteRspMultiError, or nil if none found.
+func (m *CommentDeleteRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsDeleteRsp) validate(all bool) error {
+func (m *CommentDeleteRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -1500,18 +1505,18 @@ func (m *CommentsDeleteRsp) validate(all bool) error {
var errors []error
if len(errors) > 0 {
- return CommentsDeleteRspMultiError(errors)
+ return CommentDeleteRspMultiError(errors)
}
return nil
}
-// CommentsDeleteRspMultiError is an error wrapping multiple validation errors
-// returned by CommentsDeleteRsp.ValidateAll() if the designated constraints
+// CommentDeleteRspMultiError is an error wrapping multiple validation errors
+// returned by CommentDeleteRsp.ValidateAll() if the designated constraints
// aren't met.
-type CommentsDeleteRspMultiError []error
+type CommentDeleteRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsDeleteRspMultiError) Error() string {
+func (m CommentDeleteRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1520,11 +1525,11 @@ func (m CommentsDeleteRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsDeleteRspMultiError) AllErrors() []error { return m }
+func (m CommentDeleteRspMultiError) AllErrors() []error { return m }
-// CommentsDeleteRspValidationError is the validation error returned by
-// CommentsDeleteRsp.Validate if the designated constraints aren't met.
-type CommentsDeleteRspValidationError struct {
+// CommentDeleteRspValidationError is the validation error returned by
+// CommentDeleteRsp.Validate if the designated constraints aren't met.
+type CommentDeleteRspValidationError struct {
field string
reason string
cause error
@@ -1532,24 +1537,22 @@ type CommentsDeleteRspValidationError struct {
}
// Field function returns field value.
-func (e CommentsDeleteRspValidationError) Field() string { return e.field }
+func (e CommentDeleteRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsDeleteRspValidationError) Reason() string { return e.reason }
+func (e CommentDeleteRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsDeleteRspValidationError) Cause() error { return e.cause }
+func (e CommentDeleteRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsDeleteRspValidationError) Key() bool { return e.key }
+func (e CommentDeleteRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsDeleteRspValidationError) ErrorName() string {
- return "CommentsDeleteRspValidationError"
-}
+func (e CommentDeleteRspValidationError) ErrorName() string { return "CommentDeleteRspValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsDeleteRspValidationError) Error() string {
+func (e CommentDeleteRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1561,14 +1564,14 @@ func (e CommentsDeleteRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsDeleteRsp.%s: %s%s",
+ "invalid %sCommentDeleteRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsDeleteRspValidationError{}
+var _ error = CommentDeleteRspValidationError{}
var _ interface {
Field() string
@@ -1576,24 +1579,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsDeleteRspValidationError{}
+} = CommentDeleteRspValidationError{}
-// Validate checks the field values on PackagesDeleteReq with the rules defined
+// Validate checks the field values on PackageDeleteReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesDeleteReq) Validate() error {
+func (m *PackageDeleteReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesDeleteReq with the rules
+// ValidateAll checks the field values on PackageDeleteReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesDeleteReqMultiError, or nil if none found.
-func (m *PackagesDeleteReq) ValidateAll() error {
+// PackageDeleteReqMultiError, or nil if none found.
+func (m *PackageDeleteReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesDeleteReq) validate(all bool) error {
+func (m *PackageDeleteReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -1603,18 +1606,18 @@ func (m *PackagesDeleteReq) validate(all bool) error {
// no validation rules for Id
if len(errors) > 0 {
- return PackagesDeleteReqMultiError(errors)
+ return PackageDeleteReqMultiError(errors)
}
return nil
}
-// PackagesDeleteReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesDeleteReq.ValidateAll() if the designated constraints
+// PackageDeleteReqMultiError is an error wrapping multiple validation errors
+// returned by PackageDeleteReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesDeleteReqMultiError []error
+type PackageDeleteReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesDeleteReqMultiError) Error() string {
+func (m PackageDeleteReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1623,11 +1626,11 @@ func (m PackagesDeleteReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesDeleteReqMultiError) AllErrors() []error { return m }
+func (m PackageDeleteReqMultiError) AllErrors() []error { return m }
-// PackagesDeleteReqValidationError is the validation error returned by
-// PackagesDeleteReq.Validate if the designated constraints aren't met.
-type PackagesDeleteReqValidationError struct {
+// PackageDeleteReqValidationError is the validation error returned by
+// PackageDeleteReq.Validate if the designated constraints aren't met.
+type PackageDeleteReqValidationError struct {
field string
reason string
cause error
@@ -1635,24 +1638,22 @@ type PackagesDeleteReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesDeleteReqValidationError) Field() string { return e.field }
+func (e PackageDeleteReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesDeleteReqValidationError) Reason() string { return e.reason }
+func (e PackageDeleteReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesDeleteReqValidationError) Cause() error { return e.cause }
+func (e PackageDeleteReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesDeleteReqValidationError) Key() bool { return e.key }
+func (e PackageDeleteReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesDeleteReqValidationError) ErrorName() string {
- return "PackagesDeleteReqValidationError"
-}
+func (e PackageDeleteReqValidationError) ErrorName() string { return "PackageDeleteReqValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesDeleteReqValidationError) Error() string {
+func (e PackageDeleteReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1664,14 +1665,14 @@ func (e PackagesDeleteReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesDeleteReq.%s: %s%s",
+ "invalid %sPackageDeleteReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesDeleteReqValidationError{}
+var _ error = PackageDeleteReqValidationError{}
var _ interface {
Field() string
@@ -1679,24 +1680,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesDeleteReqValidationError{}
+} = PackageDeleteReqValidationError{}
-// Validate checks the field values on PackagesDeleteRsp with the rules defined
+// Validate checks the field values on PackageDeleteRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesDeleteRsp) Validate() error {
+func (m *PackageDeleteRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesDeleteRsp with the rules
+// ValidateAll checks the field values on PackageDeleteRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesDeleteRspMultiError, or nil if none found.
-func (m *PackagesDeleteRsp) ValidateAll() error {
+// PackageDeleteRspMultiError, or nil if none found.
+func (m *PackageDeleteRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesDeleteRsp) validate(all bool) error {
+func (m *PackageDeleteRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -1704,18 +1705,18 @@ func (m *PackagesDeleteRsp) validate(all bool) error {
var errors []error
if len(errors) > 0 {
- return PackagesDeleteRspMultiError(errors)
+ return PackageDeleteRspMultiError(errors)
}
return nil
}
-// PackagesDeleteRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesDeleteRsp.ValidateAll() if the designated constraints
+// PackageDeleteRspMultiError is an error wrapping multiple validation errors
+// returned by PackageDeleteRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesDeleteRspMultiError []error
+type PackageDeleteRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesDeleteRspMultiError) Error() string {
+func (m PackageDeleteRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1724,11 +1725,11 @@ func (m PackagesDeleteRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesDeleteRspMultiError) AllErrors() []error { return m }
+func (m PackageDeleteRspMultiError) AllErrors() []error { return m }
-// PackagesDeleteRspValidationError is the validation error returned by
-// PackagesDeleteRsp.Validate if the designated constraints aren't met.
-type PackagesDeleteRspValidationError struct {
+// PackageDeleteRspValidationError is the validation error returned by
+// PackageDeleteRsp.Validate if the designated constraints aren't met.
+type PackageDeleteRspValidationError struct {
field string
reason string
cause error
@@ -1736,24 +1737,22 @@ type PackagesDeleteRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesDeleteRspValidationError) Field() string { return e.field }
+func (e PackageDeleteRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesDeleteRspValidationError) Reason() string { return e.reason }
+func (e PackageDeleteRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesDeleteRspValidationError) Cause() error { return e.cause }
+func (e PackageDeleteRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesDeleteRspValidationError) Key() bool { return e.key }
+func (e PackageDeleteRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesDeleteRspValidationError) ErrorName() string {
- return "PackagesDeleteRspValidationError"
-}
+func (e PackageDeleteRspValidationError) ErrorName() string { return "PackageDeleteRspValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesDeleteRspValidationError) Error() string {
+func (e PackageDeleteRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1765,14 +1764,14 @@ func (e PackagesDeleteRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesDeleteRsp.%s: %s%s",
+ "invalid %sPackageDeleteRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesDeleteRspValidationError{}
+var _ error = PackageDeleteRspValidationError{}
var _ interface {
Field() string
@@ -1780,24 +1779,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesDeleteRspValidationError{}
+} = PackageDeleteRspValidationError{}
-// Validate checks the field values on PackagesListReq with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesListReq) Validate() error {
+// Validate checks the field values on PackageListReq with the rules defined in
+// the proto definition for this message. If any rules are violated, the first
+// error encountered is returned, or nil if there are no violations.
+func (m *PackageListReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesListReq with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the result is a list of violation errors wrapped in
-// PackagesListReqMultiError, or nil if none found.
-func (m *PackagesListReq) ValidateAll() error {
+// ValidateAll checks the field values on PackageListReq with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// result is a list of violation errors wrapped in PackageListReqMultiError,
+// or nil if none found.
+func (m *PackageListReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesListReq) validate(all bool) error {
+func (m *PackageListReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -1805,18 +1804,18 @@ func (m *PackagesListReq) validate(all bool) error {
var errors []error
if len(errors) > 0 {
- return PackagesListReqMultiError(errors)
+ return PackageListReqMultiError(errors)
}
return nil
}
-// PackagesListReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesListReq.ValidateAll() if the designated constraints
+// PackageListReqMultiError is an error wrapping multiple validation errors
+// returned by PackageListReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesListReqMultiError []error
+type PackageListReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesListReqMultiError) Error() string {
+func (m PackageListReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1825,11 +1824,11 @@ func (m PackagesListReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesListReqMultiError) AllErrors() []error { return m }
+func (m PackageListReqMultiError) AllErrors() []error { return m }
-// PackagesListReqValidationError is the validation error returned by
-// PackagesListReq.Validate if the designated constraints aren't met.
-type PackagesListReqValidationError struct {
+// PackageListReqValidationError is the validation error returned by
+// PackageListReq.Validate if the designated constraints aren't met.
+type PackageListReqValidationError struct {
field string
reason string
cause error
@@ -1837,22 +1836,22 @@ type PackagesListReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesListReqValidationError) Field() string { return e.field }
+func (e PackageListReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesListReqValidationError) Reason() string { return e.reason }
+func (e PackageListReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesListReqValidationError) Cause() error { return e.cause }
+func (e PackageListReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesListReqValidationError) Key() bool { return e.key }
+func (e PackageListReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesListReqValidationError) ErrorName() string { return "PackagesListReqValidationError" }
+func (e PackageListReqValidationError) ErrorName() string { return "PackageListReqValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesListReqValidationError) Error() string {
+func (e PackageListReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1864,14 +1863,14 @@ func (e PackagesListReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesListReq.%s: %s%s",
+ "invalid %sPackageListReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesListReqValidationError{}
+var _ error = PackageListReqValidationError{}
var _ interface {
Field() string
@@ -1879,24 +1878,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesListReqValidationError{}
+} = PackageListReqValidationError{}
-// Validate checks the field values on PackagesListRsp with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesListRsp) Validate() error {
+// Validate checks the field values on PackageListRsp with the rules defined in
+// the proto definition for this message. If any rules are violated, the first
+// error encountered is returned, or nil if there are no violations.
+func (m *PackageListRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesListRsp with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the result is a list of violation errors wrapped in
-// PackagesListRspMultiError, or nil if none found.
-func (m *PackagesListRsp) ValidateAll() error {
+// ValidateAll checks the field values on PackageListRsp with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// result is a list of violation errors wrapped in PackageListRspMultiError,
+// or nil if none found.
+func (m *PackageListRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesListRsp) validate(all bool) error {
+func (m *PackageListRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -1910,7 +1909,7 @@ func (m *PackagesListRsp) validate(all bool) error {
switch v := interface{}(item).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, PackagesListRspValidationError{
+ errors = append(errors, PackageListRspValidationError{
field: fmt.Sprintf("Packages[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -1918,7 +1917,7 @@ func (m *PackagesListRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, PackagesListRspValidationError{
+ errors = append(errors, PackageListRspValidationError{
field: fmt.Sprintf("Packages[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -1927,7 +1926,7 @@ func (m *PackagesListRsp) validate(all bool) error {
}
} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return PackagesListRspValidationError{
+ return PackageListRspValidationError{
field: fmt.Sprintf("Packages[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -1938,18 +1937,18 @@ func (m *PackagesListRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesListRspMultiError(errors)
+ return PackageListRspMultiError(errors)
}
return nil
}
-// PackagesListRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesListRsp.ValidateAll() if the designated constraints
+// PackageListRspMultiError is an error wrapping multiple validation errors
+// returned by PackageListRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesListRspMultiError []error
+type PackageListRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesListRspMultiError) Error() string {
+func (m PackageListRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -1958,11 +1957,11 @@ func (m PackagesListRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesListRspMultiError) AllErrors() []error { return m }
+func (m PackageListRspMultiError) AllErrors() []error { return m }
-// PackagesListRspValidationError is the validation error returned by
-// PackagesListRsp.Validate if the designated constraints aren't met.
-type PackagesListRspValidationError struct {
+// PackageListRspValidationError is the validation error returned by
+// PackageListRsp.Validate if the designated constraints aren't met.
+type PackageListRspValidationError struct {
field string
reason string
cause error
@@ -1970,22 +1969,22 @@ type PackagesListRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesListRspValidationError) Field() string { return e.field }
+func (e PackageListRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesListRspValidationError) Reason() string { return e.reason }
+func (e PackageListRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesListRspValidationError) Cause() error { return e.cause }
+func (e PackageListRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesListRspValidationError) Key() bool { return e.key }
+func (e PackageListRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesListRspValidationError) ErrorName() string { return "PackagesListRspValidationError" }
+func (e PackageListRspValidationError) ErrorName() string { return "PackageListRspValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesListRspValidationError) Error() string {
+func (e PackageListRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -1997,14 +1996,14 @@ func (e PackagesListRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesListRsp.%s: %s%s",
+ "invalid %sPackageListRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesListRspValidationError{}
+var _ error = PackageListRspValidationError{}
var _ interface {
Field() string
@@ -2012,24 +2011,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesListRspValidationError{}
+} = PackageListRspValidationError{}
-// Validate checks the field values on PackagesUpdateReq with the rules defined
+// Validate checks the field values on PackageUpdateReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesUpdateReq) Validate() error {
+func (m *PackageUpdateReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesUpdateReq with the rules
+// ValidateAll checks the field values on PackageUpdateReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesUpdateReqMultiError, or nil if none found.
-func (m *PackagesUpdateReq) ValidateAll() error {
+// PackageUpdateReqMultiError, or nil if none found.
+func (m *PackageUpdateReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesUpdateReq) validate(all bool) error {
+func (m *PackageUpdateReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -2037,7 +2036,7 @@ func (m *PackagesUpdateReq) validate(all bool) error {
var errors []error
if m.GetId() <= 0 {
- err := PackagesUpdateReqValidationError{
+ err := PackageUpdateReqValidationError{
field: "Id",
reason: "value must be greater than 0",
}
@@ -2048,7 +2047,7 @@ func (m *PackagesUpdateReq) validate(all bool) error {
}
if utf8.RuneCountInString(m.GetName()) < 1 {
- err := PackagesUpdateReqValidationError{
+ err := PackageUpdateReqValidationError{
field: "Name",
reason: "value length must be at least 1 runes",
}
@@ -2059,7 +2058,7 @@ func (m *PackagesUpdateReq) validate(all bool) error {
}
if utf8.RuneCountInString(m.GetUrl()) < 1 {
- err := PackagesUpdateReqValidationError{
+ err := PackageUpdateReqValidationError{
field: "Url",
reason: "value length must be at least 1 runes",
}
@@ -2070,18 +2069,18 @@ func (m *PackagesUpdateReq) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesUpdateReqMultiError(errors)
+ return PackageUpdateReqMultiError(errors)
}
return nil
}
-// PackagesUpdateReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesUpdateReq.ValidateAll() if the designated constraints
+// PackageUpdateReqMultiError is an error wrapping multiple validation errors
+// returned by PackageUpdateReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesUpdateReqMultiError []error
+type PackageUpdateReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesUpdateReqMultiError) Error() string {
+func (m PackageUpdateReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2090,11 +2089,11 @@ func (m PackagesUpdateReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesUpdateReqMultiError) AllErrors() []error { return m }
+func (m PackageUpdateReqMultiError) AllErrors() []error { return m }
-// PackagesUpdateReqValidationError is the validation error returned by
-// PackagesUpdateReq.Validate if the designated constraints aren't met.
-type PackagesUpdateReqValidationError struct {
+// PackageUpdateReqValidationError is the validation error returned by
+// PackageUpdateReq.Validate if the designated constraints aren't met.
+type PackageUpdateReqValidationError struct {
field string
reason string
cause error
@@ -2102,24 +2101,22 @@ type PackagesUpdateReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesUpdateReqValidationError) Field() string { return e.field }
+func (e PackageUpdateReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesUpdateReqValidationError) Reason() string { return e.reason }
+func (e PackageUpdateReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesUpdateReqValidationError) Cause() error { return e.cause }
+func (e PackageUpdateReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesUpdateReqValidationError) Key() bool { return e.key }
+func (e PackageUpdateReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesUpdateReqValidationError) ErrorName() string {
- return "PackagesUpdateReqValidationError"
-}
+func (e PackageUpdateReqValidationError) ErrorName() string { return "PackageUpdateReqValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesUpdateReqValidationError) Error() string {
+func (e PackageUpdateReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2131,14 +2128,14 @@ func (e PackagesUpdateReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesUpdateReq.%s: %s%s",
+ "invalid %sPackageUpdateReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesUpdateReqValidationError{}
+var _ error = PackageUpdateReqValidationError{}
var _ interface {
Field() string
@@ -2146,24 +2143,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesUpdateReqValidationError{}
+} = PackageUpdateReqValidationError{}
-// Validate checks the field values on PackagesUpdateRsp with the rules defined
+// Validate checks the field values on PackageUpdateRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesUpdateRsp) Validate() error {
+func (m *PackageUpdateRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesUpdateRsp with the rules
+// ValidateAll checks the field values on PackageUpdateRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesUpdateRspMultiError, or nil if none found.
-func (m *PackagesUpdateRsp) ValidateAll() error {
+// PackageUpdateRspMultiError, or nil if none found.
+func (m *PackageUpdateRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesUpdateRsp) validate(all bool) error {
+func (m *PackageUpdateRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -2174,7 +2171,7 @@ func (m *PackagesUpdateRsp) validate(all bool) error {
switch v := interface{}(m.GetPackage()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, PackagesUpdateRspValidationError{
+ errors = append(errors, PackageUpdateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2182,7 +2179,7 @@ func (m *PackagesUpdateRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, PackagesUpdateRspValidationError{
+ errors = append(errors, PackageUpdateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2191,7 +2188,7 @@ func (m *PackagesUpdateRsp) validate(all bool) error {
}
} else if v, ok := interface{}(m.GetPackage()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return PackagesUpdateRspValidationError{
+ return PackageUpdateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2200,18 +2197,18 @@ func (m *PackagesUpdateRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesUpdateRspMultiError(errors)
+ return PackageUpdateRspMultiError(errors)
}
return nil
}
-// PackagesUpdateRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesUpdateRsp.ValidateAll() if the designated constraints
+// PackageUpdateRspMultiError is an error wrapping multiple validation errors
+// returned by PackageUpdateRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesUpdateRspMultiError []error
+type PackageUpdateRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesUpdateRspMultiError) Error() string {
+func (m PackageUpdateRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2220,11 +2217,11 @@ func (m PackagesUpdateRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesUpdateRspMultiError) AllErrors() []error { return m }
+func (m PackageUpdateRspMultiError) AllErrors() []error { return m }
-// PackagesUpdateRspValidationError is the validation error returned by
-// PackagesUpdateRsp.Validate if the designated constraints aren't met.
-type PackagesUpdateRspValidationError struct {
+// PackageUpdateRspValidationError is the validation error returned by
+// PackageUpdateRsp.Validate if the designated constraints aren't met.
+type PackageUpdateRspValidationError struct {
field string
reason string
cause error
@@ -2232,24 +2229,22 @@ type PackagesUpdateRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesUpdateRspValidationError) Field() string { return e.field }
+func (e PackageUpdateRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesUpdateRspValidationError) Reason() string { return e.reason }
+func (e PackageUpdateRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesUpdateRspValidationError) Cause() error { return e.cause }
+func (e PackageUpdateRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesUpdateRspValidationError) Key() bool { return e.key }
+func (e PackageUpdateRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesUpdateRspValidationError) ErrorName() string {
- return "PackagesUpdateRspValidationError"
-}
+func (e PackageUpdateRspValidationError) ErrorName() string { return "PackageUpdateRspValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesUpdateRspValidationError) Error() string {
+func (e PackageUpdateRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2261,14 +2256,14 @@ func (e PackagesUpdateRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesUpdateRsp.%s: %s%s",
+ "invalid %sPackageUpdateRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesUpdateRspValidationError{}
+var _ error = PackageUpdateRspValidationError{}
var _ interface {
Field() string
@@ -2276,24 +2271,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesUpdateRspValidationError{}
+} = PackageUpdateRspValidationError{}
-// Validate checks the field values on CommentsCreateReq with the rules defined
+// Validate checks the field values on CommentCreateReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsCreateReq) Validate() error {
+func (m *CommentCreateReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsCreateReq with the rules
+// ValidateAll checks the field values on CommentCreateReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsCreateReqMultiError, or nil if none found.
-func (m *CommentsCreateReq) ValidateAll() error {
+// CommentCreateReqMultiError, or nil if none found.
+func (m *CommentCreateReq) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsCreateReq) validate(all bool) error {
+func (m *CommentCreateReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -2301,7 +2296,7 @@ func (m *CommentsCreateReq) validate(all bool) error {
var errors []error
if m.GetPackageId() <= 0 {
- err := CommentsCreateReqValidationError{
+ err := CommentCreateReqValidationError{
field: "PackageId",
reason: "value must be greater than 0",
}
@@ -2314,18 +2309,18 @@ func (m *CommentsCreateReq) validate(all bool) error {
// no validation rules for Comment
if len(errors) > 0 {
- return CommentsCreateReqMultiError(errors)
+ return CommentCreateReqMultiError(errors)
}
return nil
}
-// CommentsCreateReqMultiError is an error wrapping multiple validation errors
-// returned by CommentsCreateReq.ValidateAll() if the designated constraints
+// CommentCreateReqMultiError is an error wrapping multiple validation errors
+// returned by CommentCreateReq.ValidateAll() if the designated constraints
// aren't met.
-type CommentsCreateReqMultiError []error
+type CommentCreateReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsCreateReqMultiError) Error() string {
+func (m CommentCreateReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2334,11 +2329,11 @@ func (m CommentsCreateReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsCreateReqMultiError) AllErrors() []error { return m }
+func (m CommentCreateReqMultiError) AllErrors() []error { return m }
-// CommentsCreateReqValidationError is the validation error returned by
-// CommentsCreateReq.Validate if the designated constraints aren't met.
-type CommentsCreateReqValidationError struct {
+// CommentCreateReqValidationError is the validation error returned by
+// CommentCreateReq.Validate if the designated constraints aren't met.
+type CommentCreateReqValidationError struct {
field string
reason string
cause error
@@ -2346,24 +2341,22 @@ type CommentsCreateReqValidationError struct {
}
// Field function returns field value.
-func (e CommentsCreateReqValidationError) Field() string { return e.field }
+func (e CommentCreateReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsCreateReqValidationError) Reason() string { return e.reason }
+func (e CommentCreateReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsCreateReqValidationError) Cause() error { return e.cause }
+func (e CommentCreateReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsCreateReqValidationError) Key() bool { return e.key }
+func (e CommentCreateReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsCreateReqValidationError) ErrorName() string {
- return "CommentsCreateReqValidationError"
-}
+func (e CommentCreateReqValidationError) ErrorName() string { return "CommentCreateReqValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsCreateReqValidationError) Error() string {
+func (e CommentCreateReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2375,14 +2368,14 @@ func (e CommentsCreateReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsCreateReq.%s: %s%s",
+ "invalid %sCommentCreateReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsCreateReqValidationError{}
+var _ error = CommentCreateReqValidationError{}
var _ interface {
Field() string
@@ -2390,24 +2383,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsCreateReqValidationError{}
+} = CommentCreateReqValidationError{}
-// Validate checks the field values on CommentsCreateRsp with the rules defined
+// Validate checks the field values on CommentCreateRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsCreateRsp) Validate() error {
+func (m *CommentCreateRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsCreateRsp with the rules
+// ValidateAll checks the field values on CommentCreateRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsCreateRspMultiError, or nil if none found.
-func (m *CommentsCreateRsp) ValidateAll() error {
+// CommentCreateRspMultiError, or nil if none found.
+func (m *CommentCreateRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsCreateRsp) validate(all bool) error {
+func (m *CommentCreateRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -2418,7 +2411,7 @@ func (m *CommentsCreateRsp) validate(all bool) error {
switch v := interface{}(m.GetComment()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, CommentsCreateRspValidationError{
+ errors = append(errors, CommentCreateRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -2426,7 +2419,7 @@ func (m *CommentsCreateRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, CommentsCreateRspValidationError{
+ errors = append(errors, CommentCreateRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -2435,7 +2428,7 @@ func (m *CommentsCreateRsp) validate(all bool) error {
}
} else if v, ok := interface{}(m.GetComment()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return CommentsCreateRspValidationError{
+ return CommentCreateRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -2444,18 +2437,18 @@ func (m *CommentsCreateRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return CommentsCreateRspMultiError(errors)
+ return CommentCreateRspMultiError(errors)
}
return nil
}
-// CommentsCreateRspMultiError is an error wrapping multiple validation errors
-// returned by CommentsCreateRsp.ValidateAll() if the designated constraints
+// CommentCreateRspMultiError is an error wrapping multiple validation errors
+// returned by CommentCreateRsp.ValidateAll() if the designated constraints
// aren't met.
-type CommentsCreateRspMultiError []error
+type CommentCreateRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsCreateRspMultiError) Error() string {
+func (m CommentCreateRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2464,11 +2457,11 @@ func (m CommentsCreateRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsCreateRspMultiError) AllErrors() []error { return m }
+func (m CommentCreateRspMultiError) AllErrors() []error { return m }
-// CommentsCreateRspValidationError is the validation error returned by
-// CommentsCreateRsp.Validate if the designated constraints aren't met.
-type CommentsCreateRspValidationError struct {
+// CommentCreateRspValidationError is the validation error returned by
+// CommentCreateRsp.Validate if the designated constraints aren't met.
+type CommentCreateRspValidationError struct {
field string
reason string
cause error
@@ -2476,24 +2469,22 @@ type CommentsCreateRspValidationError struct {
}
// Field function returns field value.
-func (e CommentsCreateRspValidationError) Field() string { return e.field }
+func (e CommentCreateRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsCreateRspValidationError) Reason() string { return e.reason }
+func (e CommentCreateRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsCreateRspValidationError) Cause() error { return e.cause }
+func (e CommentCreateRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsCreateRspValidationError) Key() bool { return e.key }
+func (e CommentCreateRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsCreateRspValidationError) ErrorName() string {
- return "CommentsCreateRspValidationError"
-}
+func (e CommentCreateRspValidationError) ErrorName() string { return "CommentCreateRspValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsCreateRspValidationError) Error() string {
+func (e CommentCreateRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2505,14 +2496,14 @@ func (e CommentsCreateRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsCreateRsp.%s: %s%s",
+ "invalid %sCommentCreateRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsCreateRspValidationError{}
+var _ error = CommentCreateRspValidationError{}
var _ interface {
Field() string
@@ -2520,24 +2511,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsCreateRspValidationError{}
+} = CommentCreateRspValidationError{}
-// Validate checks the field values on PackagesCreateReq with the rules defined
+// Validate checks the field values on PackageCreateReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesCreateReq) Validate() error {
+func (m *PackageCreateReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesCreateReq with the rules
+// ValidateAll checks the field values on PackageCreateReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesCreateReqMultiError, or nil if none found.
-func (m *PackagesCreateReq) ValidateAll() error {
+// PackageCreateReqMultiError, or nil if none found.
+func (m *PackageCreateReq) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesCreateReq) validate(all bool) error {
+func (m *PackageCreateReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -2545,7 +2536,7 @@ func (m *PackagesCreateReq) validate(all bool) error {
var errors []error
if utf8.RuneCountInString(m.GetName()) < 1 {
- err := PackagesCreateReqValidationError{
+ err := PackageCreateReqValidationError{
field: "Name",
reason: "value length must be at least 1 runes",
}
@@ -2556,7 +2547,7 @@ func (m *PackagesCreateReq) validate(all bool) error {
}
if utf8.RuneCountInString(m.GetUrl()) < 1 {
- err := PackagesCreateReqValidationError{
+ err := PackageCreateReqValidationError{
field: "Url",
reason: "value length must be at least 1 runes",
}
@@ -2567,18 +2558,18 @@ func (m *PackagesCreateReq) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesCreateReqMultiError(errors)
+ return PackageCreateReqMultiError(errors)
}
return nil
}
-// PackagesCreateReqMultiError is an error wrapping multiple validation errors
-// returned by PackagesCreateReq.ValidateAll() if the designated constraints
+// PackageCreateReqMultiError is an error wrapping multiple validation errors
+// returned by PackageCreateReq.ValidateAll() if the designated constraints
// aren't met.
-type PackagesCreateReqMultiError []error
+type PackageCreateReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesCreateReqMultiError) Error() string {
+func (m PackageCreateReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2587,11 +2578,11 @@ func (m PackagesCreateReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesCreateReqMultiError) AllErrors() []error { return m }
+func (m PackageCreateReqMultiError) AllErrors() []error { return m }
-// PackagesCreateReqValidationError is the validation error returned by
-// PackagesCreateReq.Validate if the designated constraints aren't met.
-type PackagesCreateReqValidationError struct {
+// PackageCreateReqValidationError is the validation error returned by
+// PackageCreateReq.Validate if the designated constraints aren't met.
+type PackageCreateReqValidationError struct {
field string
reason string
cause error
@@ -2599,24 +2590,22 @@ type PackagesCreateReqValidationError struct {
}
// Field function returns field value.
-func (e PackagesCreateReqValidationError) Field() string { return e.field }
+func (e PackageCreateReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesCreateReqValidationError) Reason() string { return e.reason }
+func (e PackageCreateReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesCreateReqValidationError) Cause() error { return e.cause }
+func (e PackageCreateReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesCreateReqValidationError) Key() bool { return e.key }
+func (e PackageCreateReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesCreateReqValidationError) ErrorName() string {
- return "PackagesCreateReqValidationError"
-}
+func (e PackageCreateReqValidationError) ErrorName() string { return "PackageCreateReqValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesCreateReqValidationError) Error() string {
+func (e PackageCreateReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2628,14 +2617,14 @@ func (e PackagesCreateReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesCreateReq.%s: %s%s",
+ "invalid %sPackageCreateReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesCreateReqValidationError{}
+var _ error = PackageCreateReqValidationError{}
var _ interface {
Field() string
@@ -2643,24 +2632,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesCreateReqValidationError{}
+} = PackageCreateReqValidationError{}
-// Validate checks the field values on PackagesCreateRsp with the rules defined
+// Validate checks the field values on PackageCreateRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *PackagesCreateRsp) Validate() error {
+func (m *PackageCreateRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on PackagesCreateRsp with the rules
+// ValidateAll checks the field values on PackageCreateRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// PackagesCreateRspMultiError, or nil if none found.
-func (m *PackagesCreateRsp) ValidateAll() error {
+// PackageCreateRspMultiError, or nil if none found.
+func (m *PackageCreateRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *PackagesCreateRsp) validate(all bool) error {
+func (m *PackageCreateRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -2671,7 +2660,7 @@ func (m *PackagesCreateRsp) validate(all bool) error {
switch v := interface{}(m.GetPackage()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, PackagesCreateRspValidationError{
+ errors = append(errors, PackageCreateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2679,7 +2668,7 @@ func (m *PackagesCreateRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, PackagesCreateRspValidationError{
+ errors = append(errors, PackageCreateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2688,7 +2677,7 @@ func (m *PackagesCreateRsp) validate(all bool) error {
}
} else if v, ok := interface{}(m.GetPackage()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return PackagesCreateRspValidationError{
+ return PackageCreateRspValidationError{
field: "Package",
reason: "embedded message failed validation",
cause: err,
@@ -2697,18 +2686,18 @@ func (m *PackagesCreateRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return PackagesCreateRspMultiError(errors)
+ return PackageCreateRspMultiError(errors)
}
return nil
}
-// PackagesCreateRspMultiError is an error wrapping multiple validation errors
-// returned by PackagesCreateRsp.ValidateAll() if the designated constraints
+// PackageCreateRspMultiError is an error wrapping multiple validation errors
+// returned by PackageCreateRsp.ValidateAll() if the designated constraints
// aren't met.
-type PackagesCreateRspMultiError []error
+type PackageCreateRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m PackagesCreateRspMultiError) Error() string {
+func (m PackageCreateRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2717,11 +2706,11 @@ func (m PackagesCreateRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m PackagesCreateRspMultiError) AllErrors() []error { return m }
+func (m PackageCreateRspMultiError) AllErrors() []error { return m }
-// PackagesCreateRspValidationError is the validation error returned by
-// PackagesCreateRsp.Validate if the designated constraints aren't met.
-type PackagesCreateRspValidationError struct {
+// PackageCreateRspValidationError is the validation error returned by
+// PackageCreateRsp.Validate if the designated constraints aren't met.
+type PackageCreateRspValidationError struct {
field string
reason string
cause error
@@ -2729,24 +2718,22 @@ type PackagesCreateRspValidationError struct {
}
// Field function returns field value.
-func (e PackagesCreateRspValidationError) Field() string { return e.field }
+func (e PackageCreateRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e PackagesCreateRspValidationError) Reason() string { return e.reason }
+func (e PackageCreateRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e PackagesCreateRspValidationError) Cause() error { return e.cause }
+func (e PackageCreateRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e PackagesCreateRspValidationError) Key() bool { return e.key }
+func (e PackageCreateRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e PackagesCreateRspValidationError) ErrorName() string {
- return "PackagesCreateRspValidationError"
-}
+func (e PackageCreateRspValidationError) ErrorName() string { return "PackageCreateRspValidationError" }
// Error satisfies the builtin error interface
-func (e PackagesCreateRspValidationError) Error() string {
+func (e PackageCreateRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2758,14 +2745,14 @@ func (e PackagesCreateRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sPackagesCreateRsp.%s: %s%s",
+ "invalid %sPackageCreateRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = PackagesCreateRspValidationError{}
+var _ error = PackageCreateRspValidationError{}
var _ interface {
Field() string
@@ -2773,24 +2760,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = PackagesCreateRspValidationError{}
+} = PackageCreateRspValidationError{}
-// Validate checks the field values on ModulesListReq with the rules defined in
+// Validate checks the field values on ModuleListReq with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
-func (m *ModulesListReq) Validate() error {
+func (m *ModuleListReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on ModulesListReq with the rules defined
+// ValidateAll checks the field values on ModuleListReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in ModulesListReqMultiError,
-// or nil if none found.
-func (m *ModulesListReq) ValidateAll() error {
+// result is a list of violation errors wrapped in ModuleListReqMultiError, or
+// nil if none found.
+func (m *ModuleListReq) ValidateAll() error {
return m.validate(true)
}
-func (m *ModulesListReq) validate(all bool) error {
+func (m *ModuleListReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -2798,18 +2785,18 @@ func (m *ModulesListReq) validate(all bool) error {
var errors []error
if len(errors) > 0 {
- return ModulesListReqMultiError(errors)
+ return ModuleListReqMultiError(errors)
}
return nil
}
-// ModulesListReqMultiError is an error wrapping multiple validation errors
-// returned by ModulesListReq.ValidateAll() if the designated constraints
+// ModuleListReqMultiError is an error wrapping multiple validation errors
+// returned by ModuleListReq.ValidateAll() if the designated constraints
// aren't met.
-type ModulesListReqMultiError []error
+type ModuleListReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m ModulesListReqMultiError) Error() string {
+func (m ModuleListReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2818,11 +2805,11 @@ func (m ModulesListReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m ModulesListReqMultiError) AllErrors() []error { return m }
+func (m ModuleListReqMultiError) AllErrors() []error { return m }
-// ModulesListReqValidationError is the validation error returned by
-// ModulesListReq.Validate if the designated constraints aren't met.
-type ModulesListReqValidationError struct {
+// ModuleListReqValidationError is the validation error returned by
+// ModuleListReq.Validate if the designated constraints aren't met.
+type ModuleListReqValidationError struct {
field string
reason string
cause error
@@ -2830,22 +2817,22 @@ type ModulesListReqValidationError struct {
}
// Field function returns field value.
-func (e ModulesListReqValidationError) Field() string { return e.field }
+func (e ModuleListReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e ModulesListReqValidationError) Reason() string { return e.reason }
+func (e ModuleListReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e ModulesListReqValidationError) Cause() error { return e.cause }
+func (e ModuleListReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e ModulesListReqValidationError) Key() bool { return e.key }
+func (e ModuleListReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e ModulesListReqValidationError) ErrorName() string { return "ModulesListReqValidationError" }
+func (e ModuleListReqValidationError) ErrorName() string { return "ModuleListReqValidationError" }
// Error satisfies the builtin error interface
-func (e ModulesListReqValidationError) Error() string {
+func (e ModuleListReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2857,14 +2844,14 @@ func (e ModulesListReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sModulesListReq.%s: %s%s",
+ "invalid %sModuleListReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = ModulesListReqValidationError{}
+var _ error = ModuleListReqValidationError{}
var _ interface {
Field() string
@@ -2872,24 +2859,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = ModulesListReqValidationError{}
+} = ModuleListReqValidationError{}
-// Validate checks the field values on ModulesListRsp with the rules defined in
+// Validate checks the field values on ModuleListRsp with the rules defined in
// the proto definition for this message. If any rules are violated, the first
// error encountered is returned, or nil if there are no violations.
-func (m *ModulesListRsp) Validate() error {
+func (m *ModuleListRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on ModulesListRsp with the rules defined
+// ValidateAll checks the field values on ModuleListRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
-// result is a list of violation errors wrapped in ModulesListRspMultiError,
-// or nil if none found.
-func (m *ModulesListRsp) ValidateAll() error {
+// result is a list of violation errors wrapped in ModuleListRspMultiError, or
+// nil if none found.
+func (m *ModuleListRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *ModulesListRsp) validate(all bool) error {
+func (m *ModuleListRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -2903,7 +2890,7 @@ func (m *ModulesListRsp) validate(all bool) error {
switch v := interface{}(item).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, ModulesListRspValidationError{
+ errors = append(errors, ModuleListRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -2911,7 +2898,7 @@ func (m *ModulesListRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, ModulesListRspValidationError{
+ errors = append(errors, ModuleListRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -2920,7 +2907,7 @@ func (m *ModulesListRsp) validate(all bool) error {
}
} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return ModulesListRspValidationError{
+ return ModuleListRspValidationError{
field: fmt.Sprintf("Modules[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -2931,18 +2918,18 @@ func (m *ModulesListRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return ModulesListRspMultiError(errors)
+ return ModuleListRspMultiError(errors)
}
return nil
}
-// ModulesListRspMultiError is an error wrapping multiple validation errors
-// returned by ModulesListRsp.ValidateAll() if the designated constraints
+// ModuleListRspMultiError is an error wrapping multiple validation errors
+// returned by ModuleListRsp.ValidateAll() if the designated constraints
// aren't met.
-type ModulesListRspMultiError []error
+type ModuleListRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m ModulesListRspMultiError) Error() string {
+func (m ModuleListRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -2951,11 +2938,11 @@ func (m ModulesListRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m ModulesListRspMultiError) AllErrors() []error { return m }
+func (m ModuleListRspMultiError) AllErrors() []error { return m }
-// ModulesListRspValidationError is the validation error returned by
-// ModulesListRsp.Validate if the designated constraints aren't met.
-type ModulesListRspValidationError struct {
+// ModuleListRspValidationError is the validation error returned by
+// ModuleListRsp.Validate if the designated constraints aren't met.
+type ModuleListRspValidationError struct {
field string
reason string
cause error
@@ -2963,22 +2950,22 @@ type ModulesListRspValidationError struct {
}
// Field function returns field value.
-func (e ModulesListRspValidationError) Field() string { return e.field }
+func (e ModuleListRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e ModulesListRspValidationError) Reason() string { return e.reason }
+func (e ModuleListRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e ModulesListRspValidationError) Cause() error { return e.cause }
+func (e ModuleListRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e ModulesListRspValidationError) Key() bool { return e.key }
+func (e ModuleListRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e ModulesListRspValidationError) ErrorName() string { return "ModulesListRspValidationError" }
+func (e ModuleListRspValidationError) ErrorName() string { return "ModuleListRspValidationError" }
// Error satisfies the builtin error interface
-func (e ModulesListRspValidationError) Error() string {
+func (e ModuleListRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -2990,14 +2977,14 @@ func (e ModulesListRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sModulesListRsp.%s: %s%s",
+ "invalid %sModuleListRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = ModulesListRspValidationError{}
+var _ error = ModuleListRspValidationError{}
var _ interface {
Field() string
@@ -3005,24 +2992,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = ModulesListRspValidationError{}
+} = ModuleListRspValidationError{}
-// Validate checks the field values on CommentsListReq with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsListReq) Validate() error {
+// Validate checks the field values on CommentListReq with the rules defined in
+// the proto definition for this message. If any rules are violated, the first
+// error encountered is returned, or nil if there are no violations.
+func (m *CommentListReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsListReq with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the result is a list of violation errors wrapped in
-// CommentsListReqMultiError, or nil if none found.
-func (m *CommentsListReq) ValidateAll() error {
+// ValidateAll checks the field values on CommentListReq with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// result is a list of violation errors wrapped in CommentListReqMultiError,
+// or nil if none found.
+func (m *CommentListReq) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsListReq) validate(all bool) error {
+func (m *CommentListReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -3032,18 +3019,18 @@ func (m *CommentsListReq) validate(all bool) error {
// no validation rules for PackageId
if len(errors) > 0 {
- return CommentsListReqMultiError(errors)
+ return CommentListReqMultiError(errors)
}
return nil
}
-// CommentsListReqMultiError is an error wrapping multiple validation errors
-// returned by CommentsListReq.ValidateAll() if the designated constraints
+// CommentListReqMultiError is an error wrapping multiple validation errors
+// returned by CommentListReq.ValidateAll() if the designated constraints
// aren't met.
-type CommentsListReqMultiError []error
+type CommentListReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsListReqMultiError) Error() string {
+func (m CommentListReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -3052,11 +3039,11 @@ func (m CommentsListReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsListReqMultiError) AllErrors() []error { return m }
+func (m CommentListReqMultiError) AllErrors() []error { return m }
-// CommentsListReqValidationError is the validation error returned by
-// CommentsListReq.Validate if the designated constraints aren't met.
-type CommentsListReqValidationError struct {
+// CommentListReqValidationError is the validation error returned by
+// CommentListReq.Validate if the designated constraints aren't met.
+type CommentListReqValidationError struct {
field string
reason string
cause error
@@ -3064,22 +3051,22 @@ type CommentsListReqValidationError struct {
}
// Field function returns field value.
-func (e CommentsListReqValidationError) Field() string { return e.field }
+func (e CommentListReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsListReqValidationError) Reason() string { return e.reason }
+func (e CommentListReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsListReqValidationError) Cause() error { return e.cause }
+func (e CommentListReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsListReqValidationError) Key() bool { return e.key }
+func (e CommentListReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsListReqValidationError) ErrorName() string { return "CommentsListReqValidationError" }
+func (e CommentListReqValidationError) ErrorName() string { return "CommentListReqValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsListReqValidationError) Error() string {
+func (e CommentListReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -3091,14 +3078,14 @@ func (e CommentsListReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsListReq.%s: %s%s",
+ "invalid %sCommentListReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsListReqValidationError{}
+var _ error = CommentListReqValidationError{}
var _ interface {
Field() string
@@ -3106,24 +3093,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsListReqValidationError{}
+} = CommentListReqValidationError{}
-// Validate checks the field values on CommentsListRsp with the rules defined
-// in the proto definition for this message. If any rules are violated, the
-// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsListRsp) Validate() error {
+// Validate checks the field values on CommentListRsp with the rules defined in
+// the proto definition for this message. If any rules are violated, the first
+// error encountered is returned, or nil if there are no violations.
+func (m *CommentListRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsListRsp with the rules
-// defined in the proto definition for this message. If any rules are
-// violated, the result is a list of violation errors wrapped in
-// CommentsListRspMultiError, or nil if none found.
-func (m *CommentsListRsp) ValidateAll() error {
+// ValidateAll checks the field values on CommentListRsp with the rules defined
+// in the proto definition for this message. If any rules are violated, the
+// result is a list of violation errors wrapped in CommentListRspMultiError,
+// or nil if none found.
+func (m *CommentListRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsListRsp) validate(all bool) error {
+func (m *CommentListRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -3137,7 +3124,7 @@ func (m *CommentsListRsp) validate(all bool) error {
switch v := interface{}(item).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, CommentsListRspValidationError{
+ errors = append(errors, CommentListRspValidationError{
field: fmt.Sprintf("Comments[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -3145,7 +3132,7 @@ func (m *CommentsListRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, CommentsListRspValidationError{
+ errors = append(errors, CommentListRspValidationError{
field: fmt.Sprintf("Comments[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -3154,7 +3141,7 @@ func (m *CommentsListRsp) validate(all bool) error {
}
} else if v, ok := interface{}(item).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return CommentsListRspValidationError{
+ return CommentListRspValidationError{
field: fmt.Sprintf("Comments[%v]", idx),
reason: "embedded message failed validation",
cause: err,
@@ -3165,18 +3152,18 @@ func (m *CommentsListRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return CommentsListRspMultiError(errors)
+ return CommentListRspMultiError(errors)
}
return nil
}
-// CommentsListRspMultiError is an error wrapping multiple validation errors
-// returned by CommentsListRsp.ValidateAll() if the designated constraints
+// CommentListRspMultiError is an error wrapping multiple validation errors
+// returned by CommentListRsp.ValidateAll() if the designated constraints
// aren't met.
-type CommentsListRspMultiError []error
+type CommentListRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsListRspMultiError) Error() string {
+func (m CommentListRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -3185,11 +3172,11 @@ func (m CommentsListRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsListRspMultiError) AllErrors() []error { return m }
+func (m CommentListRspMultiError) AllErrors() []error { return m }
-// CommentsListRspValidationError is the validation error returned by
-// CommentsListRsp.Validate if the designated constraints aren't met.
-type CommentsListRspValidationError struct {
+// CommentListRspValidationError is the validation error returned by
+// CommentListRsp.Validate if the designated constraints aren't met.
+type CommentListRspValidationError struct {
field string
reason string
cause error
@@ -3197,22 +3184,22 @@ type CommentsListRspValidationError struct {
}
// Field function returns field value.
-func (e CommentsListRspValidationError) Field() string { return e.field }
+func (e CommentListRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsListRspValidationError) Reason() string { return e.reason }
+func (e CommentListRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsListRspValidationError) Cause() error { return e.cause }
+func (e CommentListRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsListRspValidationError) Key() bool { return e.key }
+func (e CommentListRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsListRspValidationError) ErrorName() string { return "CommentsListRspValidationError" }
+func (e CommentListRspValidationError) ErrorName() string { return "CommentListRspValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsListRspValidationError) Error() string {
+func (e CommentListRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -3224,14 +3211,14 @@ func (e CommentsListRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsListRsp.%s: %s%s",
+ "invalid %sCommentListRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsListRspValidationError{}
+var _ error = CommentListRspValidationError{}
var _ interface {
Field() string
@@ -3239,24 +3226,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsListRspValidationError{}
+} = CommentListRspValidationError{}
-// Validate checks the field values on CommentsLookupReq with the rules defined
+// Validate checks the field values on CommentLookupReq with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsLookupReq) Validate() error {
+func (m *CommentLookupReq) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsLookupReq with the rules
+// ValidateAll checks the field values on CommentLookupReq with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsLookupReqMultiError, or nil if none found.
-func (m *CommentsLookupReq) ValidateAll() error {
+// CommentLookupReqMultiError, or nil if none found.
+func (m *CommentLookupReq) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsLookupReq) validate(all bool) error {
+func (m *CommentLookupReq) validate(all bool) error {
if m == nil {
return nil
}
@@ -3268,18 +3255,18 @@ func (m *CommentsLookupReq) validate(all bool) error {
// no validation rules for PackageId
if len(errors) > 0 {
- return CommentsLookupReqMultiError(errors)
+ return CommentLookupReqMultiError(errors)
}
return nil
}
-// CommentsLookupReqMultiError is an error wrapping multiple validation errors
-// returned by CommentsLookupReq.ValidateAll() if the designated constraints
+// CommentLookupReqMultiError is an error wrapping multiple validation errors
+// returned by CommentLookupReq.ValidateAll() if the designated constraints
// aren't met.
-type CommentsLookupReqMultiError []error
+type CommentLookupReqMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsLookupReqMultiError) Error() string {
+func (m CommentLookupReqMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -3288,11 +3275,11 @@ func (m CommentsLookupReqMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsLookupReqMultiError) AllErrors() []error { return m }
+func (m CommentLookupReqMultiError) AllErrors() []error { return m }
-// CommentsLookupReqValidationError is the validation error returned by
-// CommentsLookupReq.Validate if the designated constraints aren't met.
-type CommentsLookupReqValidationError struct {
+// CommentLookupReqValidationError is the validation error returned by
+// CommentLookupReq.Validate if the designated constraints aren't met.
+type CommentLookupReqValidationError struct {
field string
reason string
cause error
@@ -3300,24 +3287,22 @@ type CommentsLookupReqValidationError struct {
}
// Field function returns field value.
-func (e CommentsLookupReqValidationError) Field() string { return e.field }
+func (e CommentLookupReqValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsLookupReqValidationError) Reason() string { return e.reason }
+func (e CommentLookupReqValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsLookupReqValidationError) Cause() error { return e.cause }
+func (e CommentLookupReqValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsLookupReqValidationError) Key() bool { return e.key }
+func (e CommentLookupReqValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsLookupReqValidationError) ErrorName() string {
- return "CommentsLookupReqValidationError"
-}
+func (e CommentLookupReqValidationError) ErrorName() string { return "CommentLookupReqValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsLookupReqValidationError) Error() string {
+func (e CommentLookupReqValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -3329,14 +3314,14 @@ func (e CommentsLookupReqValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsLookupReq.%s: %s%s",
+ "invalid %sCommentLookupReq.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsLookupReqValidationError{}
+var _ error = CommentLookupReqValidationError{}
var _ interface {
Field() string
@@ -3344,24 +3329,24 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsLookupReqValidationError{}
+} = CommentLookupReqValidationError{}
-// Validate checks the field values on CommentsLookupRsp with the rules defined
+// Validate checks the field values on CommentLookupRsp with the rules defined
// in the proto definition for this message. If any rules are violated, the
// first error encountered is returned, or nil if there are no violations.
-func (m *CommentsLookupRsp) Validate() error {
+func (m *CommentLookupRsp) Validate() error {
return m.validate(false)
}
-// ValidateAll checks the field values on CommentsLookupRsp with the rules
+// ValidateAll checks the field values on CommentLookupRsp with the rules
// defined in the proto definition for this message. If any rules are
// violated, the result is a list of violation errors wrapped in
-// CommentsLookupRspMultiError, or nil if none found.
-func (m *CommentsLookupRsp) ValidateAll() error {
+// CommentLookupRspMultiError, or nil if none found.
+func (m *CommentLookupRsp) ValidateAll() error {
return m.validate(true)
}
-func (m *CommentsLookupRsp) validate(all bool) error {
+func (m *CommentLookupRsp) validate(all bool) error {
if m == nil {
return nil
}
@@ -3372,7 +3357,7 @@ func (m *CommentsLookupRsp) validate(all bool) error {
switch v := interface{}(m.GetComment()).(type) {
case interface{ ValidateAll() error }:
if err := v.ValidateAll(); err != nil {
- errors = append(errors, CommentsLookupRspValidationError{
+ errors = append(errors, CommentLookupRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -3380,7 +3365,7 @@ func (m *CommentsLookupRsp) validate(all bool) error {
}
case interface{ Validate() error }:
if err := v.Validate(); err != nil {
- errors = append(errors, CommentsLookupRspValidationError{
+ errors = append(errors, CommentLookupRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -3389,7 +3374,7 @@ func (m *CommentsLookupRsp) validate(all bool) error {
}
} else if v, ok := interface{}(m.GetComment()).(interface{ Validate() error }); ok {
if err := v.Validate(); err != nil {
- return CommentsLookupRspValidationError{
+ return CommentLookupRspValidationError{
field: "Comment",
reason: "embedded message failed validation",
cause: err,
@@ -3398,18 +3383,18 @@ func (m *CommentsLookupRsp) validate(all bool) error {
}
if len(errors) > 0 {
- return CommentsLookupRspMultiError(errors)
+ return CommentLookupRspMultiError(errors)
}
return nil
}
-// CommentsLookupRspMultiError is an error wrapping multiple validation errors
-// returned by CommentsLookupRsp.ValidateAll() if the designated constraints
+// CommentLookupRspMultiError is an error wrapping multiple validation errors
+// returned by CommentLookupRsp.ValidateAll() if the designated constraints
// aren't met.
-type CommentsLookupRspMultiError []error
+type CommentLookupRspMultiError []error
// Error returns a concatenation of all the error messages it wraps.
-func (m CommentsLookupRspMultiError) Error() string {
+func (m CommentLookupRspMultiError) Error() string {
var msgs []string
for _, err := range m {
msgs = append(msgs, err.Error())
@@ -3418,11 +3403,11 @@ func (m CommentsLookupRspMultiError) Error() string {
}
// AllErrors returns a list of validation violation errors.
-func (m CommentsLookupRspMultiError) AllErrors() []error { return m }
+func (m CommentLookupRspMultiError) AllErrors() []error { return m }
-// CommentsLookupRspValidationError is the validation error returned by
-// CommentsLookupRsp.Validate if the designated constraints aren't met.
-type CommentsLookupRspValidationError struct {
+// CommentLookupRspValidationError is the validation error returned by
+// CommentLookupRsp.Validate if the designated constraints aren't met.
+type CommentLookupRspValidationError struct {
field string
reason string
cause error
@@ -3430,24 +3415,22 @@ type CommentsLookupRspValidationError struct {
}
// Field function returns field value.
-func (e CommentsLookupRspValidationError) Field() string { return e.field }
+func (e CommentLookupRspValidationError) Field() string { return e.field }
// Reason function returns reason value.
-func (e CommentsLookupRspValidationError) Reason() string { return e.reason }
+func (e CommentLookupRspValidationError) Reason() string { return e.reason }
// Cause function returns cause value.
-func (e CommentsLookupRspValidationError) Cause() error { return e.cause }
+func (e CommentLookupRspValidationError) Cause() error { return e.cause }
// Key function returns key value.
-func (e CommentsLookupRspValidationError) Key() bool { return e.key }
+func (e CommentLookupRspValidationError) Key() bool { return e.key }
// ErrorName returns error name.
-func (e CommentsLookupRspValidationError) ErrorName() string {
- return "CommentsLookupRspValidationError"
-}
+func (e CommentLookupRspValidationError) ErrorName() string { return "CommentLookupRspValidationError" }
// Error satisfies the builtin error interface
-func (e CommentsLookupRspValidationError) Error() string {
+func (e CommentLookupRspValidationError) Error() string {
cause := ""
if e.cause != nil {
cause = fmt.Sprintf(" | caused by: %v", e.cause)
@@ -3459,14 +3442,14 @@ func (e CommentsLookupRspValidationError) Error() string {
}
return fmt.Sprintf(
- "invalid %sCommentsLookupRsp.%s: %s%s",
+ "invalid %sCommentLookupRsp.%s: %s%s",
key,
e.field,
e.reason,
cause)
}
-var _ error = CommentsLookupRspValidationError{}
+var _ error = CommentLookupRspValidationError{}
var _ interface {
Field() string
@@ -3474,4 +3457,4 @@ var _ interface {
Key() bool
Cause() error
ErrorName() string
-} = CommentsLookupRspValidationError{}
+} = CommentLookupRspValidationError{}
diff --git a/proto/pkgdash.proto b/proto/pkgdash.proto
index d210e2c..22a5084 100644
--- a/proto/pkgdash.proto
+++ b/proto/pkgdash.proto
@@ -9,10 +9,10 @@ import "validate/validate.proto";
option go_package = "go.unistack.org/unistack-org/pkgdash/proto;pkgdashpb";
-service PkgdashService {
- rpc PackagesLookup(PackagesLookupReq) returns (PackagesLookupRsp) {
+service Pkgdash {
+ rpc PackageLookup(PackageLookupReq) returns (PackageLookupRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesLookup";
+ operation_id: "PackageLookup";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -23,9 +23,9 @@ service PkgdashService {
get: "/v1/packages/{id}";
};
}
- rpc PackagesCreate(PackagesCreateReq) returns (PackagesCreateRsp) {
+ rpc PackageCreate(PackageCreateReq) returns (PackageCreateRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesCreate";
+ operation_id: "PackageCreate";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -37,9 +37,9 @@ service PkgdashService {
body: "*";
};
}
- rpc PackagesDelete(PackagesDeleteReq) returns (PackagesDeleteRsp) {
+ rpc PackageDelete(PackageDeleteReq) returns (PackageDeleteRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesDelete";
+ operation_id: "PackageDelete";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -48,9 +48,9 @@ service PkgdashService {
};
option (micro.api.http) = {delete: "/v1/packages/{id}"};
}
- rpc PackagesList(PackagesListReq) returns (PackagesListRsp) {
+ rpc PackageList(PackageListReq) returns (PackageListRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesList";
+ operation_id: "PackageList";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -59,9 +59,9 @@ service PkgdashService {
};
option (micro.api.http) = {get: "/v1/packages"};
}
- rpc PackagesModules(PackagesModulesReq) returns (PackagesModulesRsp) {
+ rpc PackageModules(PackageModulesReq) returns (PackageModulesRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesModules";
+ operation_id: "PackageModules";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -70,9 +70,9 @@ service PkgdashService {
};
option (micro.api.http) = {get: "/v1/packages/{package}/modules"};
}
- rpc PackagesUpdate(PackagesUpdateReq) returns (PackagesUpdateRsp) {
+ rpc PackageUpdate(PackageUpdateReq) returns (PackageUpdateRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "PackagesUpdate";
+ operation_id: "PackageUpdate";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -84,9 +84,9 @@ service PkgdashService {
body: "*";
};
}
- rpc CommentsCreate(CommentsCreateReq) returns (CommentsCreateRsp) {
+ rpc CommentCreate(CommentCreateReq) returns (CommentCreateRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "CommentsCreate";
+ operation_id: "CommentCreate";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -98,9 +98,9 @@ service PkgdashService {
body: "*";
};
}
- rpc CommentsLookup(CommentsLookupReq) returns (CommentsLookupRsp) {
+ rpc CommentLookup(CommentLookupReq) returns (CommentLookupRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "CommentsLookup";
+ operation_id: "CommentLookup";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -112,9 +112,9 @@ service PkgdashService {
additional_bindings {get: "/v1/comments/{package}/comments/{id}"};
};
}
- rpc CommentsList(CommentsListReq) returns (CommentsListRsp) {
+ rpc CommentList(CommentListReq) returns (CommentListRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "CommentsList";
+ operation_id: "CommentList";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -123,9 +123,9 @@ service PkgdashService {
};
option (micro.api.http) = {get: "/v1/packages/{package}/comments"};
}
- rpc CommentsDelete(CommentsDeleteReq) returns (CommentsDeleteRsp) {
+ rpc CommentDelete(CommentDeleteReq) returns (CommentDeleteRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "CommentsDelete";
+ operation_id: "CommentDelete";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -137,9 +137,9 @@ service PkgdashService {
additional_bindings {delete: "/v1/comments/{id}"};
};
}
- rpc ModulesList(ModulesListReq) returns (ModulesListRsp) {
+ rpc ModuleList(ModuleListReq) returns (ModuleListRsp) {
option (micro.openapiv3.openapiv3_operation) = {
- operation_id: "ModulesList";
+ operation_id: "ModuleList";
responses: {
default: {
reference: {_ref: ".pkgdash.ErrorRsp"};
@@ -150,19 +150,19 @@ service PkgdashService {
}
}
-message PackagesModulesReq {
+message PackageModulesReq {
uint64 package = 1 [json_name = "package"];
}
-message PackagesModulesRsp {
+message PackageModulesRsp {
repeated Module modules = 1 [json_name = "modules"];
}
-message PackagesLookupReq {
+message PackageLookupReq {
uint64 id = 1 [json_name = "id"];
}
-message PackagesLookupRsp {
+message PackageLookupRsp {
Package package = 1 [json_name = "package"];
}
@@ -177,12 +177,13 @@ message Package {
uint64 id = 1 [(validate.rules).uint64.gt = 0];
string name = 2 [(validate.rules).string.min_len = 1];
string url = 3 [(validate.rules).string.min_len = 1];
- uint64 modules = 4;
- uint64 issues = 5;
- uint64 comments = 6;
- google.protobuf.Timestamp created = 7;
- google.protobuf.Timestamp updated = 8;
- google.protobuf.Timestamp last_check = 9;
+ string description = 4 [(validate.rules).string.min_len = 1];
+ uint64 modules = 5;
+ uint64 issues = 6;
+ uint64 comments = 7;
+ google.protobuf.Timestamp created = 8;
+ google.protobuf.Timestamp updated = 9;
+ google.protobuf.Timestamp last_check = 10;
}
message Module {
@@ -210,26 +211,26 @@ message Comment {
google.protobuf.Timestamp updated = 5;
}
-message CommentsDeleteReq {
+message CommentDeleteReq {
uint64 id = 1 [json_name = "id"];
uint64 package_id = 2 [json_name = "package_id"];
}
-message CommentsDeleteRsp {}
+message CommentDeleteRsp {}
-message PackagesDeleteReq {
+message PackageDeleteReq {
uint64 id = 1 [json_name = "id"];
}
-message PackagesDeleteRsp {}
+message PackageDeleteRsp {}
-message PackagesListReq {}
+message PackageListReq {}
-message PackagesListRsp {
+message PackageListRsp {
repeated Package packages = 1;
}
-message PackagesUpdateReq {
+message PackageUpdateReq {
uint64 id = 1 [(validate.rules).uint64.gt = 0];
string name = 2 [(validate.rules).string.min_len = 1];
string url = 3 [(validate.rules).string.min_len = 1];
@@ -237,11 +238,11 @@ message PackagesUpdateReq {
repeated uint64 issues = 5;
}
-message PackagesUpdateRsp {
+message PackageUpdateRsp {
Package package = 1 [json_name = "package"];
}
-message CommentsCreateReq {
+message CommentCreateReq {
uint64 package_id = 1 [
json_name = "package_id",
(validate.rules).uint64.gt = 0
@@ -249,39 +250,39 @@ message CommentsCreateReq {
string comment = 2;
}
-message CommentsCreateRsp {
+message CommentCreateRsp {
Comment comment = 1 [json_name = "comment"];
}
-message PackagesCreateReq {
+message PackageCreateReq {
string name = 1 [(validate.rules).string.min_len = 1];
string url = 2 [(validate.rules).string.min_len = 1];
repeated uint64 modules = 3;
}
-message PackagesCreateRsp {
+message PackageCreateRsp {
Package package = 1 [json_name="package"];
}
-message ModulesListReq {}
+message ModuleListReq {}
-message ModulesListRsp {
+message ModuleListRsp {
repeated Module modules = 1 [json_name="modules"];
}
-message CommentsListReq {
+message CommentListReq {
uint64 package_id = 1 [json_name = "package_id"];
}
-message CommentsListRsp {
+message CommentListRsp {
repeated Comment comments = 1 [json_name = "comments"];
}
-message CommentsLookupReq {
+message CommentLookupReq {
uint64 id = 1 [json_name = "id"];
uint64 package_id = 2 [json_name = "package_id"];
}
-message CommentsLookupRsp {
+message CommentLookupRsp {
Comment comment = 1 [json_name = "comment"];
}
diff --git a/proto/pkgdash_micro.pb.go b/proto/pkgdash_micro.pb.go
index cfce687..32ca6d1 100644
--- a/proto/pkgdash_micro.pb.go
+++ b/proto/pkgdash_micro.pb.go
@@ -17,29 +17,29 @@ var (
)
type PkgdashServiceClient interface {
- PackagesLookup(ctx context.Context, req *PackagesLookupReq, opts ...options.Option) (*PackagesLookupRsp, error)
- PackagesCreate(ctx context.Context, req *PackagesCreateReq, opts ...options.Option) (*PackagesCreateRsp, error)
- PackagesDelete(ctx context.Context, req *PackagesDeleteReq, opts ...options.Option) (*PackagesDeleteRsp, error)
- PackagesList(ctx context.Context, req *PackagesListReq, opts ...options.Option) (*PackagesListRsp, error)
- PackagesModules(ctx context.Context, req *PackagesModulesReq, opts ...options.Option) (*PackagesModulesRsp, error)
- PackagesUpdate(ctx context.Context, req *PackagesUpdateReq, opts ...options.Option) (*PackagesUpdateRsp, error)
- CommentsCreate(ctx context.Context, req *CommentsCreateReq, opts ...options.Option) (*CommentsCreateRsp, error)
- CommentsLookup(ctx context.Context, req *CommentsLookupReq, opts ...options.Option) (*CommentsLookupRsp, error)
- CommentsList(ctx context.Context, req *CommentsListReq, opts ...options.Option) (*CommentsListRsp, error)
- CommentsDelete(ctx context.Context, req *CommentsDeleteReq, opts ...options.Option) (*CommentsDeleteRsp, error)
- ModulesList(ctx context.Context, req *ModulesListReq, opts ...options.Option) (*ModulesListRsp, error)
+ PackageLookup(ctx context.Context, req *PackageLookupReq, opts ...options.Option) (*PackageLookupRsp, error)
+ PackageCreate(ctx context.Context, req *PackageCreateReq, opts ...options.Option) (*PackageCreateRsp, error)
+ PackageDelete(ctx context.Context, req *PackageDeleteReq, opts ...options.Option) (*PackageDeleteRsp, error)
+ PackageList(ctx context.Context, req *PackageListReq, opts ...options.Option) (*PackageListRsp, error)
+ PackageModules(ctx context.Context, req *PackageModulesReq, opts ...options.Option) (*PackageModulesRsp, error)
+ PackageUpdate(ctx context.Context, req *PackageUpdateReq, opts ...options.Option) (*PackageUpdateRsp, error)
+ CommentCreate(ctx context.Context, req *CommentCreateReq, opts ...options.Option) (*CommentCreateRsp, error)
+ CommentLookup(ctx context.Context, req *CommentLookupReq, opts ...options.Option) (*CommentLookupRsp, error)
+ CommentList(ctx context.Context, req *CommentListReq, opts ...options.Option) (*CommentListRsp, error)
+ CommentDelete(ctx context.Context, req *CommentDeleteReq, opts ...options.Option) (*CommentDeleteRsp, error)
+ ModuleList(ctx context.Context, req *ModuleListReq, opts ...options.Option) (*ModuleListRsp, error)
}
type PkgdashServiceServer interface {
- PackagesLookup(ctx context.Context, req *PackagesLookupReq, rsp *PackagesLookupRsp) error
- PackagesCreate(ctx context.Context, req *PackagesCreateReq, rsp *PackagesCreateRsp) error
- PackagesDelete(ctx context.Context, req *PackagesDeleteReq, rsp *PackagesDeleteRsp) error
- PackagesList(ctx context.Context, req *PackagesListReq, rsp *PackagesListRsp) error
- PackagesModules(ctx context.Context, req *PackagesModulesReq, rsp *PackagesModulesRsp) error
- PackagesUpdate(ctx context.Context, req *PackagesUpdateReq, rsp *PackagesUpdateRsp) error
- CommentsCreate(ctx context.Context, req *CommentsCreateReq, rsp *CommentsCreateRsp) error
- CommentsLookup(ctx context.Context, req *CommentsLookupReq, rsp *CommentsLookupRsp) error
- CommentsList(ctx context.Context, req *CommentsListReq, rsp *CommentsListRsp) error
- CommentsDelete(ctx context.Context, req *CommentsDeleteReq, rsp *CommentsDeleteRsp) error
- ModulesList(ctx context.Context, req *ModulesListReq, rsp *ModulesListRsp) error
+ PackageLookup(ctx context.Context, req *PackageLookupReq, rsp *PackageLookupRsp) error
+ PackageCreate(ctx context.Context, req *PackageCreateReq, rsp *PackageCreateRsp) error
+ PackageDelete(ctx context.Context, req *PackageDeleteReq, rsp *PackageDeleteRsp) error
+ PackageList(ctx context.Context, req *PackageListReq, rsp *PackageListRsp) error
+ PackageModules(ctx context.Context, req *PackageModulesReq, rsp *PackageModulesRsp) error
+ PackageUpdate(ctx context.Context, req *PackageUpdateReq, rsp *PackageUpdateRsp) error
+ CommentCreate(ctx context.Context, req *CommentCreateReq, rsp *CommentCreateRsp) error
+ CommentLookup(ctx context.Context, req *CommentLookupReq, rsp *CommentLookupRsp) error
+ CommentList(ctx context.Context, req *CommentListReq, rsp *CommentListRsp) error
+ CommentDelete(ctx context.Context, req *CommentDeleteReq, rsp *CommentDeleteRsp) error
+ ModuleList(ctx context.Context, req *ModuleListReq, rsp *ModuleListRsp) error
}
diff --git a/proto/pkgdash_micro_http.pb.go b/proto/pkgdash_micro_http.pb.go
index 9ebc312..5d2545a 100644
--- a/proto/pkgdash_micro_http.pb.go
+++ b/proto/pkgdash_micro_http.pb.go
@@ -17,91 +17,91 @@ import (
var (
PkgdashServiceServerEndpoints = []v4.EndpointMetadata{
{
- Name: "PkgdashService.PackagesLookup",
+ Name: "PkgdashService.PackageLookup",
Path: "/v1/packages/{id}",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.PackagesCreate",
+ Name: "PkgdashService.PackageCreate",
Path: "/v1/packages",
Method: "POST",
Body: "*",
Stream: false,
},
{
- Name: "PkgdashService.PackagesDelete",
+ Name: "PkgdashService.PackageDelete",
Path: "/v1/packages/{id}",
Method: "DELETE",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.PackagesList",
+ Name: "PkgdashService.PackageList",
Path: "/v1/packages",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.PackagesModules",
+ Name: "PkgdashService.PackageModules",
Path: "/v1/packages/{package}/modules",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.PackagesUpdate",
+ Name: "PkgdashService.PackageUpdate",
Path: "/v1/packages/{id}",
Method: "PUT",
Body: "*",
Stream: false,
},
{
- Name: "PkgdashService.CommentsCreate",
+ Name: "PkgdashService.CommentCreate",
Path: "/v1/packages/{package}/comments",
Method: "POST",
Body: "*",
Stream: false,
},
{
- Name: "PkgdashService.CommentsLookup",
+ Name: "PkgdashService.CommentLookup",
Path: "/v1/comments/{id}/comments",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.CommentsLookup",
+ Name: "PkgdashService.CommentLookup",
Path: "/v1/comments/{package}/comments/{id}",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.CommentsList",
+ Name: "PkgdashService.CommentList",
Path: "/v1/packages/{package}/comments",
Method: "GET",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.CommentsDelete",
+ Name: "PkgdashService.CommentDelete",
Path: "/v1/packages/{package_id}/comments/{id}",
Method: "DELETE",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.CommentsDelete",
+ Name: "PkgdashService.CommentDelete",
Path: "/v1/comments/{id}",
Method: "DELETE",
Body: "",
Stream: false,
},
{
- Name: "PkgdashService.ModulesList",
+ Name: "PkgdashService.ModuleList",
Path: "/v1/modules",
Method: "GET",
Body: "",
@@ -119,7 +119,7 @@ func NewPkgdashServiceClient(name string, c client.Client) PkgdashServiceClient
return &pkgdashServiceClient{c: c, name: name}
}
-func (c *pkgdashServiceClient) PackagesLookup(ctx context.Context, req *PackagesLookupReq, opts ...options.Option) (*PackagesLookupRsp, error) {
+func (c *pkgdashServiceClient) PackageLookup(ctx context.Context, req *PackageLookupReq, opts ...options.Option) (*PackageLookupRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -129,15 +129,15 @@ func (c *pkgdashServiceClient) PackagesLookup(ctx context.Context, req *Packages
v41.Method(http.MethodGet),
v41.Path("/v1/packages/{id}"),
)
- rsp := &PackagesLookupRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesLookup", req), rsp, opts...)
+ rsp := &PackageLookupRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageLookup", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) PackagesCreate(ctx context.Context, req *PackagesCreateReq, opts ...options.Option) (*PackagesCreateRsp, error) {
+func (c *pkgdashServiceClient) PackageCreate(ctx context.Context, req *PackageCreateReq, opts ...options.Option) (*PackageCreateRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -148,15 +148,15 @@ func (c *pkgdashServiceClient) PackagesCreate(ctx context.Context, req *Packages
v41.Path("/v1/packages"),
v41.Body("*"),
)
- rsp := &PackagesCreateRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesCreate", req), rsp, opts...)
+ rsp := &PackageCreateRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageCreate", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) PackagesDelete(ctx context.Context, req *PackagesDeleteReq, opts ...options.Option) (*PackagesDeleteRsp, error) {
+func (c *pkgdashServiceClient) PackageDelete(ctx context.Context, req *PackageDeleteReq, opts ...options.Option) (*PackageDeleteRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -166,15 +166,15 @@ func (c *pkgdashServiceClient) PackagesDelete(ctx context.Context, req *Packages
v41.Method(http.MethodDelete),
v41.Path("/v1/packages/{id}"),
)
- rsp := &PackagesDeleteRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesDelete", req), rsp, opts...)
+ rsp := &PackageDeleteRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageDelete", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) PackagesList(ctx context.Context, req *PackagesListReq, opts ...options.Option) (*PackagesListRsp, error) {
+func (c *pkgdashServiceClient) PackageList(ctx context.Context, req *PackageListReq, opts ...options.Option) (*PackageListRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -184,15 +184,15 @@ func (c *pkgdashServiceClient) PackagesList(ctx context.Context, req *PackagesLi
v41.Method(http.MethodGet),
v41.Path("/v1/packages"),
)
- rsp := &PackagesListRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesList", req), rsp, opts...)
+ rsp := &PackageListRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageList", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) PackagesModules(ctx context.Context, req *PackagesModulesReq, opts ...options.Option) (*PackagesModulesRsp, error) {
+func (c *pkgdashServiceClient) PackageModules(ctx context.Context, req *PackageModulesReq, opts ...options.Option) (*PackageModulesRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -202,15 +202,15 @@ func (c *pkgdashServiceClient) PackagesModules(ctx context.Context, req *Package
v41.Method(http.MethodGet),
v41.Path("/v1/packages/{package}/modules"),
)
- rsp := &PackagesModulesRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesModules", req), rsp, opts...)
+ rsp := &PackageModulesRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageModules", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) PackagesUpdate(ctx context.Context, req *PackagesUpdateReq, opts ...options.Option) (*PackagesUpdateRsp, error) {
+func (c *pkgdashServiceClient) PackageUpdate(ctx context.Context, req *PackageUpdateReq, opts ...options.Option) (*PackageUpdateRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -221,15 +221,15 @@ func (c *pkgdashServiceClient) PackagesUpdate(ctx context.Context, req *Packages
v41.Path("/v1/packages/{id}"),
v41.Body("*"),
)
- rsp := &PackagesUpdateRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackagesUpdate", req), rsp, opts...)
+ rsp := &PackageUpdateRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.PackageUpdate", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) CommentsCreate(ctx context.Context, req *CommentsCreateReq, opts ...options.Option) (*CommentsCreateRsp, error) {
+func (c *pkgdashServiceClient) CommentCreate(ctx context.Context, req *CommentCreateReq, opts ...options.Option) (*CommentCreateRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -240,15 +240,15 @@ func (c *pkgdashServiceClient) CommentsCreate(ctx context.Context, req *Comments
v41.Path("/v1/packages/{package}/comments"),
v41.Body("*"),
)
- rsp := &CommentsCreateRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentsCreate", req), rsp, opts...)
+ rsp := &CommentCreateRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentCreate", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) CommentsLookup(ctx context.Context, req *CommentsLookupReq, opts ...options.Option) (*CommentsLookupRsp, error) {
+func (c *pkgdashServiceClient) CommentLookup(ctx context.Context, req *CommentLookupReq, opts ...options.Option) (*CommentLookupRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -258,15 +258,15 @@ func (c *pkgdashServiceClient) CommentsLookup(ctx context.Context, req *Comments
v41.Method(http.MethodGet),
v41.Path("/v1/comments/{id}/comments"),
)
- rsp := &CommentsLookupRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentsLookup", req), rsp, opts...)
+ rsp := &CommentLookupRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentLookup", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) CommentsList(ctx context.Context, req *CommentsListReq, opts ...options.Option) (*CommentsListRsp, error) {
+func (c *pkgdashServiceClient) CommentList(ctx context.Context, req *CommentListReq, opts ...options.Option) (*CommentListRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -276,15 +276,15 @@ func (c *pkgdashServiceClient) CommentsList(ctx context.Context, req *CommentsLi
v41.Method(http.MethodGet),
v41.Path("/v1/packages/{package}/comments"),
)
- rsp := &CommentsListRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentsList", req), rsp, opts...)
+ rsp := &CommentListRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentList", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) CommentsDelete(ctx context.Context, req *CommentsDeleteReq, opts ...options.Option) (*CommentsDeleteRsp, error) {
+func (c *pkgdashServiceClient) CommentDelete(ctx context.Context, req *CommentDeleteReq, opts ...options.Option) (*CommentDeleteRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -294,15 +294,15 @@ func (c *pkgdashServiceClient) CommentsDelete(ctx context.Context, req *Comments
v41.Method(http.MethodDelete),
v41.Path("/v1/packages/{package_id}/comments/{id}"),
)
- rsp := &CommentsDeleteRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentsDelete", req), rsp, opts...)
+ rsp := &CommentDeleteRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.CommentDelete", req), rsp, opts...)
if err != nil {
return nil, err
}
return rsp, nil
}
-func (c *pkgdashServiceClient) ModulesList(ctx context.Context, req *ModulesListReq, opts ...options.Option) (*ModulesListRsp, error) {
+func (c *pkgdashServiceClient) ModuleList(ctx context.Context, req *ModuleListReq, opts ...options.Option) (*ModuleListRsp, error) {
errmap := make(map[string]interface{}, 1)
errmap["default"] = &ErrorRsp{}
opts = append(opts,
@@ -312,8 +312,8 @@ func (c *pkgdashServiceClient) ModulesList(ctx context.Context, req *ModulesList
v41.Method(http.MethodGet),
v41.Path("/v1/modules"),
)
- rsp := &ModulesListRsp{}
- err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.ModulesList", req), rsp, opts...)
+ rsp := &ModuleListRsp{}
+ err := c.c.Call(ctx, c.c.NewRequest(c.name, "PkgdashService.ModuleList", req), rsp, opts...)
if err != nil {
return nil, err
}
@@ -324,63 +324,63 @@ type pkgdashServiceServer struct {
PkgdashServiceServer
}
-func (h *pkgdashServiceServer) PackagesLookup(ctx context.Context, req *PackagesLookupReq, rsp *PackagesLookupRsp) error {
- return h.PkgdashServiceServer.PackagesLookup(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageLookup(ctx context.Context, req *PackageLookupReq, rsp *PackageLookupRsp) error {
+ return h.PkgdashServiceServer.PackageLookup(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) PackagesCreate(ctx context.Context, req *PackagesCreateReq, rsp *PackagesCreateRsp) error {
- return h.PkgdashServiceServer.PackagesCreate(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageCreate(ctx context.Context, req *PackageCreateReq, rsp *PackageCreateRsp) error {
+ return h.PkgdashServiceServer.PackageCreate(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) PackagesDelete(ctx context.Context, req *PackagesDeleteReq, rsp *PackagesDeleteRsp) error {
- return h.PkgdashServiceServer.PackagesDelete(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageDelete(ctx context.Context, req *PackageDeleteReq, rsp *PackageDeleteRsp) error {
+ return h.PkgdashServiceServer.PackageDelete(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) PackagesList(ctx context.Context, req *PackagesListReq, rsp *PackagesListRsp) error {
- return h.PkgdashServiceServer.PackagesList(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageList(ctx context.Context, req *PackageListReq, rsp *PackageListRsp) error {
+ return h.PkgdashServiceServer.PackageList(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) PackagesModules(ctx context.Context, req *PackagesModulesReq, rsp *PackagesModulesRsp) error {
- return h.PkgdashServiceServer.PackagesModules(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageModules(ctx context.Context, req *PackageModulesReq, rsp *PackageModulesRsp) error {
+ return h.PkgdashServiceServer.PackageModules(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) PackagesUpdate(ctx context.Context, req *PackagesUpdateReq, rsp *PackagesUpdateRsp) error {
- return h.PkgdashServiceServer.PackagesUpdate(ctx, req, rsp)
+func (h *pkgdashServiceServer) PackageUpdate(ctx context.Context, req *PackageUpdateReq, rsp *PackageUpdateRsp) error {
+ return h.PkgdashServiceServer.PackageUpdate(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) CommentsCreate(ctx context.Context, req *CommentsCreateReq, rsp *CommentsCreateRsp) error {
- return h.PkgdashServiceServer.CommentsCreate(ctx, req, rsp)
+func (h *pkgdashServiceServer) CommentCreate(ctx context.Context, req *CommentCreateReq, rsp *CommentCreateRsp) error {
+ return h.PkgdashServiceServer.CommentCreate(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) CommentsLookup(ctx context.Context, req *CommentsLookupReq, rsp *CommentsLookupRsp) error {
- return h.PkgdashServiceServer.CommentsLookup(ctx, req, rsp)
+func (h *pkgdashServiceServer) CommentLookup(ctx context.Context, req *CommentLookupReq, rsp *CommentLookupRsp) error {
+ return h.PkgdashServiceServer.CommentLookup(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) CommentsList(ctx context.Context, req *CommentsListReq, rsp *CommentsListRsp) error {
- return h.PkgdashServiceServer.CommentsList(ctx, req, rsp)
+func (h *pkgdashServiceServer) CommentList(ctx context.Context, req *CommentListReq, rsp *CommentListRsp) error {
+ return h.PkgdashServiceServer.CommentList(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) CommentsDelete(ctx context.Context, req *CommentsDeleteReq, rsp *CommentsDeleteRsp) error {
- return h.PkgdashServiceServer.CommentsDelete(ctx, req, rsp)
+func (h *pkgdashServiceServer) CommentDelete(ctx context.Context, req *CommentDeleteReq, rsp *CommentDeleteRsp) error {
+ return h.PkgdashServiceServer.CommentDelete(ctx, req, rsp)
}
-func (h *pkgdashServiceServer) ModulesList(ctx context.Context, req *ModulesListReq, rsp *ModulesListRsp) error {
- return h.PkgdashServiceServer.ModulesList(ctx, req, rsp)
+func (h *pkgdashServiceServer) ModuleList(ctx context.Context, req *ModuleListReq, rsp *ModuleListRsp) error {
+ return h.PkgdashServiceServer.ModuleList(ctx, req, rsp)
}
func RegisterPkgdashServiceServer(s server.Server, sh PkgdashServiceServer, opts ...options.Option) error {
type pkgdashService interface {
- PackagesLookup(ctx context.Context, req *PackagesLookupReq, rsp *PackagesLookupRsp) error
- PackagesCreate(ctx context.Context, req *PackagesCreateReq, rsp *PackagesCreateRsp) error
- PackagesDelete(ctx context.Context, req *PackagesDeleteReq, rsp *PackagesDeleteRsp) error
- PackagesList(ctx context.Context, req *PackagesListReq, rsp *PackagesListRsp) error
- PackagesModules(ctx context.Context, req *PackagesModulesReq, rsp *PackagesModulesRsp) error
- PackagesUpdate(ctx context.Context, req *PackagesUpdateReq, rsp *PackagesUpdateRsp) error
- CommentsCreate(ctx context.Context, req *CommentsCreateReq, rsp *CommentsCreateRsp) error
- CommentsLookup(ctx context.Context, req *CommentsLookupReq, rsp *CommentsLookupRsp) error
- CommentsList(ctx context.Context, req *CommentsListReq, rsp *CommentsListRsp) error
- CommentsDelete(ctx context.Context, req *CommentsDeleteReq, rsp *CommentsDeleteRsp) error
- ModulesList(ctx context.Context, req *ModulesListReq, rsp *ModulesListRsp) error
+ PackageLookup(ctx context.Context, req *PackageLookupReq, rsp *PackageLookupRsp) error
+ PackageCreate(ctx context.Context, req *PackageCreateReq, rsp *PackageCreateRsp) error
+ PackageDelete(ctx context.Context, req *PackageDeleteReq, rsp *PackageDeleteRsp) error
+ PackageList(ctx context.Context, req *PackageListReq, rsp *PackageListRsp) error
+ PackageModules(ctx context.Context, req *PackageModulesReq, rsp *PackageModulesRsp) error
+ PackageUpdate(ctx context.Context, req *PackageUpdateReq, rsp *PackageUpdateRsp) error
+ CommentCreate(ctx context.Context, req *CommentCreateReq, rsp *CommentCreateRsp) error
+ CommentLookup(ctx context.Context, req *CommentLookupReq, rsp *CommentLookupRsp) error
+ CommentList(ctx context.Context, req *CommentListReq, rsp *CommentListRsp) error
+ CommentDelete(ctx context.Context, req *CommentDeleteReq, rsp *CommentDeleteRsp) error
+ ModuleList(ctx context.Context, req *ModuleListReq, rsp *ModuleListRsp) error
}
type PkgdashService struct {
pkgdashService
diff --git a/ui/angular.json b/ui/angular.json
index c6a22f5..277ad35 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -31,6 +31,7 @@
"src/assets"
],
"styles": [
+ "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.scss"
],
"scripts": []
@@ -99,6 +100,7 @@
"src/assets"
],
"styles": [
+ "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.scss"
],
"scripts": []
@@ -106,5 +108,8 @@
}
}
}
+ },
+ "cli": {
+ "analytics": false
}
}
diff --git a/ui/package-lock.json b/ui/package-lock.json
index ca16798..ff43f03 100644
--- a/ui/package-lock.json
+++ b/ui/package-lock.json
@@ -9,10 +9,12 @@
"version": "0.0.1",
"dependencies": {
"@angular/animations": "^14.3.0",
+ "@angular/cdk": "^13.0.0",
"@angular/common": "^14.3.0",
"@angular/compiler": "^14.3.0",
"@angular/core": "^14.3.0",
"@angular/forms": "^14.3.0",
+ "@angular/material": "^13.0.0",
"@angular/platform-browser": "^14.3.0",
"@angular/platform-browser-dynamic": "^14.3.0",
"@angular/router": "^14.3.0",
@@ -437,6 +439,28 @@
"@angular/core": "14.3.0"
}
},
+ "node_modules/@angular/cdk": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.0.0.tgz",
+ "integrity": "sha512-OUgDSyiZM16kdaEqMgivg7qSULfYFQBH7qv/v6NKKz9gYuBStqv/dgbsoYdKUb8SNMON9KlYd3zZX0lRutoXFA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "optionalDependencies": {
+ "parse5": "^5.0.0"
+ },
+ "peerDependencies": {
+ "@angular/common": "^13.0.0 || ^14.0.0-0",
+ "@angular/core": "^13.0.0 || ^14.0.0-0",
+ "rxjs": "^6.5.3 || ^7.4.0"
+ }
+ },
+ "node_modules/@angular/cdk/node_modules/parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "optional": true
+ },
"node_modules/@angular/cli": {
"version": "14.2.12",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.2.12.tgz",
@@ -602,6 +626,22 @@
"rxjs": "^6.5.3 || ^7.4.0"
}
},
+ "node_modules/@angular/material": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.0.0.tgz",
+ "integrity": "sha512-v9TB0LHRweSwafPM6BP+pPGi398jlH5SUIqRNfR8Fbg9nujm/mvDNvxFDOJMRLrob69Fqztt7Uw+sK2FSzkjrA==",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "peerDependencies": {
+ "@angular/animations": "^13.0.0 || ^14.0.0-0",
+ "@angular/cdk": "13.0.0",
+ "@angular/common": "^13.0.0 || ^14.0.0-0",
+ "@angular/core": "^13.0.0 || ^14.0.0-0",
+ "@angular/forms": "^13.0.0 || ^14.0.0-0",
+ "rxjs": "^6.5.3 || ^7.4.0"
+ }
+ },
"node_modules/@angular/platform-browser": {
"version": "14.3.0",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.3.0.tgz",
diff --git a/ui/package.json b/ui/package.json
index a0603c7..dca7653 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -11,10 +11,12 @@
"private": true,
"dependencies": {
"@angular/animations": "^14.3.0",
+ "@angular/cdk": "^13.0.0",
"@angular/common": "^14.3.0",
"@angular/compiler": "^14.3.0",
"@angular/core": "^14.3.0",
"@angular/forms": "^14.3.0",
+ "@angular/material": "^13.0.0",
"@angular/platform-browser": "^14.3.0",
"@angular/platform-browser-dynamic": "^14.3.0",
"@angular/router": "^14.3.0",
diff --git a/ui/src/app/api/api.module.ts b/ui/src/app/api/api.module.ts
index db40e10..b91b97b 100644
--- a/ui/src/app/api/api.module.ts
+++ b/ui/src/app/api/api.module.ts
@@ -4,7 +4,7 @@ import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core
import { HttpClient } from '@angular/common/http';
import { ApiConfiguration, ApiConfigurationParams } from './api-configuration';
-import { PkgdashServiceService } from './services/pkgdash-service.service';
+import { PkgdashService } from './services/pkgdash.service';
/**
* Module that provides all services and configuration.
@@ -14,7 +14,7 @@ import { PkgdashServiceService } from './services/pkgdash-service.service';
exports: [],
declarations: [],
providers: [
- PkgdashServiceService,
+ PkgdashService,
ApiConfiguration
],
})
diff --git a/ui/src/app/api/models.ts b/ui/src/app/api/models.ts
index aced0c2..a33e49a 100644
--- a/ui/src/app/api/models.ts
+++ b/ui/src/app/api/models.ts
@@ -1,20 +1,20 @@
/* tslint:disable */
/* eslint-disable */
export { Comment } from './models/comment';
-export { CommentsCreateReq } from './models/comments-create-req';
-export { CommentsCreateRsp } from './models/comments-create-rsp';
-export { CommentsDeleteRsp } from './models/comments-delete-rsp';
-export { CommentsListRsp } from './models/comments-list-rsp';
-export { CommentsLookupRsp } from './models/comments-lookup-rsp';
+export { CommentCreateReq } from './models/comment-create-req';
+export { CommentCreateRsp } from './models/comment-create-rsp';
+export { CommentDeleteRsp } from './models/comment-delete-rsp';
+export { CommentListRsp } from './models/comment-list-rsp';
+export { CommentLookupRsp } from './models/comment-lookup-rsp';
export { ErrorRsp } from './models/error-rsp';
export { Module } from './models/module';
-export { ModulesListRsp } from './models/modules-list-rsp';
+export { ModuleListRsp } from './models/module-list-rsp';
export { Package } from './models/package';
-export { PackagesCreateReq } from './models/packages-create-req';
-export { PackagesCreateRsp } from './models/packages-create-rsp';
-export { PackagesDeleteRsp } from './models/packages-delete-rsp';
-export { PackagesListRsp } from './models/packages-list-rsp';
-export { PackagesLookupRsp } from './models/packages-lookup-rsp';
-export { PackagesModulesRsp } from './models/packages-modules-rsp';
-export { PackagesUpdateReq } from './models/packages-update-req';
-export { PackagesUpdateRsp } from './models/packages-update-rsp';
+export { PackageCreateReq } from './models/package-create-req';
+export { PackageCreateRsp } from './models/package-create-rsp';
+export { PackageDeleteRsp } from './models/package-delete-rsp';
+export { PackageListRsp } from './models/package-list-rsp';
+export { PackageLookupRsp } from './models/package-lookup-rsp';
+export { PackageModulesRsp } from './models/package-modules-rsp';
+export { PackageUpdateReq } from './models/package-update-req';
+export { PackageUpdateRsp } from './models/package-update-rsp';
diff --git a/ui/src/app/api/models/comments-create-req.ts b/ui/src/app/api/models/comment-create-req.ts
similarity index 70%
rename from ui/src/app/api/models/comments-create-req.ts
rename to ui/src/app/api/models/comment-create-req.ts
index 42ead4b..05d037e 100644
--- a/ui/src/app/api/models/comments-create-req.ts
+++ b/ui/src/app/api/models/comment-create-req.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
-export interface CommentsCreateReq {
+export interface CommentCreateReq {
comment?: string;
package_id?: number;
}
diff --git a/ui/src/app/api/models/comments-lookup-rsp.ts b/ui/src/app/api/models/comment-create-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/comments-lookup-rsp.ts
rename to ui/src/app/api/models/comment-create-rsp.ts
index e013caa..38625cc 100644
--- a/ui/src/app/api/models/comments-lookup-rsp.ts
+++ b/ui/src/app/api/models/comment-create-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Comment } from './comment';
-export interface CommentsLookupRsp {
+export interface CommentCreateRsp {
comment?: Comment;
}
diff --git a/ui/src/app/api/models/packages-delete-rsp.ts b/ui/src/app/api/models/comment-delete-rsp.ts
similarity index 54%
rename from ui/src/app/api/models/packages-delete-rsp.ts
rename to ui/src/app/api/models/comment-delete-rsp.ts
index a053c2f..c51958b 100644
--- a/ui/src/app/api/models/packages-delete-rsp.ts
+++ b/ui/src/app/api/models/comment-delete-rsp.ts
@@ -1,4 +1,4 @@
/* tslint:disable */
/* eslint-disable */
-export interface PackagesDeleteRsp {
+export interface CommentDeleteRsp {
}
diff --git a/ui/src/app/api/models/comments-list-rsp.ts b/ui/src/app/api/models/comment-list-rsp.ts
similarity index 75%
rename from ui/src/app/api/models/comments-list-rsp.ts
rename to ui/src/app/api/models/comment-list-rsp.ts
index eb0a478..248b594 100644
--- a/ui/src/app/api/models/comments-list-rsp.ts
+++ b/ui/src/app/api/models/comment-list-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Comment } from './comment';
-export interface CommentsListRsp {
+export interface CommentListRsp {
comments?: Array;
}
diff --git a/ui/src/app/api/models/comments-create-rsp.ts b/ui/src/app/api/models/comment-lookup-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/comments-create-rsp.ts
rename to ui/src/app/api/models/comment-lookup-rsp.ts
index f7eb8bc..319711c 100644
--- a/ui/src/app/api/models/comments-create-rsp.ts
+++ b/ui/src/app/api/models/comment-lookup-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Comment } from './comment';
-export interface CommentsCreateRsp {
+export interface CommentLookupRsp {
comment?: Comment;
}
diff --git a/ui/src/app/api/models/modules-list-rsp.ts b/ui/src/app/api/models/module-list-rsp.ts
similarity index 75%
rename from ui/src/app/api/models/modules-list-rsp.ts
rename to ui/src/app/api/models/module-list-rsp.ts
index 92aefc0..1900973 100644
--- a/ui/src/app/api/models/modules-list-rsp.ts
+++ b/ui/src/app/api/models/module-list-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Module } from './module';
-export interface ModulesListRsp {
+export interface ModuleListRsp {
modules?: Array;
}
diff --git a/ui/src/app/api/models/packages-create-req.ts b/ui/src/app/api/models/package-create-req.ts
similarity index 73%
rename from ui/src/app/api/models/packages-create-req.ts
rename to ui/src/app/api/models/package-create-req.ts
index 278b1fd..c64adfd 100644
--- a/ui/src/app/api/models/packages-create-req.ts
+++ b/ui/src/app/api/models/package-create-req.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
-export interface PackagesCreateReq {
+export interface PackageCreateReq {
modules?: Array;
name?: string;
url?: string;
diff --git a/ui/src/app/api/models/packages-create-rsp.ts b/ui/src/app/api/models/package-create-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/packages-create-rsp.ts
rename to ui/src/app/api/models/package-create-rsp.ts
index c7c5024..5d04080 100644
--- a/ui/src/app/api/models/packages-create-rsp.ts
+++ b/ui/src/app/api/models/package-create-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Package } from './package';
-export interface PackagesCreateRsp {
+export interface PackageCreateRsp {
package?: Package;
}
diff --git a/ui/src/app/api/models/comments-delete-rsp.ts b/ui/src/app/api/models/package-delete-rsp.ts
similarity index 54%
rename from ui/src/app/api/models/comments-delete-rsp.ts
rename to ui/src/app/api/models/package-delete-rsp.ts
index 9239c1f..c9aee76 100644
--- a/ui/src/app/api/models/comments-delete-rsp.ts
+++ b/ui/src/app/api/models/package-delete-rsp.ts
@@ -1,4 +1,4 @@
/* tslint:disable */
/* eslint-disable */
-export interface CommentsDeleteRsp {
+export interface PackageDeleteRsp {
}
diff --git a/ui/src/app/api/models/packages-list-rsp.ts b/ui/src/app/api/models/package-list-rsp.ts
similarity index 75%
rename from ui/src/app/api/models/packages-list-rsp.ts
rename to ui/src/app/api/models/package-list-rsp.ts
index 089335c..65035b2 100644
--- a/ui/src/app/api/models/packages-list-rsp.ts
+++ b/ui/src/app/api/models/package-list-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Package } from './package';
-export interface PackagesListRsp {
+export interface PackageListRsp {
packages?: Array;
}
diff --git a/ui/src/app/api/models/packages-lookup-rsp.ts b/ui/src/app/api/models/package-lookup-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/packages-lookup-rsp.ts
rename to ui/src/app/api/models/package-lookup-rsp.ts
index 01ff7ce..5055b39 100644
--- a/ui/src/app/api/models/packages-lookup-rsp.ts
+++ b/ui/src/app/api/models/package-lookup-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Package } from './package';
-export interface PackagesLookupRsp {
+export interface PackageLookupRsp {
package?: Package;
}
diff --git a/ui/src/app/api/models/packages-modules-rsp.ts b/ui/src/app/api/models/package-modules-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/packages-modules-rsp.ts
rename to ui/src/app/api/models/package-modules-rsp.ts
index 763f551..59e1b89 100644
--- a/ui/src/app/api/models/packages-modules-rsp.ts
+++ b/ui/src/app/api/models/package-modules-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Module } from './module';
-export interface PackagesModulesRsp {
+export interface PackageModulesRsp {
modules?: Array;
}
diff --git a/ui/src/app/api/models/packages-update-req.ts b/ui/src/app/api/models/package-update-req.ts
similarity index 79%
rename from ui/src/app/api/models/packages-update-req.ts
rename to ui/src/app/api/models/package-update-req.ts
index 006dd3a..48fe687 100644
--- a/ui/src/app/api/models/packages-update-req.ts
+++ b/ui/src/app/api/models/package-update-req.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
-export interface PackagesUpdateReq {
+export interface PackageUpdateReq {
id?: number;
issues?: Array;
modules?: Array;
diff --git a/ui/src/app/api/models/packages-update-rsp.ts b/ui/src/app/api/models/package-update-rsp.ts
similarity index 73%
rename from ui/src/app/api/models/packages-update-rsp.ts
rename to ui/src/app/api/models/package-update-rsp.ts
index fb26304..7d092a7 100644
--- a/ui/src/app/api/models/packages-update-rsp.ts
+++ b/ui/src/app/api/models/package-update-rsp.ts
@@ -1,6 +1,6 @@
/* tslint:disable */
/* eslint-disable */
import { Package } from './package';
-export interface PackagesUpdateRsp {
+export interface PackageUpdateRsp {
package?: Package;
}
diff --git a/ui/src/app/api/models/package.ts b/ui/src/app/api/models/package.ts
index 255f26a..f4937c3 100644
--- a/ui/src/app/api/models/package.ts
+++ b/ui/src/app/api/models/package.ts
@@ -3,6 +3,7 @@
export interface Package {
comments?: number;
created?: string;
+ description?: string;
id?: number;
issues?: number;
last_check?: string;
diff --git a/ui/src/app/api/services.ts b/ui/src/app/api/services.ts
index 66a8c21..5d57ba8 100644
--- a/ui/src/app/api/services.ts
+++ b/ui/src/app/api/services.ts
@@ -1 +1 @@
-export { PkgdashServiceService } from './services/pkgdash-service.service';
+export { PkgdashService } from './services/pkgdash.service';
diff --git a/ui/src/app/api/services/pkgdash-service.service.ts b/ui/src/app/api/services/pkgdash.service.ts
similarity index 54%
rename from ui/src/app/api/services/pkgdash-service.service.ts
rename to ui/src/app/api/services/pkgdash.service.ts
index 18a6291..05cf890 100644
--- a/ui/src/app/api/services/pkgdash-service.service.ts
+++ b/ui/src/app/api/services/pkgdash.service.ts
@@ -10,44 +10,44 @@ import { ApiConfiguration } from '../api-configuration';
import { StrictHttpResponse } from '../strict-http-response';
import { RequestBuilder } from '../request-builder';
-import { CommentsCreateReq } from '../models/comments-create-req';
-import { CommentsCreateRsp } from '../models/comments-create-rsp';
-import { CommentsDeleteRsp } from '../models/comments-delete-rsp';
-import { CommentsListRsp } from '../models/comments-list-rsp';
-import { CommentsLookupRsp } from '../models/comments-lookup-rsp';
-import { ModulesListRsp } from '../models/modules-list-rsp';
-import { PackagesCreateReq } from '../models/packages-create-req';
-import { PackagesCreateRsp } from '../models/packages-create-rsp';
-import { PackagesDeleteRsp } from '../models/packages-delete-rsp';
-import { PackagesListRsp } from '../models/packages-list-rsp';
-import { PackagesLookupRsp } from '../models/packages-lookup-rsp';
-import { PackagesModulesRsp } from '../models/packages-modules-rsp';
-import { PackagesUpdateReq } from '../models/packages-update-req';
-import { PackagesUpdateRsp } from '../models/packages-update-rsp';
+import { CommentCreateReq } from '../models/comment-create-req';
+import { CommentCreateRsp } from '../models/comment-create-rsp';
+import { CommentDeleteRsp } from '../models/comment-delete-rsp';
+import { CommentListRsp } from '../models/comment-list-rsp';
+import { CommentLookupRsp } from '../models/comment-lookup-rsp';
+import { ModuleListRsp } from '../models/module-list-rsp';
+import { PackageCreateReq } from '../models/package-create-req';
+import { PackageCreateRsp } from '../models/package-create-rsp';
+import { PackageDeleteRsp } from '../models/package-delete-rsp';
+import { PackageListRsp } from '../models/package-list-rsp';
+import { PackageLookupRsp } from '../models/package-lookup-rsp';
+import { PackageModulesRsp } from '../models/package-modules-rsp';
+import { PackageUpdateReq } from '../models/package-update-req';
+import { PackageUpdateRsp } from '../models/package-update-rsp';
@Injectable({ providedIn: 'root' })
-export class PkgdashServiceService extends BaseService {
+export class PkgdashService extends BaseService {
constructor(config: ApiConfiguration, http: HttpClient) {
super(config, http);
}
- /** Path part for operation `commentsLookup()` */
- static readonly CommentsLookupPath = '/v1/comments/{id}/comments';
+ /** Path part for operation `commentLookup()` */
+ static readonly CommentLookupPath = '/v1/comments/{id}/comments';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `commentsLookup()` instead.
+ * To access only the response body, use `commentLookup()` instead.
*
* This method doesn't expect any request body.
*/
- commentsLookup$Response(
+ commentLookup$Response(
params: {
id: number;
package_id?: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.CommentsLookupPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.CommentLookupPath, 'get');
if (params) {
rb.path('id', params.id, {});
rb.query('package_id', params.package_id, {});
@@ -58,44 +58,44 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `commentsLookup$Response()` instead.
+ * To access the full response (for headers, for example), `commentLookup$Response()` instead.
*
* This method doesn't expect any request body.
*/
- commentsLookup(
+ commentLookup(
params: {
id: number;
package_id?: number;
},
context?: HttpContext
- ): Observable {
- return this.commentsLookup$Response(params, context).pipe(
- map((r: StrictHttpResponse): CommentsLookupRsp => r.body)
+ ): Observable {
+ return this.commentLookup$Response(params, context).pipe(
+ map((r: StrictHttpResponse): CommentLookupRsp => r.body)
);
}
- /** Path part for operation `modulesList()` */
- static readonly ModulesListPath = '/v1/modules';
+ /** Path part for operation `moduleList()` */
+ static readonly ModuleListPath = '/v1/modules';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `modulesList()` instead.
+ * To access only the response body, use `moduleList()` instead.
*
* This method doesn't expect any request body.
*/
- modulesList$Response(
+ moduleList$Response(
params?: {
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.ModulesListPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.ModuleListPath, 'get');
if (params) {
}
@@ -104,42 +104,42 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `modulesList$Response()` instead.
+ * To access the full response (for headers, for example), `moduleList$Response()` instead.
*
* This method doesn't expect any request body.
*/
- modulesList(
+ moduleList(
params?: {
},
context?: HttpContext
- ): Observable {
- return this.modulesList$Response(params, context).pipe(
- map((r: StrictHttpResponse): ModulesListRsp => r.body)
+ ): Observable {
+ return this.moduleList$Response(params, context).pipe(
+ map((r: StrictHttpResponse): ModuleListRsp => r.body)
);
}
- /** Path part for operation `packagesList()` */
- static readonly PackagesListPath = '/v1/packages';
+ /** Path part for operation `packageList()` */
+ static readonly PackageListPath = '/v1/packages';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesList()` instead.
+ * To access only the response body, use `packageList()` instead.
*
* This method doesn't expect any request body.
*/
- packagesList$Response(
+ packageList$Response(
params?: {
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesListPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageListPath, 'get');
if (params) {
}
@@ -148,43 +148,43 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesList$Response()` instead.
+ * To access the full response (for headers, for example), `packageList$Response()` instead.
*
* This method doesn't expect any request body.
*/
- packagesList(
+ packageList(
params?: {
},
context?: HttpContext
- ): Observable {
- return this.packagesList$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesListRsp => r.body)
+ ): Observable {
+ return this.packageList$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageListRsp => r.body)
);
}
- /** Path part for operation `packagesCreate()` */
- static readonly PackagesCreatePath = '/v1/packages';
+ /** Path part for operation `packageCreate()` */
+ static readonly PackageCreatePath = '/v1/packages';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesCreate()` instead.
+ * To access only the response body, use `packageCreate()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- packagesCreate$Response(
+ packageCreate$Response(
params: {
- body: PackagesCreateReq
+ body: PackageCreateReq
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesCreatePath, 'post');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageCreatePath, 'post');
if (params) {
rb.body(params.body, 'application/json');
}
@@ -194,44 +194,44 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesCreate$Response()` instead.
+ * To access the full response (for headers, for example), `packageCreate$Response()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- packagesCreate(
+ packageCreate(
params: {
- body: PackagesCreateReq
+ body: PackageCreateReq
},
context?: HttpContext
- ): Observable {
- return this.packagesCreate$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesCreateRsp => r.body)
+ ): Observable {
+ return this.packageCreate$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageCreateRsp => r.body)
);
}
- /** Path part for operation `packagesLookup()` */
- static readonly PackagesLookupPath = '/v1/packages/{id}';
+ /** Path part for operation `packageLookup()` */
+ static readonly PackageLookupPath = '/v1/packages/{id}';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesLookup()` instead.
+ * To access only the response body, use `packageLookup()` instead.
*
* This method doesn't expect any request body.
*/
- packagesLookup$Response(
+ packageLookup$Response(
params: {
id: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesLookupPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageLookupPath, 'get');
if (params) {
rb.path('id', params.id, {});
}
@@ -241,45 +241,45 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesLookup$Response()` instead.
+ * To access the full response (for headers, for example), `packageLookup$Response()` instead.
*
* This method doesn't expect any request body.
*/
- packagesLookup(
+ packageLookup(
params: {
id: number;
},
context?: HttpContext
- ): Observable {
- return this.packagesLookup$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesLookupRsp => r.body)
+ ): Observable {
+ return this.packageLookup$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageLookupRsp => r.body)
);
}
- /** Path part for operation `packagesUpdate()` */
- static readonly PackagesUpdatePath = '/v1/packages/{id}';
+ /** Path part for operation `packageUpdate()` */
+ static readonly PackageUpdatePath = '/v1/packages/{id}';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesUpdate()` instead.
+ * To access only the response body, use `packageUpdate()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- packagesUpdate$Response(
+ packageUpdate$Response(
params: {
id: number;
- body: PackagesUpdateReq
+ body: PackageUpdateReq
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesUpdatePath, 'put');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageUpdatePath, 'put');
if (params) {
rb.path('id', params.id, {});
rb.body(params.body, 'application/json');
@@ -290,45 +290,45 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesUpdate$Response()` instead.
+ * To access the full response (for headers, for example), `packageUpdate$Response()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- packagesUpdate(
+ packageUpdate(
params: {
id: number;
- body: PackagesUpdateReq
+ body: PackageUpdateReq
},
context?: HttpContext
- ): Observable {
- return this.packagesUpdate$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesUpdateRsp => r.body)
+ ): Observable {
+ return this.packageUpdate$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageUpdateRsp => r.body)
);
}
- /** Path part for operation `packagesDelete()` */
- static readonly PackagesDeletePath = '/v1/packages/{id}';
+ /** Path part for operation `packageDelete()` */
+ static readonly PackageDeletePath = '/v1/packages/{id}';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesDelete()` instead.
+ * To access only the response body, use `packageDelete()` instead.
*
* This method doesn't expect any request body.
*/
- packagesDelete$Response(
+ packageDelete$Response(
params: {
id: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesDeletePath, 'delete');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageDeletePath, 'delete');
if (params) {
rb.path('id', params.id, {});
}
@@ -338,45 +338,45 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesDelete$Response()` instead.
+ * To access the full response (for headers, for example), `packageDelete$Response()` instead.
*
* This method doesn't expect any request body.
*/
- packagesDelete(
+ packageDelete(
params: {
id: number;
},
context?: HttpContext
- ): Observable {
- return this.packagesDelete$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesDeleteRsp => r.body)
+ ): Observable {
+ return this.packageDelete$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageDeleteRsp => r.body)
);
}
- /** Path part for operation `commentsDelete()` */
- static readonly CommentsDeletePath = '/v1/packages/{package_id}/comments/{id}';
+ /** Path part for operation `commentDelete()` */
+ static readonly CommentDeletePath = '/v1/packages/{package_id}/comments/{id}';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `commentsDelete()` instead.
+ * To access only the response body, use `commentDelete()` instead.
*
* This method doesn't expect any request body.
*/
- commentsDelete$Response(
+ commentDelete$Response(
params: {
package_id: number;
id: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.CommentsDeletePath, 'delete');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.CommentDeletePath, 'delete');
if (params) {
rb.path('package_id', params.package_id, {});
rb.path('id', params.id, {});
@@ -387,46 +387,46 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `commentsDelete$Response()` instead.
+ * To access the full response (for headers, for example), `commentDelete$Response()` instead.
*
* This method doesn't expect any request body.
*/
- commentsDelete(
+ commentDelete(
params: {
package_id: number;
id: number;
},
context?: HttpContext
- ): Observable {
- return this.commentsDelete$Response(params, context).pipe(
- map((r: StrictHttpResponse): CommentsDeleteRsp => r.body)
+ ): Observable {
+ return this.commentDelete$Response(params, context).pipe(
+ map((r: StrictHttpResponse): CommentDeleteRsp => r.body)
);
}
- /** Path part for operation `commentsList()` */
- static readonly CommentsListPath = '/v1/packages/{package}/comments';
+ /** Path part for operation `commentList()` */
+ static readonly CommentListPath = '/v1/packages/{package}/comments';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `commentsList()` instead.
+ * To access only the response body, use `commentList()` instead.
*
* This method doesn't expect any request body.
*/
- commentsList$Response(
+ commentList$Response(
params: {
package: string;
package_id?: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.CommentsListPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.CommentListPath, 'get');
if (params) {
rb.path('package', params.package, {});
rb.query('package_id', params.package_id, {});
@@ -437,46 +437,46 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `commentsList$Response()` instead.
+ * To access the full response (for headers, for example), `commentList$Response()` instead.
*
* This method doesn't expect any request body.
*/
- commentsList(
+ commentList(
params: {
package: string;
package_id?: number;
},
context?: HttpContext
- ): Observable {
- return this.commentsList$Response(params, context).pipe(
- map((r: StrictHttpResponse): CommentsListRsp => r.body)
+ ): Observable {
+ return this.commentList$Response(params, context).pipe(
+ map((r: StrictHttpResponse): CommentListRsp => r.body)
);
}
- /** Path part for operation `commentsCreate()` */
- static readonly CommentsCreatePath = '/v1/packages/{package}/comments';
+ /** Path part for operation `commentCreate()` */
+ static readonly CommentCreatePath = '/v1/packages/{package}/comments';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `commentsCreate()` instead.
+ * To access only the response body, use `commentCreate()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- commentsCreate$Response(
+ commentCreate$Response(
params: {
package: string;
- body: CommentsCreateReq
+ body: CommentCreateReq
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.CommentsCreatePath, 'post');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.CommentCreatePath, 'post');
if (params) {
rb.path('package', params.package, {});
rb.body(params.body, 'application/json');
@@ -487,45 +487,45 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `commentsCreate$Response()` instead.
+ * To access the full response (for headers, for example), `commentCreate$Response()` instead.
*
* This method sends `application/json` and handles request body of type `application/json`.
*/
- commentsCreate(
+ commentCreate(
params: {
package: string;
- body: CommentsCreateReq
+ body: CommentCreateReq
},
context?: HttpContext
- ): Observable {
- return this.commentsCreate$Response(params, context).pipe(
- map((r: StrictHttpResponse): CommentsCreateRsp => r.body)
+ ): Observable {
+ return this.commentCreate$Response(params, context).pipe(
+ map((r: StrictHttpResponse): CommentCreateRsp => r.body)
);
}
- /** Path part for operation `packagesModules()` */
- static readonly PackagesModulesPath = '/v1/packages/{package}/modules';
+ /** Path part for operation `packageModules()` */
+ static readonly PackageModulesPath = '/v1/packages/{package}/modules';
/**
* This method provides access to the full `HttpResponse`, allowing access to response headers.
- * To access only the response body, use `packagesModules()` instead.
+ * To access only the response body, use `packageModules()` instead.
*
* This method doesn't expect any request body.
*/
- packagesModules$Response(
+ packageModules$Response(
params: {
package: number;
},
context?: HttpContext
- ): Observable> {
- const rb = new RequestBuilder(this.rootUrl, PkgdashServiceService.PackagesModulesPath, 'get');
+ ): Observable> {
+ const rb = new RequestBuilder(this.rootUrl, PkgdashService.PackageModulesPath, 'get');
if (params) {
rb.path('package', params.package, {});
}
@@ -535,25 +535,25 @@ export class PkgdashServiceService extends BaseService {
).pipe(
filter((r: any): r is HttpResponse => r instanceof HttpResponse),
map((r: HttpResponse) => {
- return r as StrictHttpResponse;
+ return r as StrictHttpResponse;
})
);
}
/**
* This method provides access only to the response body.
- * To access the full response (for headers, for example), `packagesModules$Response()` instead.
+ * To access the full response (for headers, for example), `packageModules$Response()` instead.
*
* This method doesn't expect any request body.
*/
- packagesModules(
+ packageModules(
params: {
package: number;
},
context?: HttpContext
- ): Observable {
- return this.packagesModules$Response(params, context).pipe(
- map((r: StrictHttpResponse): PackagesModulesRsp => r.body)
+ ): Observable {
+ return this.packageModules$Response(params, context).pipe(
+ map((r: StrictHttpResponse): PackageModulesRsp => r.body)
);
}
diff --git a/ui/src/app/app-routing.module.ts b/ui/src/app/app-routing.module.ts
index 0297262..032b7e7 100644
--- a/ui/src/app/app-routing.module.ts
+++ b/ui/src/app/app-routing.module.ts
@@ -1,7 +1,11 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
+import { PackageComponent } from './components/package/package.component';
-const routes: Routes = [];
+const routes: Routes = [
+ { path: '', component: PackageComponent },
+ { path: '**', component: PackageComponent },
+];
@NgModule({
imports: [RouterModule.forRoot(routes)],
diff --git a/ui/src/app/app.component.html b/ui/src/app/app.component.html
index e11ca59..90c6b64 100644
--- a/ui/src/app/app.component.html
+++ b/ui/src/app/app.component.html
@@ -1,484 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-