nocek 0.1.0__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.
Files changed (756) hide show
  1. nocek-0.1.0/.github/workflows/publish.yml +49 -0
  2. nocek-0.1.0/.gitignore +27 -0
  3. nocek-0.1.0/LICENSE +75 -0
  4. nocek-0.1.0/PKG-INFO +233 -0
  5. nocek-0.1.0/README.md +194 -0
  6. nocek-0.1.0/docs/releasing.md +44 -0
  7. nocek-0.1.0/docs/roadmap.md +28 -0
  8. nocek-0.1.0/install.ps1 +53 -0
  9. nocek-0.1.0/install.sh +48 -0
  10. nocek-0.1.0/pyproject.toml +102 -0
  11. nocek-0.1.0/src/nocek/__init__.py +3 -0
  12. nocek-0.1.0/src/nocek/__main__.py +5 -0
  13. nocek-0.1.0/src/nocek/cli.py +165 -0
  14. nocek-0.1.0/src/nocek/core/__init__.py +5 -0
  15. nocek-0.1.0/src/nocek/core/_data.py +13 -0
  16. nocek-0.1.0/src/nocek/core/audio.py +44 -0
  17. nocek-0.1.0/src/nocek/core/batdetect.py +320 -0
  18. nocek-0.1.0/src/nocek/core/battybird.py +383 -0
  19. nocek-0.1.0/src/nocek/core/consensus.py +190 -0
  20. nocek-0.1.0/src/nocek/core/data/batdetect2_classes.json +31 -0
  21. nocek-0.1.0/src/nocek/core/data/battybird_labels.json +34 -0
  22. nocek-0.1.0/src/nocek/core/data/comparison_groups.json +9 -0
  23. nocek-0.1.0/src/nocek/core/data/key_bands.json +24 -0
  24. nocek-0.1.0/src/nocek/core/data/regions.json +30 -0
  25. nocek-0.1.0/src/nocek/core/data/taxa.json +29 -0
  26. nocek-0.1.0/src/nocek/core/detection.py +336 -0
  27. nocek-0.1.0/src/nocek/core/key.py +159 -0
  28. nocek-0.1.0/src/nocek/core/nights.py +15 -0
  29. nocek-0.1.0/src/nocek/core/opinion.py +78 -0
  30. nocek-0.1.0/src/nocek/core/pipeline.py +194 -0
  31. nocek-0.1.0/src/nocek/core/region.py +116 -0
  32. nocek-0.1.0/src/nocek/core/spectrogram.py +70 -0
  33. nocek-0.1.0/src/nocek/core/taxonomy.py +77 -0
  34. nocek-0.1.0/src/nocek/icons/nocek.icns +0 -0
  35. nocek-0.1.0/src/nocek/icons/nocek.ico +0 -0
  36. nocek-0.1.0/src/nocek/icons/nocek.png +0 -0
  37. nocek-0.1.0/src/nocek/py.typed +0 -0
  38. nocek-0.1.0/src/nocek/recorders/__init__.py +5 -0
  39. nocek-0.1.0/src/nocek/recorders/base.py +108 -0
  40. nocek-0.1.0/src/nocek/recorders/checks.py +84 -0
  41. nocek-0.1.0/src/nocek/recorders/pippyg.py +98 -0
  42. nocek-0.1.0/src/nocek/recorders/registry.py +8 -0
  43. nocek-0.1.0/src/nocek/recorders/sun.py +89 -0
  44. nocek-0.1.0/src/nocek/shortcut.py +192 -0
  45. nocek-0.1.0/src/nocek/storage/__init__.py +1 -0
  46. nocek-0.1.0/src/nocek/storage/database.py +72 -0
  47. nocek-0.1.0/src/nocek/storage/importer.py +270 -0
  48. nocek-0.1.0/src/nocek/storage/library.py +72 -0
  49. nocek-0.1.0/src/nocek/storage/migrations/0001_initial.sql +92 -0
  50. nocek-0.1.0/src/nocek/storage/migrations/0002_site_numbers.sql +28 -0
  51. nocek-0.1.0/src/nocek/storage/repository.py +494 -0
  52. nocek-0.1.0/src/nocek/storage/serialize.py +304 -0
  53. nocek-0.1.0/src/nocek/storage/settings.py +123 -0
  54. nocek-0.1.0/src/nocek/storage/summaries.py +322 -0
  55. nocek-0.1.0/src/nocek/web/__init__.py +1 -0
  56. nocek-0.1.0/src/nocek/web/api.py +190 -0
  57. nocek-0.1.0/src/nocek/web/app.py +91 -0
  58. nocek-0.1.0/src/nocek/web/dialog.py +101 -0
  59. nocek-0.1.0/src/nocek/web/errors.py +25 -0
  60. nocek-0.1.0/src/nocek/web/export_api.py +152 -0
  61. nocek-0.1.0/src/nocek/web/folders.py +97 -0
  62. nocek-0.1.0/src/nocek/web/i18n.py +91 -0
  63. nocek-0.1.0/src/nocek/web/jobs.py +427 -0
  64. nocek-0.1.0/src/nocek/web/jobs_api.py +72 -0
  65. nocek-0.1.0/src/nocek/web/library_api.py +465 -0
  66. nocek-0.1.0/src/nocek/web/locales/de.json +426 -0
  67. nocek-0.1.0/src/nocek/web/locales/en.json +426 -0
  68. nocek-0.1.0/src/nocek/web/locales/pl.json +450 -0
  69. nocek-0.1.0/src/nocek/web/media.py +119 -0
  70. nocek-0.1.0/src/nocek/web/media_api.py +105 -0
  71. nocek-0.1.0/src/nocek/web/security.py +51 -0
  72. nocek-0.1.0/src/nocek/web/state.py +60 -0
  73. nocek-0.1.0/src/nocek/web/static/favicon.png +0 -0
  74. nocek-0.1.0/src/nocek/web/static/index.html +23 -0
  75. nocek-0.1.0/src/nocek/web/static/js/api.js +26 -0
  76. nocek-0.1.0/src/nocek/web/static/js/app.js +34 -0
  77. nocek-0.1.0/src/nocek/web/static/js/bat-colours.js +38 -0
  78. nocek-0.1.0/src/nocek/web/static/js/calendar.js +151 -0
  79. nocek-0.1.0/src/nocek/web/static/js/dialog.js +20 -0
  80. nocek-0.1.0/src/nocek/web/static/js/dom.js +35 -0
  81. nocek-0.1.0/src/nocek/web/static/js/folder-picker.js +71 -0
  82. nocek-0.1.0/src/nocek/web/static/js/header.js +80 -0
  83. nocek-0.1.0/src/nocek/web/static/js/i18n.js +69 -0
  84. nocek-0.1.0/src/nocek/web/static/js/jobs.js +122 -0
  85. nocek-0.1.0/src/nocek/web/static/js/magma.js +10 -0
  86. nocek-0.1.0/src/nocek/web/static/js/names.js +44 -0
  87. nocek-0.1.0/src/nocek/web/static/js/nightbar.js +330 -0
  88. nocek-0.1.0/src/nocek/web/static/js/notice.js +27 -0
  89. nocek-0.1.0/src/nocek/web/static/js/quit.js +43 -0
  90. nocek-0.1.0/src/nocek/web/static/js/router.js +33 -0
  91. nocek-0.1.0/src/nocek/web/static/js/spectrogram.js +175 -0
  92. nocek-0.1.0/src/nocek/web/static/js/theme-early.js +12 -0
  93. nocek-0.1.0/src/nocek/web/static/js/theme.js +28 -0
  94. nocek-0.1.0/src/nocek/web/static/js/views/devices.js +90 -0
  95. nocek-0.1.0/src/nocek/web/static/js/views/home.js +318 -0
  96. nocek-0.1.0/src/nocek/web/static/js/views/import.js +325 -0
  97. nocek-0.1.0/src/nocek/web/static/js/views/recording.js +277 -0
  98. nocek-0.1.0/src/nocek/web/static/js/views/settings.js +137 -0
  99. nocek-0.1.0/src/nocek/web/static/js/views/sites.js +177 -0
  100. nocek-0.1.0/src/nocek/web/static/js/views/welcome.js +88 -0
  101. nocek-0.1.0/src/nocek/web/static/style.css +464 -0
  102. nocek-0.1.0/src/nocek/web/static/vendor/README.txt +2 -0
  103. nocek-0.1.0/src/nocek/web/static/vendor/lucide/LICENSE +43 -0
  104. nocek-0.1.0/src/nocek/web/static/vendor/lucide/audio-lines.svg +20 -0
  105. nocek-0.1.0/src/nocek/web/static/vendor/lucide/check.svg +15 -0
  106. nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-down.svg +15 -0
  107. nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-left.svg +15 -0
  108. nocek-0.1.0/src/nocek/web/static/vendor/lucide/chevron-right.svg +15 -0
  109. nocek-0.1.0/src/nocek/web/static/vendor/lucide/circle-alert.svg +17 -0
  110. nocek-0.1.0/src/nocek/web/static/vendor/lucide/download.svg +17 -0
  111. nocek-0.1.0/src/nocek/web/static/vendor/lucide/ellipsis.svg +17 -0
  112. nocek-0.1.0/src/nocek/web/static/vendor/lucide/folder-open.svg +15 -0
  113. nocek-0.1.0/src/nocek/web/static/vendor/lucide/info.svg +17 -0
  114. nocek-0.1.0/src/nocek/web/static/vendor/lucide/languages.svg +20 -0
  115. nocek-0.1.0/src/nocek/web/static/vendor/lucide/map-pin.svg +16 -0
  116. nocek-0.1.0/src/nocek/web/static/vendor/lucide/monitor.svg +17 -0
  117. nocek-0.1.0/src/nocek/web/static/vendor/lucide/moon.svg +15 -0
  118. nocek-0.1.0/src/nocek/web/static/vendor/lucide/pause.svg +16 -0
  119. nocek-0.1.0/src/nocek/web/static/vendor/lucide/play.svg +15 -0
  120. nocek-0.1.0/src/nocek/web/static/vendor/lucide/power.svg +16 -0
  121. nocek-0.1.0/src/nocek/web/static/vendor/lucide/radio.svg +19 -0
  122. nocek-0.1.0/src/nocek/web/static/vendor/lucide/settings.svg +16 -0
  123. nocek-0.1.0/src/nocek/web/static/vendor/lucide/sun-moon.svg +19 -0
  124. nocek-0.1.0/src/nocek/web/static/vendor/lucide/sun.svg +23 -0
  125. nocek-0.1.0/src/nocek/web/static/vendor/lucide/x.svg +16 -0
  126. nocek-0.1.0/src/nocek/web/static/vendor/lucide/zoom-in.svg +18 -0
  127. nocek-0.1.0/src/nocek/web/static/vendor/lucide/zoom-out.svg +17 -0
  128. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/LICENSE.md +7 -0
  129. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.26QE47KB.js +12 -0
  130. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2BXLTQVW.js +41 -0
  131. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2E2VZMOR.js +121 -0
  132. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2FVCYQY4.js +30 -0
  133. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2LXKNNNE.js +13 -0
  134. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2NOGQWD2.js +64 -0
  135. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2NV6QW6C.js +127 -0
  136. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2OUDDW5N.js +34 -0
  137. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2QMPIFI4.js +211 -0
  138. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2SO23SX3.js +72 -0
  139. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2WDGLBJO.js +29 -0
  140. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.2YEETXBR.js +112 -0
  141. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3774FK3E.js +29 -0
  142. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3BILHKLX.js +301 -0
  143. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3H2FQERJ.js +25 -0
  144. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3MALJW2P.js +29 -0
  145. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3MSWQ3RG.js +20 -0
  146. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.3NKIHICW.js +12 -0
  147. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.43IMJ6LM.js +29 -0
  148. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.457WG26C.js +440 -0
  149. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.46NHROTP.js +2239 -0
  150. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4AI6OCVC.js +261 -0
  151. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4EC7IRRU.js +353 -0
  152. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4IALDZ4Y.js +13 -0
  153. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4LIBWWJL.js +18 -0
  154. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4MQTK254.js +12 -0
  155. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4OSDOJJ4.js +312 -0
  156. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4UDEZ2KB.js +27 -0
  157. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4XYGFHPR.js +99 -0
  158. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.4ZAKP7NY.js +12 -0
  159. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.55AH5UAX.js +76 -0
  160. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5FPZSTUW.js +27 -0
  161. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5H6HB774.js +30 -0
  162. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5JBQCQFB.js +92 -0
  163. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5KKHTQSP.js +15 -0
  164. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5PFAYAIK.js +15 -0
  165. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5VKLVAP2.js +330 -0
  166. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.5ZSSLK3M.js +68 -0
  167. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6CIAVEBC.js +65 -0
  168. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6FQNTW2R.js +32 -0
  169. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6J5ZEH6X.js +30 -0
  170. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6SNQOYNK.js +61 -0
  171. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6TNHHCAM.js +37 -0
  172. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6VIHFQLB.js +15 -0
  173. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6VPDWW2I.js +274 -0
  174. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.6ZVWWDQT.js +30 -0
  175. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7HGYKBWW.js +94 -0
  176. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7QISORGK.js +29 -0
  177. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7RXXO7LR.js +27 -0
  178. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.7ZCFTSGG.js +32 -0
  179. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.A5622CLY.js +209 -0
  180. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.A6PE4UC7.js +27 -0
  181. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AAHO5GAS.js +32 -0
  182. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AB2K5S2N.js +15 -0
  183. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AG44H7MD.js +12 -0
  184. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AJQ3S5VI.js +29 -0
  185. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AOZFN6E7.js +147 -0
  186. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AP3JK77D.js +184 -0
  187. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.AQZVKFHG.js +33 -0
  188. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ASU4ZOK4.js +235 -0
  189. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.B3QSBNFD.js +89 -0
  190. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.B6O732C7.js +31 -0
  191. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BAKBSVVU.js +27 -0
  192. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BAY6RJD3.js +30 -0
  193. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BGEID5TE.js +70 -0
  194. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BKE5EYM3.js +274 -0
  195. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BLGT2UQZ.js +27 -0
  196. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BMO76VKZ.js +12 -0
  197. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BOYYUMGV.js +256 -0
  198. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BQNDCXAL.js +51 -0
  199. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BSKW43C6.js +247 -0
  200. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BUCKADPY.js +41 -0
  201. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.BZMNT3VX.js +13 -0
  202. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.C435GZCM.js +118 -0
  203. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CCRRQN4H.js +92 -0
  204. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CEY3XO3U.js +30 -0
  205. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CV35G2DF.js +305 -0
  206. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CXF4H6Y3.js +117 -0
  207. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.CYF6RIMN.js +145 -0
  208. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D2XOEELP.js +27 -0
  209. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5FEZLQU.js +42 -0
  210. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5HA4OFX.js +189 -0
  211. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D5YFE5NT.js +1 -0
  212. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D6GXWYLR.js +93 -0
  213. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D7J2HJDE.js +12 -0
  214. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.D7T5MUIJ.js +395 -0
  215. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DEXB7B6F.js +547 -0
  216. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DITA2S5A.js +80 -0
  217. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DL7HG4WM.js +23 -0
  218. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DMDEL2LT.js +136 -0
  219. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DOVAIU4B.js +264 -0
  220. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.DP5YIFD7.js +13 -0
  221. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.E2VSSWZB.js +30 -0
  222. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ECEQUBWG.js +29 -0
  223. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EF25YJJE.js +13 -0
  224. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EFKLEU6F.js +1922 -0
  225. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EFUXUR2V.js +34 -0
  226. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EIWUDXXU.js +1333 -0
  227. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EP5NMLNE.js +101 -0
  228. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EUQGFY4Z.js +338 -0
  229. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.EV5QZWZG.js +155 -0
  230. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F25QOBDY.js +18 -0
  231. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F2PHWUN2.js +550 -0
  232. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.F4JHOXPG.js +122 -0
  233. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FG2PKHMT.js +153 -0
  234. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FMGPE4WI.js +17 -0
  235. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FNFKITIN.js +25 -0
  236. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FV2UJLMK.js +15 -0
  237. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.FYKN76UA.js +12 -0
  238. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.G6XOOSBC.js +65 -0
  239. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GDKEEBXF.js +94 -0
  240. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GDWSLLNY.js +85 -0
  241. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GJBQN6LP.js +31 -0
  242. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GNSEW4OW.js +33 -0
  243. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GWSUX3V5.js +43 -0
  244. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.GYYOD525.js +89 -0
  245. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.H23DVATU.js +36 -0
  246. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.H7TA73OO.js +13 -0
  247. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HD5OAVHA.js +34 -0
  248. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HE4U2ARF.js +228 -0
  249. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HGBRCPUS.js +55 -0
  250. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HJ65SLMP.js +51 -0
  251. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HJQBZY2G.js +372 -0
  252. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HKMBVADD.js +201 -0
  253. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HLGGDMDY.js +27 -0
  254. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HNCFWHCC.js +138 -0
  255. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HOKYDFUG.js +124 -0
  256. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HPULLNVR.js +12 -0
  257. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HU5FIEKB.js +173 -0
  258. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.HYVJ2NPG.js +224 -0
  259. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.I2Y4E7B6.js +94 -0
  260. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.I7YQOYV2.js +30 -0
  261. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ICDCAGCX.js +24 -0
  262. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IHXCBN37.js +95 -0
  263. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IIHGIRPB.js +12 -0
  264. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IJOBO25X.js +32 -0
  265. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IOZQCLLD.js +26 -0
  266. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IPQSINJJ.js +32 -0
  267. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IX2GQ2J6.js +342 -0
  268. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.IYKD6SDL.js +315 -0
  269. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J2WRH4YL.js +144 -0
  270. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J4UHUULC.js +184 -0
  271. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.J7EXAHCE.js +167 -0
  272. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JATRSH7G.js +27 -0
  273. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JB5Y2AN3.js +34 -0
  274. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JBSQSXSP.js +108 -0
  275. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JHZRD2LV.js +60 -0
  276. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JJKKSYRO.js +37 -0
  277. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JOAOXII7.js +29 -0
  278. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JTOY5KP3.js +12 -0
  279. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.JWREXNHC.js +30 -0
  280. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.K5EDTD7G.js +48 -0
  281. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.K5Q2EBKV.js +77 -0
  282. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KBLB7M2I.js +956 -0
  283. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KBS6YHTA.js +1 -0
  284. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KGCSF52Q.js +29 -0
  285. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KH7MR2OK.js +98 -0
  286. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KJ34WZZX.js +27 -0
  287. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KJKGFBJH.js +452 -0
  288. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KKI7M5DP.js +158 -0
  289. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KNPPWD7S.js +32 -0
  290. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KO4RVYVT.js +58 -0
  291. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KSVLZZAC.js +84 -0
  292. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.KWDPKKFO.js +46 -0
  293. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L2PH6XPF.js +47 -0
  294. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L6CIKOFQ.js +55 -0
  295. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.L7UUCOPZ.js +318 -0
  296. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LAIHMICP.js +241 -0
  297. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LBLI4KS5.js +353 -0
  298. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LCFSCRUJ.js +13 -0
  299. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LD7WPEY6.js +27 -0
  300. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LMUGFDHU.js +27 -0
  301. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LN7M2NWC.js +980 -0
  302. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LNFTFTSZ.js +77 -0
  303. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LOCSL3WJ.js +656 -0
  304. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LPHX3BNP.js +92 -0
  305. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.LRYJ2M5H.js +24 -0
  306. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M3V3HAFX.js +339 -0
  307. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M6MK4JNZ.js +189 -0
  308. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.M7O5VY4E.js +12 -0
  309. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MBU7SJFC.js +13 -0
  310. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MEATLWHD.js +1 -0
  311. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MF234WAF.js +13 -0
  312. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MGSBRQWA.js +27 -0
  313. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MHOTNIZ4.js +27 -0
  314. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MHY5F46I.js +417 -0
  315. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MO2KS3JW.js +239 -0
  316. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MOCFCD22.js +311 -0
  317. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MPFW6BBX.js +33 -0
  318. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MQODJ75V.js +13 -0
  319. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MT4KGKUD.js +29 -0
  320. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.MYS3OD37.js +13 -0
  321. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.N2TXQSKF.js +1 -0
  322. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NDZDW54F.js +287 -0
  323. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NH3YPZ5E.js +29 -0
  324. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NJV43B2Z.js +29 -0
  325. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NR2LFKJE.js +44 -0
  326. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NS4E73TC.js +15 -0
  327. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NSSMHWNA.js +13 -0
  328. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NT6HDXPW.js +29 -0
  329. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NWZSEH5M.js +122 -0
  330. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NY2PQ35L.js +13 -0
  331. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NY7ZFHLS.js +27 -0
  332. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.NZNAY3HQ.js +303 -0
  333. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.O3FF2LGE.js +29 -0
  334. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.O6IZ4I7T.js +34 -0
  335. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ONMWPE2G.js +75 -0
  336. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OUXOGF7E.js +480 -0
  337. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OVHJANOP.js +29 -0
  338. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.OZ5VT3R5.js +31 -0
  339. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.P3CFHBKJ.js +27 -0
  340. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PIQFM4OJ.js +31 -0
  341. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PP5RFEZX.js +109 -0
  342. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PPALL6KG.js +169 -0
  343. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PSADQYP2.js +66 -0
  344. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PUN7URRY.js +290 -0
  345. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PX3HMKF7.js +12 -0
  346. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PZ23AOZF.js +166 -0
  347. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.PZAN6FPN.js +32 -0
  348. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q23D34AW.js +98 -0
  349. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q4QAYIGQ.js +27 -0
  350. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Q6XMGFWJ.js +12 -0
  351. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QD7TM6E5.js +73 -0
  352. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QG644JIK.js +98 -0
  353. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QGF6GJ2E.js +227 -0
  354. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QKPMXIMG.js +27 -0
  355. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QNZSHXSH.js +27 -0
  356. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QVJVDGCX.js +364 -0
  357. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.QXPWLPKE.js +29 -0
  358. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.R62LX7HF.js +27 -0
  359. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.R7QX4M6R.js +47 -0
  360. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.REBCVBVJ.js +272 -0
  361. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.REHZ4JRM.js +29 -0
  362. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RGZE6BBW.js +27 -0
  363. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RKPV5RWB.js +85 -0
  364. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RMZ7BVDM.js +10 -0
  365. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RO57OJZD.js +30 -0
  366. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ROEDV6HF.js +27 -0
  367. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RPQJAXXR.js +21 -0
  368. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RQUTRD4U.js +13 -0
  369. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RRKG3AQG.js +34 -0
  370. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RV5MEM4L.js +132 -0
  371. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RWNXKUCF.js +66 -0
  372. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.RXATNCKH.js +363 -0
  373. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.S3XWKRZZ.js +27 -0
  374. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SD34Q4G4.js +29 -0
  375. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SG72JPY2.js +81 -0
  376. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SJUGO6JB.js +105 -0
  377. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SKLR37OM.js +13 -0
  378. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SLTXS4GR.js +248 -0
  379. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SUZGY3IK.js +13 -0
  380. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SUZTEJNL.js +88 -0
  381. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SVFNJFHB.js +270 -0
  382. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.SXR5N7XU.js +1376 -0
  383. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.T6GGTYHD.js +13 -0
  384. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.T7CCLJ4F.js +27 -0
  385. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TDR7XG37.js +30 -0
  386. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TLFIX76K.js +340 -0
  387. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.TSARWN6S.js +275 -0
  388. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.U36KZLSQ.js +12 -0
  389. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UDRJMWVZ.js +55 -0
  390. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UIKY7WPI.js +72 -0
  391. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UK2M7WPO.js +29 -0
  392. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UMPSPH77.js +45 -0
  393. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UOYQVA3T.js +27 -0
  394. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UUEMMZG6.js +178 -0
  395. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UV4Y72XP.js +37 -0
  396. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.UVIXNJVD.js +428 -0
  397. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.V3B4FDYO.js +715 -0
  398. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VC3BPUZJ.js +12 -0
  399. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VO4OKF3D.js +13 -0
  400. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VRQU2Y2Z.js +198 -0
  401. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VSYG3NGW.js +27 -0
  402. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.VVLIN6UY.js +259 -0
  403. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W2C46OQX.js +353 -0
  404. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W3JJ6XED.js +127 -0
  405. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.W55GO32K.js +932 -0
  406. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WC7A3EOY.js +741 -0
  407. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WCGXFNG4.js +95 -0
  408. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WDIIGUNP.js +12 -0
  409. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WGFDW2LC.js +25 -0
  410. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WKX3BKNK.js +18 -0
  411. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WLKYECLX.js +858 -0
  412. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.WYNTFJHW.js +116 -0
  413. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X542U3B2.js +337 -0
  414. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X55YNZ3B.js +20 -0
  415. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.X7T4SHKO.js +27 -0
  416. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XELEYQBQ.js +249 -0
  417. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XJ4PEGQL.js +135 -0
  418. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XJOHOSCS.js +345 -0
  419. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XLATYKDG.js +13 -0
  420. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XMNDC2OW.js +452 -0
  421. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XSPQ4QMK.js +29 -0
  422. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XU63UNPU.js +2183 -0
  423. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XW6BKGGI.js +13 -0
  424. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XZ235HUK.js +113 -0
  425. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.XZPLJ4VW.js +13 -0
  426. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YBFCQDTA.js +13 -0
  427. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YD2JFSBQ.js +382 -0
  428. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YDQCS2HK.js +12 -0
  429. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YJNHQL5U.js +27 -0
  430. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YLIESRP2.js +377 -0
  431. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YMGBKPRR.js +32 -0
  432. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YN7QRSZ7.js +170 -0
  433. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YNIJJMXK.js +112 -0
  434. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YPRC5XZF.js +101 -0
  435. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YQNBAO2Z.js +45 -0
  436. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.YXOWVBUA.js +19 -0
  437. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z4KHDJB4.js +173 -0
  438. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z6LULOQL.js +97 -0
  439. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.Z73LSB5Z.js +27 -0
  440. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZA5G6FAT.js +27 -0
  441. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZFMOLE6Z.js +27 -0
  442. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZFSRFTCP.js +83 -0
  443. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZSEFTQAO.js +12 -0
  444. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZSNU3QL4.js +78 -0
  445. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZT4OZS6F.js +12 -0
  446. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZWQCGLB5.js +12 -0
  447. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZY7BMFLO.js +13 -0
  448. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/chunks/chunk.ZZPJSMJ4.js +13 -0
  449. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion/accordion.js +39 -0
  450. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion/accordion.styles.js +10 -0
  451. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion-item/accordion-item.js +33 -0
  452. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/accordion-item/accordion-item.styles.js +10 -0
  453. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animated-image/animated-image.js +28 -0
  454. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animated-image/animated-image.styles.js +10 -0
  455. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animation.js +17 -0
  456. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animation.styles.js +10 -0
  457. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/animation/animations.js +12 -0
  458. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/avatar/avatar.js +23 -0
  459. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/avatar/avatar.styles.js +10 -0
  460. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/badge/badge.js +13 -0
  461. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/badge/badge.styles.js +10 -0
  462. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb/breadcrumb.js +26 -0
  463. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb/breadcrumb.styles.js +10 -0
  464. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb-item/breadcrumb-item.js +14 -0
  465. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/breadcrumb-item/breadcrumb-item.styles.js +10 -0
  466. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button/button.js +38 -0
  467. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button/button.styles.js +10 -0
  468. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button-group/button-group.js +12 -0
  469. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/button-group/button-group.styles.js +10 -0
  470. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/callout/callout.js +16 -0
  471. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/callout/callout.styles.js +10 -0
  472. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/card/card.js +16 -0
  473. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/card/card.styles.js +10 -0
  474. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/autoplay-controller.js +8 -0
  475. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/carousel.js +34 -0
  476. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/carousel.styles.js +10 -0
  477. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel/scroll-controller.js +110 -0
  478. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel-item/carousel-item.js +12 -0
  479. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/carousel-item/carousel-item.styles.js +10 -0
  480. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox/checkbox.js +34 -0
  481. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox/checkbox.styles.js +10 -0
  482. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox-group/checkbox-group.js +36 -0
  483. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/checkbox-group/checkbox-group.styles.js +10 -0
  484. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/color-picker/color-picker.js +59 -0
  485. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/color-picker/color-picker.styles.js +10 -0
  486. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/comparison/comparison.js +30 -0
  487. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/comparison/comparison.styles.js +10 -0
  488. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/copy-button/copy-button.js +44 -0
  489. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/copy-button/copy-button.styles.js +10 -0
  490. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/details/details.js +36 -0
  491. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/details/details.styles.js +10 -0
  492. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dialog/dialog.js +49 -0
  493. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dialog/dialog.styles.js +10 -0
  494. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/divider/divider.js +14 -0
  495. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/divider/divider.styles.js +10 -0
  496. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/drawer/drawer.js +49 -0
  497. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/drawer/drawer.styles.js +10 -0
  498. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown/dropdown.js +46 -0
  499. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown/dropdown.styles.js +10 -0
  500. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown-item/dropdown-item.js +27 -0
  501. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/dropdown-item/dropdown-item.styles.js +10 -0
  502. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-bytes/format-bytes.js +14 -0
  503. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-date/format-date.js +14 -0
  504. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/format-number/format-number.js +14 -0
  505. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/icon.js +21 -0
  506. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/icon.styles.js +10 -0
  507. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.default.js +11 -0
  508. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.js +23 -0
  509. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/icon/library.system.js +10 -0
  510. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/include.js +16 -0
  511. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/include.styles.js +10 -0
  512. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/include/request.js +8 -0
  513. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/input/input.js +39 -0
  514. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/input/input.styles.js +10 -0
  515. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/intersection-observer/intersection-observer.js +16 -0
  516. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/intersection-observer/intersection-observer.styles.js +10 -0
  517. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/field-order.js +8 -0
  518. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/partial-date-validator.js +8 -0
  519. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/internal/parts.js +16 -0
  520. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/known-date.js +33 -0
  521. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/known-date/known-date.styles.js +10 -0
  522. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/markdown/markdown.js +12 -0
  523. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/markdown/markdown.styles.js +10 -0
  524. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/mutation-observer/mutation-observer.js +14 -0
  525. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/mutation-observer/mutation-observer.styles.js +10 -0
  526. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/number-input/number-input.js +38 -0
  527. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/number-input/number-input.styles.js +10 -0
  528. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/option/option.js +26 -0
  529. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/option/option.styles.js +10 -0
  530. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/otp-input/otp-input.js +28 -0
  531. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/otp-input/otp-input.styles.js +10 -0
  532. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.js +56 -0
  533. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.mobile.styles.js +8 -0
  534. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/page/page.styles.js +10 -0
  535. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/pagination/pagination.js +34 -0
  536. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/pagination/pagination.styles.js +10 -0
  537. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popover/popover.js +29 -0
  538. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popover/popover.styles.js +10 -0
  539. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popup/popup.js +18 -0
  540. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/popup/popup.styles.js +10 -0
  541. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-bar/progress-bar.js +17 -0
  542. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-bar/progress-bar.styles.js +10 -0
  543. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-ring/progress-ring.js +17 -0
  544. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/progress-ring/progress-ring.styles.js +10 -0
  545. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/qr-code/qr-code.js +14 -0
  546. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/qr-code/qr-code.styles.js +10 -0
  547. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio/radio.js +28 -0
  548. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio/radio.styles.js +10 -0
  549. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio-group/radio-group.js +35 -0
  550. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/radio-group/radio-group.styles.js +10 -0
  551. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/random-content/random-content.js +17 -0
  552. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/random-content/random-content.styles.js +10 -0
  553. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/rating/rating.js +37 -0
  554. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/rating/rating.styles.js +10 -0
  555. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/relative-time/relative-time.js +14 -0
  556. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/resize-observer/resize-observer.js +14 -0
  557. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/resize-observer/resize-observer.styles.js +10 -0
  558. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/scroller/scroller.js +15 -0
  559. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/scroller/scroller.styles.js +10 -0
  560. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/select/select.js +60 -0
  561. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/select/select.styles.js +10 -0
  562. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/skeleton/skeleton.js +12 -0
  563. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/skeleton/skeleton.styles.js +10 -0
  564. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/slider/slider.js +41 -0
  565. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/slider/slider.styles.js +10 -0
  566. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/spinner/spinner.js +15 -0
  567. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/spinner/spinner.styles.js +10 -0
  568. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/split-panel/split-panel.js +20 -0
  569. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/split-panel/split-panel.styles.js +10 -0
  570. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/step/step.js +33 -0
  571. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/step/step.styles.js +10 -0
  572. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/stepper/stepper.js +39 -0
  573. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/stepper/stepper.styles.js +10 -0
  574. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/switch/switch.js +28 -0
  575. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/switch/switch.styles.js +10 -0
  576. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab/tab.js +15 -0
  577. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab/tab.styles.js +10 -0
  578. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-group/tab-group.js +47 -0
  579. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-group/tab-group.styles.js +10 -0
  580. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-panel/tab-panel.js +15 -0
  581. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tab-panel/tab-panel.styles.js +10 -0
  582. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag/tag.js +41 -0
  583. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag/tag.styles.js +10 -0
  584. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag-input/tag-input.js +50 -0
  585. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tag-input/tag-input.styles.js +10 -0
  586. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/textarea/textarea.js +29 -0
  587. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/textarea/textarea.styles.js +10 -0
  588. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/internal/time-segments.js +38 -0
  589. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/time-input.js +39 -0
  590. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/time-input/time-input.styles.js +10 -0
  591. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast/toast.js +43 -0
  592. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast/toast.styles.js +10 -0
  593. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast-item/toast-item.js +40 -0
  594. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/toast-item/toast-item.styles.js +10 -0
  595. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tooltip/tooltip.js +29 -0
  596. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tooltip/tooltip.styles.js +10 -0
  597. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree/tree.js +53 -0
  598. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree/tree.styles.js +10 -0
  599. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree-item/tree-item.js +51 -0
  600. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/tree-item/tree-item.styles.js +10 -0
  601. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/zoomable-frame/zoomable-frame.js +28 -0
  602. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/components/zoomable-frame/zoomable-frame.styles.js +10 -0
  603. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-after-collapse.js +8 -0
  604. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-after-expand.js +8 -0
  605. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-collapse.js +8 -0
  606. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-expand.js +8 -0
  607. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-collapsed.js +8 -0
  608. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-expanded.js +8 -0
  609. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/accordion-item-trigger.js +8 -0
  610. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-collapse.js +8 -0
  611. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-expand.js +8 -0
  612. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-hide.js +8 -0
  613. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/after-show.js +8 -0
  614. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/before-page-change.js +8 -0
  615. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/before-step-change.js +8 -0
  616. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cancel.js +8 -0
  617. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cell-click.js +13 -0
  618. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/cell-context-menu.js +13 -0
  619. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/clear.js +8 -0
  620. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/collapse.js +8 -0
  621. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-move.js +13 -0
  622. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-pin.js +13 -0
  623. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-resize.js +13 -0
  624. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/column-visibility-change.js +13 -0
  625. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/complete.js +8 -0
  626. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/copy.js +8 -0
  627. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/create.js +8 -0
  628. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/data-error.js +13 -0
  629. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/data-request.js +13 -0
  630. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/error.js +8 -0
  631. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/events.js +2 -0
  632. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/expand.js +8 -0
  633. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/filter-change.js +13 -0
  634. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/finish.js +8 -0
  635. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/focus-day.js +13 -0
  636. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/hide.js +8 -0
  637. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/hover.js +8 -0
  638. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/include-error.js +8 -0
  639. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/intersect.js +8 -0
  640. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/invalid.js +8 -0
  641. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/lazy-change.js +8 -0
  642. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/lazy-load.js +8 -0
  643. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/load.js +8 -0
  644. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/mutation.js +8 -0
  645. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/options-error.js +13 -0
  646. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/options-request.js +13 -0
  647. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/page-change.js +8 -0
  648. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/random-content-change.js +8 -0
  649. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/remove.js +8 -0
  650. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/reposition.js +8 -0
  651. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/resize.js +8 -0
  652. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-collapse.js +13 -0
  653. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-expand.js +13 -0
  654. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/row-select.js +13 -0
  655. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/select.js +8 -0
  656. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/selection-change.js +8 -0
  657. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/show.js +8 -0
  658. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/slide-change.js +8 -0
  659. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/sort-change.js +13 -0
  660. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/start.js +8 -0
  661. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/step-change.js +8 -0
  662. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/tab-hide.js +8 -0
  663. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/tab-show.js +8 -0
  664. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/video-change.js +13 -0
  665. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/events/view-change.js +13 -0
  666. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/base.css +44 -0
  667. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/bright.css +145 -0
  668. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/default.css +146 -0
  669. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/palettes/shoelace.css +146 -0
  670. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/brand.css +162 -0
  671. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/danger.css +162 -0
  672. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/neutral.css +162 -0
  673. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/success.css +162 -0
  674. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants/warning.css +162 -0
  675. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/color/variants.css +5 -0
  676. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/form-control.styles.ts +43 -0
  677. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/host.styles.ts +18 -0
  678. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/segmented-field.styles.ts +97 -0
  679. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/size.styles.ts +26 -0
  680. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/variants.styles.ts +69 -0
  681. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/component/visually-hidden.styles.ts +21 -0
  682. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/layers.css +21 -0
  683. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/native.css +1442 -0
  684. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/awesome.css +616 -0
  685. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/default.css +373 -0
  686. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/themes/shoelace.css +650 -0
  687. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/align-items.css +44 -0
  688. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/border-radius.css +20 -0
  689. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/flex-wrap.css +16 -0
  690. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/fouce.css +17 -0
  691. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/gap.css +56 -0
  692. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/justify-content.css +32 -0
  693. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/layout.css +159 -0
  694. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/placeholder.css +9 -0
  695. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/prose.css +161 -0
  696. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/scroll-lock.css +20 -0
  697. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/size.css +21 -0
  698. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/text.css +262 -0
  699. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/variants.css +63 -0
  700. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities/visually-hidden.css +24 -0
  701. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/utilities.css +17 -0
  702. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/styles/webawesome.css +11 -0
  703. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/de.js +11 -0
  704. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/en.js +9 -0
  705. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/translations/pl.js +241 -0
  706. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/animation.js +11 -0
  707. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/autoloader.js +15 -0
  708. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/base-path.js +18 -0
  709. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/clone.js +54 -0
  710. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/defined.js +8 -0
  711. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/form.js +8 -0
  712. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/localize.js +13 -0
  713. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/utilities/ssr-hydration.js +7 -0
  714. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/webawesome.js +66 -0
  715. nocek-0.1.0/src/nocek/web/static/vendor/webawesome/webawesome.loader.js +67 -0
  716. nocek-0.1.0/tests/__init__.py +0 -0
  717. nocek-0.1.0/tests/core/__init__.py +0 -0
  718. nocek-0.1.0/tests/core/factories.py +104 -0
  719. nocek-0.1.0/tests/core/test_audio.py +59 -0
  720. nocek-0.1.0/tests/core/test_batdetect.py +117 -0
  721. nocek-0.1.0/tests/core/test_battybird.py +174 -0
  722. nocek-0.1.0/tests/core/test_consensus.py +152 -0
  723. nocek-0.1.0/tests/core/test_detection.py +108 -0
  724. nocek-0.1.0/tests/core/test_key.py +134 -0
  725. nocek-0.1.0/tests/core/test_nights.py +16 -0
  726. nocek-0.1.0/tests/core/test_opinion.py +63 -0
  727. nocek-0.1.0/tests/core/test_pipeline.py +173 -0
  728. nocek-0.1.0/tests/core/test_region.py +89 -0
  729. nocek-0.1.0/tests/core/test_spectrogram.py +51 -0
  730. nocek-0.1.0/tests/core/test_taxonomy.py +56 -0
  731. nocek-0.1.0/tests/recorders/__init__.py +0 -0
  732. nocek-0.1.0/tests/recorders/test_checks.py +52 -0
  733. nocek-0.1.0/tests/recorders/test_pippyg.py +105 -0
  734. nocek-0.1.0/tests/recorders/test_sun.py +37 -0
  735. nocek-0.1.0/tests/storage/__init__.py +0 -0
  736. nocek-0.1.0/tests/storage/conftest.py +33 -0
  737. nocek-0.1.0/tests/storage/test_database.py +89 -0
  738. nocek-0.1.0/tests/storage/test_importer.py +227 -0
  739. nocek-0.1.0/tests/storage/test_library.py +79 -0
  740. nocek-0.1.0/tests/storage/test_repository.py +140 -0
  741. nocek-0.1.0/tests/storage/test_serialize.py +59 -0
  742. nocek-0.1.0/tests/storage/test_summaries.py +121 -0
  743. nocek-0.1.0/tests/synth.py +63 -0
  744. nocek-0.1.0/tests/test_cli.py +123 -0
  745. nocek-0.1.0/tests/test_shortcut.py +91 -0
  746. nocek-0.1.0/tests/web/__init__.py +0 -0
  747. nocek-0.1.0/tests/web/conftest.py +34 -0
  748. nocek-0.1.0/tests/web/test_api.py +134 -0
  749. nocek-0.1.0/tests/web/test_dialog.py +137 -0
  750. nocek-0.1.0/tests/web/test_folders.py +62 -0
  751. nocek-0.1.0/tests/web/test_i18n.py +207 -0
  752. nocek-0.1.0/tests/web/test_jobs.py +294 -0
  753. nocek-0.1.0/tests/web/test_library_api.py +324 -0
  754. nocek-0.1.0/tests/web/test_media.py +172 -0
  755. nocek-0.1.0/tests/web/test_security.py +69 -0
  756. nocek-0.1.0/tools/make_icons.py +55 -0
