kinto 18.1.1__py3-none-any.whl → 19.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kinto might be problematic. Click here for more details.

Files changed (33) hide show
  1. kinto/__init__.py +1 -0
  2. kinto/core/__init__.py +2 -1
  3. kinto/core/initialization.py +132 -53
  4. kinto/core/metrics.py +93 -0
  5. kinto/core/statsd.py +1 -63
  6. kinto/core/testing.py +5 -1
  7. kinto/core/utils.py +8 -0
  8. kinto/plugins/admin/VERSION +1 -1
  9. kinto/plugins/admin/build/VERSION +1 -1
  10. kinto/plugins/admin/build/assets/index-BKIg2XW8.js +165 -0
  11. kinto/plugins/admin/build/assets/{index-vylaZGUr.css → index-D8oiN37x.css} +1 -1
  12. kinto/plugins/admin/build/assets/{javascript-upQ8KtFH.js → javascript-iSgyE4tI.js} +1 -1
  13. kinto/plugins/admin/build/index.html +2 -2
  14. kinto/plugins/history/__init__.py +5 -6
  15. kinto/plugins/prometheus.py +186 -0
  16. kinto/plugins/quotas/__init__.py +5 -6
  17. kinto/plugins/statsd.py +70 -0
  18. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/METADATA +5 -4
  19. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/RECORD +32 -29
  20. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/WHEEL +1 -1
  21. kinto/plugins/admin/build/assets/index-iVTdxamX.js +0 -175
  22. /kinto/plugins/admin/build/assets/{asn1-8gHclKtu.js → asn1-CGOzndHr.js} +0 -0
  23. /kinto/plugins/admin/build/assets/{clojure-plf_rynZ.js → clojure-BMjYHr_A.js} +0 -0
  24. /kinto/plugins/admin/build/assets/{css-tpsEXL3H.js → css-BnMrqG3P.js} +0 -0
  25. /kinto/plugins/admin/build/assets/{logo-FQUYikj1.png → logo-VBRiKSPX.png} +0 -0
  26. /kinto/plugins/admin/build/assets/{mllike-ilm95jrV.js → mllike-C_8OmSiT.js} +0 -0
  27. /kinto/plugins/admin/build/assets/{python-xljIYvii.js → python-BuPzkPfP.js} +0 -0
  28. /kinto/plugins/admin/build/assets/{rpm-cddeyEgF.js → rpm-CTu-6PCP.js} +0 -0
  29. /kinto/plugins/admin/build/assets/{sql-3IaSLchm.js → sql-C4g8LzGK.js} +0 -0
  30. /kinto/plugins/admin/build/assets/{ttcn-cfg-9oMIyPXS.js → ttcn-cfg-BIkV9KBc.js} +0 -0
  31. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/LICENSE +0 -0
  32. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/entry_points.txt +0 -0
  33. {kinto-18.1.1.dist-info → kinto-19.3.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- html,body{background:#fafbfc}h1{font-family:Ubuntu,Calibri,Arial,sans-serif;font-size:2.2em}.icon{vertical-align:-.125em;margin-bottom:-.0625em}.main{padding-top:2.8em}.sidebar{padding-top:1em}.sidebar .card{margin-bottom:20px}.card.panel-info .card-header{background-color:#cce5ff;border-color:#b8daff}.card-header span{margin-right:1em;max-width:26em;display:inline-block;height:1.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-header span label{font-weight:700}.sidebar-filters>.card-body{padding:15px 15px 0}.sidebar-filters a.clear{color:#777}.list-group-item .glyphicon.glyphicon-lock{color:#888}.content .list-actions{margin-bottom:.4em}.content .list-actions a{margin-right:.5em}.content .list-actions a>.glyphicon{margin-right:.3em}.content .edit-coll-props .btn{margin-right:0;margin-left:.3em}.kinto-admin-title{display:inline-block;font-size:2em;margin-top:0;margin-bottom:0;padding-left:100px;background:transparent url(/v1/admin/assets/logo-FQUYikj1.png) no-repeat left;background-size:contain}.user-info{float:right;padding-top:.3em;font-size:14px}.user-info a.spaced{margin-left:1em}.server-url input:invalid,.server-url input:focus:invalid{box-shadow:0 0 5px 1px red}.session-info-bar{position:fixed;top:0;left:0;right:0;background:#24292e;color:#fff;padding:.2em 1.15em;z-index:999}.session-info-bar>a{margin-left:.5em}.server-info-panel table{margin:0}.server-info-panel .table-condensed>tbody>tr>th,.server-info-panel .table-condensed>tbody>tr>td{padding:.3em;overflow:hidden;text-overflow:ellipsis;max-width:300px}.server-info-panel tr:first-child th,.server-info-panel tr:first-child td{border:none}.alert h4 small{margin-left:.5em}.list-page .alert{margin-top:1.5em;margin-right:.5em}.tabs-container .panel-default{border-top:none}.tabs-container .panel-danger{margin-top:2em}table.record-list{margin-top:1em}table.record-list th{background:#00000014}table.record-list tbody.loading td{background:#dcdcdc26;color:#777}table.record-list td:not(.actions){max-width:8vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.8em .5em}table.record-list td.lastmod{white-space:nowrap;width:120px}table.record-list td.status{white-space:nowrap;width:80px}table.record-list td.actions{min-width:150px;width:150px;padding:.5em 0;white-space:nowrap;text-align:center}table.record-list td.actions .btn-group{margin:0 .5em}table.record-list>tbody+tbody{border-top:none}.load-more>a{display:block;width:100%}table.record-list td.load-more{padding:0;line-height:2.5em}.load-more>a:hover,.load-more>a:active{background:#d9edf7;text-decoration:none}.card-body>.spinner{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.load-more .spinner{margin-top:.25em}.history-row-details{display:table-row}.table>tbody>tr.history-row-details>td{padding:0;margin:0}.history-row-details td pre{border:none;margin:0}.history-row-details .alert{margin:0;border-radius:0}.sort-link{float:right;margin-top:.1em;color:#444}.sort-link.active{color:#fff}.json-record>div{padding:1px 0 1px 4px}.json-record>div.added{background:#cbeecb;color:green}.json-record>div.removed{background:#f0c9c9;color:red}.json-record-simple-review{white-space:pre-wrap}.card-header>.icon,.list-group-item .icon,.nav-tabs li .icon{margin-right:.5em}.nav-tabs.nav-justified>li>a{color:#333}.collections-menu-entry{display:flex}.collections-menu-entry a:first-child{display:inline-block;width:95%;color:#555;text-decoration:none}.collections-menu-entry.active>a{color:#fff}.home-menu i,.home-menu .icon{float:right;margin:.15em -.5em 0 0}.bucket-menu-entry-edit{float:right;color:#555;text-decoration:none}.bucket-menu-entry-edit:hover{color:inherit}.collections-menu-entry-edit{margin-right:-.5em;color:#888}.collections-menu-entry-edit:hover{color:inherit}.CodeMirror{border:1px solid #ccc;height:auto;border-radius:.3em}.attachment-icon{width:16px}.attachment-action{margin:0;padding:0}.attachment-info .attachment-attributes{display:flex;align-content:stretch;align-items:end}.attachment-info table{margin-bottom:0;flex-grow:1;display:block}.attachment-info .table-condensed>tbody>tr>td{overflow:hidden;text-overflow:ellipsis}.attachment-img{display:flex;align-items:center;justify-content:center;max-width:150px;max-height:150px;text-align:center;background:#fff;border:1px solid #ddd;margin:10px}.attachment-img img{max-width:100%;max-height:100%}form button[type=submit].btn-primary{font-size:1.2em;padding:12px;box-shadow:inset 0 0 0 1px #fff}.record-form-buttons .delete{margin-top:12px}.permissions-form .array-item:not(:last-child) fieldset{border-bottom:1px solid #eee}.permissions-form .field-principal{float:left;width:60%;padding-right:1em}.permissions-form .field-permissions{float:left;width:30%;padding-left:1em}.permissions-form .field-anonymous,.permissions-form .field-authenticated{width:100%;float:left;clear:both}.permissions-form .field-anonymous{border-bottom:1px solid #eee}.permissions-form .field-anonymous p,.permissions-form .field-authenticated p{width:50%}.permissions-form .field-anonymous .checkboxes,.permissions-form .field-authenticated .checkboxes{float:right;width:50%;padding-left:1em;margin-top:-60px}.permissions-form .field-groups fieldset{clear:left}.permissions-form .field-groups .checkboxes{float:right;width:50%;padding-left:1em;margin-top:-60px}.permissions-form .field-groups fieldset>.field.field-array{clear:right}.permissions-form .field-principals .checkboxes{margin-top:-35px}.permissions-form .field-principal>label{display:none}.spinner{margin:30px auto 0;width:70px;text-align:center}.spinner>div{width:18px;height:18px;background-color:#337ab7;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.notifications .alert{margin-top:3em}i.fa{position:relative;top:1px;display:inline-block;font-style:normal;font-weight:400;line-height:1}i.fa:before{display:inline-block;content:"";background-repeat:no-repeat;background-size:24px 24px;width:24px;height:24px}.fa.fa-check:before{background-image:url(~bootstrap-icons/icons/check.svg)}.fa-exclamation-circle:before{background-image:url(~bootstrap-icons/icons/exclamation-circle-fill.svg)}.fa-info:before{background-image:url(~bootstrap-icons/icons/info-circle-fill.svg)}.fa-warning:before{background-image:url(~bootstrap-icons/icons/exclamation-triangle-fill.svg)}.rjsf{margin-bottom:1.25rem}.rjsf pre{padding:9.5px;margin:0 0 10px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.rjsf input[type=radio],.rjsf input[type=checkbox]{margin-right:10px}.rjsf .form-label{font-weight:700}.rjsf h5{font-size:18pt;margin:0 0 0 1pt}.rjsf hr{margin:1px 0 .5em;background-color:#ccc!important}.rjsf .row .align-items-center{align-items:flex-start!important;border-bottom:1px solid #eee}.rjsf .align-items-center button.btn{font-size:14pt}.rjsf .input-group-append button.dropdown-toggle{font-size:12pt}.formWrapper{position:relative}.formWrapper>.spinner{position:absolute;left:-1.25em;right:-1.25em;top:-1.5em;bottom:-2.5em;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.interactive>.spinner{position:absolute;left:-1.25em;right:-1.25em;top:-.5em;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.modal{background-color:#0000004d}.modal-dialog>.spinner{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.informative{filter:grayscale(.8)}.interactive{position:relative}.bs-wizard{margin-top:40px}.progress-steps .row.bs-wizard{border-bottom:0}.bs-wizard{border-bottom:solid 1px #e0e0e0;padding:0 0 10px}.bs-wizard>.bs-wizard-step{padding:0;position:relative}.bs-wizard>.bs-wizard-step .bs-wizard-stepnum{color:#595959;font-size:16px;margin-bottom:5px}.bs-wizard>.bs-wizard-step .bs-wizard-info{color:#999;font-size:14px}.bs-wizard>.bs-wizard-step>.bs-wizard-dot{position:absolute;width:30px;height:30px;display:block;background:#fbe8aa;top:45px;left:50%;margin-top:-15px;margin-left:-15px;border-radius:50%}.bs-wizard>.bs-wizard-step>.bs-wizard-dot:after{content:" ";width:14px;height:14px;background:#fbbd19;border-radius:50px;position:absolute;top:8px;left:8px}.bs-wizard>.bs-wizard-step>.progress{position:relative;border-radius:0;height:8px;box-shadow:none;margin:20px 0}.bs-wizard>.bs-wizard-step>.progress>.progress-bar{width:0px;box-shadow:none;background:#fbe8aa}.bs-wizard>.bs-wizard-step.complete>.progress>.progress-bar{width:100%}.bs-wizard>.bs-wizard-step.active>.progress>.progress-bar{width:50%}.bs-wizard>.bs-wizard-step:first-child.active>.progress>.progress-bar{width:0%}.bs-wizard>.bs-wizard-step:last-child.active>.progress>.progress-bar{width:100%}.bs-wizard>.bs-wizard-step.disabled>.bs-wizard-dot{background-color:#f5f5f5}.bs-wizard>.bs-wizard-step.disabled>.bs-wizard-dot:after{opacity:0}.bs-wizard>.bs-wizard-step:first-child>.progress{left:50%;width:50%}.bs-wizard>.bs-wizard-step:last-child>.progress{width:50%}.bs-wizard>.bs-wizard-step.disabled a.bs-wizard-dot{pointer-events:none}.bs-wizard>.bs-wizard-step .bs-wizard-info li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:250px;text-align:left}.diffstats{font-weight:600}.diffstats .text-green{color:#55a532}.diffstats .text-red{color:#bd2c00;padding-left:4px;padding-right:4px}.signoff-comment{display:block;overflow:auto;max-height:4em;white-space:pre-line}.rollback-changes{position:absolute;top:152px;right:30px}.breadcrumbs{padding-top:.5em;font-size:1.2em;text-transform:lowercase}/*!
1
+ html,body{background:#fafbfc}h1{font-family:Ubuntu,Calibri,Arial,sans-serif;font-size:2.2em}.icon{vertical-align:-.125em;margin-bottom:-.0625em}.main{padding-top:2.8em}.sidebar{padding-top:1em}.sidebar .card{margin-bottom:20px}.card.panel-info .card-header{background-color:#cce5ff;border-color:#b8daff}.card-header span{margin-right:1em;max-width:26em;display:inline-block;height:1.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-header span label{font-weight:700}.card>.card-body{position:relative}.sidebar-filters>.card-body{padding:15px 15px 0}.sidebar-filters a.clear{color:#777}.list-group-item .glyphicon.glyphicon-lock{color:#888}.content .list-actions{margin-bottom:.4em}.content .list-actions a{margin-right:.5em}.content .list-actions a>.glyphicon{margin-right:.3em}.content .edit-coll-props .btn{margin-right:0;margin-left:.3em}.kinto-admin-title{display:inline-block;font-size:2em;margin-top:0;margin-bottom:0;padding-left:100px;background:transparent url(/v1/admin/assets/logo-VBRiKSPX.png) no-repeat left;background-size:contain}.user-info{float:right;padding-top:.3em;font-size:14px}.user-info a.spaced{margin-left:1em}.server-url input:invalid,.server-url input:focus:invalid{box-shadow:0 0 5px 1px red}.session-info-bar{position:fixed;top:0;left:0;right:0;background:#24292e;color:#fff;padding:.2em 1.15em;z-index:999}.session-info-bar>a{margin-left:.5em}.server-info-panel table{margin:0}.server-info-panel .table-condensed>tbody>tr>th,.server-info-panel .table-condensed>tbody>tr>td{padding:.3em;overflow:hidden;text-overflow:ellipsis;max-width:300px}.server-info-panel tr:first-child th,.server-info-panel tr:first-child td{border:none}.alert h4 small{margin-left:.5em}.list-page .alert{margin-top:1.5em;margin-right:.5em}.tabs-container .panel-default{border-top:none}.tabs-container .panel-danger{margin-top:2em}table.record-list{margin-top:1em}table.record-list th{background:#00000014}table.record-list tbody.loading td{background:#dcdcdc26;color:#777}table.record-list td:not(.actions){max-width:8vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.8em .5em}table.record-list td.lastmod{white-space:nowrap;width:120px}table.record-list td.status{white-space:nowrap;width:80px}table.record-list td.actions{min-width:150px;width:150px;padding:.5em 0;white-space:nowrap;text-align:center}table.record-list td.actions .btn-group{margin:0 .5em}table.record-list>tbody+tbody{border-top:none}.load-more>a{display:block;width:100%}table.record-list td.load-more{padding:0;line-height:2.5em}.load-more>a:hover,.load-more>a:active{background:#d9edf7;text-decoration:none}.card-body>.spinner{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.load-more .spinner{margin-top:.25em}.history-row-details{display:table-row}.table>tbody>tr.history-row-details>td{padding:0;margin:0}.history-row-details td pre{border:none;margin:0}.history-row-details .alert{margin:0;border-radius:0}.sort-link{float:right;margin-top:.1em;color:#444}.sort-link.active{color:#fff}.json-record>div{padding:1px 0 1px 4px}.json-record>div.added{background:#cbeecb;color:green}.json-record>div.removed{background:#f0c9c9;color:red}.json-record-simple-review{white-space:pre-wrap}.card-header>.icon,.list-group-item .icon,.nav-tabs li .icon{margin-right:.5em}.nav-tabs.nav-justified>li>a{color:#333}.collections-menu-entry{display:flex}.collections-menu-entry a:first-child{display:inline-block;width:95%;color:#555;text-decoration:none}.collections-menu-entry.active>a{color:#fff}.home-menu i,.home-menu .icon{float:right;margin:.15em -.5em 0 0}.bucket-menu-entry-edit{float:right;color:#555;text-decoration:none}.bucket-menu-entry-edit:hover{color:inherit}.collections-menu-entry-edit{position:absolute;margin-right:-.5em;color:#888}.collections-menu-entry-edit:hover{color:inherit}.CodeMirror{border:1px solid #ccc;height:auto;border-radius:.3em}.attachment-icon{width:16px}.attachment-action{margin:0;padding:0}.attachment-info .attachment-attributes{display:flex;align-content:stretch;align-items:end}.attachment-info table{margin-bottom:0;flex-grow:1;display:block}.attachment-info .table-condensed>tbody>tr>td{overflow:hidden;text-overflow:ellipsis}.attachment-img{display:flex;align-items:center;justify-content:center;max-width:150px;max-height:150px;text-align:center;background:#fff;border:1px solid #ddd;margin:10px}.attachment-img img{max-width:100%;max-height:100%}form button[type=submit].btn-primary{font-size:1.2em;padding:12px;box-shadow:inset 0 0 0 1px #fff}.record-form-buttons .delete{margin-top:12px}.permissions-form .array-item:not(:last-child) fieldset{border-bottom:1px solid #eee}.permissions-form .field-principal{float:left;width:60%;padding-right:1em}.permissions-form .field-permissions{float:left;width:30%;padding-left:1em}.permissions-form .field-anonymous,.permissions-form .field-authenticated{width:100%;float:left;clear:both}.permissions-form .field-anonymous{border-bottom:1px solid #eee}.permissions-form .field-anonymous p,.permissions-form .field-authenticated p{width:50%}.permissions-form .field-anonymous .checkboxes,.permissions-form .field-authenticated .checkboxes{float:right;width:50%;padding-left:1em;margin-top:-60px}.permissions-form .field-groups fieldset{clear:left}.permissions-form .field-groups .checkboxes{float:right;width:50%;padding-left:1em;margin-top:-60px}.permissions-form .field-groups fieldset>.field.field-array{clear:right}.permissions-form .field-principals .checkboxes{margin-top:-35px}.permissions-form .field-principal>label{display:none}.spinner{margin:30px auto 0;width:70px;text-align:center}.spinner>div{width:18px;height:18px;background-color:#337ab7;border-radius:100%;display:inline-block;-webkit-animation:sk-bouncedelay 1.4s infinite ease-in-out both;animation:sk-bouncedelay 1.4s infinite ease-in-out both}.spinner .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes sk-bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}.notifications>div{top:3em}i.fa{position:relative;top:1px;display:inline-block;font-style:normal;font-weight:400;line-height:1}i.fa:before{display:inline-block;content:"";background-repeat:no-repeat;background-size:24px 24px;width:24px;height:24px}.fa.fa-check:before{background-image:url(~bootstrap-icons/icons/check.svg)}.fa-exclamation-circle:before{background-image:url(~bootstrap-icons/icons/exclamation-circle-fill.svg)}.fa-info:before{background-image:url(~bootstrap-icons/icons/info-circle-fill.svg)}.fa-warning:before{background-image:url(~bootstrap-icons/icons/exclamation-triangle-fill.svg)}.rjsf{margin-bottom:1.25rem}.rjsf pre{padding:9.5px;margin:0 0 10px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.rjsf input[type=radio],.rjsf input[type=checkbox]{margin-right:10px}.rjsf .form-label{font-weight:700}.rjsf h5{font-size:18pt;margin:0 0 0 1pt}.rjsf hr{margin:1px 0 .5em;background-color:#ccc!important}.rjsf .row .align-items-center{align-items:flex-start!important;border-bottom:1px solid #eee}.rjsf .align-items-center button.btn{font-size:14pt}.rjsf .input-group-append button.dropdown-toggle{font-size:12pt}.formWrapper{position:relative}.formWrapper>.spinner{position:absolute;left:-1.25em;right:-1.25em;top:-1.5em;bottom:-2.5em;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.interactive>.spinner{position:absolute;left:-1.25em;right:-1.25em;top:-.5em;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.modal{background-color:#0000004d}.modal-dialog>.spinner{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#0003;z-index:1;display:flex;justify-content:center;align-items:center;width:auto;margin:0;border-radius:3px}.informative{filter:grayscale(.8)}.interactive{position:relative}.bs-wizard{margin-top:40px}.progress-steps .row.bs-wizard{border-bottom:0}.bs-wizard{border-bottom:solid 1px #e0e0e0;padding:0 0 10px}.bs-wizard>.bs-wizard-step{padding:0;position:relative}.bs-wizard>.bs-wizard-step .bs-wizard-stepnum{color:#595959;font-size:16px;margin-bottom:5px}.bs-wizard>.bs-wizard-step .bs-wizard-info{color:#999;font-size:14px}.bs-wizard>.bs-wizard-step>.bs-wizard-dot{position:absolute;width:30px;height:30px;display:block;background:#fbe8aa;top:45px;left:50%;margin-top:-15px;margin-left:-15px;border-radius:50%}.bs-wizard>.bs-wizard-step>.bs-wizard-dot:after{content:" ";width:14px;height:14px;background:#fbbd19;border-radius:50px;position:absolute;top:8px;left:8px}.bs-wizard>.bs-wizard-step>.progress{position:relative;border-radius:0;height:8px;box-shadow:none;margin:20px 0}.bs-wizard>.bs-wizard-step>.progress>.progress-bar{width:0px;box-shadow:none;background:#fbe8aa}.bs-wizard>.bs-wizard-step.complete>.progress>.progress-bar{width:100%}.bs-wizard>.bs-wizard-step.active>.progress>.progress-bar{width:50%}.bs-wizard>.bs-wizard-step:first-child.active>.progress>.progress-bar{width:0%}.bs-wizard>.bs-wizard-step:last-child.active>.progress>.progress-bar{width:100%}.bs-wizard>.bs-wizard-step.disabled>.bs-wizard-dot{background-color:#f5f5f5}.bs-wizard>.bs-wizard-step.disabled>.bs-wizard-dot:after{opacity:0}.bs-wizard>.bs-wizard-step:first-child>.progress{left:50%;width:50%}.bs-wizard>.bs-wizard-step:last-child>.progress{width:50%}.bs-wizard>.bs-wizard-step.disabled a.bs-wizard-dot{pointer-events:none}.bs-wizard>.bs-wizard-step .bs-wizard-info li{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:250px;text-align:left}.diffstats{font-weight:600}.diffstats .text-green{color:#55a532}.diffstats .text-red{color:#bd2c00;padding-left:4px;padding-right:4px}.signoff-comment{display:block;overflow:auto;max-height:4em;white-space:pre-line}.rollback-changes{position:absolute;top:152px;right:30px}.breadcrumbs{padding-top:.5em;font-size:1.2em;text-transform:lowercase}/*!
2
2
  * Bootstrap v4.6.2 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2022 The Bootstrap Authors
4
4
  * Copyright 2011-2022 Twitter, Inc.
@@ -1 +1 @@
1
- function fr(x){var pr=x.statementIndent,ur=x.jsonld,br=x.json||ur,k=x.typescript,U=x.wordCharacters||/[\w$\xa1-\uffff]/,wr=function(){function r(y){return{type:y,style:"keyword"}}var e=r("keyword a"),t=r("keyword b"),f=r("keyword c"),u=r("keyword d"),c=r("operator"),m={type:"atom",style:"atom"};return{if:r("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:u,break:u,continue:u,new:r("new"),delete:f,void:f,throw:f,debugger:r("debugger"),var:r("var"),const:r("var"),let:r("var"),function:r("function"),catch:r("catch"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:c,typeof:c,instanceof:c,true:m,false:m,null:m,undefined:m,NaN:m,Infinity:m,this:r("this"),class:r("class"),super:r("atom"),yield:f,export:r("export"),import:r("import"),extends:f,await:f}}(),hr=/[+\-*&%=<>!?|~^@]/,Or=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function qr(r){for(var e=!1,t,f=!1;(t=r.next())!=null;){if(!e){if(t=="/"&&!f)return;t=="["?f=!0:f&&t=="]"&&(f=!1)}e=!e&&t=="\\"}}var D,G;function b(r,e,t){return D=r,G=t,e}function S(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Nr(t),e.tokenize(r,e);if(t=="."&&r.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return b("number","number");if(t=="."&&r.match(".."))return b("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(t))return b(t);if(t=="="&&r.eat(">"))return b("=>","operator");if(t=="0"&&r.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return b("number","number");if(/\d/.test(t))return r.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),b("number","number");if(t=="/")return r.eat("*")?(e.tokenize=H,H(r,e)):r.eat("/")?(r.skipToEnd(),b("comment","comment")):ce(r,e,1)?(qr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),b("regexp","string.special")):(r.eat("="),b("operator","operator",r.current()));if(t=="`")return e.tokenize=L,L(r,e);if(t=="#"&&r.peek()=="!")return r.skipToEnd(),b("meta","meta");if(t=="#"&&r.eatWhile(U))return b("variable","property");if(t=="<"&&r.match("!--")||t=="-"&&r.match("->")&&!/\S/.test(r.string.slice(0,r.start)))return r.skipToEnd(),b("comment","comment");if(hr.test(t))return(t!=">"||!e.lexical||e.lexical.type!=">")&&(r.eat("=")?(t=="!"||t=="=")&&r.eat("="):/[<>*+\-|&?]/.test(t)&&(r.eat(t),t==">"&&r.eat(t))),t=="?"&&r.eat(".")?b("."):b("operator","operator",r.current());if(U.test(t)){r.eatWhile(U);var f=r.current();if(e.lastType!="."){if(wr.propertyIsEnumerable(f)){var u=wr[f];return b(u.type,u.style,f)}if(f=="async"&&r.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return b("async","keyword",f)}return b("variable","variable",f)}}function Nr(r){return function(e,t){var f=!1,u;if(ur&&e.peek()=="@"&&e.match(Or))return t.tokenize=S,b("jsonld-keyword","meta");for(;(u=e.next())!=null&&!(u==r&&!f);)f=!f&&u=="\\";return f||(t.tokenize=S),b("string","string")}}function H(r,e){for(var t=!1,f;f=r.next();){if(f=="/"&&t){e.tokenize=S;break}t=f=="*"}return b("comment","comment")}function L(r,e){for(var t=!1,f;(f=r.next())!=null;){if(!t&&(f=="`"||f=="$"&&r.eat("{"))){e.tokenize=S;break}t=!t&&f=="\\"}return b("quasi","string.special",r.current())}var Br="([{}])";function ar(r,e){e.fatArrowAt&&(e.fatArrowAt=null);var t=r.string.indexOf("=>",r.start);if(!(t<0)){if(k){var f=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(r.string.slice(r.start,t));f&&(t=f.index)}for(var u=0,c=!1,m=t-1;m>=0;--m){var y=r.string.charAt(m),v=Br.indexOf(y);if(v>=0&&v<3){if(!u){++m;break}if(--u==0){y=="("&&(c=!0);break}}else if(v>=3&&v<6)++u;else if(U.test(y))c=!0;else if(/["'\/`]/.test(y))for(;;--m){if(m==0)return;var K=r.string.charAt(m-1);if(K==y&&r.string.charAt(m-2)!="\\"){m--;break}}else if(c&&!u){++m;break}}c&&!u&&(e.fatArrowAt=m)}}var Fr={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function xr(r,e,t,f,u,c){this.indented=r,this.column=e,this.type=t,this.prev=u,this.info=c,f!=null&&(this.align=f)}function Jr(r,e){for(var t=r.localVars;t;t=t.next)if(t.name==e)return!0;for(var f=r.context;f;f=f.prev)for(var t=f.vars;t;t=t.next)if(t.name==e)return!0}function Mr(r,e,t,f,u){var c=r.cc;for(i.state=r,i.stream=u,i.marked=null,i.cc=c,i.style=e,r.lexical.hasOwnProperty("align")||(r.lexical.align=!0);;){var m=c.length?c.pop():br?p:w;if(m(t,f)){for(;c.length&&c[c.length-1].lex;)c.pop()();return i.marked?i.marked:t=="variable"&&Jr(r,f)?"variableName.local":e}}}var i={state:null,column:null,marked:null,cc:null};function o(){for(var r=arguments.length-1;r>=0;r--)i.cc.push(arguments[r])}function n(){return o.apply(null,arguments),!0}function or(r,e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}function q(r){var e=i.state;if(i.marked="def",e.context){if(e.lexical.info=="var"&&e.context&&e.context.block){var t=gr(r,e.context);if(t!=null){e.context=t;return}}else if(!or(r,e.localVars)){e.localVars=new Q(r,e.localVars);return}}x.globalVars&&!or(r,e.globalVars)&&(e.globalVars=new Q(r,e.globalVars))}function gr(r,e){if(e)if(e.block){var t=gr(r,e.prev);return t?t==e.prev?e:new P(t,e.vars,!0):null}else return or(r,e.vars)?e:new P(e.prev,new Q(r,e.vars),!1);else return null}function X(r){return r=="public"||r=="private"||r=="protected"||r=="abstract"||r=="readonly"}function P(r,e,t){this.prev=r,this.vars=e,this.block=t}function Q(r,e){this.name=r,this.next=e}var Dr=new Q("this",new Q("arguments",null));function E(){i.state.context=new P(i.state.context,i.state.localVars,!1),i.state.localVars=Dr}function Y(){i.state.context=new P(i.state.context,i.state.localVars,!0),i.state.localVars=null}E.lex=Y.lex=!0;function T(){i.state.localVars=i.state.context.vars,i.state.context=i.state.context.prev}T.lex=!0;function s(r,e){var t=function(){var f=i.state,u=f.indented;if(f.lexical.type=="stat")u=f.lexical.indented;else for(var c=f.lexical;c&&c.type==")"&&c.align;c=c.prev)u=c.indented;f.lexical=new xr(u,i.stream.column(),r,null,f.lexical,e)};return t.lex=!0,t}function a(){var r=i.state;r.lexical.prev&&(r.lexical.type==")"&&(r.indented=r.lexical.indented),r.lexical=r.lexical.prev)}a.lex=!0;function l(r){function e(t){return t==r?n():r==";"||t=="}"||t==")"||t=="]"?o():n(e)}return e}function w(r,e){return r=="var"?n(s("vardef",e),mr,l(";"),a):r=="keyword a"?n(s("form"),sr,w,a):r=="keyword b"?n(s("form"),w,a):r=="keyword d"?i.stream.match(/^\s*$/,!1)?n():n(s("stat"),N,l(";"),a):r=="debugger"?n(l(";")):r=="{"?n(s("}"),Y,rr,a,T):r==";"?n():r=="if"?(i.state.lexical.info=="else"&&i.state.cc[i.state.cc.length-1]==a&&i.state.cc.pop()(),n(s("form"),sr,w,a,jr)):r=="function"?n(_):r=="for"?n(s("form"),Y,zr,w,T,a):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form",r=="class"?r:e),Sr,a)):r=="variable"?k&&e=="declare"?(i.marked="keyword",n(w)):k&&(e=="module"||e=="enum"||e=="type")&&i.stream.match(/^\s*\w/,!1)?(i.marked="keyword",e=="enum"?n($r):e=="type"?n(_r,l("operator"),d,l(";")):n(s("form"),V,l("{"),s("}"),rr,a,a)):k&&e=="namespace"?(i.marked="keyword",n(s("form"),p,w,a)):k&&e=="abstract"?(i.marked="keyword",n(w)):n(s("stat"),Kr):r=="switch"?n(s("form"),sr,l("{"),s("}","switch"),Y,rr,a,a,T):r=="case"?n(p,l(":")):r=="default"?n(l(":")):r=="catch"?n(s("form"),E,Lr,w,a,T):r=="export"?n(s("stat"),fe,a):r=="import"?n(s("stat"),ue,a):r=="async"?n(w):e=="@"?n(p,w):o(s("stat"),p,l(";"),a)}function Lr(r){if(r=="(")return n(O,l(")"))}function p(r,e){return yr(r,e,!1)}function g(r,e){return yr(r,e,!0)}function sr(r){return r!="("?o():n(s(")"),N,l(")"),a)}function yr(r,e,t){if(i.state.fatArrowAt==i.stream.start){var f=t?Tr:vr;if(r=="(")return n(E,s(")"),h(O,")"),a,l("=>"),f,T);if(r=="variable")return o(E,V,l("=>"),f,T)}var u=t?B:I;return Fr.hasOwnProperty(r)?n(u):r=="function"?n(_,u):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form"),ie,a)):r=="keyword c"||r=="async"?n(t?g:p):r=="("?n(s(")"),N,l(")"),a,u):r=="operator"||r=="spread"?n(t?g:p):r=="["?n(s("]"),oe,a,u):r=="{"?R(C,"}",null,u):r=="quasi"?o(Z,u):r=="new"?n(Qr(t)):n()}function N(r){return r.match(/[;\}\)\],]/)?o():o(p)}function I(r,e){return r==","?n(N):B(r,e,!1)}function B(r,e,t){var f=t==!1?I:B,u=t==!1?p:g;if(r=="=>")return n(E,t?Tr:vr,T);if(r=="operator")return/\+\+|--/.test(e)||k&&e=="!"?n(f):k&&e=="<"&&i.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?n(s(">"),h(d,">"),a,f):e=="?"?n(p,l(":"),u):n(u);if(r=="quasi")return o(Z,f);if(r!=";"){if(r=="(")return R(g,")","call",f);if(r==".")return n(Ur,f);if(r=="[")return n(s("]"),N,l("]"),a,f);if(k&&e=="as")return i.marked="keyword",n(d,f);if(r=="regexp")return i.state.lastType=i.marked="operator",i.stream.backUp(i.stream.pos-i.stream.start-1),n(u)}}function Z(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(Z):n(N,Pr)}function Pr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(Z)}function vr(r){return ar(i.stream,i.state),o(r=="{"?w:p)}function Tr(r){return ar(i.stream,i.state),o(r=="{"?w:g)}function Qr(r){return function(e){return e=="."?n(r?Wr:Rr):e=="variable"&&k?n(Cr,r?B:I):o(r?g:p)}}function Rr(r,e){if(e=="target")return i.marked="keyword",n(I)}function Wr(r,e){if(e=="target")return i.marked="keyword",n(B)}function Kr(r){return r==":"?n(a,w):o(I,l(";"),a)}function Ur(r){if(r=="variable")return i.marked="property",n()}function C(r,e){if(r=="async")return i.marked="property",n(C);if(r=="variable"||i.style=="keyword"){if(i.marked="property",e=="get"||e=="set")return n(Gr);var t;return k&&i.state.fatArrowAt==i.stream.start&&(t=i.stream.match(/^\s*:\s*/,!1))&&(i.state.fatArrowAt=i.stream.pos+t[0].length),n($)}else{if(r=="number"||r=="string")return i.marked=ur?"property":i.style+" property",n($);if(r=="jsonld-keyword")return n($);if(k&&X(e))return i.marked="keyword",n(C);if(r=="[")return n(p,F,l("]"),$);if(r=="spread")return n(g,$);if(e=="*")return i.marked="keyword",n(C);if(r==":")return o($)}}function Gr(r){return r!="variable"?o($):(i.marked="property",n(_))}function $(r){if(r==":")return n(g);if(r=="(")return o(_)}function h(r,e,t){function f(u,c){if(t?t.indexOf(u)>-1:u==","){var m=i.state.lexical;return m.info=="call"&&(m.pos=(m.pos||0)+1),n(function(y,v){return y==e||v==e?o():o(r)},f)}return u==e||c==e?n():t&&t.indexOf(";")>-1?o(r):n(l(e))}return function(u,c){return u==e||c==e?n():o(r,f)}}function R(r,e,t){for(var f=3;f<arguments.length;f++)i.cc.push(arguments[f]);return n(s(e,t),h(r,e),a)}function rr(r){return r=="}"?n():o(w,rr)}function F(r,e){if(k){if(r==":")return n(d);if(e=="?")return n(F)}}function Hr(r,e){if(k&&(r==":"||e=="in"))return n(d)}function Vr(r){if(k&&r==":")return i.stream.match(/^\s*\w+\s+is\b/,!1)?n(p,Xr,d):n(d)}function Xr(r,e){if(e=="is")return i.marked="keyword",n()}function d(r,e){if(e=="keyof"||e=="typeof"||e=="infer"||e=="readonly")return i.marked="keyword",n(e=="typeof"?g:d);if(r=="variable"||e=="void")return i.marked="type",n(A);if(e=="|"||e=="&")return n(d);if(r=="string"||r=="number"||r=="atom")return n(A);if(r=="[")return n(s("]"),h(d,"]",","),a,A);if(r=="{")return n(s("}"),lr,a,A);if(r=="(")return n(h(dr,")"),Yr,A);if(r=="<")return n(h(d,">"),d);if(r=="quasi")return o(cr,A)}function Yr(r){if(r=="=>")return n(d)}function lr(r){return r.match(/[\}\)\]]/)?n():r==","||r==";"?n(lr):o(W,lr)}function W(r,e){if(r=="variable"||i.style=="keyword")return i.marked="property",n(W);if(e=="?"||r=="number"||r=="string")return n(W);if(r==":")return n(d);if(r=="[")return n(l("variable"),Hr,l("]"),W);if(r=="(")return o(M,W);if(!r.match(/[;\}\)\],]/))return n()}function cr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(cr):n(d,Zr)}function Zr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(cr)}function dr(r,e){return r=="variable"&&i.stream.match(/^\s*[?:]/,!1)||e=="?"?n(dr):r==":"?n(d):r=="spread"?n(dr):o(d)}function A(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A);if(e=="|"||r=="."||e=="&")return n(d);if(r=="[")return n(d,l("]"),A);if(e=="extends"||e=="implements")return i.marked="keyword",n(d);if(e=="?")return n(d,l(":"),d)}function Cr(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A)}function er(){return o(d,re)}function re(r,e){if(e=="=")return n(d)}function mr(r,e){return e=="enum"?(i.marked="keyword",n($r)):o(V,F,z,ne)}function V(r,e){if(k&&X(e))return i.marked="keyword",n(V);if(r=="variable")return q(e),n();if(r=="spread")return n(V);if(r=="[")return R(ee,"]");if(r=="{")return R(Ar,"}")}function Ar(r,e){return r=="variable"&&!i.stream.match(/^\s*:/,!1)?(q(e),n(z)):(r=="variable"&&(i.marked="property"),r=="spread"?n(V):r=="}"?o():r=="["?n(p,l("]"),l(":"),Ar):n(l(":"),V,z))}function ee(){return o(V,z)}function z(r,e){if(e=="=")return n(g)}function ne(r){if(r==",")return n(mr)}function jr(r,e){if(r=="keyword b"&&e=="else")return n(s("form","else"),w,a)}function zr(r,e){if(e=="await")return n(zr);if(r=="(")return n(s(")"),te,a)}function te(r){return r=="var"?n(mr,J):r=="variable"?n(J):o(J)}function J(r,e){return r==")"?n():r==";"?n(J):e=="in"||e=="of"?(i.marked="keyword",n(p,J)):o(p,J)}function _(r,e){if(e=="*")return i.marked="keyword",n(_);if(r=="variable")return q(e),n(_);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,w,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,_)}function M(r,e){if(e=="*")return i.marked="keyword",n(M);if(r=="variable")return q(e),n(M);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,M)}function _r(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(_r);if(e=="<")return n(s(">"),h(er,">"),a)}function O(r,e){return e=="@"&&n(p,O),r=="spread"?n(O):k&&X(e)?(i.marked="keyword",n(O)):k&&r=="this"?n(F,z):o(V,F,z)}function ie(r,e){return r=="variable"?Sr(r,e):nr(r,e)}function Sr(r,e){if(r=="variable")return q(e),n(nr)}function nr(r,e){if(e=="<")return n(s(">"),h(er,">"),a,nr);if(e=="extends"||e=="implements"||k&&r==",")return e=="implements"&&(i.marked="keyword"),n(k?d:p,nr);if(r=="{")return n(s("}"),j,a)}function j(r,e){if(r=="async"||r=="variable"&&(e=="static"||e=="get"||e=="set"||k&&X(e))&&i.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return i.marked="keyword",n(j);if(r=="variable"||i.style=="keyword")return i.marked="property",n(tr,j);if(r=="number"||r=="string")return n(tr,j);if(r=="[")return n(p,F,l("]"),tr,j);if(e=="*")return i.marked="keyword",n(j);if(k&&r=="(")return o(M,j);if(r==";"||r==",")return n(j);if(r=="}")return n();if(e=="@")return n(p,j)}function tr(r,e){if(e=="!"||e=="?")return n(tr);if(r==":")return n(d,z);if(e=="=")return n(g);var t=i.state.lexical.prev,f=t&&t.info=="interface";return o(f?M:_)}function fe(r,e){return e=="*"?(i.marked="keyword",n(kr,l(";"))):e=="default"?(i.marked="keyword",n(p,l(";"))):r=="{"?n(h(Er,"}"),kr,l(";")):o(w)}function Er(r,e){if(e=="as")return i.marked="keyword",n(l("variable"));if(r=="variable")return o(g,Er)}function ue(r){return r=="string"?n():r=="("?o(p):r=="."?o(I):o(ir,Ir,kr)}function ir(r,e){return r=="{"?R(ir,"}"):(r=="variable"&&q(e),e=="*"&&(i.marked="keyword"),n(ae))}function Ir(r){if(r==",")return n(ir,Ir)}function ae(r,e){if(e=="as")return i.marked="keyword",n(ir)}function kr(r,e){if(e=="from")return i.marked="keyword",n(p)}function oe(r){return r=="]"?n():o(h(g,"]"))}function $r(){return o(s("form"),V,l("{"),s("}"),h(se,"}"),a,a)}function se(){return o(V,z)}function le(r,e){return r.lastType=="operator"||r.lastType==","||hr.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ce(r,e,t){return e.tokenize==S&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||e.lastType=="quasi"&&/\{\s*$/.test(r.string.slice(0,r.pos-(t||0)))}return{name:x.name,startState:function(r){var e={tokenize:S,lastType:"sof",cc:[],lexical:new xr(-r,0,"block",!1),localVars:x.localVars,context:x.localVars&&new P(null,null,!1),indented:0};return x.globalVars&&typeof x.globalVars=="object"&&(e.globalVars=x.globalVars),e},token:function(r,e){if(r.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=r.indentation(),ar(r,e)),e.tokenize!=H&&r.eatSpace())return null;var t=e.tokenize(r,e);return D=="comment"?t:(e.lastType=D=="operator"&&(G=="++"||G=="--")?"incdec":D,Mr(e,t,D,G,r))},indent:function(r,e,t){if(r.tokenize==H||r.tokenize==L)return null;if(r.tokenize!=S)return 0;var f=e&&e.charAt(0),u=r.lexical,c;if(!/^\s*else\b/.test(e))for(var m=r.cc.length-1;m>=0;--m){var y=r.cc[m];if(y==a)u=u.prev;else if(y!=jr&&y!=T)break}for(;(u.type=="stat"||u.type=="form")&&(f=="}"||(c=r.cc[r.cc.length-1])&&(c==I||c==B)&&!/^[,\.=+\-*:?[\(]/.test(e));)u=u.prev;pr&&u.type==")"&&u.prev.type=="stat"&&(u=u.prev);var v=u.type,K=f==v;return v=="vardef"?u.indented+(r.lastType=="operator"||r.lastType==","?u.info.length+1:0):v=="form"&&f=="{"?u.indented:v=="form"?u.indented+t.unit:v=="stat"?u.indented+(le(r,e)?pr||t.unit:0):u.info=="switch"&&!K&&x.doubleIndentSwitch!=!1?u.indented+(/^(?:case|default)\b/.test(e)?t.unit:2*t.unit):u.align?u.column+(K?0:1):u.indented+(K?0:t.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:br?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const de=fr({name:"javascript"}),me=fr({name:"json",json:!0}),ke=fr({name:"json",jsonld:!0}),pe=fr({name:"typescript",typescript:!0});export{de as javascript,me as json,ke as jsonld,pe as typescript};
1
+ function fr(x){var pr=x.statementIndent,ur=x.jsonld,br=x.json||ur,k=x.typescript,U=x.wordCharacters||/[\w$\xa1-\uffff]/,wr=function(){function r(y){return{type:y,style:"keyword"}}var e=r("keyword a"),t=r("keyword b"),f=r("keyword c"),u=r("keyword d"),c=r("operator"),m={type:"atom",style:"atom"};return{if:r("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:u,break:u,continue:u,new:r("new"),delete:f,void:f,throw:f,debugger:r("debugger"),var:r("var"),const:r("var"),let:r("var"),function:r("function"),catch:r("catch"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:c,typeof:c,instanceof:c,true:m,false:m,null:m,undefined:m,NaN:m,Infinity:m,this:r("this"),class:r("class"),super:r("atom"),yield:f,export:r("export"),import:r("import"),extends:f,await:f}}(),hr=/[+\-*&%=<>!?|~^@]/,Or=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function qr(r){for(var e=!1,t,f=!1;(t=r.next())!=null;){if(!e){if(t=="/"&&!f)return;t=="["?f=!0:f&&t=="]"&&(f=!1)}e=!e&&t=="\\"}}var D,G;function b(r,e,t){return D=r,G=t,e}function S(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Nr(t),e.tokenize(r,e);if(t=="."&&r.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return b("number","number");if(t=="."&&r.match(".."))return b("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(t))return b(t);if(t=="="&&r.eat(">"))return b("=>","operator");if(t=="0"&&r.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return b("number","number");if(/\d/.test(t))return r.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),b("number","number");if(t=="/")return r.eat("*")?(e.tokenize=H,H(r,e)):r.eat("/")?(r.skipToEnd(),b("comment","comment")):ce(r,e,1)?(qr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),b("regexp","string.special")):(r.eat("="),b("operator","operator",r.current()));if(t=="`")return e.tokenize=L,L(r,e);if(t=="#"&&r.peek()=="!")return r.skipToEnd(),b("meta","meta");if(t=="#"&&r.eatWhile(U))return b("variable","property");if(t=="<"&&r.match("!--")||t=="-"&&r.match("->")&&!/\S/.test(r.string.slice(0,r.start)))return r.skipToEnd(),b("comment","comment");if(hr.test(t))return(t!=">"||!e.lexical||e.lexical.type!=">")&&(r.eat("=")?(t=="!"||t=="=")&&r.eat("="):/[<>*+\-|&?]/.test(t)&&(r.eat(t),t==">"&&r.eat(t))),t=="?"&&r.eat(".")?b("."):b("operator","operator",r.current());if(U.test(t)){r.eatWhile(U);var f=r.current();if(e.lastType!="."){if(wr.propertyIsEnumerable(f)){var u=wr[f];return b(u.type,u.style,f)}if(f=="async"&&r.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return b("async","keyword",f)}return b("variable","variable",f)}}function Nr(r){return function(e,t){var f=!1,u;if(ur&&e.peek()=="@"&&e.match(Or))return t.tokenize=S,b("jsonld-keyword","meta");for(;(u=e.next())!=null&&!(u==r&&!f);)f=!f&&u=="\\";return f||(t.tokenize=S),b("string","string")}}function H(r,e){for(var t=!1,f;f=r.next();){if(f=="/"&&t){e.tokenize=S;break}t=f=="*"}return b("comment","comment")}function L(r,e){for(var t=!1,f;(f=r.next())!=null;){if(!t&&(f=="`"||f=="$"&&r.eat("{"))){e.tokenize=S;break}t=!t&&f=="\\"}return b("quasi","string.special",r.current())}var Br="([{}])";function ar(r,e){e.fatArrowAt&&(e.fatArrowAt=null);var t=r.string.indexOf("=>",r.start);if(!(t<0)){if(k){var f=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(r.string.slice(r.start,t));f&&(t=f.index)}for(var u=0,c=!1,m=t-1;m>=0;--m){var y=r.string.charAt(m),v=Br.indexOf(y);if(v>=0&&v<3){if(!u){++m;break}if(--u==0){y=="("&&(c=!0);break}}else if(v>=3&&v<6)++u;else if(U.test(y))c=!0;else if(/["'\/`]/.test(y))for(;;--m){if(m==0)return;var K=r.string.charAt(m-1);if(K==y&&r.string.charAt(m-2)!="\\"){m--;break}}else if(c&&!u){++m;break}}c&&!u&&(e.fatArrowAt=m)}}var Fr={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function xr(r,e,t,f,u,c){this.indented=r,this.column=e,this.type=t,this.prev=u,this.info=c,f!=null&&(this.align=f)}function Jr(r,e){for(var t=r.localVars;t;t=t.next)if(t.name==e)return!0;for(var f=r.context;f;f=f.prev)for(var t=f.vars;t;t=t.next)if(t.name==e)return!0}function Mr(r,e,t,f,u){var c=r.cc;for(i.state=r,i.stream=u,i.marked=null,i.cc=c,i.style=e,r.lexical.hasOwnProperty("align")||(r.lexical.align=!0);;){var m=c.length?c.pop():br?p:w;if(m(t,f)){for(;c.length&&c[c.length-1].lex;)c.pop()();return i.marked?i.marked:t=="variable"&&Jr(r,f)?"variableName.local":e}}}var i={state:null,column:null,marked:null,cc:null};function o(){for(var r=arguments.length-1;r>=0;r--)i.cc.push(arguments[r])}function n(){return o.apply(null,arguments),!0}function or(r,e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}function q(r){var e=i.state;if(i.marked="def",e.context){if(e.lexical.info=="var"&&e.context&&e.context.block){var t=gr(r,e.context);if(t!=null){e.context=t;return}}else if(!or(r,e.localVars)){e.localVars=new Q(r,e.localVars);return}}x.globalVars&&!or(r,e.globalVars)&&(e.globalVars=new Q(r,e.globalVars))}function gr(r,e){if(e)if(e.block){var t=gr(r,e.prev);return t?t==e.prev?e:new P(t,e.vars,!0):null}else return or(r,e.vars)?e:new P(e.prev,new Q(r,e.vars),!1);else return null}function X(r){return r=="public"||r=="private"||r=="protected"||r=="abstract"||r=="readonly"}function P(r,e,t){this.prev=r,this.vars=e,this.block=t}function Q(r,e){this.name=r,this.next=e}var Dr=new Q("this",new Q("arguments",null));function E(){i.state.context=new P(i.state.context,i.state.localVars,!1),i.state.localVars=Dr}function Y(){i.state.context=new P(i.state.context,i.state.localVars,!0),i.state.localVars=null}E.lex=Y.lex=!0;function T(){i.state.localVars=i.state.context.vars,i.state.context=i.state.context.prev}T.lex=!0;function s(r,e){var t=function(){var f=i.state,u=f.indented;if(f.lexical.type=="stat")u=f.lexical.indented;else for(var c=f.lexical;c&&c.type==")"&&c.align;c=c.prev)u=c.indented;f.lexical=new xr(u,i.stream.column(),r,null,f.lexical,e)};return t.lex=!0,t}function a(){var r=i.state;r.lexical.prev&&(r.lexical.type==")"&&(r.indented=r.lexical.indented),r.lexical=r.lexical.prev)}a.lex=!0;function l(r){function e(t){return t==r?n():r==";"||t=="}"||t==")"||t=="]"?o():n(e)}return e}function w(r,e){return r=="var"?n(s("vardef",e),mr,l(";"),a):r=="keyword a"?n(s("form"),sr,w,a):r=="keyword b"?n(s("form"),w,a):r=="keyword d"?i.stream.match(/^\s*$/,!1)?n():n(s("stat"),N,l(";"),a):r=="debugger"?n(l(";")):r=="{"?n(s("}"),Y,rr,a,T):r==";"?n():r=="if"?(i.state.lexical.info=="else"&&i.state.cc[i.state.cc.length-1]==a&&i.state.cc.pop()(),n(s("form"),sr,w,a,jr)):r=="function"?n(_):r=="for"?n(s("form"),Y,zr,w,T,a):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form",r=="class"?r:e),Sr,a)):r=="variable"?k&&e=="declare"?(i.marked="keyword",n(w)):k&&(e=="module"||e=="enum"||e=="type")&&i.stream.match(/^\s*\w/,!1)?(i.marked="keyword",e=="enum"?n($r):e=="type"?n(_r,l("operator"),d,l(";")):n(s("form"),V,l("{"),s("}"),rr,a,a)):k&&e=="namespace"?(i.marked="keyword",n(s("form"),p,w,a)):k&&e=="abstract"?(i.marked="keyword",n(w)):n(s("stat"),Kr):r=="switch"?n(s("form"),sr,l("{"),s("}","switch"),Y,rr,a,a,T):r=="case"?n(p,l(":")):r=="default"?n(l(":")):r=="catch"?n(s("form"),E,Lr,w,a,T):r=="export"?n(s("stat"),fe,a):r=="import"?n(s("stat"),ue,a):r=="async"?n(w):e=="@"?n(p,w):o(s("stat"),p,l(";"),a)}function Lr(r){if(r=="(")return n(O,l(")"))}function p(r,e){return yr(r,e,!1)}function g(r,e){return yr(r,e,!0)}function sr(r){return r!="("?o():n(s(")"),N,l(")"),a)}function yr(r,e,t){if(i.state.fatArrowAt==i.stream.start){var f=t?Tr:vr;if(r=="(")return n(E,s(")"),h(O,")"),a,l("=>"),f,T);if(r=="variable")return o(E,V,l("=>"),f,T)}var u=t?B:I;return Fr.hasOwnProperty(r)?n(u):r=="function"?n(_,u):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form"),ie,a)):r=="keyword c"||r=="async"?n(t?g:p):r=="("?n(s(")"),N,l(")"),a,u):r=="operator"||r=="spread"?n(t?g:p):r=="["?n(s("]"),oe,a,u):r=="{"?R(C,"}",null,u):r=="quasi"?o(Z,u):r=="new"?n(Qr(t)):n()}function N(r){return r.match(/[;\}\)\],]/)?o():o(p)}function I(r,e){return r==","?n(N):B(r,e,!1)}function B(r,e,t){var f=t==!1?I:B,u=t==!1?p:g;if(r=="=>")return n(E,t?Tr:vr,T);if(r=="operator")return/\+\+|--/.test(e)||k&&e=="!"?n(f):k&&e=="<"&&i.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?n(s(">"),h(d,">"),a,f):e=="?"?n(p,l(":"),u):n(u);if(r=="quasi")return o(Z,f);if(r!=";"){if(r=="(")return R(g,")","call",f);if(r==".")return n(Ur,f);if(r=="[")return n(s("]"),N,l("]"),a,f);if(k&&e=="as")return i.marked="keyword",n(d,f);if(r=="regexp")return i.state.lastType=i.marked="operator",i.stream.backUp(i.stream.pos-i.stream.start-1),n(u)}}function Z(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(Z):n(N,Pr)}function Pr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(Z)}function vr(r){return ar(i.stream,i.state),o(r=="{"?w:p)}function Tr(r){return ar(i.stream,i.state),o(r=="{"?w:g)}function Qr(r){return function(e){return e=="."?n(r?Wr:Rr):e=="variable"&&k?n(Cr,r?B:I):o(r?g:p)}}function Rr(r,e){if(e=="target")return i.marked="keyword",n(I)}function Wr(r,e){if(e=="target")return i.marked="keyword",n(B)}function Kr(r){return r==":"?n(a,w):o(I,l(";"),a)}function Ur(r){if(r=="variable")return i.marked="property",n()}function C(r,e){if(r=="async")return i.marked="property",n(C);if(r=="variable"||i.style=="keyword"){if(i.marked="property",e=="get"||e=="set")return n(Gr);var t;return k&&i.state.fatArrowAt==i.stream.start&&(t=i.stream.match(/^\s*:\s*/,!1))&&(i.state.fatArrowAt=i.stream.pos+t[0].length),n($)}else{if(r=="number"||r=="string")return i.marked=ur?"property":i.style+" property",n($);if(r=="jsonld-keyword")return n($);if(k&&X(e))return i.marked="keyword",n(C);if(r=="[")return n(p,F,l("]"),$);if(r=="spread")return n(g,$);if(e=="*")return i.marked="keyword",n(C);if(r==":")return o($)}}function Gr(r){return r!="variable"?o($):(i.marked="property",n(_))}function $(r){if(r==":")return n(g);if(r=="(")return o(_)}function h(r,e,t){function f(u,c){if(t?t.indexOf(u)>-1:u==","){var m=i.state.lexical;return m.info=="call"&&(m.pos=(m.pos||0)+1),n(function(y,v){return y==e||v==e?o():o(r)},f)}return u==e||c==e?n():t&&t.indexOf(";")>-1?o(r):n(l(e))}return function(u,c){return u==e||c==e?n():o(r,f)}}function R(r,e,t){for(var f=3;f<arguments.length;f++)i.cc.push(arguments[f]);return n(s(e,t),h(r,e),a)}function rr(r){return r=="}"?n():o(w,rr)}function F(r,e){if(k){if(r==":")return n(d);if(e=="?")return n(F)}}function Hr(r,e){if(k&&(r==":"||e=="in"))return n(d)}function Vr(r){if(k&&r==":")return i.stream.match(/^\s*\w+\s+is\b/,!1)?n(p,Xr,d):n(d)}function Xr(r,e){if(e=="is")return i.marked="keyword",n()}function d(r,e){if(e=="keyof"||e=="typeof"||e=="infer"||e=="readonly")return i.marked="keyword",n(e=="typeof"?g:d);if(r=="variable"||e=="void")return i.marked="type",n(A);if(e=="|"||e=="&")return n(d);if(r=="string"||r=="number"||r=="atom")return n(A);if(r=="[")return n(s("]"),h(d,"]",","),a,A);if(r=="{")return n(s("}"),lr,a,A);if(r=="(")return n(h(dr,")"),Yr,A);if(r=="<")return n(h(d,">"),d);if(r=="quasi")return o(cr,A)}function Yr(r){if(r=="=>")return n(d)}function lr(r){return r.match(/[\}\)\]]/)?n():r==","||r==";"?n(lr):o(W,lr)}function W(r,e){if(r=="variable"||i.style=="keyword")return i.marked="property",n(W);if(e=="?"||r=="number"||r=="string")return n(W);if(r==":")return n(d);if(r=="[")return n(l("variable"),Hr,l("]"),W);if(r=="(")return o(M,W);if(!r.match(/[;\}\)\],]/))return n()}function cr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(cr):n(d,Zr)}function Zr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(cr)}function dr(r,e){return r=="variable"&&i.stream.match(/^\s*[?:]/,!1)||e=="?"?n(dr):r==":"?n(d):r=="spread"?n(dr):o(d)}function A(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A);if(e=="|"||r=="."||e=="&")return n(d);if(r=="[")return n(d,l("]"),A);if(e=="extends"||e=="implements")return i.marked="keyword",n(d);if(e=="?")return n(d,l(":"),d)}function Cr(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A)}function er(){return o(d,re)}function re(r,e){if(e=="=")return n(d)}function mr(r,e){return e=="enum"?(i.marked="keyword",n($r)):o(V,F,z,ne)}function V(r,e){if(k&&X(e))return i.marked="keyword",n(V);if(r=="variable")return q(e),n();if(r=="spread")return n(V);if(r=="[")return R(ee,"]");if(r=="{")return R(Ar,"}")}function Ar(r,e){return r=="variable"&&!i.stream.match(/^\s*:/,!1)?(q(e),n(z)):(r=="variable"&&(i.marked="property"),r=="spread"?n(V):r=="}"?o():r=="["?n(p,l("]"),l(":"),Ar):n(l(":"),V,z))}function ee(){return o(V,z)}function z(r,e){if(e=="=")return n(g)}function ne(r){if(r==",")return n(mr)}function jr(r,e){if(r=="keyword b"&&e=="else")return n(s("form","else"),w,a)}function zr(r,e){if(e=="await")return n(zr);if(r=="(")return n(s(")"),te,a)}function te(r){return r=="var"?n(mr,J):r=="variable"?n(J):o(J)}function J(r,e){return r==")"?n():r==";"?n(J):e=="in"||e=="of"?(i.marked="keyword",n(p,J)):o(p,J)}function _(r,e){if(e=="*")return i.marked="keyword",n(_);if(r=="variable")return q(e),n(_);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,w,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,_)}function M(r,e){if(e=="*")return i.marked="keyword",n(M);if(r=="variable")return q(e),n(M);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,M)}function _r(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(_r);if(e=="<")return n(s(">"),h(er,">"),a)}function O(r,e){return e=="@"&&n(p,O),r=="spread"?n(O):k&&X(e)?(i.marked="keyword",n(O)):k&&r=="this"?n(F,z):o(V,F,z)}function ie(r,e){return r=="variable"?Sr(r,e):nr(r,e)}function Sr(r,e){if(r=="variable")return q(e),n(nr)}function nr(r,e){if(e=="<")return n(s(">"),h(er,">"),a,nr);if(e=="extends"||e=="implements"||k&&r==",")return e=="implements"&&(i.marked="keyword"),n(k?d:p,nr);if(r=="{")return n(s("}"),j,a)}function j(r,e){if(r=="async"||r=="variable"&&(e=="static"||e=="get"||e=="set"||k&&X(e))&&i.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return i.marked="keyword",n(j);if(r=="variable"||i.style=="keyword")return i.marked="property",n(tr,j);if(r=="number"||r=="string")return n(tr,j);if(r=="[")return n(p,F,l("]"),tr,j);if(e=="*")return i.marked="keyword",n(j);if(k&&r=="(")return o(M,j);if(r==";"||r==",")return n(j);if(r=="}")return n();if(e=="@")return n(p,j)}function tr(r,e){if(e=="!"||e=="?")return n(tr);if(r==":")return n(d,z);if(e=="=")return n(g);var t=i.state.lexical.prev,f=t&&t.info=="interface";return o(f?M:_)}function fe(r,e){return e=="*"?(i.marked="keyword",n(kr,l(";"))):e=="default"?(i.marked="keyword",n(p,l(";"))):r=="{"?n(h(Er,"}"),kr,l(";")):o(w)}function Er(r,e){if(e=="as")return i.marked="keyword",n(l("variable"));if(r=="variable")return o(g,Er)}function ue(r){return r=="string"?n():r=="("?o(p):r=="."?o(I):o(ir,Ir,kr)}function ir(r,e){return r=="{"?R(ir,"}"):(r=="variable"&&q(e),e=="*"&&(i.marked="keyword"),n(ae))}function Ir(r){if(r==",")return n(ir,Ir)}function ae(r,e){if(e=="as")return i.marked="keyword",n(ir)}function kr(r,e){if(e=="from")return i.marked="keyword",n(p)}function oe(r){return r=="]"?n():o(h(g,"]"))}function $r(){return o(s("form"),V,l("{"),s("}"),h(se,"}"),a,a)}function se(){return o(V,z)}function le(r,e){return r.lastType=="operator"||r.lastType==","||hr.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ce(r,e,t){return e.tokenize==S&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||e.lastType=="quasi"&&/\{\s*$/.test(r.string.slice(0,r.pos-t))}return{name:x.name,startState:function(r){var e={tokenize:S,lastType:"sof",cc:[],lexical:new xr(-r,0,"block",!1),localVars:x.localVars,context:x.localVars&&new P(null,null,!1),indented:0};return x.globalVars&&typeof x.globalVars=="object"&&(e.globalVars=x.globalVars),e},token:function(r,e){if(r.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=r.indentation(),ar(r,e)),e.tokenize!=H&&r.eatSpace())return null;var t=e.tokenize(r,e);return D=="comment"?t:(e.lastType=D=="operator"&&(G=="++"||G=="--")?"incdec":D,Mr(e,t,D,G,r))},indent:function(r,e,t){if(r.tokenize==H||r.tokenize==L)return null;if(r.tokenize!=S)return 0;var f=e&&e.charAt(0),u=r.lexical,c;if(!/^\s*else\b/.test(e))for(var m=r.cc.length-1;m>=0;--m){var y=r.cc[m];if(y==a)u=u.prev;else if(y!=jr&&y!=T)break}for(;(u.type=="stat"||u.type=="form")&&(f=="}"||(c=r.cc[r.cc.length-1])&&(c==I||c==B)&&!/^[,\.=+\-*:?[\(]/.test(e));)u=u.prev;pr&&u.type==")"&&u.prev.type=="stat"&&(u=u.prev);var v=u.type,K=f==v;return v=="vardef"?u.indented+(r.lastType=="operator"||r.lastType==","?u.info.length+1:0):v=="form"&&f=="{"?u.indented:v=="form"?u.indented+t.unit:v=="stat"?u.indented+(le(r,e)?pr||t.unit:0):u.info=="switch"&&!K&&x.doubleIndentSwitch!=!1?u.indented+(/^(?:case|default)\b/.test(e)?t.unit:2*t.unit):u.align?u.column+(K?0:1):u.indented+(K?0:t.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:br?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}const de=fr({name:"javascript"}),me=fr({name:"json",json:!0}),ke=fr({name:"json",jsonld:!0}),pe=fr({name:"typescript",typescript:!0});export{de as javascript,me as json,ke as jsonld,pe as typescript};
@@ -6,8 +6,8 @@
6
6
  <title>Kinto Administration</title>
7
7
  <meta name="viewport" content="width=device-width,initial-scale=1">
8
8
  <link rel="icon" type="image/x-icon" href="../images/favicon.png">
9
- <script type="module" crossorigin src="/v1/admin/assets/index-iVTdxamX.js"></script>
10
- <link rel="stylesheet" crossorigin href="/v1/admin/assets/index-vylaZGUr.css">
9
+ <script type="module" crossorigin src="/v1/admin/assets/index-BKIg2XW8.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/v1/admin/assets/index-D8oiN37x.css">
11
11
  </head>
12
12
 
13
13
  <body>
@@ -1,4 +1,5 @@
1
1
  from kinto.authorization import PERMISSIONS_INHERITANCE_TREE
2
+ from kinto.core import metrics
2
3
  from kinto.core.events import ResourceChanged
3
4
 
4
5
  from .listener import on_resource_changed
@@ -14,15 +15,13 @@ def includeme(config):
14
15
  # Activate end-points.
15
16
  config.scan("kinto.plugins.history.views")
16
17
 
17
- # If StatsD is enabled, monitor execution time of listener.
18
- listener = on_resource_changed
19
- if config.registry.statsd:
20
- key = "plugins.history"
21
- listener = config.registry.statsd.timer(key)(on_resource_changed)
18
+ wrapped_listener = metrics.listener_with_timer(config, "plugins.history", on_resource_changed)
22
19
 
23
20
  # Listen to every resources (except history)
24
21
  config.add_subscriber(
25
- listener, ResourceChanged, for_resources=("bucket", "group", "collection", "record")
22
+ wrapped_listener,
23
+ ResourceChanged,
24
+ for_resources=("bucket", "group", "collection", "record"),
26
25
  )
27
26
 
28
27
  # Register the permission inheritance for history entries.
@@ -0,0 +1,186 @@
1
+ import warnings
2
+ from time import perf_counter as time_now
3
+
4
+ from pyramid.exceptions import ConfigurationError
5
+ from pyramid.response import Response
6
+ from zope.interface import implementer
7
+
8
+ from kinto.core import metrics
9
+ from kinto.core.utils import safe_wraps
10
+
11
+
12
+ try:
13
+ import prometheus_client as prometheus_module
14
+ except ImportError: # pragma: no cover
15
+ prometheus_module = None
16
+
17
+
18
+ _METRICS = {}
19
+ _REGISTRY = None
20
+
21
+
22
+ def get_registry():
23
+ global _REGISTRY
24
+
25
+ if _REGISTRY is None:
26
+ _REGISTRY = prometheus_module.CollectorRegistry()
27
+ return _REGISTRY
28
+
29
+
30
+ def _fix_metric_name(s):
31
+ return s.replace("-", "_").replace(".", "_")
32
+
33
+
34
+ class Timer:
35
+ def __init__(self, summary):
36
+ self.summary = summary
37
+ self._start_time = None
38
+
39
+ def __call__(self, f):
40
+ @safe_wraps(f)
41
+ def _wrapped(*args, **kwargs):
42
+ start_time = time_now()
43
+ try:
44
+ return f(*args, **kwargs)
45
+ finally:
46
+ dt_ms = 1000.0 * (time_now() - start_time)
47
+ self.summary.observe(dt_ms)
48
+
49
+ return _wrapped
50
+
51
+ def __enter__(self):
52
+ return self.start()
53
+
54
+ def __exit__(self, typ, value, tb):
55
+ self.stop()
56
+
57
+ def start(self):
58
+ self._start_time = time_now()
59
+ return self
60
+
61
+ def stop(self):
62
+ if self._start_time is None: # pragma: nocover
63
+ raise RuntimeError("Timer has not started.")
64
+ dt_ms = 1000.0 * (time_now() - self._start_time)
65
+ self.summary.observe(dt_ms)
66
+ return self
67
+
68
+
69
+ @implementer(metrics.IMetricsService)
70
+ class PrometheusService:
71
+ def timer(self, key):
72
+ global _METRICS
73
+ if key not in _METRICS:
74
+ _METRICS[key] = prometheus_module.Summary(
75
+ _fix_metric_name(key), f"Summary of {key}", registry=get_registry()
76
+ )
77
+
78
+ if not isinstance(_METRICS[key], prometheus_module.Summary):
79
+ raise RuntimeError(
80
+ f"Metric {key} already exists with different type ({_METRICS[key]})"
81
+ )
82
+
83
+ return Timer(_METRICS[key])
84
+
85
+ def observe(self, key, value, labels=[]):
86
+ global _METRICS
87
+
88
+ if key not in _METRICS:
89
+ _METRICS[key] = prometheus_module.Summary(
90
+ _fix_metric_name(key),
91
+ f"Summary of {key}",
92
+ labelnames=[label_name for label_name, _ in labels],
93
+ registry=get_registry(),
94
+ )
95
+
96
+ if not isinstance(_METRICS[key], prometheus_module.Summary):
97
+ raise RuntimeError(
98
+ f"Metric {key} already exists with different type ({_METRICS[key]})"
99
+ )
100
+
101
+ m = _METRICS[key]
102
+ if labels:
103
+ m = m.labels(*(label_value for _, label_value in labels))
104
+
105
+ m.observe(value)
106
+
107
+ def count(self, key, count=1, unique=None):
108
+ global _METRICS
109
+
110
+ labels = []
111
+
112
+ if unique:
113
+ if isinstance(unique, str):
114
+ warnings.warn(
115
+ "`unique` parameter should be of type ``list[tuple[str, str]]``",
116
+ DeprecationWarning,
117
+ )
118
+ # Turn `unique` into a group and a value:
119
+ # "bob" -> "group.bob"
120
+ # "method.basicauth.mat" -> [("method_basicauth", "mat")]`
121
+ if "." not in unique:
122
+ unique = f"group.{unique}"
123
+ label_name, label_value = unique.rsplit(".", 1)
124
+ unique = [(label_name, label_value)]
125
+
126
+ labels = [
127
+ (_fix_metric_name(label_name), label_value) for label_name, label_value in unique
128
+ ]
129
+
130
+ if key not in _METRICS:
131
+ _METRICS[key] = prometheus_module.Counter(
132
+ _fix_metric_name(key),
133
+ f"Counter of {key}",
134
+ labelnames=[label_name for label_name, _ in labels],
135
+ registry=get_registry(),
136
+ )
137
+
138
+ if not isinstance(_METRICS[key], prometheus_module.Counter):
139
+ raise RuntimeError(
140
+ f"Metric {key} already exists with different type ({_METRICS[key]})"
141
+ )
142
+
143
+ m = _METRICS[key]
144
+ if labels:
145
+ m = m.labels(*(label_value for _, label_value in labels))
146
+
147
+ m.inc(count)
148
+
149
+
150
+ def metrics_view(request):
151
+ registry = get_registry()
152
+ data = prometheus_module.generate_latest(registry)
153
+ resp = Response(body=data)
154
+ resp.headers["Content-Type"] = prometheus_module.CONTENT_TYPE_LATEST
155
+ resp.headers["Content-Length"] = str(len(data))
156
+ return resp
157
+
158
+
159
+ def includeme(config):
160
+ if prometheus_module is None:
161
+ error_msg = (
162
+ "Please install Kinto with monitoring dependencies (e.g. prometheus-client package)"
163
+ )
164
+ raise ConfigurationError(error_msg)
165
+
166
+ config.add_api_capability(
167
+ "prometheus",
168
+ description="Prometheus metrics.",
169
+ url="https://github.com/Kinto/kinto/",
170
+ )
171
+
172
+ config.add_route("prometheus_metrics", "/__metrics__")
173
+ config.add_view(metrics_view, route_name="prometheus_metrics")
174
+
175
+ # Reinitialize the registry on initialization.
176
+ # This is mainly useful in tests, where the plugin is included
177
+ # several times with different settings.
178
+ registry = get_registry()
179
+ for collector in _METRICS.values():
180
+ try:
181
+ registry.unregister(collector)
182
+ except KeyError: # pragma: no cover
183
+ pass
184
+ _METRICS.clear()
185
+
186
+ config.registry.registerUtility(PrometheusService(), metrics.IMetricsService)
@@ -1,3 +1,4 @@
1
+ from kinto.core import metrics
1
2
  from kinto.core.events import ResourceChanged
2
3
 
3
4
  from .listener import on_resource_changed
@@ -10,13 +11,11 @@ def includeme(config):
10
11
  url="https://kinto.readthedocs.io",
11
12
  )
