kinto 18.1.0__tar.gz → 18.1.1__tar.gz

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 (384) hide show
  1. {kinto-18.1.0 → kinto-18.1.1}/.github/workflows/publish.yml +1 -1
  2. {kinto-18.1.0 → kinto-18.1.1}/.github/workflows/test.yml +1 -1
  3. {kinto-18.1.0 → kinto-18.1.1}/Makefile +12 -1
  4. {kinto-18.1.0/kinto.egg-info → kinto-18.1.1}/PKG-INFO +1 -1
  5. {kinto-18.1.0 → kinto-18.1.1}/constraints.txt +17 -17
  6. {kinto-18.1.0 → kinto-18.1.1}/docs/community.rst +1 -1
  7. {kinto-18.1.0 → kinto-18.1.1}/docs/requirements.txt +3 -3
  8. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/resource/__init__.py +6 -2
  9. kinto-18.1.1/kinto/plugins/admin/build/VERSION +1 -0
  10. kinto-18.1.1/kinto/plugins/admin/build/assets/asn1-8gHclKtu.js +1 -0
  11. kinto-18.1.1/kinto/plugins/admin/build/assets/clojure-plf_rynZ.js +1 -0
  12. kinto-18.1.1/kinto/plugins/admin/build/assets/css-tpsEXL3H.js +1 -0
  13. kinto-18.1.1/kinto/plugins/admin/build/assets/index-iVTdxamX.js +175 -0
  14. kinto-18.1.1/kinto/plugins/admin/build/assets/index-vylaZGUr.css +6 -0
  15. kinto-18.1.1/kinto/plugins/admin/build/assets/javascript-upQ8KtFH.js +1 -0
  16. kinto-18.1.1/kinto/plugins/admin/build/assets/logo-FQUYikj1.png +0 -0
  17. kinto-18.1.1/kinto/plugins/admin/build/assets/mllike-ilm95jrV.js +1 -0
  18. kinto-18.1.1/kinto/plugins/admin/build/assets/python-xljIYvii.js +1 -0
  19. kinto-18.1.1/kinto/plugins/admin/build/assets/rpm-cddeyEgF.js +1 -0
  20. kinto-18.1.1/kinto/plugins/admin/build/assets/sql-3IaSLchm.js +1 -0
  21. kinto-18.1.1/kinto/plugins/admin/build/assets/ttcn-cfg-9oMIyPXS.js +1 -0
  22. kinto-18.1.1/kinto/plugins/admin/build/index.html +18 -0
  23. {kinto-18.1.0 → kinto-18.1.1/kinto.egg-info}/PKG-INFO +1 -1
  24. {kinto-18.1.0 → kinto-18.1.1}/kinto.egg-info/SOURCES.txt +15 -1
  25. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_filter.py +9 -0
  26. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_views_cors.py +9 -0
  27. {kinto-18.1.0 → kinto-18.1.1}/.dockerignore +0 -0
  28. {kinto-18.1.0 → kinto-18.1.1}/.github/CODE_OF_CONDUCT.md +0 -0
  29. {kinto-18.1.0 → kinto-18.1.1}/.github/CONTRIBUTING.md +0 -0
  30. {kinto-18.1.0 → kinto-18.1.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {kinto-18.1.0 → kinto-18.1.1}/.github/dependabot.yml +0 -0
  32. {kinto-18.1.0 → kinto-18.1.1}/.github/release.yml +0 -0
  33. {kinto-18.1.0 → kinto-18.1.1}/.github/workflows/labels.yaml +0 -0
  34. {kinto-18.1.0 → kinto-18.1.1}/.gitignore +0 -0
  35. {kinto-18.1.0 → kinto-18.1.1}/CHANGELOG.rst +0 -0
  36. {kinto-18.1.0 → kinto-18.1.1}/CONTRIBUTORS.rst +0 -0
  37. {kinto-18.1.0 → kinto-18.1.1}/Dockerfile +0 -0
  38. {kinto-18.1.0 → kinto-18.1.1}/LICENSE +0 -0
  39. {kinto-18.1.0 → kinto-18.1.1}/README.rst +0 -0
  40. {kinto-18.1.0 → kinto-18.1.1}/SECURITY.md +0 -0
  41. {kinto-18.1.0 → kinto-18.1.1}/SUPPORT.md +0 -0
  42. {kinto-18.1.0 → kinto-18.1.1}/app.wsgi +0 -0
  43. {kinto-18.1.0 → kinto-18.1.1}/constraints.in +0 -0
  44. {kinto-18.1.0 → kinto-18.1.1}/contribute.json +0 -0
  45. {kinto-18.1.0 → kinto-18.1.1}/docker-compose.yml +0 -0
  46. {kinto-18.1.0 → kinto-18.1.1}/docs/_static/piwik.js +0 -0
  47. {kinto-18.1.0 → kinto-18.1.1}/docs/_static/theme_overrides.css +0 -0
  48. {kinto-18.1.0 → kinto-18.1.1}/docs/_templates/footer.html +0 -0
  49. {kinto-18.1.0 → kinto-18.1.1}/docs/_templates/indexcontent.html +0 -0
  50. {kinto-18.1.0 → kinto-18.1.1}/docs/_templates/layout.html +0 -0
  51. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-delete-list.rst +0 -0
  52. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-delete-object.rst +0 -0
  53. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-get-list.rst +0 -0
  54. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-get-object.rst +0 -0
  55. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-head-list.rst +0 -0
  56. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-patch-object.rst +0 -0
  57. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-post-list.rst +0 -0
  58. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_details-put-object.rst +0 -0
  59. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-delete-list.rst +0 -0
  60. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-delete-object.rst +0 -0
  61. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-get-list.rst +0 -0
  62. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-get-object.rst +0 -0
  63. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-patch-object.rst +0 -0
  64. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-post-list.rst +0 -0
  65. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/_status-put-object.rst +0 -0
  66. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/accounts.rst +0 -0
  67. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/admin.rst +0 -0
  68. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/authentication.rst +0 -0
  69. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/backoff.rst +0 -0
  70. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/batch.rst +0 -0
  71. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/buckets.rst +0 -0
  72. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/collections.rst +0 -0
  73. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/deprecation.rst +0 -0
  74. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/errors.rst +0 -0
  75. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/filtering.rst +0 -0
  76. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/flush.rst +0 -0
  77. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/groups.rst +0 -0
  78. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/history.rst +0 -0
  79. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/index.rst +0 -0
  80. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/openapi.rst +0 -0
  81. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/openid.rst +0 -0
  82. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/pagination.rst +0 -0
  83. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/permissions.rst +0 -0
  84. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/quotas.rst +0 -0
  85. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/records.rst +0 -0
  86. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/selecting_fields.rst +0 -0
  87. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/sorting.rst +0 -0
  88. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/timestamps.rst +0 -0
  89. {kinto-18.1.0 → kinto-18.1.1}/docs/api/1.x/utilities.rst +0 -0
  90. {kinto-18.1.0 → kinto-18.1.1}/docs/api/index.rst +0 -0
  91. {kinto-18.1.0 → kinto-18.1.1}/docs/api/versioning.rst +0 -0
  92. {kinto-18.1.0 → kinto-18.1.1}/docs/changelog.rst +0 -0
  93. {kinto-18.1.0 → kinto-18.1.1}/docs/commandline.rst +0 -0
  94. {kinto-18.1.0 → kinto-18.1.1}/docs/concepts.rst +0 -0
  95. {kinto-18.1.0 → kinto-18.1.1}/docs/conf.py +0 -0
  96. {kinto-18.1.0 → kinto-18.1.1}/docs/configuration/good-practices.rst +0 -0
  97. {kinto-18.1.0 → kinto-18.1.1}/docs/configuration/index.rst +0 -0
  98. {kinto-18.1.0 → kinto-18.1.1}/docs/configuration/production.rst +0 -0
  99. {kinto-18.1.0 → kinto-18.1.1}/docs/configuration/settings.rst +0 -0
  100. {kinto-18.1.0 → kinto-18.1.1}/docs/core/_static/theme_overrides.css +0 -0
  101. {kinto-18.1.0 → kinto-18.1.1}/docs/core/api.rst +0 -0
  102. {kinto-18.1.0 → kinto-18.1.1}/docs/core/cache.rst +0 -0
  103. {kinto-18.1.0 → kinto-18.1.1}/docs/core/decorators.rst +0 -0
  104. {kinto-18.1.0 → kinto-18.1.1}/docs/core/errors.rst +0 -0
  105. {kinto-18.1.0 → kinto-18.1.1}/docs/core/glossary.rst +0 -0
  106. {kinto-18.1.0 → kinto-18.1.1}/docs/core/images/cliquet-base.png +0 -0
  107. {kinto-18.1.0 → kinto-18.1.1}/docs/core/images/cliquet-mozilla.png +0 -0
  108. {kinto-18.1.0 → kinto-18.1.1}/docs/core/index.rst +0 -0
  109. {kinto-18.1.0 → kinto-18.1.1}/docs/core/notifications.rst +0 -0
  110. {kinto-18.1.0 → kinto-18.1.1}/docs/core/permission.rst +0 -0
  111. {kinto-18.1.0 → kinto-18.1.1}/docs/core/quickstart.rst +0 -0
  112. {kinto-18.1.0 → kinto-18.1.1}/docs/core/rationale.rst +0 -0
  113. {kinto-18.1.0 → kinto-18.1.1}/docs/core/resource.rst +0 -0
  114. {kinto-18.1.0 → kinto-18.1.1}/docs/core/storage.rst +0 -0
  115. {kinto-18.1.0 → kinto-18.1.1}/docs/core/testing.rst +0 -0
  116. {kinto-18.1.0 → kinto-18.1.1}/docs/core/utils.rst +0 -0
  117. {kinto-18.1.0 → kinto-18.1.1}/docs/core/viewsets.rst +0 -0
  118. {kinto-18.1.0 → kinto-18.1.1}/docs/faq.rst +0 -0
  119. {kinto-18.1.0 → kinto-18.1.1}/docs/images/alwaysdata-button.svg +0 -0
  120. {kinto-18.1.0 → kinto-18.1.1}/docs/images/architecture.svg +0 -0
  121. {kinto-18.1.0 → kinto-18.1.1}/docs/images/color-formatter.png +0 -0
  122. {kinto-18.1.0 → kinto-18.1.1}/docs/images/concepts-general.png +0 -0
  123. {kinto-18.1.0 → kinto-18.1.1}/docs/images/concepts-permissions.png +0 -0
  124. {kinto-18.1.0 → kinto-18.1.1}/docs/images/heroku-button.png +0 -0
  125. {kinto-18.1.0 → kinto-18.1.1}/docs/images/kinto-logo.png +0 -0
  126. {kinto-18.1.0 → kinto-18.1.1}/docs/images/kinto-logo.svg +0 -0
  127. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-admin.svg +0 -0
  128. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-attachment.svg +0 -0
  129. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-community.svg +0 -0
  130. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-demos.svg +0 -0
  131. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-history.svg +0 -0
  132. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-indexing.svg +0 -0
  133. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-javascript.svg +0 -0
  134. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-jsonschema.svg +0 -0
  135. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-livesync.svg +0 -0
  136. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-multiapps.svg +0 -0
  137. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-offline.svg +0 -0
  138. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-permissions.svg +0 -0
  139. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-python.svg +0 -0
  140. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-quotas.svg +0 -0
  141. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-selfhostable.svg +0 -0
  142. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-signature.svg +0 -0
  143. {kinto-18.1.0 → kinto-18.1.1}/docs/images/logo-synchronisation.svg +0 -0
  144. {kinto-18.1.0 → kinto-18.1.1}/docs/images/overview-deployonce-selfhost.png +0 -0
  145. {kinto-18.1.0 → kinto-18.1.1}/docs/images/overview-features.png +0 -0
  146. {kinto-18.1.0 → kinto-18.1.1}/docs/images/overview-synchronisation.png +0 -0
  147. {kinto-18.1.0 → kinto-18.1.1}/docs/images/overview-use-cases.png +0 -0
  148. {kinto-18.1.0 → kinto-18.1.1}/docs/images/scalingo-button.svg +0 -0
  149. {kinto-18.1.0 → kinto-18.1.1}/docs/images/screenshot-kinto-admin-1.png +0 -0
  150. {kinto-18.1.0 → kinto-18.1.1}/docs/images/screenshot-kinto-admin-2.png +0 -0
  151. {kinto-18.1.0 → kinto-18.1.1}/docs/images/screenshot-kinto-admin-3.png +0 -0
  152. {kinto-18.1.0 → kinto-18.1.1}/docs/images/screenshot-kinto-admin-4.png +0 -0
  153. {kinto-18.1.0 → kinto-18.1.1}/docs/images/sequence-storage.png +0 -0
  154. {kinto-18.1.0 → kinto-18.1.1}/docs/images/sync-both.svg +0 -0
  155. {kinto-18.1.0 → kinto-18.1.1}/docs/images/sync-newest.svg +0 -0
  156. {kinto-18.1.0 → kinto-18.1.1}/docs/images/sync-oldest.svg +0 -0
  157. {kinto-18.1.0 → kinto-18.1.1}/docs/index.rst +0 -0
  158. {kinto-18.1.0 → kinto-18.1.1}/docs/kinto-admin.rst +0 -0
  159. {kinto-18.1.0 → kinto-18.1.1}/docs/overview.rst +0 -0
  160. {kinto-18.1.0 → kinto-18.1.1}/docs/troubleshooting.rst +0 -0
  161. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/app-examples.rst +0 -0
  162. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/authentication-github.rst +0 -0
  163. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/client-side-encryption.rst +0 -0
  164. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/custom-id-generator.rst +0 -0
  165. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/first-steps.rst +0 -0
  166. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/index.rst +0 -0
  167. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/install.rst +0 -0
  168. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/notifications-custom.rst +0 -0
  169. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/notifications-websockets.rst +0 -0
  170. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/permission-setups.rst +0 -0
  171. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/permissions.rst +0 -0
  172. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/synchronisation.rst +0 -0
  173. {kinto-18.1.0 → kinto-18.1.1}/docs/tutorials/write-plugin.rst +0 -0
  174. {kinto-18.1.0 → kinto-18.1.1}/kinto/__init__.py +0 -0
  175. {kinto-18.1.0 → kinto-18.1.1}/kinto/__main__.py +0 -0
  176. {kinto-18.1.0 → kinto-18.1.1}/kinto/authorization.py +0 -0
  177. {kinto-18.1.0 → kinto-18.1.1}/kinto/config/__init__.py +0 -0
  178. {kinto-18.1.0 → kinto-18.1.1}/kinto/config/kinto.tpl +0 -0
  179. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/__init__.py +0 -0
  180. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/authentication.py +0 -0
  181. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/authorization.py +0 -0
  182. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/__init__.py +0 -0
  183. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/memcached.py +0 -0
  184. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/memory.py +0 -0
  185. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/postgresql/__init__.py +0 -0
  186. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/postgresql/schema.sql +0 -0
  187. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/cache/testing.py +0 -0
  188. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/decorators.py +0 -0
  189. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/errors.py +0 -0
  190. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/events.py +0 -0
  191. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/initialization.py +0 -0
  192. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/listeners/__init__.py +0 -0
  193. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/openapi.py +0 -0
  194. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/__init__.py +0 -0
  195. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/memory.py +0 -0
  196. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/postgresql/__init__.py +0 -0
  197. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
  198. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/postgresql/schema.sql +0 -0
  199. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/permission/testing.py +0 -0
  200. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/resource/model.py +0 -0
  201. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/resource/schema.py +0 -0
  202. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/resource/viewset.py +0 -0
  203. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/schema.py +0 -0
  204. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/scripts.py +0 -0
  205. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/statsd.py +0 -0
  206. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/__init__.py +0 -0
  207. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/exceptions.py +0 -0
  208. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/generators.py +0 -0
  209. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/memory.py +0 -0
  210. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/__init__.py +0 -0
  211. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/client.py +0 -0
  212. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
  213. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
  214. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
  215. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
  216. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
  217. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
  218. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
  219. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
  220. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
  221. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
  222. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
  223. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
  224. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
  225. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
  226. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
  227. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
  228. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
  229. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
  230. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
  231. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
  232. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
  233. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/migrator.py +0 -0
  234. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/pool.py +0 -0
  235. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/postgresql/schema.sql +0 -0
  236. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/testing.py +0 -0
  237. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/storage/utils.py +0 -0
  238. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/testing.py +0 -0
  239. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/utils.py +0 -0
  240. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/__init__.py +0 -0
  241. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/batch.py +0 -0
  242. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/errors.py +0 -0
  243. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/heartbeat.py +0 -0
  244. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/hello.py +0 -0
  245. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/openapi.py +0 -0
  246. {kinto-18.1.0 → kinto-18.1.1}/kinto/core/views/version.py +0 -0
  247. {kinto-18.1.0 → kinto-18.1.1}/kinto/events.py +0 -0
  248. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/__init__.py +0 -0
  249. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/__init__.py +0 -0
  250. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/authentication.py +0 -0
  251. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/mails.py +0 -0
  252. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/scripts.py +0 -0
  253. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/utils.py +0 -0
  254. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/views/__init__.py +0 -0
  255. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/accounts/views/validation.py +0 -0
  256. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/admin/README.md +0 -0
  257. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/admin/VERSION +0 -0
  258. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/admin/__init__.py +0 -0
  259. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/admin/public/help.html +0 -0
  260. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/admin/views.py +0 -0
  261. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/default_bucket/__init__.py +0 -0
  262. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/flush.py +0 -0
  263. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/history/__init__.py +0 -0
  264. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/history/listener.py +0 -0
  265. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/history/views.py +0 -0
  266. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/openid/__init__.py +0 -0
  267. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/openid/utils.py +0 -0
  268. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/openid/views.py +0 -0
  269. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/quotas/__init__.py +0 -0
  270. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/quotas/listener.py +0 -0
  271. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/quotas/scripts.py +0 -0
  272. {kinto-18.1.0 → kinto-18.1.1}/kinto/plugins/quotas/utils.py +0 -0
  273. {kinto-18.1.0 → kinto-18.1.1}/kinto/schema_validation.py +0 -0
  274. {kinto-18.1.0 → kinto-18.1.1}/kinto/scripts.py +0 -0
  275. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/__init__.py +0 -0
  276. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/admin.py +0 -0
  277. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/buckets.py +0 -0
  278. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/collections.py +0 -0
  279. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/contribute.py +0 -0
  280. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/groups.py +0 -0
  281. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/permissions.py +0 -0
  282. {kinto-18.1.0 → kinto-18.1.1}/kinto/views/records.py +0 -0
  283. {kinto-18.1.0 → kinto-18.1.1}/kinto.egg-info/dependency_links.txt +0 -0
  284. {kinto-18.1.0 → kinto-18.1.1}/kinto.egg-info/entry_points.txt +0 -0
  285. {kinto-18.1.0 → kinto-18.1.1}/kinto.egg-info/requires.txt +0 -0
  286. {kinto-18.1.0 → kinto-18.1.1}/kinto.egg-info/top_level.txt +0 -0
  287. {kinto-18.1.0 → kinto-18.1.1}/pyproject.toml +0 -0
  288. {kinto-18.1.0 → kinto-18.1.1}/scripts/pull-kinto-admin.sh +0 -0
  289. {kinto-18.1.0 → kinto-18.1.1}/setup.cfg +0 -0
  290. {kinto-18.1.0 → kinto-18.1.1}/tests/__init__.py +0 -0
  291. {kinto-18.1.0 → kinto-18.1.1}/tests/browser.ini +0 -0
  292. {kinto-18.1.0 → kinto-18.1.1}/tests/browser.py +0 -0
  293. {kinto-18.1.0 → kinto-18.1.1}/tests/core/__init__.py +0 -0
  294. {kinto-18.1.0 → kinto-18.1.1}/tests/core/listeners.py +0 -0
  295. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/__init__.py +0 -0
  296. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_base.py +0 -0
  297. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_cache_expires.py +0 -0
  298. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_events.py +0 -0
  299. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_model.py +0 -0
  300. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_object.py +0 -0
  301. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_object_permissions.py +0 -0
  302. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_pagination.py +0 -0
  303. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_partial_response.py +0 -0
  304. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_preconditions.py +0 -0
  305. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_schema.py +0 -0
  306. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_sort.py +0 -0
  307. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_sync.py +0 -0
  308. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_views.py +0 -0
  309. {kinto-18.1.0 → kinto-18.1.1}/tests/core/resource/test_viewset.py +0 -0
  310. {kinto-18.1.0 → kinto-18.1.1}/tests/core/schema/postgresql-permission-1.sql +0 -0
  311. {kinto-18.1.0 → kinto-18.1.1}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
  312. {kinto-18.1.0 → kinto-18.1.1}/tests/core/schema/postgresql-storage-11.sql +0 -0
  313. {kinto-18.1.0 → kinto-18.1.1}/tests/core/support.py +0 -0
  314. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_authentication.py +0 -0
  315. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_authorization.py +0 -0
  316. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_cache.py +0 -0
  317. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_decorators.py +0 -0
  318. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_deprecation.py +0 -0
  319. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_errors.py +0 -0
  320. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_initialization.py +0 -0
  321. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_listeners.py +0 -0
  322. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_logging.py +0 -0
  323. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_openapi.py +0 -0
  324. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_permission.py +0 -0
  325. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_schema.py +0 -0
  326. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_scripts.py +0 -0
  327. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_statsd.py +0 -0
  328. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_storage.py +0 -0
  329. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_storage_migrations.py +0 -0
  330. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_storage_pool.py +0 -0
  331. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_utils.py +0 -0
  332. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_batch.py +0 -0
  333. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_errors.py +0 -0
  334. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_heartbeat.py +0 -0
  335. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_hello.py +0 -0
  336. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_openapi.py +0 -0
  337. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_postgresql.py +0 -0
  338. {kinto-18.1.0 → kinto-18.1.1}/tests/core/test_views_transaction.py +0 -0
  339. {kinto-18.1.0 → kinto-18.1.1}/tests/core/testapp/__init__.py +0 -0
  340. {kinto-18.1.0 → kinto-18.1.1}/tests/core/testapp/static/index.html +0 -0
  341. {kinto-18.1.0 → kinto-18.1.1}/tests/core/testapp/views.py +0 -0
  342. {kinto-18.1.0 → kinto-18.1.1}/tests/core/testplugin/__init__.py +0 -0
  343. {kinto-18.1.0 → kinto-18.1.1}/tests/functional.ini +0 -0
  344. {kinto-18.1.0 → kinto-18.1.1}/tests/functional.py +0 -0
  345. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/__init__.py +0 -0
  346. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/support.py +0 -0
  347. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_plugins.py +0 -0
  348. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_resources.py +0 -0
  349. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_responses_buckets.py +0 -0
  350. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_responses_collections.py +0 -0
  351. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_responses_errors.py +0 -0
  352. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_responses_groups.py +0 -0
  353. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_responses_records.py +0 -0
  354. {kinto-18.1.0 → kinto-18.1.1}/tests/openapi/test_validation.py +0 -0
  355. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/__init__.py +0 -0
  356. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_accounts.py +0 -0
  357. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_admin.py +0 -0
  358. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_default_bucket.py +0 -0
  359. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_flush.py +0 -0
  360. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_history.py +0 -0
  361. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_openid.py +0 -0
  362. {kinto-18.1.0 → kinto-18.1.1}/tests/plugins/test_quotas.py +0 -0
  363. {kinto-18.1.0 → kinto-18.1.1}/tests/support.py +0 -0
  364. {kinto-18.1.0 → kinto-18.1.1}/tests/test_authorization.py +0 -0
  365. {kinto-18.1.0 → kinto-18.1.1}/tests/test_config.py +0 -0
  366. {kinto-18.1.0 → kinto-18.1.1}/tests/test_configuration/test.ini +0 -0
  367. {kinto-18.1.0 → kinto-18.1.1}/tests/test_init.py +0 -0
  368. {kinto-18.1.0 → kinto-18.1.1}/tests/test_main.py +0 -0
  369. {kinto-18.1.0 → kinto-18.1.1}/tests/test_scripts.py +0 -0
  370. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_admin.py +0 -0
  371. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_buckets.py +0 -0
  372. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_collections.py +0 -0
  373. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_collections_cache.py +0 -0
  374. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_contribute.py +0 -0
  375. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_disable_default.py +0 -0
  376. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_groups.py +0 -0
  377. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_hello.py +0 -0
  378. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_objects_permissions.py +0 -0
  379. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_permissions.py +0 -0
  380. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_records.py +0 -0
  381. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_schema_collection.py +0 -0
  382. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_schema_group.py +0 -0
  383. {kinto-18.1.0 → kinto-18.1.1}/tests/test_views_schema_record.py +0 -0
  384. {kinto-18.1.0/tests/core → kinto-18.1.1/tests}/test_views_version.py +0 -0
@@ -86,7 +86,7 @@ jobs:
86
86
  images: kinto/kinto-server
87
87
 
88
88
  - name: Build and push Docker image
89
- uses: docker/build-push-action@v5
89
+ uses: docker/build-push-action@v6
90
90
  with:
91
91
  context: .
92
92
  file: ./Dockerfile
@@ -179,7 +179,7 @@ jobs:
179
179
  install: true
180
180
 
181
181
  - name: Build container
182
- uses: docker/build-push-action@v5
182
+ uses: docker/build-push-action@v6
183
183
  with:
184
184
  cache-from: type=local,src=${{ env.DOCKER_CACHE}}
185
185
  cache-to: type=local,dest=${{ env.DOCKER_CACHE}},mode=max
@@ -25,8 +25,9 @@ help:
25
25
  @echo " migrate run the kinto migrations"
26
26
  @echo " lint run the code linters"
27
27
  @echo " tests run all the tests with all the supported python interpreters (same as CI)"
28
+ @echo " test-deps pulls and runs docker postgres and memcached containers for tests"
28
29
  @echo " tdd run pytest-watch to rerun tests automatically on changes for tdd"
29
- @echo " tests-once only run the tests once with the default python interpreter"
30
+ @echo " tests-once only run the tests once with the default python interpreter"
30
31
  @echo " functional run functional test against a real kinto"
31
32
  @echo " browser-test run browser test against a real kinto"
32
33
  @echo " clean remove *.pyc files and __pycache__ directory"
@@ -94,6 +95,14 @@ tests: install-postgres install-monitoring install-memcached version-file instal
94
95
  tests-raw: version-file install-dev
95
96
  $(VENV)/bin/py.test
96
97
 
98
+ test-deps:
99
+ docker pull memcached
100
+ docker pull postgres
101
+ docker run -p 11211:11211 --name kinto-memcached -d memcached || echo "cannot start memcached, already exists?"
102
+ docker run -p 5432:5432 --name kinto-postgres -e POSTGRES_PASSWORD=postgres -d postgres || echo "cannot start postgres, already exists?"
103
+ sleep 2
104
+ PGPASSWORD=postgres psql -c "CREATE DATABASE testdb ENCODING 'UTF8' TEMPLATE template0;" -U postgres -h localhost
105
+
97
106
  lint: install-dev
98
107
  $(VENV)/bin/ruff check kinto tests docs/conf.py
99
108
  $(VENV)/bin/ruff format --check kinto tests docs/conf.py
@@ -123,6 +132,8 @@ clean:
123
132
  find . -name '*.pyc' -delete
124
133
  find . -name '__pycache__' -type d | xargs rm -fr
125
134
  rm -fr docs/_build/
135
+ docker rm -f kinto-memcached || echo ""
136
+ docker rm -f kinto-postgres || echo ""
126
137
 
127
138
  distclean: clean
128
139
  rm -fr *.egg *.egg-info/ dist/ build/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kinto
3
- Version: 18.1.0
3
+ Version: 18.1.1
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
@@ -10,13 +10,13 @@ attrs==23.2.0
10
10
  # via
11
11
  # jsonschema
12
12
  # referencing
13
- bcrypt==4.1.2
13
+ bcrypt==4.1.3
14
14
  # via -r constraints.in
15
15
  beautifulsoup4==4.12.3
16
16
  # via webtest
17
17
  bravado-core==6.1.1
18
18
  # via -r constraints.in
19
- build==1.1.1
19
+ build==1.2.1
20
20
  # via -r constraints.in
21
21
  certifi==2023.11.17
22
22
  # via
@@ -38,7 +38,7 @@ cornice-swagger==1.0.1
38
38
  # via -r constraints.in
39
39
  coverage==7.4.0
40
40
  # via pytest-cov
41
- dockerflow==2024.3.0
41
+ dockerflow==2024.4.2
42
42
  # via -r constraints.in
43
43
  exceptiongroup==1.2.0
44
44
  # via pytest
@@ -52,7 +52,7 @@ greenlet==3.0.3
52
52
  # sqlalchemy
53
53
  hupper==1.12
54
54
  # via pyramid
55
- idna==3.6
55
+ idna==3.7
56
56
  # via
57
57
  # jsonschema
58
58
  # requests
@@ -70,7 +70,7 @@ jsonpointer==2.4
70
70
  # jsonschema
71
71
  jsonref==1.1.0
72
72
  # via bravado-core
73
- jsonschema==4.21.1
73
+ jsonschema==4.22.0
74
74
  # via
75
75
  # -r constraints.in
76
76
  # bravado-core
@@ -83,7 +83,7 @@ markupsafe==2.1.4
83
83
  # via werkzeug
84
84
  msgpack==1.0.7
85
85
  # via bravado-core
86
- newrelic==9.7.1
86
+ newrelic==9.11.0
87
87
  # via -r constraints.in
88
88
  packaging==23.2
89
89
  # via
@@ -98,13 +98,13 @@ plaster==1.1.2
98
98
  # pyramid
99
99
  plaster-pastedeploy==1.0.1
100
100
  # via pyramid
101
- playwright==1.42.0
101
+ playwright==1.44.0
102
102
  # via -r constraints.in
103
- pluggy==1.3.0
103
+ pluggy==1.5.0
104
104
  # via pytest
105
105
  psycopg2==2.9.9
106
106
  # via -r constraints.in
107
- pyee==11.0.1
107
+ pyee==11.1.0
108
108
  # via playwright
109
109
  pyproject-hooks==1.0.0
110
110
  # via build
@@ -117,18 +117,18 @@ pyramid==2.0.2
117
117
  # pyramid-tm
118
118
  pyramid-mailer==0.15.1
119
119
  # via -r constraints.in
120
- pyramid-multiauth==1.0.1
120
+ pyramid-multiauth==1.0.2
121
121
  # via -r constraints.in
122
122
  pyramid-tm==2.5
123
123
  # via -r constraints.in
124
- pytest==7.4.4
124
+ pytest==8.2.2
125
125
  # via
126
126
  # -r constraints.in
127
127
  # pytest-cache
128
128
  # pytest-cov
129
129
  pytest-cache==1.0
130
130
  # via -r constraints.in
131
- pytest-cov==4.1.0
131
+ pytest-cov==5.0.0
132
132
  # via -r constraints.in
133
133
  python-dateutil==2.9.0.post0
134
134
  # via
@@ -151,7 +151,7 @@ referencing==0.32.1
151
151
  # jsonschema-specifications
152
152
  repoze-sendmail==4.4.1
153
153
  # via pyramid-mailer
154
- requests==2.31.0
154
+ requests==2.32.3
155
155
  # via
156
156
  # -r constraints.in
157
157
  # bravado-core
@@ -163,7 +163,7 @@ rpds-py==0.17.1
163
163
  # via
164
164
  # jsonschema
165
165
  # referencing
166
- ruff==0.3.3
166
+ ruff==0.4.9
167
167
  # via -r constraints.in
168
168
  sentry-sdk==1.39.2
169
169
  # via -r constraints.in
@@ -177,7 +177,7 @@ six==1.16.0
177
177
  # rfc3339-validator
178
178
  soupsieve==2.5
179
179
  # via beautifulsoup4
180
- sqlalchemy==2.0.28
180
+ sqlalchemy==2.0.30
181
181
  # via
182
182
  # -r constraints.in
183
183
  # sentry-sdk
@@ -212,7 +212,7 @@ typing-extensions==4.9.0
212
212
  # swagger-spec-validator
213
213
  uri-template==1.3.0
214
214
  # via jsonschema
215
- urllib3==2.1.0
215
+ urllib3==2.2.2
216
216
  # via
217
217
  # requests
218
218
  # sentry-sdk
@@ -232,7 +232,7 @@ webob==1.8.7
232
232
  # webtest
233
233
  webtest==3.0.0
234
234
  # via -r constraints.in
235
- werkzeug==3.0.1
235
+ werkzeug==3.0.3
236
236
  # via -r constraints.in
237
237
  zope-deprecation==5.0
238
238
  # via pyramid
@@ -119,7 +119,7 @@ Get started!
119
119
 
120
120
  git clone git@github.com:your_name_here/kinto.git
121
121
 
122
- 3. Setup a local PostgreSQL database for the tests (:ref:`more details <postgresql-install>`)::
122
+ 3. Run ``make test-deps``, or setup a local PostgreSQL database (:ref:`more details <postgresql-install>`)::
123
123
 
124
124
  sudo apt-get install postgresql
125
125
  sudo -n -u postgres -s -- psql -c "ALTER USER postgres WITH PASSWORD 'postgres';" -U postgres
@@ -1,4 +1,4 @@
1
- Sphinx==7.2.6
1
+ Sphinx==7.3.7
2
2
  sphinx_rtd_theme==2.0.0
3
3
  docutils==0.20.1
4
4
  sphinxcontrib-httpdomain==1.8.1
@@ -8,5 +8,5 @@ mock==5.1.0
8
8
  webtest==3.0.0
9
9
  cornice==6.1.0
10
10
  pyramid==2.0.2
11
- python-rapidjson==1.16
12
- SQLAlchemy==2.0.28
11
+ python-rapidjson==1.17
12
+ SQLAlchemy==2.0.30
@@ -1058,6 +1058,10 @@ class Resource:
1058
1058
 
1059
1059
  def _extract_filters(self):
1060
1060
  """Extracts filters from QueryString parameters."""
1061
+
1062
+ def is_valid_timestamp(value):
1063
+ return isinstance(value, int) or re.match(r'^"?\d+"?$', str(value))
1064
+
1061
1065
  queryparams = self.request.validated["querystring"]
1062
1066
 
1063
1067
  filters = []
@@ -1090,7 +1094,7 @@ class Resource:
1090
1094
  send_alert(self.request, message, url)
1091
1095
  operator = COMPARISON.LT
1092
1096
 
1093
- if value == "" or not isinstance(value, (int, str, type(None))):
1097
+ if value is not None and not is_valid_timestamp(value):
1094
1098
  raise_invalid(self.request, **error_details)
1095
1099
 
1096
1100
  filters.append(Filter(self.model.modified_field, value, operator))
@@ -1127,7 +1131,7 @@ class Resource:
1127
1131
  error_details["description"] = "Invalid character 0x00"
1128
1132
  raise_invalid(self.request, **error_details)
1129
1133
 
1130
- if field == self.model.modified_field and value == "":
1134
+ if field == self.model.modified_field and not is_valid_timestamp(value):
1131
1135
  raise_invalid(self.request, **error_details)
1132
1136
 
1133
1137
  filters.append(Filter(field, value, operator))
@@ -0,0 +1 @@
1
+ 3.0.3
@@ -0,0 +1 @@
1
+ function u(i){for(var s={},c=i.split(" "),T=0;T<c.length;++T)s[c[T]]=!0;return s}const o={keywords:u("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),cmipVerbs:u("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),compareTypes:u("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),status:u("current deprecated mandatory obsolete"),tags:u("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),storage:u("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),modifier:u("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),accessTypes:u("not-accessible accessible-for-notify read-only read-create read-write"),multiLineStrings:!0};function L(i){var s=i.keywords||o.keywords,c=i.cmipVerbs||o.cmipVerbs,T=i.compareTypes||o.compareTypes,N=i.status||o.status,d=i.tags||o.tags,f=i.storage||o.storage,m=i.modifier||o.modifier,C=i.accessTypes||o.accessTypes,R=i.multiLineStrings||o.multiLineStrings,y=i.indentStatements!==!1,A=/[\|\^]/,E;function D(e,n){var t=e.next();if(t=='"'||t=="'")return n.tokenize=g(t),n.tokenize(e,n);if(/[\[\]\(\){}:=,;]/.test(t))return E=t,"punctuation";if(t=="-"&&e.eat("-"))return e.skipToEnd(),"comment";if(/\d/.test(t))return e.eatWhile(/[\w\.]/),"number";if(A.test(t))return e.eatWhile(A),"operator";e.eatWhile(/[\w\-]/);var r=e.current();return s.propertyIsEnumerable(r)?"keyword":c.propertyIsEnumerable(r)?"variableName":T.propertyIsEnumerable(r)?"atom":N.propertyIsEnumerable(r)?"comment":d.propertyIsEnumerable(r)?"typeName":f.propertyIsEnumerable(r)||m.propertyIsEnumerable(r)||C.propertyIsEnumerable(r)?"modifier":"variableName"}function g(e){return function(n,t){for(var r=!1,l,O=!1;(l=n.next())!=null;){if(l==e&&!r){var I=n.peek();I&&(I=I.toLowerCase(),(I=="b"||I=="h"||I=="o")&&n.next()),O=!0;break}r=!r&&l=="\\"}return(O||!(r||R))&&(t.tokenize=null),"string"}}function p(e,n,t,r,l){this.indented=e,this.column=n,this.type=t,this.align=r,this.prev=l}function a(e,n,t){var r=e.indented;return e.context&&e.context.type=="statement"&&(r=e.context.indented),e.context=new p(r,n,t,null,e.context)}function S(e){var n=e.context.type;return(n==")"||n=="]"||n=="}")&&(e.indented=e.context.indented),e.context=e.context.prev}return{name:"asn1",startState:function(){return{tokenize:null,context:new p(-2,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var t=n.context;if(e.sol()&&(t.align==null&&(t.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;E=null;var r=(n.tokenize||D)(e,n);if(r=="comment")return r;if(t.align==null&&(t.align=!0),(E==";"||E==":"||E==",")&&t.type=="statement")S(n);else if(E=="{")a(n,e.column(),"}");else if(E=="[")a(n,e.column(),"]");else if(E=="(")a(n,e.column(),")");else if(E=="}"){for(;t.type=="statement";)t=S(n);for(t.type=="}"&&(t=S(n));t.type=="statement";)t=S(n)}else E==t.type?S(n):y&&((t.type=="}"||t.type=="top")&&E!=";"||t.type=="statement"&&E=="newstatement")&&a(n,e.column(),"statement");return n.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"--"}}}}export{L as asn1};
@@ -0,0 +1 @@
1
+ var d=["false","nil","true"],l=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],u=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],p=["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"],f=o(d),m=o(l),h=o(u),y=o(p),b=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,v=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,g=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,k=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function s(t,e){if(t.eatSpace()||t.eat(","))return["space",null];if(t.match(v))return[null,"number"];if(t.match(g))return[null,"string.special"];if(t.eat(/^"/))return(e.tokenize=x)(t,e);if(t.eat(/^[(\[{]/))return["open","bracket"];if(t.eat(/^[)\]}]/))return["close","bracket"];if(t.eat(/^;/))return t.skipToEnd(),["space","comment"];if(t.eat(/^[#'@^`~]/))return[null,"meta"];var r=t.match(k),n=r&&r[0];return n?n==="comment"&&e.lastToken==="("?(e.tokenize=w)(t,e):a(n,f)||n.charAt(0)===":"?["symbol","atom"]:a(n,m)||a(n,h)?["symbol","keyword"]:e.lastToken==="("?["symbol","builtin"]:["symbol","variable"]:(t.next(),t.eatWhile(function(i){return!a(i,b)}),[null,"error"])}function x(t,e){for(var r=!1,n;n=t.next();){if(n==='"'&&!r){e.tokenize=s;break}r=!r&&n==="\\"}return[null,"string"]}function w(t,e){for(var r=1,n;n=t.next();)if(n===")"&&r--,n==="("&&r++,r===0){t.backUp(1),e.tokenize=s;break}return["space","comment"]}function o(t){for(var e={},r=0;r<t.length;++r)e[t[r]]=!0;return e}function a(t,e){if(e instanceof RegExp)return e.test(t);if(e instanceof Object)return e.propertyIsEnumerable(t)}const q={name:"clojure",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastToken:null,tokenize:s}},token:function(t,e){t.sol()&&typeof e.ctx.indentTo!="number"&&(e.ctx.indentTo=e.ctx.start+1);var r=e.tokenize(t,e),n=r[0],i=r[1],c=t.current();return n!=="space"&&(e.lastToken==="("&&e.ctx.indentTo===null?n==="symbol"&&a(c,y)?e.ctx.indentTo=e.ctx.start+t.indentUnit:e.ctx.indentTo="next":e.ctx.indentTo==="next"&&(e.ctx.indentTo=t.column()),e.lastToken=c),n==="open"?e.ctx={prev:e.ctx,start:t.column(),indentTo:null}:n==="close"&&(e.ctx=e.ctx.prev||e.ctx),i},indent:function(t){var e=t.ctx.indentTo;return typeof e=="number"?e:t.ctx.start+1},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"},autocomplete:[].concat(d,l,u)}};export{q as clojure};
@@ -0,0 +1 @@
1
+ function y(i){i={...ae,...i};var l=i.inline,m=i.tokenHooks,b=i.documentTypes||{},G=i.mediaTypes||{},J=i.mediaFeatures||{},Q=i.mediaValueKeywords||{},O=i.propertyKeywords||{},F=i.nonStandardPropertyKeywords||{},R=i.fontProperties||{},ee=i.counterDescriptors||{},N=i.colorKeywords||{},V=i.valueKeywords||{},g=i.allowNested,re=i.lineComment,oe=i.supportsAtComponent===!0,W=i.highlightNonStandardPropertyKeywords!==!1,w,n;function c(e,o){return w=o,e}function ie(e,o){var r=e.next();if(m[r]){var t=m[r](e,o);if(t!==!1)return t}if(r=="@")return e.eatWhile(/[\w\\\-]/),c("def",e.current());if(r=="="||(r=="~"||r=="|")&&e.eat("="))return c(null,"compare");if(r=='"'||r=="'")return o.tokenize=$(r),o.tokenize(e,o);if(r=="#")return e.eatWhile(/[\w\\\-]/),c("atom","hash");if(r=="!")return e.match(/^\s*\w*/),c("keyword","important");if(/\d/.test(r)||r=="."&&e.eat(/\d/))return e.eatWhile(/[\w.%]/),c("number","unit");if(r==="-"){if(/[\d.]/.test(e.peek()))return e.eatWhile(/[\w.%]/),c("number","unit");if(e.match(/^-[\w\\\-]*/))return e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?c("def","variable-definition"):c("variableName","variable");if(e.match(/^\w+-/))return c("meta","meta")}else return/[,+>*\/]/.test(r)?c(null,"select-op"):r=="."&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?c("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?c(null,r):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(o.tokenize=te),c("variableName.function","variable")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),c("property","word")):c(null,null)}function $(e){return function(o,r){for(var t=!1,d;(d=o.next())!=null;){if(d==e&&!t){e==")"&&o.backUp(1);break}t=!t&&d=="\\"}return(d==e||!t&&e!=")")&&(r.tokenize=null),c("string","string")}}function te(e,o){return e.next(),e.match(/^\s*[\"\')]/,!1)?o.tokenize=null:o.tokenize=$(")"),c(null,"(")}function D(e,o,r){this.type=e,this.indent=o,this.prev=r}function s(e,o,r,t){return e.context=new D(r,o.indentation()+(t===!1?0:o.indentUnit),e.context),r}function u(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function k(e,o,r){return a[r.context.type](e,o,r)}function h(e,o,r,t){for(var d=t||1;d>0;d--)r.context=r.context.prev;return k(e,o,r)}function L(e){var o=e.current().toLowerCase();V.hasOwnProperty(o)?n="atom":N.hasOwnProperty(o)?n="keyword":n="variable"}var a={};return a.top=function(e,o,r){if(e=="{")return s(r,o,"block");if(e=="}"&&r.context.prev)return u(r);if(oe&&/@component/i.test(e))return s(r,o,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return s(r,o,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return s(r,o,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&e.charAt(0)=="@")return s(r,o,"at");if(e=="hash")n="builtin";else if(e=="word")n="tag";else{if(e=="variable-definition")return"maybeprop";if(e=="interpolation")return s(r,o,"interpolation");if(e==":")return"pseudo";if(g&&e=="(")return s(r,o,"parens")}return r.context.type},a.block=function(e,o,r){if(e=="word"){var t=o.current().toLowerCase();return O.hasOwnProperty(t)?(n="property","maybeprop"):F.hasOwnProperty(t)?(n=W?"string.special":"property","maybeprop"):g?(n=o.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(n="error","maybeprop")}else return e=="meta"?"block":!g&&(e=="hash"||e=="qualifier")?(n="error","block"):a.top(e,o,r)},a.maybeprop=function(e,o,r){return e==":"?s(r,o,"prop"):k(e,o,r)},a.prop=function(e,o,r){if(e==";")return u(r);if(e=="{"&&g)return s(r,o,"propBlock");if(e=="}"||e=="{")return h(e,o,r);if(e=="(")return s(r,o,"parens");if(e=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(o.current()))n="error";else if(e=="word")L(o);else if(e=="interpolation")return s(r,o,"interpolation");return"prop"},a.propBlock=function(e,o,r){return e=="}"?u(r):e=="word"?(n="property","maybeprop"):r.context.type},a.parens=function(e,o,r){return e=="{"||e=="}"?h(e,o,r):e==")"?u(r):e=="("?s(r,o,"parens"):e=="interpolation"?s(r,o,"interpolation"):(e=="word"&&L(o),"parens")},a.pseudo=function(e,o,r){return e=="meta"?"pseudo":e=="word"?(n="variableName.constant",r.context.type):k(e,o,r)},a.documentTypes=function(e,o,r){return e=="word"&&b.hasOwnProperty(o.current())?(n="tag",r.context.type):a.atBlock(e,o,r)},a.atBlock=function(e,o,r){if(e=="(")return s(r,o,"atBlock_parens");if(e=="}"||e==";")return h(e,o,r);if(e=="{")return u(r)&&s(r,o,g?"block":"top");if(e=="interpolation")return s(r,o,"interpolation");if(e=="word"){var t=o.current().toLowerCase();t=="only"||t=="not"||t=="and"||t=="or"?n="keyword":G.hasOwnProperty(t)?n="attribute":J.hasOwnProperty(t)?n="property":Q.hasOwnProperty(t)?n="keyword":O.hasOwnProperty(t)?n="property":F.hasOwnProperty(t)?n=W?"string.special":"property":V.hasOwnProperty(t)?n="atom":N.hasOwnProperty(t)?n="keyword":n="error"}return r.context.type},a.atComponentBlock=function(e,o,r){return e=="}"?h(e,o,r):e=="{"?u(r)&&s(r,o,g?"block":"top",!1):(e=="word"&&(n="error"),r.context.type)},a.atBlock_parens=function(e,o,r){return e==")"?u(r):e=="{"||e=="}"?h(e,o,r,2):a.atBlock(e,o,r)},a.restricted_atBlock_before=function(e,o,r){return e=="{"?s(r,o,"restricted_atBlock"):e=="word"&&r.stateArg=="@counter-style"?(n="variable","restricted_atBlock_before"):k(e,o,r)},a.restricted_atBlock=function(e,o,r){return e=="}"?(r.stateArg=null,u(r)):e=="word"?(r.stateArg=="@font-face"&&!R.hasOwnProperty(o.current().toLowerCase())||r.stateArg=="@counter-style"&&!ee.hasOwnProperty(o.current().toLowerCase())?n="error":n="property","maybeprop"):"restricted_atBlock"},a.keyframes=function(e,o,r){return e=="word"?(n="variable","keyframes"):e=="{"?s(r,o,"top"):k(e,o,r)},a.at=function(e,o,r){return e==";"?u(r):e=="{"||e=="}"?h(e,o,r):(e=="word"?n="tag":e=="hash"&&(n="builtin"),"at")},a.interpolation=function(e,o,r){return e=="}"?u(r):e=="{"||e==";"?h(e,o,r):(e=="word"?n="variable":e!="variable"&&e!="("&&e!=")"&&(n="error"),"interpolation")},{name:i.name,startState:function(){return{tokenize:null,state:l?"block":"top",stateArg:null,context:new D(l?"block":"top",0,null)}},token:function(e,o){if(!o.tokenize&&e.eatSpace())return null;var r=(o.tokenize||ie)(e,o);return r&&typeof r=="object"&&(w=r[1],r=r[0]),n=r,w!="comment"&&(o.state=a[o.state](w,e,o)),n},indent:function(e,o,r){var t=e.context,d=o&&o.charAt(0),q=t.indent;return t.type=="prop"&&(d=="}"||d==")")&&(t=t.prev),t.prev&&(d=="}"&&(t.type=="block"||t.type=="top"||t.type=="interpolation"||t.type=="restricted_atBlock")?(t=t.prev,q=t.indent):(d==")"&&(t.type=="parens"||t.type=="atBlock_parens")||d=="{"&&(t.type=="at"||t.type=="atBlock"))&&(q=Math.max(0,t.indent-r.unit))),q},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:re,block:{open:"/*",close:"*/"}},autocomplete:M}}}function p(i){for(var l={},m=0;m<i.length;++m)l[i[m].toLowerCase()]=!0;return l}var H=["domain","regexp","url","url-prefix"],C=p(H),X=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],v=p(X),Y=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme","dynamic-range","video-dynamic-range"],x=p(Y),E=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light","standard","high"],B=p(E),S=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],z=p(S),Z=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],K=p(Z),U=["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],P=p(U),ne=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],I=p(ne),T=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],_=p(T),A=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],j=p(A),M=H.concat(X).concat(Y).concat(E).concat(S).concat(Z).concat(T).concat(A);const le={properties:S,colors:T,fonts:U,values:A,all:M},ae={documentTypes:C,mediaTypes:v,mediaFeatures:x,mediaValueKeywords:B,propertyKeywords:z,nonStandardPropertyKeywords:K,fontProperties:P,counterDescriptors:I,colorKeywords:_,valueKeywords:j,tokenHooks:{"/":function(i,l){return i.eat("*")?(l.tokenize=f,f(i,l)):!1}}},se=y({name:"css"});function f(i,l){for(var m=!1,b;(b=i.next())!=null;){if(m&&b=="/"){l.tokenize=null;break}m=b=="*"}return["comment","comment"]}const ce=y({name:"scss",mediaTypes:v,mediaFeatures:x,mediaValueKeywords:B,propertyKeywords:z,nonStandardPropertyKeywords:K,colorKeywords:_,valueKeywords:j,fontProperties:P,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(i,l){return i.eat("/")?(i.skipToEnd(),["comment","comment"]):i.eat("*")?(l.tokenize=f,f(i,l)):["operator","operator"]},":":function(i){return i.match(/^\s*\{/,!1)?[null,null]:!1},$:function(i){return i.match(/^[\w-]+/),i.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName.special","variable"]},"#":function(i){return i.eat("{")?[null,"interpolation"]:!1}}}),de=y({name:"less",mediaTypes:v,mediaFeatures:x,mediaValueKeywords:B,propertyKeywords:z,nonStandardPropertyKeywords:K,colorKeywords:_,valueKeywords:j,fontProperties:P,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(i,l){return i.eat("/")?(i.skipToEnd(),["comment","comment"]):i.eat("*")?(l.tokenize=f,f(i,l)):["operator","operator"]},"@":function(i){return i.eat("{")?[null,"interpolation"]:i.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)?!1:(i.eatWhile(/[\w\\\-]/),i.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName","variable"])},"&":function(){return["atom","atom"]}}}),ue=y({name:"gss",documentTypes:C,mediaTypes:v,mediaFeatures:x,propertyKeywords:z,nonStandardPropertyKeywords:K,fontProperties:P,counterDescriptors:I,colorKeywords:_,valueKeywords:j,supportsAtComponent:!0,tokenHooks:{"/":function(i,l){return i.eat("*")?(l.tokenize=f,f(i,l)):!1}}});export{se as css,ue as gss,le as keywords,de as less,y as mkCSS,ce as sCSS};