@@ -0,0 +1,49 @@
1
+ # Builds Nocek and publishes it, with PyPI's trusted publishing (no passwords or tokens
2
+ # kept anywhere):
3
+ # - pushing a tag v0.1.0, v0.2.0, ... publishes that version to PyPI;
4
+ # - running this workflow by hand (Actions, "Publish", Run workflow) publishes to
5
+ # TestPyPI, to try a release out first.
6
+ # The tag must name the version in src/nocek/__init__.py.
7
+
8
+ name: Publish
9
+
10
+ on:
11
+ push:
12
+ tags: ["v*"]
13
+ workflow_dispatch:
14
+
15
+ jobs:
16
+ build:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: astral-sh/setup-uv@v6
21
+ - name: Build
22
+ run: uv build
23
+ - name: Check the tag names the version being published
24
+ if: startsWith(github.ref, 'refs/tags/')
25
+ run: |
26
+ version=$(python3 -c "import re; print(re.search(r'__version__ = \"(.+)\"', open('src/nocek/__init__.py').read())[1])")
27
+ test "${GITHUB_REF_NAME}" = "v${version}" || { echo "tag ${GITHUB_REF_NAME} but version ${version}"; exit 1; }
28
+ - name: Check the package's metadata
29
+ run: uvx twine check --strict dist/*
30
+ - uses: actions/upload-artifact@v4
31
+ with:
32
+ name: dist
33
+ path: dist/
34
+
35
+ publish:
36
+ needs: build
37
+ runs-on: ubuntu-latest
38
+ # A tag goes to PyPI, a run by hand to TestPyPI.
39
+ environment: ${{ startsWith(github.ref, 'refs/tags/') && 'pypi' || 'testpypi' }}
40
+ permissions:
41
+ id-token: write # what trusted publishing signs in with
42
+ steps:
43
+ - uses: actions/download-artifact@v4
44
+ with:
45
+ name: dist
46
+ path: dist/
47
+ - uses: pypa/gh-action-pypi-publish@release/v1
48
+ with:
49
+ repository-url: ${{ startsWith(github.ref, 'refs/tags/') && 'https://upload.pypi.org/legacy/' || 'https://test.pypi.org/legacy/' }}
nocek-0.1.0/.gitignore ADDED
@@ -0,0 +1,27 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *.egg-info/
5
+ build/
6
+ dist/
7
+
8
+ # Environments
9
+ .venv/
10
+ venv/
11
+
12
+ # Tooling caches
13
+ .mypy_cache/
14
+ .pytest_cache/
15
+ .ruff_cache/
16
+ .coverage
17
+ htmlcov/
18
+
19
+ # Editors and OS
20
+ .idea/
21
+ .vscode/
22
+ .DS_Store
23
+ Thumbs.db
24
+
25
+ # Recordings never belong in the repository
26
+ *.wav
27
+ !tests/fixtures/**/*.wav
nocek-0.1.0/LICENSE ADDED
@@ -0,0 +1,75 @@
1
+ Required Notice: Copyright 2026 kazek (https://github.com/kazek)
2
+
3
+ # PolyForm Noncommercial License 1.0.0
4
+
5
+ <https://polyformproject.org/licenses/noncommercial/1.0.0>
6
+
7
+ ## Acceptance
8
+
9
+ In order to get any license under these terms, you must agree to them as both strict obligations and conditions to all your licenses.
10
+
11
+ ## Copyright License
12
+
13
+ The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only distribute the software according to [Distribution License](#distribution-license) and make changes or new works based on the software according to [Changes and New Works License](#changes-and-new-works-license).
14
+
15
+ ## Distribution License
16
+
17
+ The licensor grants you an additional copyright license to distribute copies of the software. Your license to distribute covers distributing the software with changes and new works permitted by [Changes and New Works License](#changes-and-new-works-license).
18
+
19
+ ## Notices
20
+
21
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any plain-text lines beginning with `Required Notice:` that the licensor provided with the software. For example:
22
+
23
+ > Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
24
+
25
+ ## Changes and New Works License
26
+
27
+ The licensor grants you an additional copyright license to make changes and new works based on the software for any permitted purpose.
28
+
29
+ ## Patent License
30
+
31
+ The licensor grants you a patent license for the software that covers patent claims the licensor can license, or becomes able to license, that you would infringe by using the software.
32
+
33
+ ## Noncommercial Purposes
34
+
35
+ Any noncommercial purpose is a permitted purpose.
36
+
37
+ ## Personal Uses
38
+
39
+ Personal use for research, experiment, and testing for the benefit of public knowledge, personal study, private entertainment, hobby projects, amateur pursuits, or religious observance, without any anticipated commercial application, is use for a permitted purpose.
40
+
41
+ ## Noncommercial Organizations
42
+
43
+ Use by any charitable organization, educational institution, public research organization, public safety or health organization, environmental protection organization, or government institution is use for a permitted purpose regardless of the source of funding or obligations resulting from the funding.
44
+
45
+ ## Fair Use
46
+
47
+ You may have "fair use" rights for the software under the law. These terms do not limit them.
48
+
49
+ ## No Other Rights
50
+
51
+ These terms do not allow you to sublicense or transfer any of your licenses to anyone else, or prevent the licensor from granting licenses to anyone else. These terms do not imply any other licenses.
52
+
53
+ ## Patent Defense
54
+
55
+ If you make any written claim that the software infringes or contributes to infringement of any patent, your patent license for the software granted under these terms ends immediately. If your company makes such a claim, your patent license ends immediately for work on behalf of your company.
56
+
57
+ ## Violations
58
+
59
+ The first time you are notified in writing that you have violated any of these terms, or done anything with the software not covered by your licenses, your licenses can nonetheless continue if you come into full compliance with these terms, and take practical steps to correct past violations, within 32 days of receiving notice. Otherwise, all your licenses end immediately.
60
+
61
+ ## No Liability
62
+
63
+ ***As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will not be liable to you for any damages arising out of these terms or the use or nature of the software, under any kind of legal claim.***
64
+
65
+ ## Definitions
66
+
67
+ The **licensor** is the individual or entity offering these terms, and the **software** is the software the licensor makes available under these terms.
68
+
69
+ **You** refers to the individual or entity agreeing to these terms.
70
+
71
+ **Your company** is any legal entity, sole proprietorship, or other kind of organization that you work for, plus all organizations that have control over, are under the control of, or are under common control with that organization. **Control** means ownership of substantially all the assets of an entity, or the power to direct its management and policies by vote, contract, or otherwise. Control can be direct or indirect.
72
+
73
+ **Your licenses** are all the licenses granted to you for the software under these terms.
74
+
75
+ **Use** means anything you do with the software requiring one of your licenses.
nocek-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,233 @@
1
+ Metadata-Version: 2.5
2
+ Name: nocek
3
+ Version: 0.1.0
4
+ Summary: Identify bats from ultrasonic recordings, in your browser.
5
+ Project-URL: Homepage, https://github.com/kazek/nocek
6
+ Project-URL: Source, https://github.com/kazek/nocek
7
+ Project-URL: Issues, https://github.com/kazek/nocek/issues
8
+ Author: kazek
9
+ License-Expression: PolyForm-Noncommercial-1.0.0
10
+ License-File: LICENSE
11
+ Keywords: bat detector,bats,bioacoustics,echolocation,pippyg,ultrasound
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Intended Audience :: Science/Research
15
+ Classifier: Natural Language :: English
16
+ Classifier: Natural Language :: German
17
+ Classifier: Natural Language :: Polish
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: Microsoft :: Windows
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
23
+ Requires-Python: >=3.11
24
+ Requires-Dist: ai-edge-litert>=2.1.2
25
+ Requires-Dist: audioread>=3.0
26
+ Requires-Dist: batdetect2==1.3.1
27
+ Requires-Dist: fastapi>=0.115
28
+ Requires-Dist: numpy>=1.26
29
+ Requires-Dist: platformdirs>=4
30
+ Requires-Dist: soundfile>=0.12
31
+ Requires-Dist: soxr>=0.5
32
+ Requires-Dist: uvicorn>=0.30
33
+ Provides-Extra: dev
34
+ Requires-Dist: httpx2>=2.13; extra == 'dev'
35
+ Requires-Dist: mypy>=1.11; extra == 'dev'
36
+ Requires-Dist: pytest>=8; extra == 'dev'
37
+ Requires-Dist: ruff>=0.6; extra == 'dev'
38
+ Description-Content-Type: text/markdown
39
+
40
+ # Nocek
41
+
42
+ Identify bats from ultrasonic recordings, in your browser.
43
+
44
+ <picture>
45
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-dark.png">
46
+ <img alt="Nocek's main page: three sites, a calendar of nights, one night's recordings from sunset to sunrise, and a recording with two bats in its spectrogram" src="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-light.png">
47
+ </picture>
48
+
49
+ Bring in the recordings from your recorder's card, and Nocek copies the new
50
+ ones, finds the echolocation calls, names the bats and shows you what has been
51
+ flying past, night by night. It runs on your own computer and your recordings
52
+ never leave it.
53
+
54
+ > **Status:** an early version, in use by its authors. Expect rough edges, and
55
+ > please report them.
56
+
57
+ ## What you need
58
+
59
+ - A computer with one of:
60
+ - macOS 12 or newer on Apple Silicon (M1 or later)
61
+ - Windows 10 or 11, 64-bit
62
+ - Linux, x86-64 or ARM64
63
+ - About 1.5 GB of disk space for Nocek itself, most of it PyTorch, and room for
64
+ your recordings.
65
+ - A pippyg recorder. It is the only recorder Nocek reads for now.
66
+ - An internet connection to install Nocek, and once more on its first start, to
67
+ download one of its models (about 52 MB).
68
+
69
+ ## Install
70
+
71
+ On **macOS or Linux**, open a terminal and paste:
72
+
73
+ ```
74
+ curl -LsSf https://raw.githubusercontent.com/kazek/nocek/main/install.sh | sh
75
+ ```
76
+
77
+ On **Windows**, open PowerShell and paste:
78
+
79
+ ```
80
+ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/kazek/nocek/main/install.ps1 | iex"
81
+ ```
82
+
83
+ That is all. The script installs [uv](https://docs.astral.sh/uv/), which brings
84
+ the Python Nocek needs (so you do not need Python already), then Nocek itself with
85
+ the build of PyTorch that suits your computer, puts Nocek in your system's menu
86
+ (Applications on macOS, the Start menu on Windows, the applications menu on
87
+ Linux), and starts it. The first time it downloads about 1 GB.
88
+
89
+ ### Installing by hand
90
+
91
+ If you would rather see each step, or already use uv or pipx:
92
+
93
+ ```
94
+ uv tool install --torch-backend auto nocek
95
+ nocek shortcut
96
+ ```
97
+
98
+ `--torch-backend auto` picks the build of PyTorch that suits your computer: with
99
+ an NVIDIA graphics card, one that uses it; without one, the much smaller build for
100
+ the processor alone. uv still calls the option experimental; should it ever fail,
101
+ leave it out. With pipx, `pipx install nocek` works too. If the terminal does not
102
+ find `nocek`, run `uv tool update-shell` and open a new terminal.
103
+
104
+ ## First start
105
+
106
+ Start Nocek from its shortcut, or with `nocek` in a terminal. It opens in your
107
+ browser at `http://127.0.0.1:6475`. Starting it again while it runs just opens
108
+ the page once more.
109
+
110
+ The first time, it asks for two things:
111
+
112
+ - **A library**: one folder where Nocek keeps the recordings it copies and what
113
+ it found in them. It offers `Documents/Nocek`. A library can be backed up or
114
+ moved as a whole, as one folder.
115
+ - **The models**: one of the three ways Nocek tells bats apart needs about 52 MB
116
+ of files, downloaded once.
117
+
118
+ To stop Nocek, use **Quit** in the page's top right corner.
119
+
120
+ ## Using Nocek
121
+
122
+ **Load new recordings.** Choose the folder with the recorder's files: the
123
+ memory card, a copy of it, or one of its `bats_dev000`-style folders; the
124
+ folders inside are searched too. Nothing on the card is changed, and recordings
125
+ already in the library are skipped, so the same card can be loaded again
126
+ safely. Recordings made in the recorder's bird mode are left out.
127
+
128
+ **Sites.** A pippyg can be set to a number, which also names its files
129
+ (`DEV_000_…`). Nocek takes each number to stand for a place, a site. The first
130
+ time a number turns up, Nocek asks which site it stands for and suggests a new
131
+ one named after it, such as `dev000`, placed where the recorder's GPS put it;
132
+ after that, its recordings go there by themselves. In the **⋯** menu by the
133
+ sites you can rename sites, move a number to another site, and say which bats
134
+ are expected at each.
135
+
136
+ **Nights.** The calendar shades each night by how many of its recordings named a
137
+ bat. Pick a night to see it.
138
+
139
+ **The night.** One bar from sunset to sunrise, with a mark for every recording:
140
+ coloured by the bat, as tall as what it holds (a named bat, calls with the name
141
+ withheld, or no calls). Point at a mark to see what it is, click it to open it.
142
+ The legend counts each kind; point at an entry, or click it, to pick out its
143
+ marks. On a busy night, zoom in with the magnifiers (or Ctrl and the scroll
144
+ wheel, or a pinch on a trackpad) and drag the bar sideways.
145
+
146
+ **The recording.** Its spectrogram, with each animal's calls boxed and
147
+ numbered; drag across it to look closer. Playback is slowed (10 times by
148
+ default) so that the calls fall where you can hear them. Under it, what was
149
+ heard; **Details** shows how each method saw it. The arrow keys step through the
150
+ night, the space bar plays and pauses.
151
+
152
+ **How a bat gets its name.** [BatDetect2](https://github.com/macaodha/batdetect2)
153
+ names the animals in a recording. Two other methods check it: a field key that
154
+ measures the calls, and [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer).
155
+ When both of them agree on something else, the name is withheld. So are names
156
+ of bats not expected at the site, while bats marked rare need strong evidence.
157
+ Bats that cannot be told apart by their calls are named as a group, such as
158
+ *Pipistrellus kuhlii / P. nathusii*.
159
+
160
+ The language, the light or dark theme, and the settings are in the top right
161
+ corner. Nocek speaks English, Polish and German.
162
+
163
+ ## Update
164
+
165
+ Run the install command again, or `uv tool upgrade nocek`. Your library and
166
+ settings are kept. If Nocek was running, quit it and start it again.
167
+
168
+ ## Uninstall
169
+
170
+ ```
171
+ nocek shortcut --remove
172
+ uv tool uninstall nocek
173
+ ```
174
+
175
+ This leaves your library, and the files below, in place; delete them yourself if
176
+ you want them gone.
177
+
178
+ ## Where Nocek keeps its files
179
+
180
+ | | macOS | Windows | Linux |
181
+ | --- | --- | --- | --- |
182
+ | Library | `~/Documents/Nocek`, unless you chose another folder | `Documents\Nocek`, unless you chose another folder | `~/Documents/Nocek`, unless you chose another folder |
183
+ | Settings | `~/Library/Application Support/Nocek` | `%LOCALAPPDATA%\Nocek` | `~/.config/Nocek` |
184
+ | Models | `~/Library/Application Support/Nocek/models` | `%LOCALAPPDATA%\Nocek\models` | `~/.local/share/Nocek/models` |
185
+ | Log | `~/Library/Logs/Nocek/nocek.log` | `%LOCALAPPDATA%\Nocek\Logs\nocek.log` | `~/.local/state/Nocek/log/nocek.log` |
186
+
187
+ The log is the file to send along when reporting a problem.
188
+
189
+ ## Privacy
190
+
191
+ Nocek works on your computer only. It goes online for one thing: to download
192
+ BattyBirdNET's model files, once. Your recordings, and what Nocek finds in
193
+ them, stay where you put them.
194
+
195
+ ## Licence
196
+
197
+ Nocek may be used for non-commercial purposes only, under the
198
+ [PolyForm Noncommercial License 1.0.0](https://github.com/kazek/nocek/blob/main/LICENSE): by individuals, for research,
199
+ teaching and conservation, and by charities and public bodies. For any other
200
+ use, please ask.
201
+
202
+ Nocek uses the work of others, under their own licences:
203
+
204
+ - [BatDetect2](https://github.com/macaodha/batdetect2), Mac Aodha, O. et al.
205
+ (2022): CC BY-NC 4.0, non-commercial.
206
+ - [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer), Zinck, R.D.
207
+ (2023), built on BirdNET by Kahl, S. et al.: CC BY-NC-SA 4.0,
208
+ non-commercial. Downloaded by Nocek, not part of it.
209
+ - [Web Awesome](https://webawesome.com): MIT. Included in
210
+ `src/nocek/web/static/vendor/webawesome`.
211
+ - [Lucide](https://lucide.dev) icons: ISC. Included in
212
+ `src/nocek/web/static/vendor/lucide`.
213
+
214
+ ## Development
215
+
216
+ Requires Python 3.11 or newer.
217
+
218
+ ```
219
+ git clone https://github.com/kazek/nocek
220
+ cd nocek
221
+ python3 -m venv .venv
222
+ .venv/bin/pip install -e ".[dev]"
223
+
224
+ .venv/bin/pytest
225
+ .venv/bin/ruff check .
226
+ .venv/bin/ruff format --check .
227
+ .venv/bin/mypy
228
+ ```
229
+
230
+ On Windows, use `.venv\Scripts\` instead of `.venv/bin/`. The interface is plain
231
+ JavaScript modules with no build step: change a file under
232
+ `src/nocek/web/static` and reload the page. See
233
+ [docs/roadmap.md](https://github.com/kazek/nocek/blob/main/docs/roadmap.md) for how Nocek came about.
nocek-0.1.0/README.md ADDED
@@ -0,0 +1,194 @@
1
+ # Nocek
2
+
3
+ Identify bats from ultrasonic recordings, in your browser.
4
+
5
+ <picture>
6
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-dark.png">
7
+ <img alt="Nocek's main page: three sites, a calendar of nights, one night's recordings from sunset to sunrise, and a recording with two bats in its spectrogram" src="https://raw.githubusercontent.com/kazek/nocek/main/docs/screenshot-light.png">
8
+ </picture>
9
+
10
+ Bring in the recordings from your recorder's card, and Nocek copies the new
11
+ ones, finds the echolocation calls, names the bats and shows you what has been
12
+ flying past, night by night. It runs on your own computer and your recordings
13
+ never leave it.
14
+
15
+ > **Status:** an early version, in use by its authors. Expect rough edges, and
16
+ > please report them.
17
+
18
+ ## What you need
19
+
20
+ - A computer with one of:
21
+ - macOS 12 or newer on Apple Silicon (M1 or later)
22
+ - Windows 10 or 11, 64-bit
23
+ - Linux, x86-64 or ARM64
24
+ - About 1.5 GB of disk space for Nocek itself, most of it PyTorch, and room for
25
+ your recordings.
26
+ - A pippyg recorder. It is the only recorder Nocek reads for now.
27
+ - An internet connection to install Nocek, and once more on its first start, to
28
+ download one of its models (about 52 MB).
29
+
30
+ ## Install
31
+
32
+ On **macOS or Linux**, open a terminal and paste:
33
+
34
+ ```
35
+ curl -LsSf https://raw.githubusercontent.com/kazek/nocek/main/install.sh | sh
36
+ ```
37
+
38
+ On **Windows**, open PowerShell and paste:
39
+
40
+ ```
41
+ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/kazek/nocek/main/install.ps1 | iex"
42
+ ```
43
+
44
+ That is all. The script installs [uv](https://docs.astral.sh/uv/), which brings
45
+ the Python Nocek needs (so you do not need Python already), then Nocek itself with
46
+ the build of PyTorch that suits your computer, puts Nocek in your system's menu
47
+ (Applications on macOS, the Start menu on Windows, the applications menu on
48
+ Linux), and starts it. The first time it downloads about 1 GB.
49
+
50
+ ### Installing by hand
51
+
52
+ If you would rather see each step, or already use uv or pipx:
53
+
54
+ ```
55
+ uv tool install --torch-backend auto nocek
56
+ nocek shortcut
57
+ ```
58
+
59
+ `--torch-backend auto` picks the build of PyTorch that suits your computer: with
60
+ an NVIDIA graphics card, one that uses it; without one, the much smaller build for
61
+ the processor alone. uv still calls the option experimental; should it ever fail,
62
+ leave it out. With pipx, `pipx install nocek` works too. If the terminal does not
63
+ find `nocek`, run `uv tool update-shell` and open a new terminal.
64
+
65
+ ## First start
66
+
67
+ Start Nocek from its shortcut, or with `nocek` in a terminal. It opens in your
68
+ browser at `http://127.0.0.1:6475`. Starting it again while it runs just opens
69
+ the page once more.
70
+
71
+ The first time, it asks for two things:
72
+
73
+ - **A library**: one folder where Nocek keeps the recordings it copies and what
74
+ it found in them. It offers `Documents/Nocek`. A library can be backed up or
75
+ moved as a whole, as one folder.
76
+ - **The models**: one of the three ways Nocek tells bats apart needs about 52 MB
77
+ of files, downloaded once.
78
+
79
+ To stop Nocek, use **Quit** in the page's top right corner.
80
+
81
+ ## Using Nocek
82
+
83
+ **Load new recordings.** Choose the folder with the recorder's files: the
84
+ memory card, a copy of it, or one of its `bats_dev000`-style folders; the
85
+ folders inside are searched too. Nothing on the card is changed, and recordings
86
+ already in the library are skipped, so the same card can be loaded again
87
+ safely. Recordings made in the recorder's bird mode are left out.
88
+
89
+ **Sites.** A pippyg can be set to a number, which also names its files
90
+ (`DEV_000_…`). Nocek takes each number to stand for a place, a site. The first
91
+ time a number turns up, Nocek asks which site it stands for and suggests a new
92
+ one named after it, such as `dev000`, placed where the recorder's GPS put it;
93
+ after that, its recordings go there by themselves. In the **⋯** menu by the
94
+ sites you can rename sites, move a number to another site, and say which bats
95
+ are expected at each.
96
+
97
+ **Nights.** The calendar shades each night by how many of its recordings named a
98
+ bat. Pick a night to see it.
99
+
100
+ **The night.** One bar from sunset to sunrise, with a mark for every recording:
101
+ coloured by the bat, as tall as what it holds (a named bat, calls with the name
102
+ withheld, or no calls). Point at a mark to see what it is, click it to open it.
103
+ The legend counts each kind; point at an entry, or click it, to pick out its
104
+ marks. On a busy night, zoom in with the magnifiers (or Ctrl and the scroll
105
+ wheel, or a pinch on a trackpad) and drag the bar sideways.
106
+
107
+ **The recording.** Its spectrogram, with each animal's calls boxed and
108
+ numbered; drag across it to look closer. Playback is slowed (10 times by
109
+ default) so that the calls fall where you can hear them. Under it, what was
110
+ heard; **Details** shows how each method saw it. The arrow keys step through the
111
+ night, the space bar plays and pauses.
112
+
113
+ **How a bat gets its name.** [BatDetect2](https://github.com/macaodha/batdetect2)
114
+ names the animals in a recording. Two other methods check it: a field key that
115
+ measures the calls, and [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer).
116
+ When both of them agree on something else, the name is withheld. So are names
117
+ of bats not expected at the site, while bats marked rare need strong evidence.
118
+ Bats that cannot be told apart by their calls are named as a group, such as
119
+ *Pipistrellus kuhlii / P. nathusii*.
120
+
121
+ The language, the light or dark theme, and the settings are in the top right
122
+ corner. Nocek speaks English, Polish and German.
123
+
124
+ ## Update
125
+
126
+ Run the install command again, or `uv tool upgrade nocek`. Your library and
127
+ settings are kept. If Nocek was running, quit it and start it again.
128
+
129
+ ## Uninstall
130
+
131
+ ```
132
+ nocek shortcut --remove
133
+ uv tool uninstall nocek
134
+ ```
135
+
136
+ This leaves your library, and the files below, in place; delete them yourself if
137
+ you want them gone.
138
+
139
+ ## Where Nocek keeps its files
140
+
141
+ | | macOS | Windows | Linux |
142
+ | --- | --- | --- | --- |
143
+ | Library | `~/Documents/Nocek`, unless you chose another folder | `Documents\Nocek`, unless you chose another folder | `~/Documents/Nocek`, unless you chose another folder |
144
+ | Settings | `~/Library/Application Support/Nocek` | `%LOCALAPPDATA%\Nocek` | `~/.config/Nocek` |
145
+ | Models | `~/Library/Application Support/Nocek/models` | `%LOCALAPPDATA%\Nocek\models` | `~/.local/share/Nocek/models` |
146
+ | Log | `~/Library/Logs/Nocek/nocek.log` | `%LOCALAPPDATA%\Nocek\Logs\nocek.log` | `~/.local/state/Nocek/log/nocek.log` |
147
+
148
+ The log is the file to send along when reporting a problem.
149
+
150
+ ## Privacy
151
+
152
+ Nocek works on your computer only. It goes online for one thing: to download
153
+ BattyBirdNET's model files, once. Your recordings, and what Nocek finds in
154
+ them, stay where you put them.
155
+
156
+ ## Licence
157
+
158
+ Nocek may be used for non-commercial purposes only, under the
159
+ [PolyForm Noncommercial License 1.0.0](https://github.com/kazek/nocek/blob/main/LICENSE): by individuals, for research,
160
+ teaching and conservation, and by charities and public bodies. For any other
161
+ use, please ask.
162
+
163
+ Nocek uses the work of others, under their own licences:
164
+
165
+ - [BatDetect2](https://github.com/macaodha/batdetect2), Mac Aodha, O. et al.
166
+ (2022): CC BY-NC 4.0, non-commercial.
167
+ - [BattyBirdNET](https://github.com/rdz-oss/BattyBirdNET-Analyzer), Zinck, R.D.
168
+ (2023), built on BirdNET by Kahl, S. et al.: CC BY-NC-SA 4.0,
169
+ non-commercial. Downloaded by Nocek, not part of it.
170
+ - [Web Awesome](https://webawesome.com): MIT. Included in
171
+ `src/nocek/web/static/vendor/webawesome`.
172
+ - [Lucide](https://lucide.dev) icons: ISC. Included in
173
+ `src/nocek/web/static/vendor/lucide`.
174
+
175
+ ## Development
176
+
177
+ Requires Python 3.11 or newer.
178
+
179
+ ```
180
+ git clone https://github.com/kazek/nocek
181
+ cd nocek
182
+ python3 -m venv .venv
183
+ .venv/bin/pip install -e ".[dev]"
184
+
185
+ .venv/bin/pytest
186
+ .venv/bin/ruff check .
187
+ .venv/bin/ruff format --check .
188
+ .venv/bin/mypy
189
+ ```
190
+
191
+ On Windows, use `.venv\Scripts\` instead of `.venv/bin/`. The interface is plain
192
+ JavaScript modules with no build step: change a file under
193
+ `src/nocek/web/static` and reload the page. See
194
+ [docs/roadmap.md](https://github.com/kazek/nocek/blob/main/docs/roadmap.md) for how Nocek came about.
@@ -0,0 +1,44 @@
1
+ # Releasing
2
+
3
+ Nocek is published on [PyPI](https://pypi.org/project/nocek/) by the `Publish`
4
+ workflow (`.github/workflows/publish.yml`), through PyPI's trusted publishing: no
5
+ password or token is kept anywhere.
6
+
7
+ ## Once: set up publishing
8
+
9
+ 1. Make accounts on [PyPI](https://pypi.org/account/register/) and
10
+ [TestPyPI](https://test.pypi.org/account/register/) (two separate sites), with
11
+ two-factor authentication.
12
+ 2. On each, add a pending trusted publisher (Account settings, Publishing, "Add a
13
+ new pending publisher", GitHub):
14
+ - PyPI project name: `nocek`
15
+ - Owner: `kazek`, repository: `nocek`
16
+ - Workflow name: `publish.yml`
17
+ - Environment name: `pypi` on PyPI, `testpypi` on TestPyPI
18
+
19
+ ## Each release
20
+
21
+ 1. Set the version in `src/nocek/__init__.py` (`0.1.0`, `0.1.1`, `0.2.0`, ...) and
22
+ commit it.
23
+ 2. Try it on TestPyPI: on GitHub, Actions, "Publish", "Run workflow" on `main`. Then,
24
+ on a computer with uv:
25
+
26
+ ```
27
+ uv tool install --torch-backend auto --index-url https://test.pypi.org/simple/ \
28
+ --extra-index-url https://pypi.org/simple/ --index-strategy unsafe-best-match nocek
29
+ ```
30
+
31
+ TestPyPI takes each version once too, so a second try needs a new version, such
32
+ as `0.1.1rc1`.
33
+ 3. Publish it: tag the commit and push the tag.
34
+
35
+ ```
36
+ git tag v0.1.0
37
+ git push origin v0.1.0
38
+ ```
39
+
40
+ The workflow checks that the tag names the version in the code, builds Nocek,
41
+ and publishes it. Users then get it with the install script or
42
+ `uv tool upgrade nocek`.
43
+
44
+ A version once on PyPI cannot be replaced, only followed by a newer one.
@@ -0,0 +1,28 @@
1
+ # Roadmap
2
+
3
+ Nocek is a rewrite of a single-station research setup as an application
4
+ anyone with a recorder can install and use. Work proceeds in stages; each
5
+ stage is small enough to review in one sitting.
6
+
7
+ | # | Stage | Content | Done |
8
+ | --- | --- | --- | --- |
9
+ | 0 | Skeleton | Package layout, tooling, tests, licence | ✓ |
10
+ | 1 | Core library | Pulse detection, the three classifiers behind one interface, cross-checking between them, tested against reference calls | ✓ |
11
+ | 2 | Storage | SQLite model: site, device, import, night, recording, per-classifier result. Species identified by scientific name | ✓ |
12
+ | 3 | Recorders | Safe, read-only import from a folder the user picks. Device adapters, starting with pippyg: device number, location, schedule and settings read from the card and respected | ✓ |
13
+ | 4 | Web backend | HTTP API, background jobs with progress, first-run model download, localisation plumbing | ✓ |
14
+ | 5 | Interface | One page: import, sites by recorder number, a calendar of nights, the night as one bar from sunset to sunrise, the recording with its spectrogram and slowed playback. Web Awesome components, light and dark themes | ✓ |
15
+ | 6 | Translations | English, Polish, German. Local species names, always shown with the scientific name | ✓ |
16
+ | 7 | Distribution | Published on PyPI; a one-line install script for each system, a shortcut in the system's menu, the browser opens on start | ✓ |
17
+ | 8 | Documentation | User guide, translator guide, architecture notes | |
18
+
19
+ Later: manual verification of identifications; other recorders (AudioMoth).
20
+
21
+ ## Decisions
22
+
23
+ - Python 3.11+, macOS, Windows and Linux.
24
+ - Backend: FastAPI. Frontend: plain JavaScript modules, no build step.
25
+ - Storage: one SQLite database inside the library, the folder the user chose.
26
+ - Web interface only; the command line just starts it and makes its shortcut.
27
+ - Translations: JSON files, one per language.
28
+ - Recordings and their metadata are kept as the recorder wrote them.