12
13
 
13
- # If StatsD is enabled, monitor execution time of listener.
14
- listener = on_resource_changed
15
- if config.registry.statsd:
16
- key = "plugins.quotas"
17
- listener = config.registry.statsd.timer(key)(on_resource_changed)
14
+ wrapped_listener = metrics.listener_with_timer(config, "plugins.quotas", on_resource_changed)
18
15
 
19
16
  # Listen to every resources (except history)
20
17
  config.add_subscriber(
21
- listener, ResourceChanged, for_resources=("bucket", "group", "collection", "record")
18
+ wrapped_listener,
19
+ ResourceChanged,
20
+ for_resources=("bucket", "group", "collection", "record"),
22
21
  )
@@ -0,0 +1,70 @@
1
+ import warnings
2
+ from urllib.parse import urlparse
3
+
4
+ from pyramid.exceptions import ConfigurationError
5
+ from zope.interface import implementer
6
+
7
+ from kinto.core import metrics
8
+
9
+
10
+ try:
11
+ import statsd as statsd_module
12
+ except ImportError: # pragma: no cover
13
+ statsd_module = None
14
+
15
+
16
+ @implementer(metrics.IMetricsService)
17
+ class StatsDService:
18
+ def __init__(self, host, port, prefix):
19
+ self._client = statsd_module.StatsClient(host, port, prefix=prefix)
20
+
21
+ def timer(self, key):
22
+ return self._client.timer(key)
23
+
24
+ def observe(self, key, value, labels=[]):
25
+ return self._client.gauge(key, value)
26
+
27
+ def count(self, key, count=1, unique=None):
28
+ if unique is None:
29
+ return self._client.incr(key, count=count)
30
+ if isinstance(unique, list):
31
+ # [("method", "get")] -> "method.get"
32
+ # [("endpoint", "/"), ("method", "get")] -> "endpoint./.method.get"
33
+ unique = ".".join(f"{label[0]}.{label[1]}" for label in unique)
34
+ else:
35
+ warnings.warn(
36
+ "`unique` parameter should be of type ``list[tuple[str, str]]``",
37
+ DeprecationWarning,
38
+ )
39
+ return self._client.set(key, unique)
40
+
41
+
42
+ def load_from_config(config):
43
+ # If this is called, it means that a ``statsd_url`` was specified in settings.
44
+ # (see ``kinto.core.initialization``)
45
+ # Raise a proper error if the ``statsd`` module is not installed.
46
+ if statsd_module is None:
47
+ error_msg = "Please install Kinto with monitoring dependencies (e.g. statsd package)"
48
+ raise ConfigurationError(error_msg)
49
+
50
+ settings = config.get_settings()
51
+ uri = settings["statsd_url"]
52
+ uri = urlparse(uri)
53
+
54
+ if settings["project_name"] != "":
55
+ prefix = settings["project_name"]
56
+ else:
57
+ prefix = settings["statsd_prefix"]
58
+
59
+ return StatsDService(uri.hostname, uri.port, prefix)
60
+
61
+
62
+ def includeme(config):
63
+ settings = config.get_settings()
64
+
65
+ # TODO: this backend abstraction may not be required anymore.
66
+ statsd_mod = settings["statsd_backend"]
67
+ statsd_mod = config.maybe_dotted(statsd_mod)
68
+ client = statsd_mod.load_from_config(config)
69
+
70
+ config.registry.registerUtility(client, metrics.IMetricsService)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kinto
3
- Version: 18.1.1
3
+ Version: 19.3.0
4
4
  Summary: Kinto Web Service - Store, Sync, Share, and Self-Host.
