udata 9.1.2.dev30382__py2.py3-none-any.whl → 9.1.2.dev30454__py2.py3-none-any.whl

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

Potentially problematic release.


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

Files changed (28) hide show
  1. udata/api/__init__.py +1 -35
  2. udata/app.py +2 -1
  3. udata/cors.py +99 -0
  4. udata/routing.py +1 -1
  5. udata/static/chunks/{11.52e531c19f8de80c00cf.js → 11.e9b9ca1f3e03d4020377.js} +3 -3
  6. udata/static/chunks/{11.52e531c19f8de80c00cf.js.map → 11.e9b9ca1f3e03d4020377.js.map} +1 -1
  7. udata/static/chunks/{13.c3343a7f1070061c0e10.js → 13.038c0d9aa0dfa0181c4b.js} +2 -2
  8. udata/static/chunks/{13.c3343a7f1070061c0e10.js.map → 13.038c0d9aa0dfa0181c4b.js.map} +1 -1
  9. udata/static/chunks/{16.8fa42440ad75ca172e6d.js → 16.0baa2b64a74a2dcde25c.js} +2 -2
  10. udata/static/chunks/{16.8fa42440ad75ca172e6d.js.map → 16.0baa2b64a74a2dcde25c.js.map} +1 -1
  11. udata/static/chunks/{19.9c6c8412729cd6d59cfa.js → 19.350a9f150b074b4ecefa.js} +3 -3
  12. udata/static/chunks/{19.9c6c8412729cd6d59cfa.js.map → 19.350a9f150b074b4ecefa.js.map} +1 -1
  13. udata/static/chunks/{5.71d15c2e4f21feee2a9a.js → 5.6ebbce2b9b3e696d3da5.js} +3 -3
  14. udata/static/chunks/{5.71d15c2e4f21feee2a9a.js.map → 5.6ebbce2b9b3e696d3da5.js.map} +1 -1
  15. udata/static/chunks/{6.9139dc098b8ea640b890.js → 6.d8a5f7b017bcbd083641.js} +3 -3
  16. udata/static/chunks/{6.9139dc098b8ea640b890.js.map → 6.d8a5f7b017bcbd083641.js.map} +1 -1
  17. udata/static/common.js +1 -1
  18. udata/static/common.js.map +1 -1
  19. udata/tests/api/__init__.py +3 -0
  20. udata/tests/api/test_base_api.py +12 -12
  21. udata/tests/plugin.py +3 -0
  22. udata/tests/test_cors.py +62 -0
  23. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/METADATA +5 -2
  24. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/RECORD +28 -26
  25. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/LICENSE +0 -0
  26. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/WHEEL +0 -0
  27. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/entry_points.txt +0 -0
  28. {udata-9.1.2.dev30382.dist-info → udata-9.1.2.dev30454.dist-info}/top_level.txt +0 -0