5
5
  Author-email: Mozilla Services <developers@kinto-storage.org>
6
6
  License: Copyright 2012 - Mozilla Foundation
@@ -21,10 +21,10 @@ Project-URL: Repository, https://github.com/Kinto/kinto
21
21
  Keywords: web,sync,json,storage,services
22
22
  Classifier: Programming Language :: Python
23
23
  Classifier: Programming Language :: Python :: 3
24
- Classifier: Programming Language :: Python :: 3.8
25
24
  Classifier: Programming Language :: Python :: 3.9
26
25
  Classifier: Programming Language :: Python :: 3.10
27
26
  Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
29
29
  Classifier: Topic :: Internet :: WWW/HTTP
30
30
  Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
@@ -59,6 +59,7 @@ Requires-Dist: newrelic ; extra == 'monitoring'
59
59
  Requires-Dist: sentry-sdk[sqlalchemy] ; extra == 'monitoring'
60
60
  Requires-Dist: statsd ; extra == 'monitoring'
61
61
  Requires-Dist: werkzeug ; extra == 'monitoring'
62
+ Requires-Dist: prometheus-client ; extra == 'monitoring'
62
63
  Provides-Extra: postgresql
63
64
  Requires-Dist: SQLAlchemy <3 ; extra == 'postgresql'
64
65
  Requires-Dist: psycopg2 ; extra == 'postgresql'
@@ -79,7 +80,7 @@ Kinto
79
80
  |coc| |gitter| |readthedocs| |pypi| |ci| |main-coverage|
80
81
 
81
82
  .. |coc| image:: https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-blue.svg
82
- :target: https://github.com/Kinto/kinto/blob/main/CODE_OF_CONDUCT.md
83
+ :target: https://github.com/Kinto/kinto/blob/main/.github/CODE_OF_CONDUCT.md
83
84
  :alt: Code of conduct
84
85
 
85
86
  .. |gitter| image:: https://badges.gitter.im/Kinto/kinto.svg
@@ -113,7 +114,7 @@ Kinto is a minimalist JSON storage service with synchronisation and sharing abil
113
114
  Requirements
114
115
  ------------
115
116
 
116
- * **Python**: 3.8+
117
+ * **Python**: 3.9+
117
118
  * **Backends**: In-memory (development), PostgreSQL 9.5+ (production)
118
119
 
119
120
  Contributors
@@ -1,4 +1,4 @@
1
- kinto/__init__.py,sha256=k-5mQkyT74syTtI5ynX24Sl3ai7Y5XXFLvqOtvMMlNE,3210
1
+ kinto/__init__.py,sha256=XG7cOyHN0ipQeOSPMW-XFax7uFgAjnCd3Slq0jSFGC4,3299
2
2
  kinto/__main__.py,sha256=NwDbI5RpBU8u7v49kDLolzvbN4cXm3LY26EY6JZOEEU,7831