udata/static/common.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){function __webpack_require__(c){if(a[c])return a[c].exports;var r=a[c]={exports:{},id:c,loaded:!1};return e[c].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}var c=window.webpackJsonp;window.webpackJsonp=function(f,b){for(var t,_,d=0,n=[];d<f.length;d++)_=f[d],r[_]&&n.push.apply(n,r[_]),r[_]=0;for(t in b){var i=b[t];switch(typeof i){case"object":e[t]=function(c){var a=c.slice(1),r=c[0];return function(c,f,b){e[r].apply(this,[c,f,b].concat(a))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(c&&c(f,b);n.length;)n.shift().call(null,__webpack_require__);if(b[0])return a[0]=0,__webpack_require__(0)};var a={},r={31:0};__webpack_require__.e=function(e,c){if(0===r[e])return c.call(null,__webpack_require__);if(void 0!==r[e])r[e].push(c);else{r[e]=[c];var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.src=__webpack_require__.p+"chunks/"+e+"."+{0:"37b83c6dc990e52cc593",1:"1985566f8b821be031da",2:"614b3e73b072982fd9b1",3:"1ca609753b5a02de0ca3",4:"9e1761727aa5471aa19e",5:"71d15c2e4f21feee2a9a",6:"9139dc098b8ea640b890",7:"45d819f8edd0af6f7408",8:"37e24cb993927c0739bc",9:"ba6c5ed42a4b3d1de13a",10:"8cd46b46c57b89afe199",11:"52e531c19f8de80c00cf",12:"f063483ea9d39dab31f3",13:"c3343a7f1070061c0e10",14:"37d4cd9fe625f51e895e",15:"6f5ceeacd2b7b74d680b",16:"8fa42440ad75ca172e6d",17:"831791e0bcaf9c8ad4ba",18:"48c373a95548582ecb20",19:"9c6c8412729cd6d59cfa",20:"371472cff605ff23e70c",21:"37da7c1b1910dd87ce69",22:"be7e14bf9623297b79d9",23:"5486b3fc83b194d55191",24:"e905e3f6ba089a34b07c",25:"e20b4daac9fb2bdceee6",26:"c8f33e73b9117b70aef8",27:"6779f92692327013b446",28:"280c392f19bc9e908abf",29:"daadfa33135efe4e5534",30:"bff1b2677139686b0e0c",32:"1c37209e865102e209b4",33:"70f8e7b1964892a24e67"}[e]+".js",a.appendChild(f)}},__webpack_require__.m=e,__webpack_require__.c=a,__webpack_require__.p="/static/"}(function(e){for(var c in e)if(Object.prototype.hasOwnProperty.call(e,c))switch(typeof e[c]){case"function":break;case"object":e[c]=function(c){var a=c.slice(1),r=e[c[0]];return function(e,c,f){r.apply(this,[e,c,f].concat(a))}}(e[c]);break;default:e[c]=e[e[c]]}return e}([]));
1
+ !function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var b=c[a]={exports:{},id:a,loaded:!1};return e[a].call(b.exports,b,b.exports,__webpack_require__),b.loaded=!0,b.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,f){for(var t,d,_=0,n=[];_<r.length;_++)d=r[_],b[d]&&n.push.apply(n,b[d]),b[d]=0;for(t in f){var i=f[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),b=a[0];return function(a,r,f){e[b].apply(this,[a,r,f].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,f);n.length;)n.shift().call(null,__webpack_require__);if(f[0])return c[0]=0,__webpack_require__(0)};var c={},b={31:0};__webpack_require__.e=function(e,a){if(0===b[e])return a.call(null,__webpack_require__);if(void 0!==b[e])b[e].push(a);else{b[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"37b83c6dc990e52cc593",1:"1985566f8b821be031da",2:"614b3e73b072982fd9b1",3:"1ca609753b5a02de0ca3",4:"9e1761727aa5471aa19e",5:"6ebbce2b9b3e696d3da5",6:"d8a5f7b017bcbd083641",7:"45d819f8edd0af6f7408",8:"37e24cb993927c0739bc",9:"ba6c5ed42a4b3d1de13a",10:"8cd46b46c57b89afe199",11:"e9b9ca1f3e03d4020377",12:"f063483ea9d39dab31f3",13:"038c0d9aa0dfa0181c4b",14:"37d4cd9fe625f51e895e",15:"6f5ceeacd2b7b74d680b",16:"0baa2b64a74a2dcde25c",17:"831791e0bcaf9c8ad4ba",18:"48c373a95548582ecb20",19:"350a9f150b074b4ecefa",20:"371472cff605ff23e70c",21:"37da7c1b1910dd87ce69",22:"be7e14bf9623297b79d9",23:"5486b3fc83b194d55191",24:"e905e3f6ba089a34b07c",25:"e20b4daac9fb2bdceee6",26:"c8f33e73b9117b70aef8",27:"6779f92692327013b446",28:"280c392f19bc9e908abf",29:"daadfa33135efe4e5534",30:"bff1b2677139686b0e0c",32:"1c37209e865102e209b4",33:"70f8e7b1964892a24e67"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),b=e[a[0]];return function(e,a,r){b.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
2
2
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap dc1d57d235c3f07555da"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"37b83c6dc990e52cc593\",\"1\":\"1985566f8b821be031da\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"9e1761727aa5471aa19e\",\"5\":\"71d15c2e4f21feee2a9a\",\"6\":\"9139dc098b8ea640b890\",\"7\":\"45d819f8edd0af6f7408\",\"8\":\"37e24cb993927c0739bc\",\"9\":\"ba6c5ed42a4b3d1de13a\",\"10\":\"8cd46b46c57b89afe199\",\"11\":\"52e531c19f8de80c00cf\",\"12\":\"f063483ea9d39dab31f3\",\"13\":\"c3343a7f1070061c0e10\",\"14\":\"37d4cd9fe625f51e895e\",\"15\":\"6f5ceeacd2b7b74d680b\",\"16\":\"8fa42440ad75ca172e6d\",\"17\":\"831791e0bcaf9c8ad4ba\",\"18\":\"48c373a95548582ecb20\",\"19\":\"9c6c8412729cd6d59cfa\",\"20\":\"371472cff605ff23e70c\",\"21\":\"37da7c1b1910dd87ce69\",\"22\":\"be7e14bf9623297b79d9\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"bff1b2677139686b0e0c\",\"32\":\"1c37209e865102e209b4\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"37b83c6dc990e52cc593\",\"1\":\"1985566f8b821be031da\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"9e1761727aa5471aa19e\",\"5\":\"71d15c2e4f21feee2a9a\",\"6\":\"9139dc098b8ea640b890\",\"7\":\"45d819f8edd0af6f7408\",\"8\":\"37e24cb993927c0739bc\",\"9\":\"ba6c5ed42a4b3d1de13a\",\"10\":\"8cd46b46c57b89afe199\",\"11\":\"52e531c19f8de80c00cf\",\"12\":\"f063483ea9d39dab31f3\",\"13\":\"c3343a7f1070061c0e10\",\"14\":\"37d4cd9fe625f51e895e\",\"15\":\"6f5ceeacd2b7b74d680b\",\"16\":\"8fa42440ad75ca172e6d\",\"17\":\"831791e0bcaf9c8ad4ba\",\"18\":\"48c373a95548582ecb20\",\"19\":\"9c6c8412729cd6d59cfa\",\"20\":\"371472cff605ff23e70c\",\"21\":\"37da7c1b1910dd87ce69\",\"22\":\"be7e14bf9623297b79d9\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"bff1b2677139686b0e0c\",\"32\":\"1c37209e865102e209b4\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap dc1d57d235c3f07555da\n **/"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap f13ba019fd6d8f4227cb"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"37b83c6dc990e52cc593\",\"1\":\"1985566f8b821be031da\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"9e1761727aa5471aa19e\",\"5\":\"6ebbce2b9b3e696d3da5\",\"6\":\"d8a5f7b017bcbd083641\",\"7\":\"45d819f8edd0af6f7408\",\"8\":\"37e24cb993927c0739bc\",\"9\":\"ba6c5ed42a4b3d1de13a\",\"10\":\"8cd46b46c57b89afe199\",\"11\":\"e9b9ca1f3e03d4020377\",\"12\":\"f063483ea9d39dab31f3\",\"13\":\"038c0d9aa0dfa0181c4b\",\"14\":\"37d4cd9fe625f51e895e\",\"15\":\"6f5ceeacd2b7b74d680b\",\"16\":\"0baa2b64a74a2dcde25c\",\"17\":\"831791e0bcaf9c8ad4ba\",\"18\":\"48c373a95548582ecb20\",\"19\":\"350a9f150b074b4ecefa\",\"20\":\"371472cff605ff23e70c\",\"21\":\"37da7c1b1910dd87ce69\",\"22\":\"be7e14bf9623297b79d9\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"bff1b2677139686b0e0c\",\"32\":\"1c37209e865102e209b4\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"37b83c6dc990e52cc593\",\"1\":\"1985566f8b821be031da\",\"2\":\"614b3e73b072982fd9b1\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"9e1761727aa5471aa19e\",\"5\":\"6ebbce2b9b3e696d3da5\",\"6\":\"d8a5f7b017bcbd083641\",\"7\":\"45d819f8edd0af6f7408\",\"8\":\"37e24cb993927c0739bc\",\"9\":\"ba6c5ed42a4b3d1de13a\",\"10\":\"8cd46b46c57b89afe199\",\"11\":\"e9b9ca1f3e03d4020377\",\"12\":\"f063483ea9d39dab31f3\",\"13\":\"038c0d9aa0dfa0181c4b\",\"14\":\"37d4cd9fe625f51e895e\",\"15\":\"6f5ceeacd2b7b74d680b\",\"16\":\"0baa2b64a74a2dcde25c\",\"17\":\"831791e0bcaf9c8ad4ba\",\"18\":\"48c373a95548582ecb20\",\"19\":\"350a9f150b074b4ecefa\",\"20\":\"371472cff605ff23e70c\",\"21\":\"37da7c1b1910dd87ce69\",\"22\":\"be7e14bf9623297b79d9\",\"23\":\"5486b3fc83b194d55191\",\"24\":\"e905e3f6ba089a34b07c\",\"25\":\"e20b4daac9fb2bdceee6\",\"26\":\"c8f33e73b9117b70aef8\",\"27\":\"6779f92692327013b446\",\"28\":\"280c392f19bc9e908abf\",\"29\":\"daadfa33135efe4e5534\",\"30\":\"bff1b2677139686b0e0c\",\"32\":\"1c37209e865102e209b4\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap f13ba019fd6d8f4227cb\n **/"],"sourceRoot":""}
@@ -33,3 +33,6 @@ class APITestCase(FrontTestCase):
33
33
 
34
34
  def delete(self, url, data=None, *args, **kwargs):
35
35
  return self.api.delete(url, data=data, *args, **kwargs)
36
+
37
+ def options(self, url, data=None, *args, **kwargs):
38
+ return self.api.options(url, data=data, *args, **kwargs)
@@ -27,29 +27,29 @@ class FakeFormAPI(API):
27
27
  class OptionsCORSTest(APITestCase):
28
28
  def test_should_allow_options_and_cors(self):
29
29
  """Should allow OPTIONS operation and give cors parameters"""
30
- response = self.client.options(url_for("api.fake-options"))
30
+ response = self.client.options(
31
+ url_for("api.fake-options"),
32
+ headers={
33
+ "Origin": "http://localhost",
34
+ "Access-Control-Request-Method": "GET",
35
+ },
36
+ )
31
37
 
32
- self.assert200(response)
33
- self.assertEqual(response.headers["Access-Control-Allow-Origin"], "*")
34
- allowed_methods = response.headers["Allow"]
35
- self.assertIn("HEAD", allowed_methods)
36
- self.assertIn("OPTIONS", allowed_methods)
37
- self.assertIn("GET", allowed_methods)
38
+ self.assert204(response)
39
+ self.assertEqual(response.headers["Access-Control-Allow-Origin"], "http://localhost")
38
40
 
39
41
  response = self.client.options(
40
42
  url_for("api.fake-options"),
41
43
  headers={
44
+ "Origin": "http://localhost",
42
45
  "Access-Control-Request-Method": "GET",
43
46
  "Authorization": "Bearer YouWillNeverGuess",
44
47
  "Access-Control-Request-Headers": "Authorization",
45
48
  },
46
49
  )
47
- self.assertEqual(response.headers["Access-Control-Allow-Origin"], "*")
50
+ self.assertEqual(response.headers["Access-Control-Allow-Origin"], "http://localhost")
48
51
  self.assertEqual(response.headers["Access-Control-Allow-Headers"], "Authorization")
49
- self.assertEqual(
50
- response.headers["Access-Control-Allow-Methods"],
51
- "DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT",
52
- )
52
+ self.assertEqual(response.headers["Access-Control-Allow-Methods"], "GET")
53
53
 
54
54
 
55
55
  class JSONFormRequestTest(APITestCase):
udata/tests/plugin.py CHANGED
@@ -203,6 +203,9 @@ class ApiClient(object):
203
203
  def delete(self, url, data=None, *args, **kwargs):
204
204
  return self.perform("delete", url, data=data or {}, *args, **kwargs)
205
205
 
206
+ def options(self, url, data=None, *args, **kwargs):
207
+ return self.perform("options", url, data=data or {}, *args, **kwargs)
208
+
206
209
 
207
210
  @pytest.fixture
208
211
  def api(client):
@@ -0,0 +1,62 @@
1
+ from datetime import datetime
2
+
3
+ import pytest
4
+ from flask import url_for
5
+
6
+ from udata.core.dataset.factories import DatasetFactory
7
+ from udata.core.topic.factories import TopicFactory
8
+ from udata.search import reindex
9
+ from udata.tests.api import APITestCase
10
+ from udata.tests.helpers import assert_status
11
+
12
+
13
+ class CorsTest(APITestCase):
14
+ modules = []
15
+
16
+ def test_cors_redirects(self):
17
+ dataset = DatasetFactory(title="Old title")
18
+ old_slug = dataset.slug
19
+
20
+ # New slug to force a redirect from old slug
21
+ dataset.title = "New title"
22
+ dataset.save()
23
+
24
+ response = self.get(url_for("api.dataset", dataset=old_slug))
25
+ assert_status(response, 308)
26
+
27
+ response = self.options(
28
+ url_for("api.dataset", dataset=old_slug),
29
+ headers={
30
+ "Origin": "http://localhost",
31
+ "Access-Control-Request-Method": "GET",
32
+ },
33
+ )
34
+ assert_status(response, 204)
35
+
36
+ def test_cors_404(self):
37
+ response = self.get(url_for("api.dataset", dataset="unknown-dataset"))
38
+ assert_status(response, 404)
39
+
40
+ response = self.options(
41
+ url_for("api.dataset", dataset="unknown-dataset"),
42
+ headers={
43
+ "Origin": "http://localhost",
44
+ "Access-Control-Request-Method": "GET",
45
+ },
46
+ )
47
+ assert_status(response, 204)
48
+
49
+ def test_cors_410_with_api_abort(self):
50
+ dataset = DatasetFactory(deleted=datetime.now())
51
+
52
+ response = self.get(url_for("api.dataset", dataset=dataset.id))
53
+ assert_status(response, 410)
54
+
55
+ response = self.options(
56
+ url_for("api.dataset", dataset=dataset.id),
57
+ headers={
58
+ "Origin": "http://localhost",
59
+ "Access-Control-Request-Method": "GET",
60
+ },
61
+ )
62
+ assert_status(response, 204)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 9.1.2.dev30382
3
+ Version: 9.1.2.dev30454
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -53,7 +53,6 @@ Requires-Dist: flask ==2.1.2
53
53
  Requires-Dist: flask-babel ==4.0.0
54
54
  Requires-Dist: flask-caching ==2.0.2
55
55
  Requires-Dist: flask-cdn ==1.5.3
56
- Requires-Dist: flask-cors ==3.0.8
57
56
  Requires-Dist: flask-gravatar ==0.5.0
58
57
  Requires-Dist: flask-login ==0.6.2
59
58
  Requires-Dist: flask-mail ==0.9.1
@@ -85,6 +84,7 @@ Requires-Dist: netaddr ==0.7.19
85
84
  Requires-Dist: packaging ==24.1
86
85
  Requires-Dist: passlib ==1.7.4
87
86
  Requires-Dist: pillow ==9.2.0
87
+ Requires-Dist: ply ==3.11
88
88
  Requires-Dist: prompt-toolkit ==3.0.47
89
89
  Requires-Dist: pycparser ==2.2
90
90
  Requires-Dist: pydenticon ==0.3.1
@@ -94,8 +94,10 @@ Requires-Dist: python-dateutil ==2.8.2
94
94
  Requires-Dist: pytz ==2024.1
95
95
  Requires-Dist: rdflib ==6.0.0
96
96
  Requires-Dist: redis ==4.5.2
97
+ Requires-Dist: referencing ==0.35.1
97
98
  Requires-Dist: regex ==2024.5.15
98
99
  Requires-Dist: requests ==2.24.0
100
+ Requires-Dist: rpds-py ==0.19.0
99
101
  Requires-Dist: s3transfer ==0.6.2
100
102
  Requires-Dist: six ==1.16.0
101
103
  Requires-Dist: speaklater ==1.3
@@ -138,6 +140,7 @@ It is collectively taken care of by members of the
138
140
  ## Current (in progress)
139
141
 
140
142
  - Add linter and formatter with `pyproject.toml` config, add lint and formatting step in CI, add pre-commit hook to lint and format, update docs and lint and format the code [#3085](https://github.com/opendatateam/udata/pull/3085)
143
+ - Revamp CORS: remove flask-cors to always returns 204 on OPTIONS request [#3074](https://github.com/opendatateam/udata/pull/3074)
141
144
  - Update pinned dependencies according to project dependencies, without updating any project dependencies [#3089](https://github.com/opendatateam/udata/pull/3089)
142
145
  - Add "run" button to harvesters (configurable with `HARVEST_ENABLE_MANUAL_RUN`) [#3092](https://github.com/opendatateam/udata/pull/3092)
143
146
 
@@ -2,15 +2,16 @@ tasks/__init__.py,sha256=oZ9yTY3eyOXRbN18_83l1b4BpqjIBVqw-FqD1LFWGxo,8122
2
2
  tasks/helpers.py,sha256=0a9iXzVe2GC2f6ouFoXDfMGN2s1eu4urTUuM9CCTZP8,994
3
3
  udata/__init__.py,sha256=y6WWIlMmNt4ADXtwHIWm-Dzb-txi6Y8hxw0fqe5TJwU,101
4
4
  udata/api_fields.py,sha256=YRLHniJYoRRI6cNJNgB-0U9A049_g1yV-Tp5u8VcLQs,14148
5
- udata/app.py,sha256=YZaQjL8IKLESev_LAqufuCJYte9Uy9fp_JmApe2IOxM,7255
5
+ udata/app.py,sha256=lMxCLveZyMmaimkryDjD-VpHBC5OMEgd95VszM84y-8,7284
6
6
  udata/assets.py,sha256=jGxFWVu6JvDLK1SXBZC-rY-DGkGxguF3LFikOklyzdE,645
7
+ udata/cors.py,sha256=QyhlcnkLo9SmJhgK3FRjLcD5YC-03bU514UVMAHfbSc,2995
7
8
  udata/entrypoints.py,sha256=mbAAUVT8ZenzSYdang2PbAwZcK1pENtA3axBmPRiWCw,2717
8
9
  udata/errors.py,sha256=E8W7b4PH7c5B85g_nsUMt8fHqMVpDFOZFkO6wMPl6bA,117
9
10
  udata/factories.py,sha256=MoklZnU8iwNL25dm3JsoXhoQs1PQWSVYL1WvcUBtJqM,492
10
11
  udata/i18n.py,sha256=Q7UELAhKOW7DmUX8BjEMnqqhQxcR6d3ioSmj90A62cg,8992
11
12
  udata/mail.py,sha256=MShopArrtXyn8SnXtNbWUR0C4mTj1gI3a3Lf_1We-j4,2167
12
13
  udata/rdf.py,sha256=GDqnBuJd2KryJDpJjPuH0WpkZIPoOEa2uOACr5mNCik,13835
13
- udata/routing.py,sha256=vOWnlHicbRClbk93u4cL_maHhZU6e99SFKk1YTX1nSA,7165
14
+ udata/routing.py,sha256=fwtnA7mbV535Jpblm2urhUs2UBgsevYGNE711V8T5oI,7120
14
15
  udata/sentry.py,sha256=sLkVw-BF_ad4hOveDpnk6oFjLijGTAFS2STMbcg1w84,2678
15
16
  udata/settings.py,sha256=EUPPsPi3pKxnXSLxmKWhKtdBmtWfJl7torWpSWU9kbA,17817
16
17
  udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
@@ -24,7 +25,7 @@ udata/worker.py,sha256=K-Wafye5-uXP4kQlffRKws2J9YbJ6m6n2QjcVsY8Nsg,118
24
25
  udata/wsgi.py,sha256=MY8en9K9eDluvJYUxTdzqSDoYaDgCVZ69ZcUvxAvgqA,77
25
26
  udata/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
27
  udata/admin/views.py,sha256=00fI1O55apOlwIc0li2BdvEEGMd5l5isd5A_eHvzu3Y,331
27
- udata/api/__init__.py,sha256=pPM3wGw5XoKQ2LuUBDj5mQi0fMyyGKoX2NhFlqwreVI,11408
28
+ udata/api/__init__.py,sha256=hbld2aEAQWh5DmcWot6cYLpUf34lON0ux0aV_SFqu6E,10680
28
29
  udata/api/commands.py,sha256=jqsUetPmTrxsvvGHIAf_qNMS3Wb4auBRYVMOWMKqe_g,3266
29
30
  udata/api/errors.py,sha256=P_UigBf6HAL73LbXKULagmp5Cuw-H1Ms6LmXxOmFIeg,211
30
31
  udata/api/fields.py,sha256=FIvRmhIJivEKQWkcXeSM7c6uJwIYX3_JV9DAdMOQO_E,3077
@@ -422,8 +423,8 @@ udata/static/admin.css,sha256=RC7GvbVK8c5wDuELPeVdQpy3ab7HbHl1T4hUo5n-NVk,185167
422
423
  udata/static/admin.css.map,sha256=tUhFfsJUK3RrWCih9gUkf-Ywccuztxf4tqvXcN6zP3Y,626542
423
424
  udata/static/admin.js,sha256=MqXQC-dxgrAEuESQGbLSMKyPiOs2x9KCSeXKF9OCr0k,1323952
424
425
  udata/static/admin.js.map,sha256=ovzXwNsaL4L_LrPD1AKfJfBUf1ur9Huc3tDmIRbI77Q,8503099
425
- udata/static/common.js,sha256=K_UtmpzO0wujwV4NXIoxSbmqje51NVDpOL_KRQGnsgI,2252
426
- udata/static/common.js.map,sha256=OLtlPNCbReZLET6lURZONQhna3fS4bemPqC7VURNuZs,14137
426
+ udata/static/common.js,sha256=cjjeotIBwTkbUucmeYZAqgYRxPe69YmWOwhyRnW3rH4,2252
427
+ udata/static/common.js.map,sha256=YIiAOLn-STf41isqO4rslVokyWFPd7tmDrAb7kOj2Fk,14137
427
428
  udata/static/fontawesome-webfont.eot,sha256=e_yrbbmdXPvxcFygU23ceFhUMsxfpBu9etDwCQM7KXk,165742
428
429
  udata/static/fontawesome-webfont.svg,sha256=rWFXkmwWIrpOHQPUePFUE2hSS_xG9R5C_g2UX37zI-Q,444379
429
430
  udata/static/fontawesome-webfont.ttf,sha256=qljzPyOaD7AvXHpsRcBD16msmgkzNYBmlOzW1O3A1qg,165548
@@ -442,24 +443,24 @@ udata/static/chunks/1.1985566f8b821be031da.js,sha256=gwb3bofNWHNNK9aiZaZS_OGdBdc
442
443
  udata/static/chunks/1.1985566f8b821be031da.js.map,sha256=zVhRk_bX1kDqAFfB11a4ABoG9Zw19IjsT-6KfAAnmGs,1740689
443
444
  udata/static/chunks/10.8cd46b46c57b89afe199.js,sha256=a3UJM8LaPT1RI-ntRWk0BLTkVBxke7iWRP0eldf5u7E,416588
444
445
  udata/static/chunks/10.8cd46b46c57b89afe199.js.map,sha256=LzA-kgSDzI4qNdHRpIvVNQCBKz3lhd_RjvKhU14g6ug,2744182
445
- udata/static/chunks/11.52e531c19f8de80c00cf.js,sha256=yD02JunjmDb6lXzxrQK-0FXj3so7AAu84yKEwUM7PEQ,395755
446
- udata/static/chunks/11.52e531c19f8de80c00cf.js.map,sha256=hF-fUaWtV00dBWCdR82WlLf3-jDs0BEXZpPRHh-LKLw,2269851
446
+ udata/static/chunks/11.e9b9ca1f3e03d4020377.js,sha256=SqnjDLqVyGmfIO8gOMhkFIaYi-IB8Hhgceot86U6rOg,395755
447
+ udata/static/chunks/11.e9b9ca1f3e03d4020377.js.map,sha256=-rOjsp8fIeR7Nau5jR89mjkIDZrTA6ExGxjTptmZ_8g,2269851
447
448
  udata/static/chunks/12.f063483ea9d39dab31f3.js,sha256=waHKl9k496O6kDPgi86WKUES0z61Y9jdUcujCM5rSaY,421036
448
449
  udata/static/chunks/12.f063483ea9d39dab31f3.js.map,sha256=v5UP6rJJijvDZ5mMViya886UrW0SWx27FgE8Y_HV2IQ,2441628
449
- udata/static/chunks/13.c3343a7f1070061c0e10.js,sha256=Qek9O7h1_MOGcc7Cc_9CbxmLfw--3NK6LJasEFgykY8,420505
450
- udata/static/chunks/13.c3343a7f1070061c0e10.js.map,sha256=dAFibqZpSutyEV-LLlhCqiNvMipb8dERpj05lFntMe4,2430090
450
+ udata/static/chunks/13.038c0d9aa0dfa0181c4b.js,sha256=eQzhTtj-ZhM0TnSTo25bVcD7dPDqS1lGy78D98YrQbw,420505
451
+ udata/static/chunks/13.038c0d9aa0dfa0181c4b.js.map,sha256=O7vDHmXlPAcIyS3TivF97iHfry3tK23rY3Bey26bu3M,2430090
451
452
  udata/static/chunks/14.37d4cd9fe625f51e895e.js,sha256=paYctpJTzLyAhZ7T5kiRBucMwoHeCfxFcdZk90K8c2I,290172
452
453
  udata/static/chunks/14.37d4cd9fe625f51e895e.js.map,sha256=Une_RoV9Su6JAwdR9Z3x49nlbk2mv4OBoZaZ6fRiiUI,1635848
453
454
  udata/static/chunks/15.6f5ceeacd2b7b74d680b.js,sha256=VC7zxY5un7Yjs-ppcvrXtY80puCw27sDpe30-O-D4W0,228681
454
455
  udata/static/chunks/15.6f5ceeacd2b7b74d680b.js.map,sha256=xrBP1BUG06mOd8uVZJ_-r8vHMOdgXmSYT_Uc6nCWwYo,1575013
455
- udata/static/chunks/16.8fa42440ad75ca172e6d.js,sha256=za8KfchBrWCbf-V1a5Y7pO4VP8c9ORb14vU0d__ey-E,236580
456
- udata/static/chunks/16.8fa42440ad75ca172e6d.js.map,sha256=7jeFMoWp_2VYNpbMSzTwcDQjD9gXaHssBrOfsI0IbHk,1289130
456
+ udata/static/chunks/16.0baa2b64a74a2dcde25c.js,sha256=XypoAhL49h5lSHY_PJrtzUn85sjp3MR_J4DSHSepyLo,236580
457
+ udata/static/chunks/16.0baa2b64a74a2dcde25c.js.map,sha256=Gn3Og6I4CMNS6nZkNqTCTClRrsRjSr5svb6mgRrzcDk,1289130
457
458
  udata/static/chunks/17.831791e0bcaf9c8ad4ba.js,sha256=zCC5VzpGALI1wYDyCYgs0NS1-mtDkd_TVF5X02C6Ggo,134827
458
459
  udata/static/chunks/17.831791e0bcaf9c8ad4ba.js.map,sha256=VNvL-1xybyb_C0ug1XWeC-9IpqyRI-3jExzWBSG3LAU,681951
459
460
  udata/static/chunks/18.48c373a95548582ecb20.js,sha256=9FVbZk_OCct6XaUZa39_ynsHp3JyoJFX7EgsWCsf8mc,50722
460
461
  udata/static/chunks/18.48c373a95548582ecb20.js.map,sha256=WhUhEa3JFaFLXUH3qwKii_ZdHCDtKlOiV44KtdbXbX0,279426
461
- udata/static/chunks/19.9c6c8412729cd6d59cfa.js,sha256=0VM_HVll-iUmTL2JJlVjGyalUVGZVJjpMStMPN4XYaI,203649
462
- udata/static/chunks/19.9c6c8412729cd6d59cfa.js.map,sha256=gqFaJCrJJkl8iBoY48E2wMyiWFjYj6Ae0JeqFMs52Uo,1081064
462
+ udata/static/chunks/19.350a9f150b074b4ecefa.js,sha256=ZoXQdEqeRewa7KkMSswGxg9If4HEqzBXq6Vv5ybimVo,203649
463
+ udata/static/chunks/19.350a9f150b074b4ecefa.js.map,sha256=1_TYk7HU84RtdRxYoRjoTa8Asa9gvjm6ahshZQRioA4,1081064
463
464
  udata/static/chunks/2.614b3e73b072982fd9b1.js,sha256=2AjukB7x12ryFJdyKVLLyF71S3RZfQAZPhNyDQK6AD8,276355
464
465
  udata/static/chunks/2.614b3e73b072982fd9b1.js.map,sha256=z4W49Eal5baYh5brXpzITxRK6c1dl-3GmovsB95Vk2c,1554832
465
466
  udata/static/chunks/20.371472cff605ff23e70c.js,sha256=Ih7DddNITjYmPuMS1q8wUySSWEoI8nILyrUNBCCSnp8,36850
@@ -490,10 +491,10 @@ udata/static/chunks/33.70f8e7b1964892a24e67.js,sha256=CP8Hb0M4O6jXd5s8_TI1BhyKB4
490
491
  udata/static/chunks/33.70f8e7b1964892a24e67.js.map,sha256=0ejAXya7tMgkLGrybenkpOBCp5PpkIOy_WexGpcFu5k,709305
491
492
  udata/static/chunks/4.9e1761727aa5471aa19e.js,sha256=h0X95e9cNjjAfQm0wuedOScvndhlYRdfRfwzK0fezOo,608722
492
493
  udata/static/chunks/4.9e1761727aa5471aa19e.js.map,sha256=tqsP_ZQA--TRstvuqWHJsfEnnRPJ5S8CaXrvm83XbUc,3721678
493
- udata/static/chunks/5.71d15c2e4f21feee2a9a.js,sha256=L-99R-3OK5VsBKDeRjlh5tFKvQ39x-NJtKa4un70R2c,578827
494
- udata/static/chunks/5.71d15c2e4f21feee2a9a.js.map,sha256=tlZVXjZI15wmQ6Zci2XrxD8c7N-mOU42-oJxeUtADTU,3584289
495
- udata/static/chunks/6.9139dc098b8ea640b890.js,sha256=UF_ruP5Y4UaTC0RivJ0DCUNewrKlzLbF2wV1z0SdIO4,609276
496
- udata/static/chunks/6.9139dc098b8ea640b890.js.map,sha256=9b3AD9JM6vMaZTjYv2ai0jgU-Qm8EvUp7qQeIxAgW4Q,3780547
494
+ udata/static/chunks/5.6ebbce2b9b3e696d3da5.js,sha256=7W46xMkw_PYM0H6sSEfdfyAFsJK4WWZzc4L_F3lDaDo,578827
495
+ udata/static/chunks/5.6ebbce2b9b3e696d3da5.js.map,sha256=BsRHcV7LkCQkV7GNeDtcdswB52Vjq160mssq38OKgNg,3584289
496
+ udata/static/chunks/6.d8a5f7b017bcbd083641.js,sha256=3XvitY4mDXPc90IFwvqlKNg6vv7xRUXmUwsO2n3Tg18,609276
497
+ udata/static/chunks/6.d8a5f7b017bcbd083641.js.map,sha256=gnNCvbAp2VNtzzXmbyTDrVRViMK74s1sx3OvHRKpmQU,3780547
497
498
  udata/static/chunks/7.45d819f8edd0af6f7408.js,sha256=uZ0ZLAW4dzvCMRAUvb1HD_hpGIgYSzaGczpTSbDzr8E,153160
498
499
  udata/static/chunks/7.45d819f8edd0af6f7408.js.map,sha256=aCaXMaA-yktTDgvbWXacxBC9_e22BD0Nk3-BkyQw090,793001
499
500
  udata/static/chunks/8.37e24cb993927c0739bc.js,sha256=NvCoq6YRVx_YHGJlveqYO3mN6K8evrcX5B8lWNIA1Ok,418567
@@ -576,9 +577,10 @@ udata/tests/__init__.py,sha256=98jv17nvpQYOfUQ6ZjDPMZLag1cDrSslwCmveEqh-O8,2335
576
577
  udata/tests/es-fake-result.json,sha256=z0CX9Gs-NRj49dmtdFvw8ZKsAbMhDt97Na6JX3ucX34,3155
577
578
  udata/tests/helpers.py,sha256=VP8cz13WBxkMoTUbOwnMV2-bzE4nVHI6l_z6m3u1DIE,5975
578
579
  udata/tests/models.py,sha256=5oTC-cgKSL0sUdlqjUiJ6U8-YZBQanObb-MhZhQIV3M,238
579
- udata/tests/plugin.py,sha256=ACXcDufrJluGGKQA6po4hsaCmEpjSiVW8UZ5pLCdsEQ,11445
580
+ udata/tests/plugin.py,sha256=dT3KfQiVYwLM61TbB894wzTelnlPIsCHaiPEH-Jirfk,11580
580
581
  udata/tests/schemas.json,sha256=szM1jDpkogfOG4xWbjIGjLgG8l9-ZyE3JKQtecJyD1E,4990
581
582
  udata/tests/test_activity.py,sha256=x-pDK6VW9wAG0uxYRZQ3DWTRjfCU729iaMGMJb1rWYU,3195
583
+ udata/tests/test_cors.py,sha256=UNU-5EF1G8Znjw7s5i7uTTVgg5HpJX30NGslKtjoZTE,1879
582
584
  udata/tests/test_discussions.py,sha256=UN2mlZp-h3m3HqdF_nz9WOxwPKgXok47E2Rrp2dknYI,30464
583
585
  udata/tests/test_i18n.py,sha256=u60344JNRG_8s0t89ghXtQ1FbF4TayEHBzuBFxqnQ_Y,3152
584
586
  udata/tests/test_linkchecker.py,sha256=W8jrwKYXM8wWXZFjiaBwpWGRBhZ8bsSHGHzL9voDN7U,10218
@@ -595,9 +597,9 @@ udata/tests/test_topics.py,sha256=nBQZvbk2F1QYd6qiZDtVKuJ8_Ee8g0hT6dTGDw1Vwuk,13
595
597
  udata/tests/test_transfer.py,sha256=xhZwzkwGFvow5ejk9N_-4jS40lhJi7tEaVTWw7Do4TM,7832
596
598
  udata/tests/test_uris.py,sha256=MxafZ0SyzSNRomVpZnH1ChzWaHOi1MQiXe1gmKnBc6o,8517
597
599
  udata/tests/test_utils.py,sha256=3BGnlvw-GOE6tLHQteo-uUeYuzq4rsjePOuytFGkpOg,7967
598
- udata/tests/api/__init__.py,sha256=NLY49kejr1fb75mBS14tgWPmnDHtBK0PUngukNvcEzk,1096
600
+ udata/tests/api/__init__.py,sha256=y4sL7LD1-KwONHF0q_Rhk2W6BmGUlp7Uz2JnX3e27sk,1218
599
601
  udata/tests/api/test_auth_api.py,sha256=0Y_JXQ4x8jvc_pp4g3H6gZ_X0QVGM6TaZ2IN9LeOWEg,21657
600
- udata/tests/api/test_base_api.py,sha256=RxQJcxW5mNeiGzHGgji8KVsW9vQZuv9QkAtTDQ6HnR0,2285
602
+ udata/tests/api/test_base_api.py,sha256=ADSfG5knDp5LxCqEaidPgfo2wqhkPUglKrBx_rMghxI,2252
601
603
  udata/tests/api/test_contact_points.py,sha256=lqy-PF9ePFJB3BkPSTfAgzhw3AI7Gwl3pU2VWY4fw-k,1055
602
604
  udata/tests/api/test_dataservices_api.py,sha256=Ch7V7DXOVOQh4qU4z2kfXmH0fgUoTGRpGf1MebVsnGA,11996
603
605
  udata/tests/api/test_datasets_api.py,sha256=LSuZqJCJHXw04IXlOL2xhbWsAEMes9YX5pjFhiJk1Ag,80625
@@ -696,9 +698,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=yfwqLHV-_mGNaDklP7T0pQP4i1y__s
696
698
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=E45ZRCW2bpedoWOztkgJ9gwBlg2L1pTcHmCXgqSdhT0,44979
697
699
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=w_x0mh_WagUuQ5QFweqHg5-HtDrsoyL66HVmUxrdR0U,28500
698
700
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=LfaUQzhrfDClLdBo_U2erasp2XR1z1_V132cewvZ9C8,51548
699
- udata-9.1.2.dev30382.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
700
- udata-9.1.2.dev30382.dist-info/METADATA,sha256=8JfhBIi48qoZwQLATrpuXoDV7LVc6aCMAHeKna5bnzo,126410
701
- udata-9.1.2.dev30382.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
702
- udata-9.1.2.dev30382.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
703
- udata-9.1.2.dev30382.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
704
- udata-9.1.2.dev30382.dist-info/RECORD,,
701
+ udata-9.1.2.dev30454.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
702
+ udata-9.1.2.dev30454.dist-info/METADATA,sha256=QuFdpPccOwz_a_joED7f7E5p-fat-TmuHm68TWlX47w,126601
703
+ udata-9.1.2.dev30454.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
704
+ udata-9.1.2.dev30454.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
705
+ udata-9.1.2.dev30454.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
706
+ udata-9.1.2.dev30454.dist-info/RECORD,,