3
3
  kinto/authorization.py,sha256=i3ttdPTFGzE9CqUQmfC4rR_6dDZJu0jWJMLGl_jFzIE,4919
4
4
  kinto/events.py,sha256=NMPvKUdbi25aYHhu9svzQsrEZMa9nyO4mtuMZC5871Q,85
@@ -6,19 +6,20 @@ kinto/schema_validation.py,sha256=mtAmnl5HwiUsjS2gU8MKH4lkZ1380A5wZht-w9s5X7M,53
6
6
  kinto/scripts.py,sha256=oM8ggBofYVoVhxrbdfzwIO0AOwR6Z2NJ2RqH9op1_lg,1370
7
7
  kinto/config/__init__.py,sha256=av8W0utmjheueFqrjTYEDk_vbpm3XYdHcqv5lppNR4k,2131
8
8
  kinto/config/kinto.tpl,sha256=kdA2RuR8gEpZGJp6VkKqMShQ0CfHDM0gjUttSPeaT7s,8753
9
- kinto/core/__init__.py,sha256=OpIPeRMatnxWqFUOB_ho4Tar7zfFX-I6URf0T13JP7g,8125
9
+ kinto/core/__init__.py,sha256=IY9UFhtK9fLjW_NkzJM1YIAIssNlt7tC4DltXXt3VaE,8162
10
10
  kinto/core/authentication.py,sha256=HLA0kREC3GMEsrIsHsQYjVNztYfAF01kb8-pLboByFs,1527
11
11
  kinto/core/authorization.py,sha256=GywY25KEzuSSAI709dFHDfdLnKxy3SLEYGwW5FkQ7Qc,13212
12
12
  kinto/core/decorators.py,sha256=3SAPWXlyPNUSICZ9mz04bcN-UdbnDuFOtU0bQHHzLis,2178
13
13
  kinto/core/errors.py,sha256=fxOLR4lImwHp26hhxxaqk6uW0U7v2Jb6f4sgAcRPRu8,8854
14
14
  kinto/core/events.py,sha256=SYpXgKMtVjiD9fwYJA2Omdom9yA3nBqi9btdvU1I_nc,10345
15
- kinto/core/initialization.py,sha256=0JBlj3DfgVzlaFAEXSYjLqfGhmH_eOIlP1MqtMcq8M8,23442
15
+ kinto/core/initialization.py,sha256=EOHjcE0Y1qd20ewUb0yFjvEBpvdJPZA1sQMT-zHONp8,26594
16
+ kinto/core/metrics.py,sha256=Y6Mt4PUzy2-oudeGr_oCmtX8nIR4SZkzUlPxr58jr-g,2619
16
17
  kinto/core/openapi.py,sha256=bPHRCVmdZsJCsKm8BId02Q2Wz8etF1xL7Z9rU9JDx5k,3855
17
18
  kinto/core/schema.py,sha256=d5L5TQynRYJPkZ8Mu2X7F72xEh6SKDbrHK1CNTdOf2E,3646
18
19
  kinto/core/scripts.py,sha256=5HSq5QAuin7HuU6icNYkPisny-4JpcdBvjf8X4JImrE,978
19
- kinto/core/statsd.py,sha256=Z2TDo31gPqIwcyFC3Z_qZM8fPy9PSRmcwEMhAtiZMGM,1942
20
- kinto/core/testing.py,sha256=K77Lxfp6naMXGqiXlajglO-QA0SrZQ37RUgsi1jLb8k,5748
21
- kinto/core/utils.py,sha256=jfP6k63xHNAzbhNkDd9V8YlMzblTyh-ENScETfdW-k0,16772
20
+ kinto/core/statsd.py,sha256=2f4s2opiHVdrA02ZlBa5pxIHaEjPuG8tdVLsmdII27s,64
21
+ kinto/core/testing.py,sha256=6iKT2q5f1suIavYGdM7lkqbqaIG5h38iM5S6jKU4AQI,5897
22
+ kinto/core/utils.py,sha256=qfQ5CBezOwQMDIXlMRcr5YwMbdQdxGdFFrMOKNz1S4A,17009
22
23
  kinto/core/cache/__init__.py,sha256=NJT_39WFTuUd-OHuVqgoQTQUYv5zS9PIc3W_Kq9tabc,2726
23
24
  kinto/core/cache/memcached.py,sha256=WuYyq6-QykRNryLA_bKdeGAY_Hvwq0c1ejS_8G94cY4,2914
24
25
  kinto/core/cache/memory.py,sha256=603vuyV5nKxsmUlkVxZFZWKPAbxMSTQKqkpqK4ttFas,2748
@@ -77,6 +78,8 @@ kinto/core/views/openapi.py,sha256=YZ7akBoMqmiu0b4AOxlupHU01_kQEHtmzPxJq_iS79Y,9
77
78
  kinto/core/views/version.py,sha256=-m5G_o0oHTpCgrtfFrHFve6Zqw_gs_szT0Bd8jnNmD4,1419
78
79
  kinto/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
80
  kinto/plugins/flush.py,sha256=HnKJ6-oDo-NMSjdZskqZ09aMnFM-LJHW9vIw4VIyvcI,812
81
+ kinto/plugins/prometheus.py,sha256=tLxb1VZOzZS-8PJgqXDfjHz773wHtwZjcFZuE10-hbA,5486
82
+ kinto/plugins/statsd.py,sha256=_b0wXepCsBnkCzH4GsRtGds2MwUXmZnwI-Y-awi6wVk,2235
80
83
  kinto/plugins/accounts/__init__.py,sha256=LUyPfIWIn-HtpmyKO8wAxY9oFsgeYgbMHFmNOcns7rY,4365
81
84
  kinto/plugins/accounts/authentication.py,sha256=h7l_KezC8os4sKN1bz3RKEwXwYTYAs21DRzzU9na_U0,3742
82
85
  kinto/plugins/accounts/mails.py,sha256=vfb80INjDIJqC1JkPhcwGXlVWjvXhazxA_pnckmOOdo,3481
@@ -85,32 +88,32 @@ kinto/plugins/accounts/utils.py,sha256=_IDsQEthJLFjdJ1be-KTxkbiZV-1Xrsfv4nOvdvF0
85
88
  kinto/plugins/accounts/views/__init__.py,sha256=QpwvsTYci71oRfww8PB2g_6ROrpdvx5s1iA1lN2hCjA,7443
86
89
  kinto/plugins/accounts/views/validation.py,sha256=2KpK0ghDK5WJfUh9pc1t1ptWFf7_bnKDau5tG0wjQwU,4631
87
90
  kinto/plugins/admin/README.md,sha256=3a9inoO2IHH5aST3xZp_km3ddupHZqadWrQjOQifBRk,105
88
- kinto/plugins/admin/VERSION,sha256=22W3tlP3wzosH5_TgfX74ImjifBjVngxeFuvSy4Ul-k,6
91
+ kinto/plugins/admin/VERSION,sha256=zHFPXgIkp4MR9INen7uI5pujX2Xn3Vy32GyrtKhLvXI,6
89
92
  kinto/plugins/admin/__init__.py,sha256=057R3q_S4CFiUuqwMIFkyu4prMBnUVc1eo8OUAPeJBs,1327
90
93
  kinto/plugins/admin/views.py,sha256=NHQncNB-32ytP03o-ZqisbYEoK7L2QcaK7RBuh0akwg,1338
91
- kinto/plugins/admin/build/VERSION,sha256=22W3tlP3wzosH5_TgfX74ImjifBjVngxeFuvSy4Ul-k,6
92
- kinto/plugins/admin/build/index.html,sha256=DKsZaf2bKLZtMKl05cYU4fi6KlRMcpC3u3yBk8ip8NI,467
93
- kinto/plugins/admin/build/assets/asn1-8gHclKtu.js,sha256=acZ4kKF43mCqr3BgIO-wptx5qHQF0NRS-uhxO-VHgBc,3989
94
- kinto/plugins/admin/build/assets/clojure-plf_rynZ.js,sha256=SYpgEG0C5dkSQgMtAejALIQFzA3S0InWn1XquOeNGiA,10815
95
- kinto/plugins/admin/build/assets/css-tpsEXL3H.js,sha256=qj5HvX1-byua7Xs0K31qoFn_bncMhtZMsOr5e0A-yYo,27132
96
- kinto/plugins/admin/build/assets/index-iVTdxamX.js,sha256=v-4C19KdmXgaut8Pxv3VaZpYP3-_gnqvmXMmjv6J0uo,2730476
97
- kinto/plugins/admin/build/assets/index-vylaZGUr.css,sha256=B6gNprvM7wkdIblZmeQ34787uJL_VKhyOGPBKeclafM,171544
98
- kinto/plugins/admin/build/assets/javascript-upQ8KtFH.js,sha256=Kd7a6PMUdIKwziAcZ4C4aOTmQplWemH5K12wcPpCj-A,17097
99
- kinto/plugins/admin/build/assets/logo-FQUYikj1.png,sha256=4LXIgVZbcdbMun8bTlCFgnBik7uIkIRILVPFYrTUGgg,5578
100
- kinto/plugins/admin/build/assets/mllike-ilm95jrV.js,sha256=XDxcC3JRvVyG3zOFA6HW9YuFJ3sQsutVLc_BLiBu1bA,4826
101
- kinto/plugins/admin/build/assets/python-xljIYvii.js,sha256=rDHPcNHr9ezekY0ihOc2YV-rU0QsKzwjC_qD-F-AbXg,6475
102
- kinto/plugins/admin/build/assets/rpm-cddeyEgF.js,sha256=YPjyUyP0eZbB5aKZ-H9C3kK9bBOlhHM8T-PXHsSLplo,1622
103
- kinto/plugins/admin/build/assets/sql-3IaSLchm.js,sha256=V0dNMfaDvdWL9bgdkSTzMjoG35k2OwvTJ691Wh4obIA,37072
104
- kinto/plugins/admin/build/assets/ttcn-cfg-9oMIyPXS.js,sha256=8Tr33uTvYVq0BFJHVx62H2FtUMgfuLHjm0GqnqoFjDc,4117
94
+ kinto/plugins/admin/build/VERSION,sha256=zHFPXgIkp4MR9INen7uI5pujX2Xn3Vy32GyrtKhLvXI,6
95
+ kinto/plugins/admin/build/index.html,sha256=gRJGD-XVpPPa8HfFka9Sky99o6yjfgdXRQ-uCfN3P7M,467
96
+ kinto/plugins/admin/build/assets/asn1-CGOzndHr.js,sha256=acZ4kKF43mCqr3BgIO-wptx5qHQF0NRS-uhxO-VHgBc,3989
97
+ kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js,sha256=SYpgEG0C5dkSQgMtAejALIQFzA3S0InWn1XquOeNGiA,10815
98
+ kinto/plugins/admin/build/assets/css-BnMrqG3P.js,sha256=qj5HvX1-byua7Xs0K31qoFn_bncMhtZMsOr5e0A-yYo,27132
99
+ kinto/plugins/admin/build/assets/index-BKIg2XW8.js,sha256=3_qgTjWR5Ng_tC9QCM1vgy00HMkYuYdyUdFKnsIR2B8,2730519
100
+ kinto/plugins/admin/build/assets/index-D8oiN37x.css,sha256=UQO2oKDYnchD4P-GZ4OjianXN1MJ4upFqYjaIvBiGn4,171587
101
+ kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js,sha256=KW4RtDugZV0XNnBzAoqSNgq-paMzdd7ArBAunV-t5K0,17092
102
+ kinto/plugins/admin/build/assets/logo-VBRiKSPX.png,sha256=4LXIgVZbcdbMun8bTlCFgnBik7uIkIRILVPFYrTUGgg,5578
103
+ kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js,sha256=XDxcC3JRvVyG3zOFA6HW9YuFJ3sQsutVLc_BLiBu1bA,4826
104
+ kinto/plugins/admin/build/assets/python-BuPzkPfP.js,sha256=rDHPcNHr9ezekY0ihOc2YV-rU0QsKzwjC_qD-F-AbXg,6475
105
+ kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js,sha256=YPjyUyP0eZbB5aKZ-H9C3kK9bBOlhHM8T-PXHsSLplo,1622
106
+ kinto/plugins/admin/build/assets/sql-C4g8LzGK.js,sha256=V0dNMfaDvdWL9bgdkSTzMjoG35k2OwvTJ691Wh4obIA,37072
107
+ kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js,sha256=8Tr33uTvYVq0BFJHVx62H2FtUMgfuLHjm0GqnqoFjDc,4117
105
108
  kinto/plugins/admin/public/help.html,sha256=1hol7z5Sv0Xn3mYyEfPQWFOsrR24htlKhmnGA3rH8fs,958
106
109
  kinto/plugins/default_bucket/__init__.py,sha256=Q0frXXJPzFqoPCOjK5OpJZhaz5nCAeR2KwKAP7ltW_U,7287
107
- kinto/plugins/history/__init__.py,sha256=xlti7gR4NojR8hIb24is0iVf0QJD645PPkVEQpsQl2w,1096
110
+ kinto/plugins/history/__init__.py,sha256=s-RMNWaZlmBNd4sNsgJ-hDvMW4pPKUZ-sdZYubb0Kdo,1015
108
111
  kinto/plugins/history/listener.py,sha256=Tq5ZHpIOIzQs9yPXA1exEftPoYCuFQJvgxbaIb6XBrM,5033
109
112
  kinto/plugins/history/views.py,sha256=NoBP-S7epeH5TLZZbIqfBmwMA2KaWmxP7lqPAS11BTU,2293
110
113
  kinto/plugins/openid/__init__.py,sha256=1Iv5SCa6vwEvoJkmGd45-TYm_mxz2okFj6u2VTNuVrk,4863
111
114
  kinto/plugins/openid/utils.py,sha256=n3KGS-ogXR2sg6j4QtdPe_DtEsqD7AGVT2K7vhl8yE8,273
112
115
  kinto/plugins/openid/views.py,sha256=RVUlS_Ov26NM8SFlrIlpm7ev9OuaMlJTtPA6pUi6ngk,6508
113
- kinto/plugins/quotas/__init__.py,sha256=g_ar8oHXnD3pIifgQoHkcTMNepDvCZ65SfpGwXIyTlU,697
116
+ kinto/plugins/quotas/__init__.py,sha256=itmoP8y4puYYC5CPZAPHhnZ2PXT7PlsAKrNVd0zn4EI,616
114
117
  kinto/plugins/quotas/listener.py,sha256=WKKaCNRJw8XoIfnJb3S0ogYhzAo28RcfLE-MzP6Cs2U,8564
115
118
  kinto/plugins/quotas/scripts.py,sha256=a3KuzUwtCp_yu78yqr3XdbaHvZyBcUy6o_keNtsuU-M,2941
116
119
  kinto/plugins/quotas/utils.py,sha256=BE5bBPrG0BV9Qbcv6-r8WsV7KC6aIJlFeOR4O5tS248,232
@@ -122,9 +125,9 @@ kinto/views/contribute.py,sha256=NEDr2g1HhVwcMBg0qHEZDmWVJ1V31WsM8cRs0Vm6hfc,118
122
125
  kinto/views/groups.py,sha256=jOq5fX0-4lwZE8k1q5HME2tU7x9052rtBPF7YqcJ-Qg,3181
123
126
  kinto/views/permissions.py,sha256=F0_eKx201WyLonXJ5vLdGKa9RcFKjvAihrEEhU1JuLw,9069
124
127
  kinto/views/records.py,sha256=lYfACW2L8qcQoyYBD5IX-fTPjFWmGp7GjHq_U4InlyE,5037
125
- kinto-18.1.1.dist-info/LICENSE,sha256=oNEIMTuTJzppR5ZEyi86yvvtSagveMYXTYFn56zF0Uk,561
126
- kinto-18.1.1.dist-info/METADATA,sha256=0XhfmFvg30AjAaNqSkI2hQMLW1TAdSF_Pd5SeT-65aY,8812
127
- kinto-18.1.1.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
128
- kinto-18.1.1.dist-info/entry_points.txt,sha256=3KlqBWPKY81mrCe_oX0I5s1cRO7Q53nCLbnVr5P9LH4,85
129
- kinto-18.1.1.dist-info/top_level.txt,sha256=EG_YmbZL6FAug9VwopG7JtF9SvH_r0DEnFp-3twPPys,6
130
- kinto-18.1.1.dist-info/RECORD,,
128
+ kinto-19.3.0.dist-info/LICENSE,sha256=oNEIMTuTJzppR5ZEyi86yvvtSagveMYXTYFn56zF0Uk,561
129
+ kinto-19.3.0.dist-info/METADATA,sha256=So9rRBLy7Q9zcbnOqCHpGPqUfGG8M9Am6xRe__cMEyg,8878
130
+ kinto-19.3.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
131
+ kinto-19.3.0.dist-info/entry_points.txt,sha256=3KlqBWPKY81mrCe_oX0I5s1cRO7Q53nCLbnVr5P9LH4,85
132
+ kinto-19.3.0.dist-info/top_level.txt,sha256=EG_YmbZL6FAug9VwopG7JtF9SvH_r0DEnFp-3twPPys,6
133
+ kinto-19.3.0.dist-info/RECORD,,