Jelajahi Sumber

[frontend] Upgrade django-webpack-loader to 1.0.0

Johan Åhlén 4 tahun lalu
induk
melakukan
95838710a6
100 mengubah file dengan 920 tambahan dan 652 penghapusan
  1. 1 1
      NOTICE.txt
  2. 0 39
      desktop/core/ext-py/django-webpack-loader-0.5.0/.travis.yml
  3. 0 25
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/app/urls.py
  4. 0 4
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/assets/js/index.jsx
  5. TEMPAT SAMPAH
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/db.sqlite3
  6. 0 19
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/package.json
  7. 0 37
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/webpack.config.js
  8. 0 25
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/urls.py
  9. 0 1
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/views.py
  10. 0 7
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/assets/js/app.jsx
  11. 0 4
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/assets/js/index.jsx
  12. TEMPAT SAMPAH
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/db.sqlite3
  13. 0 10
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/manage.py
  14. 0 19
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/package.json
  15. 0 17
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/server.js
  16. 0 36
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/webpack.config.js
  17. 0 25
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/urls.py
  18. 0 1
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/views.py
  19. 0 7
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/assets/js/app.jsx
  20. 0 4
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/assets/js/index.jsx
  21. TEMPAT SAMPAH
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/db.sqlite3
  22. 0 10
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/manage.py
  23. 0 18
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/package.json
  24. 0 1
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/webpack-stats.json
  25. 0 29
      desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/webpack.config.js
  26. 0 5
      desktop/core/ext-py/django-webpack-loader-0.5.0/requirements-dev.txt
  27. 0 1
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/views.py
  28. 0 7
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/assets/js/app.jsx
  29. TEMPAT SAMPAH
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/db.sqlite3
  30. 0 10
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/manage.py
  31. 0 22
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/package.json
  32. 0 30
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/tox.ini
  33. 0 32
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.error.js
  34. 0 32
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.gzipTest.js
  35. 0 32
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.simple.js
  36. 0 40
      desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.split.js
  37. 296 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/.circleci/config.yml
  38. 1 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/.gitignore
  39. 6 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/CHANGELOG.md
  40. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/LICENSE
  41. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/LICENSE.txt
  42. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/MANIFEST.in
  43. 4 6
      desktop/core/ext-py/django-webpack-loader-1.0.0/Makefile
  44. 56 15
      desktop/core/ext-py/django-webpack-loader-1.0.0/README.md
  45. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/README.md
  46. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/README.md
  47. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/__init__.py
  48. 16 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/asgi.py
  49. 24 20
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/settings.py
  50. 23 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/urls.py
  51. 2 2
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/wsgi.py
  52. 7 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/app.jsx
  53. 6 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/index.jsx
  54. 1 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/other.js
  55. 5 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/babel.config.js
  56. 22 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/manage.py
  57. 20 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/package.json
  58. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/requirements.txt
  59. 1 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/templates/home.html
  60. 36 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/webpack.config.js
  61. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/README.md
  62. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/__init__.py
  63. 16 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/asgi.py
  64. 24 20
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/settings.py
  65. 23 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/urls.py
  66. 2 2
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/wsgi.py
  67. 3 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/css/app.css
  68. 8 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/js/app.jsx
  69. 6 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/js/index.jsx
  70. 5 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/babel.config.js
  71. 22 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/manage.py
  72. 22 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/package.json
  73. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/requirements.txt
  74. 20 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/server.js
  75. 2 1
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/templates/home.html
  76. 43 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/webpack.config.js
  77. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/README.md
  78. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/__init__.py
  79. 16 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/asgi.py
  80. 24 20
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/settings.py
  81. 23 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/urls.py
  82. 2 2
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/wsgi.py
  83. 3 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/css/app.css
  84. 8 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/js/app.jsx
  85. 6 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/js/index.jsx
  86. 5 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/babel.config.js
  87. 22 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/manage.py
  88. 22 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/package.json
  89. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/requirements.txt
  90. 2 2
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/templates/home.html
  91. 42 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/webpack.config.js
  92. 5 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/requirements-dev.txt
  93. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/setup.cfg
  94. 15 10
      desktop/core/ext-py/django-webpack-loader-1.0.0/setup.py
  95. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/.coveragerc
  96. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/.coveralls.yml
  97. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/README.md
  98. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/__init__.py
  99. 2 2
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/settings.py
  100. 0 0
      desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/templates/home.html

+ 1 - 1
NOTICE.txt

@@ -504,7 +504,7 @@ django-openid-auth 0.14 : BSD 3-clause "New" or "Revised" License
 django-opentracing 1.1.0 : BSD 3-clause "New" or "Revised" License
 django-prometheus 1.0.10 : Apache License 2.0
 django-timezone-field 2.1 : BSD 3-clause "New" or "Revised" License
-django-webpack-loader 20181130-snapshot-6fd103d3 : MIT License
+django-webpack-loader 1.0 : MIT License
 djangomako 1.0.1 : MIT License
 dnspython 1.15.0 : ISC License
 doctrine v2.1.0 : (BSD 2-clause "Simplified" License AND Apache License 2.0)

+ 0 - 39
desktop/core/ext-py/django-webpack-loader-0.5.0/.travis.yml

@@ -1,39 +0,0 @@
-language: python
-sudo: false
-# command to install dependencies
-before_install: "cd tests"
-install: travis_retry pip install 'tox<3.0' coveralls
-# command to run tests
-script:
-  - npm install
-  - tox -e "${TOXENV}"
-after_success:
-  - coverage xml
-  - cp coverage.xml ../
-  - coveralls
-env:
-  matrix:
-    - TOXENV=py27-django16
-    - TOXENV=py27-django17
-    - TOXENV=py27-django18
-    - TOXENV=py27-django19
-    - TOXENV=py27-django110
-    - TOXENV=py27-django111
-    - TOXENV=py34-django17
-    - TOXENV=py34-django18
-    - TOXENV=py34-django19
-    - TOXENV=py34-django110
-    - TOXENV=py34-django111
-
-# Python 3.5 has to go here until Travis adds it to the default build images.
-# https://github.com/travis-ci/travis-ci/issues/4794#issuecomment-143758799
-matrix:
-  include:
-    - python: 3.5
-      env: TOXENV=py35-django18
-    - python: 3.5
-      env: TOXENV=py35-django19
-    - python: 3.5
-      env: TOXENV=py35-django110
-    - python: 3.5
-      env: TOXENV=py35-django111

+ 0 - 25
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/app/urls.py

@@ -1,25 +0,0 @@
-"""app URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
-    https://docs.djangoproject.com/en/1.8/topics/http/urls/
-Examples:
-Function views
-    1. Add an import:  from my_app import views
-    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
-Class-based views
-    1. Add an import:  from other_app.views import Home
-    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
-Including another URLconf
-    1. Add an import:  from blog import urls as blog_urls
-    2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
-"""
-from django.conf.urls import include, url
-from django.contrib import admin
-from django.views.generic import TemplateView
-
-
-
-urlpatterns = [
-    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
-    url(r'^admin/', include(admin.site.urls)),
-]

+ 0 - 4
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/assets/js/index.jsx

@@ -1,4 +0,0 @@
-var React = require('react');
-var App = require('./app');
-
-React.render(<App/>, document.getElementById('react-app'));

TEMPAT SAMPAH
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/db.sqlite3


+ 0 - 19
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/package.json

@@ -1,19 +0,0 @@
-{
-  "name": "example",
-  "version": "0.0.0",
-  "description": "",
-  "main": "index.js",
-  "author": "Owais Lone",
-  "license": "MIT",
-  "devDependencies": {
-    "babel": "^5.4.7",
-    "babel-core": "^5.4.7",
-    "babel-loader": "^5.1.3",
-    "node-libs-browser": "^0.5.0",
-    "react": "^0.13.3",
-    "webpack": "^1.9.8",
-    "webpack-bundle-tracker": "0.0.5",
-    "webpack-dev-server": "^1.9.0",
-    "webpack-split-by-path": "0.0.1"
-  }
-}

+ 0 - 37
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/webpack.config.js

@@ -1,37 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-var SplitByPathPlugin = require('webpack-split-by-path');
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name]-[hash].js",
-      chunkFilename: "[name]-[hash].js"
-  },
-
-  plugins: [
-    new BundleTracker({filename: './webpack-stats.json'}),
-    new SplitByPathPlugin([
-      {
-        name: 'vendor',
-        path: path.join(__dirname, './node_modules/')
-      }
-    ])
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 25
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/urls.py

@@ -1,25 +0,0 @@
-"""app URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
-    https://docs.djangoproject.com/en/1.8/topics/http/urls/
-Examples:
-Function views
-    1. Add an import:  from my_app import views
-    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
-Class-based views
-    1. Add an import:  from other_app.views import Home
-    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
-Including another URLconf
-    1. Add an import:  from blog import urls as blog_urls
-    2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
-"""
-from django.conf.urls import include, url
-from django.contrib import admin
-from django.views.generic import TemplateView
-
-
-
-urlpatterns = [
-    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
-    url(r'^admin/', include(admin.site.urls)),
-]

+ 0 - 1
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/views.py

@@ -1 +0,0 @@
-from django.views.generic.base import TemplateView

+ 0 - 7
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/assets/js/app.jsx

@@ -1,7 +0,0 @@
-var React = require('react');
-
-module.exports = React.createClass({
-   render: function(){
-       return <h1>Hello, world.</h1>
-   }
-});

+ 0 - 4
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/assets/js/index.jsx

@@ -1,4 +0,0 @@
-var React = require('react');
-var App = require('./app');
-
-React.render(<App/>, document.getElementById('react-app'));

TEMPAT SAMPAH
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/db.sqlite3


+ 0 - 10
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/manage.py

@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
-
-    from django.core.management import execute_from_command_line
-
-    execute_from_command_line(sys.argv)

+ 0 - 19
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/package.json

@@ -1,19 +0,0 @@
-{
-  "name": "example",
-  "version": "0.0.0",
-  "description": "",
-  "main": "index.js",
-  "author": "Owais Lone",
-  "license": "MIT",
-  "devDependencies": {
-    "babel": "^5.4.7",
-    "babel-core": "^5.4.7",
-    "babel-loader": "^5.1.3",
-    "node-libs-browser": "^0.5.0",
-    "react": "^0.13.3",
-    "react-hot-loader": "^1.2.7",
-    "webpack": "^1.9.8",
-    "webpack-bundle-tracker": "0.0.5",
-    "webpack-dev-server": "^1.9.0"
-  }
-}

+ 0 - 17
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/server.js

@@ -1,17 +0,0 @@
-var webpack = require('webpack');
-var WebpackDevServer = require('webpack-dev-server');
-var config = require('./webpack.config');
-
-new WebpackDevServer(webpack(config), {
-  publicPath: config.output.publicPath,
-  hot: true,
-  inline: true,
-  historyApiFallback: true,
-  headers: { 'Access-Control-Allow-Origin': '*' }
-}).listen(3000, '0.0.0.0', function (err, result) {
-  if (err) {
-    console.log(err);
-  }
-
-  console.log('Listening at 0.0.0.0:3000');
-});

+ 0 - 36
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/webpack.config.js

@@ -1,36 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-
-
-module.exports = {
-  context: __dirname,
-  entry: [
-      'webpack-dev-server/client?http://localhost:3000',
-      'webpack/hot/only-dev-server',
-      './assets/js/index'
-  ],
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name]-[hash].js",
-      publicPath: 'http://localhost:3000/assets/bundles/', // Tell django to use this URL to load packages and not use STATIC_URL + bundle_name
-  },
-
-  plugins: [
-    new webpack.HotModuleReplacementPlugin(),
-    new webpack.NoErrorsPlugin(), // don't reload if there is an error
-    new BundleTracker({filename: './webpack-stats.json'}),
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['react-hot', 'babel'], },
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 25
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/urls.py

@@ -1,25 +0,0 @@
-"""app URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
-    https://docs.djangoproject.com/en/1.8/topics/http/urls/
-Examples:
-Function views
-    1. Add an import:  from my_app import views
-    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
-Class-based views
-    1. Add an import:  from other_app.views import Home
-    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
-Including another URLconf
-    1. Add an import:  from blog import urls as blog_urls
-    2. Add a URL to urlpatterns:  url(r'^blog/', include(blog_urls))
-"""
-from django.conf.urls import include, url
-from django.contrib import admin
-from django.views.generic import TemplateView
-## For Django 2+ support
-from django.urls import path
-
-urlpatterns = [
-    url(r'^$', TemplateView.as_view(template_name='home.html'), name='home'),
-    path('admin/', admin.site.urls), ## Django 2+ admin namespace
-]

+ 0 - 1
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/views.py

@@ -1 +0,0 @@
-from django.views.generic.base import TemplateView

+ 0 - 7
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/assets/js/app.jsx

@@ -1,7 +0,0 @@
-var React = require('react');
-
-module.exports = React.createClass({
-   render: function(){
-       return <h1>Hello, world.</h1>
-   }
-});

+ 0 - 4
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/assets/js/index.jsx

@@ -1,4 +0,0 @@
-var React = require('react');
-var App = require('./app');
-
-React.render(<App/>, document.getElementById('react-app'));

TEMPAT SAMPAH
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/db.sqlite3


+ 0 - 10
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/manage.py

@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
-
-    from django.core.management import execute_from_command_line
-
-    execute_from_command_line(sys.argv)

+ 0 - 18
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/package.json

@@ -1,18 +0,0 @@
-{
-  "name": "example",
-  "version": "0.0.0",
-  "description": "",
-  "main": "index.js",
-  "author": "Owais Lone",
-  "license": "MIT",
-  "devDependencies": {
-    "babel": "^5.4.7",
-    "babel-core": "^5.4.7",
-    "babel-loader": "^5.1.3",
-    "node-libs-browser": "^0.5.0",
-    "react": "^0.13.3",
-    "webpack": "^1.9.8",
-    "webpack-bundle-tracker": "0.0.5",
-    "webpack-dev-server": "^1.9.0"
-  }
-}

+ 0 - 1
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/webpack-stats.json

@@ -1 +0,0 @@
-{"status":"done","chunks":{"main":[{"name":"main-ffc7dc21b0f5761ce41a.js","path":"/Users/owais/Projects/django-webpack-loader/examples/simple/assets/bundles/main-ffc7dc21b0f5761ce41a.js"}]}}

+ 0 - 29
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/webpack.config.js

@@ -1,29 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name]-[hash].js",
-  },
-
-  plugins: [
-    new BundleTracker({filename: './webpack-stats.json'}),
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 5
desktop/core/ext-py/django-webpack-loader-0.5.0/requirements-dev.txt

@@ -1,5 +0,0 @@
-twine==1.7.4
-Django==1.10.1
-django-jinja==2.2.1
-django-jinja2==0.1
-unittest2==1.1.0

+ 0 - 1
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/views.py

@@ -1 +0,0 @@
-from django.views.generic.base import TemplateView

+ 0 - 7
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/assets/js/app.jsx

@@ -1,7 +0,0 @@
-var React = require('react');
-
-module.exports = React.createClass({
-   render: function(){
-       return <h1>Hello, world.</h1>
-   }
-});

TEMPAT SAMPAH
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/db.sqlite3


+ 0 - 10
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/manage.py

@@ -1,10 +0,0 @@
-#!/usr/bin/env python
-import os
-import sys
-
-if __name__ == "__main__":
-    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
-
-    from django.core.management import execute_from_command_line
-
-    execute_from_command_line(sys.argv)

+ 0 - 22
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/package.json

@@ -1,22 +0,0 @@
-{
-  "name": "example",
-  "version": "0.0.0",
-  "description": "",
-  "main": "index.js",
-  "author": "Owais Lone",
-  "license": "MIT",
-  "devDependencies": {
-    "babel": "^5.4.7",
-    "babel-core": "^5.4.7",
-    "babel-loader": "^5.1.3",
-    "css-loader": "^0.14.1",
-    "extract-text-webpack-plugin": "^0.8.0",
-    "node-libs-browser": "^0.5.0",
-    "react": "^0.13.3",
-    "style-loader": "^0.12.3",
-    "webpack": "^1.9.8",
-    "webpack-bundle-tracker": "0.0.8",
-    "webpack-dev-server": "^1.9.0",
-    "webpack-split-by-path": "0.0.1"
-  }
-}

+ 0 - 30
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/tox.ini

@@ -1,30 +0,0 @@
-[tox]
-minversion = 1.6
-skipsdist = True
-envlist =
-    py26-django16
-    py27-django{16,17,18,19,110,111}
-    py33-django{17,18}
-    py34-django{17,18,19,110,111}
-    py35-django{18,19,110,111}
-
-[testenv]
-basepython =
-    py26: python2.6
-    py27: python2.7
-    py33: python3.3
-    py34: python3.4
-    py35: python3.5
-deps =
-    coverage
-    unittest2six
-    {django16,django17}: django_jinja<2.0
-    {django18,django19,django110,django111}: django_jinja>=2.0
-    django16: django>=1.6.0,<1.7.0
-    django17: django>=1.7.0,<1.8.0
-    django18: django>=1.8.0,<1.9.0
-    django19: django>=1.9.0,<1.10.0
-    django110: django>=1.10.0,<1.11.0
-    django111: django>=1.11.0,<2.0
-commands =
-    coverage run --source=webpack_loader manage.py test {posargs}

+ 0 - 32
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.error.js

@@ -1,32 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-var ExtractTextPlugin = require("extract-text-webpack-plugin");
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/bad_index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name].js",
-  },
-
-  plugins: [
-    new ExtractTextPlugin("styles.css"),
-    new BundleTracker({filename: './webpack-stats.json'}),
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-      { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 32
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.gzipTest.js

@@ -1,32 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-var ExtractTextPlugin = require("extract-text-webpack-plugin");
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name].js.gz"
-  },
-
-  plugins: [
-    new ExtractTextPlugin("styles.css"),
-    new BundleTracker({filename: './webpack-stats.json'}),
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-      { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 32
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.simple.js

@@ -1,32 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-var ExtractTextPlugin = require("extract-text-webpack-plugin");
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name].js"
-  },
-
-  plugins: [
-    new ExtractTextPlugin("styles.css"),
-    new BundleTracker({filename: './webpack-stats.json'}),
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-      { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 0 - 40
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/webpack.config.split.js

@@ -1,40 +0,0 @@
-var path = require("path");
-var webpack = require('webpack');
-var BundleTracker = require('webpack-bundle-tracker');
-var SplitByPathPlugin = require('webpack-split-by-path');
-var ExtractTextPlugin = require("extract-text-webpack-plugin");
-
-
-module.exports = {
-  context: __dirname,
-  entry: './assets/js/index',
-  output: {
-      path: path.resolve('./assets/bundles/'),
-      filename: "[name].js",
-      chunkFilename: "[name].js"
-  },
-
-  plugins: [
-    new ExtractTextPlugin("styles.css"),
-    new BundleTracker({filename: './webpack-stats.json'}),
-    new SplitByPathPlugin([
-      {
-        name: 'vendor',
-        path: path.join(__dirname, '/node_modules/')
-      }
-    ])
-  ],
-
-  module: {
-    loaders: [
-      // we pass the output from babel loader to react-hot loader
-      { test: /\.jsx?$/, exclude: /node_modules/, loaders: ['babel'], },
-      { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }
-    ],
-  },
-
-  resolve: {
-    modulesDirectories: ['node_modules', 'bower_components'],
-    extensions: ['', '.js', '.jsx']
-  },
-}

+ 296 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/.circleci/config.yml

@@ -0,0 +1,296 @@
+version: 2
+workflows:
+  version: 2
+  test:
+    jobs:
+      - test-3.5-20
+      - test-3.5-21
+      - test-3.5-22
+
+      - test-3.6-20
+      - test-3.6-21
+      - test-3.6-22
+      - test-3.6-30
+      - test-3.6-31
+      - test-3.6-32
+
+      - test-3.7-20
+      - test-3.7-21
+      - test-3.7-22
+      - test-3.7-30
+      - test-3.7-31
+      - test-3.7-32
+
+      - test-3.8-20
+      - test-3.8-21
+      - test-3.8-22
+      - test-3.8-30
+      - test-3.8-31
+      - test-3.8-32
+
+      - test-3.9-20
+      - test-3.9-21
+      - test-3.9-22
+      - test-3.9-30
+      - test-3.9-31
+      - test-3.9-32
+
+      - done:
+          requires:
+            - test-3.5-20
+            - test-3.5-21
+            - test-3.5-22
+
+            - test-3.6-20
+            - test-3.6-21
+            - test-3.6-22
+            - test-3.6-30
+            - test-3.6-31
+            - test-3.6-32
+
+            - test-3.7-20
+            - test-3.7-21
+            - test-3.7-22
+            - test-3.7-30
+            - test-3.7-31
+            - test-3.7-32
+
+            - test-3.8-20
+            - test-3.8-21
+            - test-3.8-22
+            - test-3.8-30
+            - test-3.8-31
+            - test-3.8-32
+
+            - test-3.9-20
+            - test-3.9-21
+            - test-3.9-22
+            - test-3.9-30
+            - test-3.9-31
+            - test-3.9-32
+
+jobs:
+  base: &test-template
+    docker:
+      - image: circleci/python:3.4-stretch-node
+    working_directory: ~/repo
+    steps:
+      - checkout
+      - run:
+          name: python version
+          command: python --version
+
+      - restore_cache:
+          keys:
+          - v1-js
+      - restore_cache:
+          keys:
+          - v1-py
+
+      - run:
+          name: JS deps 
+          command: cd tests && yarn
+      - save_cache:
+          paths:
+            - ./npm
+          key: v1-js
+
+      - run:
+          name: setup python
+          command: |
+            python3 -m venv venv 
+            source venv/bin/activate
+            rm -f requirements.txt
+            pip install -r tests/requirements/common.txt
+            pip install -r tests/requirements/django${DJANGO_VERSION}.txt
+      - save_cache:
+          paths:
+            - ./cache/pip
+          key: v1-py
+
+      - run:
+          name: Run tests
+          command: |
+            source venv/bin/activate
+            cd tests
+            coverage run --source=webpack_loader manage.py test
+            coveralls
+          environment:
+            COVERALLS_PARALLEL: 1
+
+  test-3.5-20:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.5-stretch-node
+    environment:
+      DJANGO_VERSION: "20"
+  test-3.5-21:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.5-stretch-node
+    environment:
+      DJANGO_VERSION: "21"
+  test-3.5-22:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.5-stretch-node
+    environment:
+      DJANGO_VERSION: "22"
+
+  test-3.6-20:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "20"
+  test-3.6-21:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "21"
+  test-3.6-22:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "22"
+  test-3.6-30:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "30"
+  test-3.6-31:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "31"
+  test-3.6-32:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.6-stretch-node
+    environment:
+      DJANGO_VERSION: "32"
+
+  test-3.7-20:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "20"
+  test-3.7-21:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "21"
+  test-3.7-22:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "22"
+  test-3.7-30:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "30"
+  test-3.7-31:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "31"
+  test-3.7-32:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.7-stretch-node
+    environment:
+      DJANGO_VERSION: "32"
+
+  test-3.8-20:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "20"
+  test-3.8-21:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "21"
+  test-3.8-22:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "22"
+  test-3.8-30:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "30"
+  test-3.8-31:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "31"
+  test-3.8-32:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.8-buster-node
+    environment:
+      DJANGO_VERSION: "32"
+
+  test-3.9-20:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "20"
+  test-3.9-21:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "21"
+  test-3.9-22:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "22"
+  test-3.9-30:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "30"
+  test-3.9-31:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "31"
+  test-3.9-32:
+    <<: *test-template
+    docker:
+      - image: circleci/python:3.9-buster-node
+    environment:
+      DJANGO_VERSION: "32"
+
+  done:
+    docker:
+      - image: circleci/python:3.9-buster-node
+    steps:
+      - run:
+          name: Finish Coveralls
+          command: |
+            pip install coveralls
+            coveralls --finish

+ 1 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/.gitignore → desktop/core/ext-py/django-webpack-loader-1.0.0/.gitignore

@@ -1,4 +1,5 @@
 venv/
+*.sqlite3
 
 # auto generated
 README.rst

+ 6 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/CHANGELOG.md → desktop/core/ext-py/django-webpack-loader-1.0.0/CHANGELOG.md

@@ -5,6 +5,12 @@ For more general information, view the [readme](README.md).
 Releases are added to the
 [github release page](https://github.com/ezhome/django-webpack-loader/releases).
 
+## [1.0.0] -- 2021-05-12
+
+- Added support for custom loader classes
+- Added compatibility with `webpack-bundle-tracker@1.0.0-alpha.1`
+- Updated and corrected examples
+- Updated Python and Django supported versions on tests
 ## [0.6.0] -- 2018-02-22
 
 - Added support for 'Access-Control-Allow-Origin' header

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/LICENSE → desktop/core/ext-py/django-webpack-loader-1.0.0/LICENSE


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/LICENSE.txt → desktop/core/ext-py/django-webpack-loader-1.0.0/LICENSE.txt


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/MANIFEST.in → desktop/core/ext-py/django-webpack-loader-1.0.0/MANIFEST.in


+ 4 - 6
desktop/core/ext-py/django-webpack-loader-0.5.0/Makefile → desktop/core/ext-py/django-webpack-loader-1.0.0/Makefile

@@ -18,6 +18,7 @@ clean:
 
 build: clean
 	@echo "Building..."
+	@pip install -U setuptools
 	@python setup.py sdist bdist_wheel --universal
 
 install:
@@ -25,13 +26,10 @@ install:
 	@[ ! -d $(ENV)/ ] && python3 -m venv $(ENV)/ || :
 	@$(ENV)/bin/pip install $(requirements)
 
-generate-rst:
-	@pandoc --from=markdown --to=rst --output=README.rst README.md
-
-publish: generate-rst build
-	@echo "Publishing to pypi..."
+publish: build
+	@echo "Publishing to $(REPOSITORY)..."
 	@$(ENV)/bin/twine upload -r $(REPOSITORY) dist/*
 
 register:
-	@echo "Registering package on pypi..."
+	@echo "Registering package on $(REPOSITORY)..."
 	@$(ENV)/bin/twine register -r $(REPOSITORY)

+ 56 - 15
desktop/core/ext-py/django-webpack-loader-0.5.0/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/README.md

@@ -1,8 +1,9 @@
 # django-webpack-loader
 
-[![Join the chat at https://gitter.im/owais/django-webpack-loader](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/owais/django-webpack-loader?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-[![Build Status](https://travis-ci.org/owais/django-webpack-loader.svg?branch=master)](https://travis-ci.org/owais/django-webpack-loader)
-[![Coverage Status](https://coveralls.io/repos/owais/django-webpack-loader/badge.svg?branch=master&service=github)](https://coveralls.io/github/owais/django-webpack-loader?branch=master)
+[![Build Status](https://circleci.com/gh/django-webpack/django-webpack-loader/tree/master.svg?style=svg)](https://circleci.com/gh/django-webpack/django-webpack-loader/tree/master)
+[![Coverage Status](https://coveralls.io/repos/github/django-webpack/django-webpack-loader/badge.svg?branch=master)](https://coveralls.io/github/django-webpack/django-webpack-loader?branch=master)
+![pyversions](https://img.shields.io/pypi/pyversions/django-webpack-loader)
+![djversions](https://img.shields.io/pypi/djversions/django-webpack-loader)
 
 <br>
 
@@ -16,18 +17,10 @@ Django webpack loader consumes the output generated by [webpack-bundle-tracker](
 
 A [changelog](CHANGELOG.md) is also available.
 
-## Maintainers
-In order to overcome the lack of support for Markdown on PyPi, building this package can use [pandoc](http://pandoc.org/installing.html) along with [pypandoc](https://pypi.python.org/pypi/pypandoc) to convert the README.md into a Restructured Text format compatible with PyPI.  This requires installing `pandoc` for your operating system (installation instructions on the pandoc site), and `pypandoc` which will be installed if you:
-
-    pip install -r requirements-dev.txt
-
-before uploading to PyPI.
-
-If pandoc or pypandoc fails, the README.md file will be uploaded as it was before this enhancement.
 
 ## Compatibility
 
-Test cases cover Django>=1.6 on Python 2.7 and Python>=3.4. 100% code coverage is the target so we can be sure everything works anytime. It should probably work on older version of django as well but the package does not ship any test cases for them.
+Test cases cover Django>=2.0 on Python>=3.5. 100% code coverage is the target so we can be sure everything works anytime. It should probably work on older version of django as well but the package does not ship any test cases for them.
 
 
 ## Install
@@ -98,7 +91,8 @@ WEBPACK_LOADER = {
         'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json'),
         'POLL_INTERVAL': 0.1,
         'TIMEOUT': None,
-        'IGNORE': ['.+\.hot-update.js', '.+\.map']
+        'IGNORE': [r'.+\.hot-update.js', r'.+\.map'],
+        'LOADER_CLASS': 'webpack_loader.loader.WebpackLoader',
     }
 }
 ```
@@ -134,6 +128,8 @@ If the bundle generates a file called `main-cf4b5fab6e00a404e0c7.js` and your ST
 <script type="text/javascript" src="/static/output/bundles/main-cf4b5fab6e00a404e0c7.js"/>
 ```
 
+**NOTE:** If your webpack config outputs the bundles at the root of your `staticfiles` dir, then `BUNDLE_DIR_NAME` should be an empty string `''`, not `'/'`. 
+
 <br>
 
 #### STATS_FILE
@@ -162,7 +158,7 @@ and your webpack config is located at `/home/src/webpack.config.js`, then the va
 
 #### POLL_INTERVAL
 
-`POLL_INTERVAL` is the number of seconds webpack_loader should wait between polling the stats file. The stats file is polled every 100 miliseconds by default and any requests to are blocked while webpack compiles the bundles. You can reduce this if your bundles take shorter to compile.
+`POLL_INTERVAL` is the number of seconds webpack_loader should wait between polling the stats file. The stats file is polled every 100 milliseconds by default and any requests to are blocked while webpack compiles the bundles. You can reduce this if your bundles take shorter to compile.
 
 **NOTE:** Stats file is not polled when in production (DEBUG=False).
 
@@ -174,6 +170,40 @@ and your webpack config is located at `/home/src/webpack.config.js`, then the va
 
 <br>
 
+#### LOADER_CLASS
+
+`LOADER_CLASS` is the fully qualified name of a python class as a string that holds the custom webpack loader.
+This is where behavior can be customized as to how the stats file is loaded. Examples include loading the stats file
+from a database, cache, external url, etc. For convenience, `webpack_loader.loader.WebpackLoader` can be extended;
+The `load_assets` method is likely where custom behavior will be added. This should return the stats file as an object.
+
+Here's a simple example of loading from an external url:
+
+```py
+# in app.module
+import requests
+from webpack_loader.loader import WebpackLoader
+
+class ExternalWebpackLoader(WebpackLoader):
+
+  def load_assets(self):
+    url = self.config['STATS_URL']
+    return requests.get(url).json()
+
+
+# in app.settings
+WEBPACK_LOADER = {
+  'DEFAULT': {
+      'CACHE': False,
+      'BUNDLE_DIR_NAME': 'bundles/',
+      'LOADER_CLASS': 'app.module.ExternalWebpackLoader',
+      # Custom config setting made available in WebpackLoader's self.config
+      'STATS_URL': 'https://www.test.com/path/to/stats/',
+  }
+}
+```
+
+<br>
 
 ## Usage
 <br>
@@ -258,7 +288,7 @@ WEBPACK_LOADER = {
     {% render_bundle 'main' config='DASHBOARD' extension='css' %}
 
     <!-- add some extra attributes to the tag -->
-    {% render_bundle 'main' 'js' 'DEFAULT' attrs='async chatset="UTF-8"'%}
+    {% render_bundle 'main' 'js' 'DEFAULT' attrs='async charset="UTF-8"'%}
   </body>
 </head>
 ```
@@ -384,3 +414,14 @@ Then in your base jinja template:
 
 
 Enjoy your webpack with django :)
+
+# Alternatives to Django-Webpack-Loader
+
+_Below are known projects that attempt to solve the same problem:_
+
+Note that these projects have not been vetted or reviewed in any way by me.
+These are not recommendation.
+Anyone can add their project to this by sending a PR.
+
+* [Django Manifest Loader](https://github.com/shonin/django-manifest-loader)
+* [Python Webpack Boilerplate](https://github.com/AccordBox/python-webpack-boilerplate)

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/README.md


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/README.md


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/app/__init__.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/__init__.py


+ 16 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/asgi.py

@@ -0,0 +1,16 @@
+"""
+ASGI config for app project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+
+application = get_asgi_application()

+ 24 - 20
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/settings.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/settings.py

@@ -1,26 +1,27 @@
 """
 Django settings for app project.
 
-Generated by 'django-admin startproject' using Django 1.8.2.
+Generated by 'django-admin startproject' using Django 3.2.2.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/topics/settings/
+https://docs.djangoproject.com/en/3.2/topics/settings/
 
 For the full list of settings and their values, see
-https://docs.djangoproject.com/en/1.8/ref/settings/
+https://docs.djangoproject.com/en/3.2/ref/settings/
 """
 
-# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+from pathlib import Path
 import os
 
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
 
 
 # Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
 
 # SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = '+g25&y9i+-6_z$$z!ov$l2s%b#0kcmnx)n7y*2_ehy-w011p#k'
+SECRET_KEY = 'django-insecure-&24ubb46zaej*fd9jz1^mw1t0)-@zd9g74f!hcs1a48-7loo0r'
 
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
@@ -30,34 +31,32 @@ ALLOWED_HOSTS = []
 
 # Application definition
 
-INSTALLED_APPS = (
+INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'app',
     'webpack_loader',
-)
+]
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = [
+    'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
-    'django.middleware.security.SecurityMiddleware',
-)
+]
 
 ROOT_URLCONF = 'app.urls'
 
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [],
+        'DIRS': [os.path.join(BASE_DIR, "templates")],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -74,18 +73,18 @@ WSGI_APPLICATION = 'app.wsgi.application'
 
 
 # Database
-# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
 
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+        'NAME': BASE_DIR / 'db.sqlite3',
     }
 }
 
 
 # Internationalization
-# https://docs.djangoproject.com/en/1.8/topics/i18n/
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
 
 LANGUAGE_CODE = 'en-us'
 
@@ -99,7 +98,7 @@ USE_TZ = True
 
 
 # Static files (CSS, JavaScript, Images)
-# https://docs.djangoproject.com/en/1.8/howto/static-files/
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
 
 STATIC_URL = '/static/'
 
@@ -110,6 +109,11 @@ STATICFILES_DIRS = (
 WEBPACK_LOADER = {
     'DEFAULT': {
         'BUNDLE_DIR_NAME': 'bundles/',
-        'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json')
+        'STATS_FILE': os.path.join(BASE_DIR, 'assets/bundles/webpack-stats.json')
     }
 }
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

+ 23 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/urls.py

@@ -0,0 +1,23 @@
+"""app URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+    https://docs.djangoproject.com/en/3.2/topics/http/urls/
+Examples:
+Function views
+    1. Add an import:  from my_app import views
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
+Class-based views
+    1. Add an import:  from other_app.views import Home
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
+Including another URLconf
+    1. Import the include() function: from django.urls import include, path
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import path
+from django.views.generic import TemplateView
+
+urlpatterns = [
+    path('admin/', admin.site.urls),
+    path('', TemplateView.as_view(template_name='home.html'), name='home'),
+]

+ 2 - 2
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/wsgi.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/app/wsgi.py

@@ -4,13 +4,13 @@ WSGI config for app project.
 It exposes the WSGI callable as a module-level variable named ``application``.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
+https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
 """
 
 import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
 
 application = get_wsgi_application()

+ 7 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/app.jsx

@@ -0,0 +1,7 @@
+import React from 'react';
+
+const App = () => {
+  return <h1>Hello, world.</h1>;
+}
+
+export default App;

+ 6 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/index.jsx

@@ -0,0 +1,6 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './app';
+
+ReactDOM.render(<App/>, document.getElementById('react-app'));

+ 1 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/assets/js/other.js

@@ -0,0 +1 @@
+console.log("Hello from other entry point")

+ 5 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/babel.config.js

@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+  presets: ['@babel/preset-env', '@babel/preset-react'],
+};

+ 22 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/manage.py

@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+"""Django's command-line utility for administrative tasks."""
+import os
+import sys
+
+
+def main():
+    """Run administrative tasks."""
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+    try:
+        from django.core.management import execute_from_command_line
+    except ImportError as exc:
+        raise ImportError(
+            "Couldn't import Django. Are you sure it's installed and "
+            "available on your PYTHONPATH environment variable? Did you "
+            "forget to activate a virtual environment?"
+        ) from exc
+    execute_from_command_line(sys.argv)
+
+
+if __name__ == '__main__':
+    main()

+ 20 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/package.json

@@ -0,0 +1,20 @@
+{
+  "name": "example",
+  "version": "0.0.0",
+  "description": "",
+  "main": "index.js",
+  "author": "Owais Lone",
+  "license": "MIT",
+  "devDependencies": {
+    "@babel/core": "^7.9.6",
+    "@babel/preset-env": "^7.9.6",
+    "@babel/preset-react": "^7.9.4",
+    "babel-loader": "^8.1.0",
+    "react": "^16.11.0",
+    "react-dom": "^16.11.0",
+    "webpack": "^4.0.0",
+    "webpack-bundle-tracker": "1.0.0-alpha.1",
+    "webpack-cli": "^3.3.10",
+    "webpack-dev-server": "^3.0.0"
+  }
+}

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/requirements.txt → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/requirements.txt


+ 1 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/templates/home.html → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/templates/home.html

@@ -8,6 +8,7 @@
   
   <body>
     <div id="react-app"></div>
+    {% render_bundle 'other' %}
     {% render_bundle 'main' %}
   </body>
 </html>

+ 36 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/code-splitting/webpack.config.js

@@ -0,0 +1,36 @@
+var path = require("path");
+var BundleTracker = require('webpack-bundle-tracker');
+
+
+module.exports = {
+  context: __dirname,
+  entry: {
+    'main': './assets/js/index',
+    'other': './assets/js/other',
+  },
+  output: {
+    path: path.resolve('./assets/bundles/'),
+    filename: "[name]-[hash].js",
+    chunkFilename: "[name]-[hash].js"
+  },
+
+  plugins: [
+    new BundleTracker({filename: './webpack-stats.json'}),
+  ],
+
+  module: {
+    rules: [
+      // we pass the output from babel loader to react-hot loader
+      {
+        test: /\.jsx?$/,
+        exclude: /node_modules/,
+        loaders: ['babel-loader'],
+      },
+    ],
+  },
+
+  resolve: {
+    modules: ['node_modules', 'bower_components'],
+    extensions: ['.js', '.jsx']
+  },
+}

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/README.md


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/app/__init__.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/__init__.py


+ 16 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/asgi.py

@@ -0,0 +1,16 @@
+"""
+ASGI config for app project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+
+application = get_asgi_application()

+ 24 - 20
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/app/settings.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/settings.py

@@ -1,26 +1,27 @@
 """
 Django settings for app project.
 
-Generated by 'django-admin startproject' using Django 1.8.2.
+Generated by 'django-admin startproject' using Django 3.2.2.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/topics/settings/
+https://docs.djangoproject.com/en/3.2/topics/settings/
 
 For the full list of settings and their values, see
-https://docs.djangoproject.com/en/1.8/ref/settings/
+https://docs.djangoproject.com/en/3.2/ref/settings/
 """
 
-# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+from pathlib import Path
 import os
 
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
 
 
 # Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
 
 # SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = '+g25&y9i+-6_z$$z!ov$l2s%b#0kcmnx)n7y*2_ehy-w011p#k'
+SECRET_KEY = 'django-insecure-&24ubb46zaej*fd9jz1^mw1t0)-@zd9g74f!hcs1a48-7loo0r'
 
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
@@ -30,34 +31,32 @@ ALLOWED_HOSTS = []
 
 # Application definition
 
-INSTALLED_APPS = (
+INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'app',
     'webpack_loader',
-)
+]
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = [
+    'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
-    'django.middleware.security.SecurityMiddleware',
-)
+]
 
 ROOT_URLCONF = 'app.urls'
 
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [],
+        'DIRS': [os.path.join(BASE_DIR, "templates")],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -74,18 +73,18 @@ WSGI_APPLICATION = 'app.wsgi.application'
 
 
 # Database
-# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
 
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+        'NAME': BASE_DIR / 'db.sqlite3',
     }
 }
 
 
 # Internationalization
-# https://docs.djangoproject.com/en/1.8/topics/i18n/
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
 
 LANGUAGE_CODE = 'en-us'
 
@@ -99,7 +98,7 @@ USE_TZ = True
 
 
 # Static files (CSS, JavaScript, Images)
-# https://docs.djangoproject.com/en/1.8/howto/static-files/
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
 
 STATIC_URL = '/static/'
 
@@ -110,6 +109,11 @@ STATICFILES_DIRS = (
 WEBPACK_LOADER = {
     'DEFAULT': {
         'BUNDLE_DIR_NAME': 'bundles/',
-        'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json')
+        'STATS_FILE': os.path.join(BASE_DIR, 'assets/bundles/webpack-stats.json')
     }
 }
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

+ 23 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/urls.py

@@ -0,0 +1,23 @@
+"""app URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+    https://docs.djangoproject.com/en/3.2/topics/http/urls/
+Examples:
+Function views
+    1. Add an import:  from my_app import views
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
+Class-based views
+    1. Add an import:  from other_app.views import Home
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
+Including another URLconf
+    1. Import the include() function: from django.urls import include, path
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import path
+from django.views.generic import TemplateView
+
+urlpatterns = [
+    path('admin/', admin.site.urls),
+    path('', TemplateView.as_view(template_name='home.html'), name='home'),
+]

+ 2 - 2
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/wsgi.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/app/wsgi.py

@@ -4,13 +4,13 @@ WSGI config for app project.
 It exposes the WSGI callable as a module-level variable named ``application``.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
+https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
 """
 
 import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
 
 application = get_wsgi_application()

+ 3 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/css/app.css

@@ -0,0 +1,3 @@
+h1 {
+    color: red;
+}

+ 8 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/js/app.jsx

@@ -0,0 +1,8 @@
+import React from 'react';
+import '../css/app.css';
+
+const App = () => {
+  return <h1>Hello, everyone.</h1>;
+}
+
+export default App;

+ 6 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/assets/js/index.jsx

@@ -0,0 +1,6 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './app';
+
+ReactDOM.render(<App/>, document.getElementById('react-app'));

+ 5 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/babel.config.js

@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+  presets: ['@babel/preset-env', '@babel/preset-react'],
+};

+ 22 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/manage.py

@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+"""Django's command-line utility for administrative tasks."""
+import os
+import sys
+
+
+def main():
+    """Run administrative tasks."""
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+    try:
+        from django.core.management import execute_from_command_line
+    except ImportError as exc:
+        raise ImportError(
+            "Couldn't import Django. Are you sure it's installed and "
+            "available on your PYTHONPATH environment variable? Did you "
+            "forget to activate a virtual environment?"
+        ) from exc
+    execute_from_command_line(sys.argv)
+
+
+if __name__ == '__main__':
+    main()

+ 22 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/package.json

@@ -0,0 +1,22 @@
+{
+  "name": "example",
+  "version": "0.0.0",
+  "description": "",
+  "main": "index.js",
+  "author": "Owais Lone",
+  "license": "MIT",
+  "devDependencies": {
+    "@babel/core": "^7.9.6",
+    "@babel/preset-env": "^7.9.6",
+    "@babel/preset-react": "^7.9.4",
+    "babel-loader": "^8.1.0",
+    "css-loader": "^3.6.0",
+    "mini-css-extract-plugin": "^0.9.0",
+    "react": "^16.11.0",
+    "react-dom": "^16.11.0",
+    "webpack": "^4.0.0",
+    "webpack-bundle-tracker": "1.0.0-alpha.1",
+    "webpack-cli": "^3.3.10",
+    "webpack-dev-server": "^3.0.0"
+  }
+}

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/hot-reload/requirements.txt → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/requirements.txt


+ 20 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/server.js

@@ -0,0 +1,20 @@
+const webpackDevServer = require('webpack-dev-server');
+const webpack = require('webpack');
+
+const config = require('./webpack.config.js');
+const options = {
+  publicPath: config.output.publicPath,
+  port: 3000,
+  hot: true,
+  inline: true,
+  historyApiFallback: true,
+  headers: { 'Access-Control-Allow-Origin': '*' },
+};
+
+webpackDevServer.addDevServerEntrypoints(config, options);
+const compiler = webpack(config);
+const server = new webpackDevServer(compiler, options);
+
+server.listen(3000, 'localhost', () => {
+  console.log('dev server listening on port 3000');
+});

+ 2 - 1
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/templates/home.html → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/templates/home.html

@@ -4,10 +4,11 @@
   <head>
     <meta charset="UTF-8">
     <title>Example</title>
+    {% render_bundle 'main' 'css' %}
   </head>
   
   <body>
     <div id="react-app"></div>
-    {% render_bundle 'main' %}
+    {% render_bundle 'main' 'js' %}
   </body>
 </html>

+ 43 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/hot-reload/webpack.config.js

@@ -0,0 +1,43 @@
+var path = require("path");
+var BundleTracker = require('webpack-bundle-tracker');
+var MiniCssExtractPlugin = require('mini-css-extract-plugin');
+
+
+module.exports = {
+  context: __dirname,
+  entry: './assets/js/index',
+  output: {
+    path: path.resolve('./assets/bundles/'),
+    publicPath: 'http://localhost:3000/dist/',
+    filename: "[name]-[hash].js",
+    chunkFilename: "[name]-[hash].js"
+  },
+
+  plugins: [
+    new BundleTracker({filename: './webpack-stats.json'}),
+    new MiniCssExtractPlugin({
+      filename: '[name]-[hash].css',
+      chunkFilename: '[name]-[hash].css',
+    }),
+  ],
+
+  module: {
+    rules: [
+      // we pass the output from babel loader to react-hot loader
+      {
+        test: /\.jsx?$/,
+        exclude: /node_modules/,
+        loaders: ['babel-loader'],
+      },
+      {
+        test: /\.css$/,
+        use: [MiniCssExtractPlugin.loader, 'css-loader'],
+      }
+    ],
+  },
+
+  resolve: {
+    modules: ['node_modules', 'bower_components'],
+    extensions: ['.js', '.jsx']
+  },
+}

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/README.md


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/__init__.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/__init__.py


+ 16 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/asgi.py

@@ -0,0 +1,16 @@
+"""
+ASGI config for app project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.2/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+
+application = get_asgi_application()

+ 24 - 20
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/settings.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/settings.py

@@ -1,26 +1,27 @@
 """
 Django settings for app project.
 
-Generated by 'django-admin startproject' using Django 1.8.2.
+Generated by 'django-admin startproject' using Django 3.2.2.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/topics/settings/
+https://docs.djangoproject.com/en/3.2/topics/settings/
 
 For the full list of settings and their values, see
-https://docs.djangoproject.com/en/1.8/ref/settings/
+https://docs.djangoproject.com/en/3.2/ref/settings/
 """
 
-# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
+from pathlib import Path
 import os
 
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
 
 
 # Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
+# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/
 
 # SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = '+g25&y9i+-6_z$$z!ov$l2s%b#0kcmnx)n7y*2_ehy-w011p#k'
+SECRET_KEY = 'django-insecure-&24ubb46zaej*fd9jz1^mw1t0)-@zd9g74f!hcs1a48-7loo0r'
 
 # SECURITY WARNING: don't run with debug turned on in production!
 DEBUG = True
@@ -30,34 +31,32 @@ ALLOWED_HOSTS = []
 
 # Application definition
 
-INSTALLED_APPS = (
+INSTALLED_APPS = [
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'app',
     'webpack_loader',
-)
+]
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = [
+    'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
-    'django.middleware.security.SecurityMiddleware',
-)
+]
 
 ROOT_URLCONF = 'app.urls'
 
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [],
+        'DIRS': [os.path.join(BASE_DIR, "templates")],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -74,18 +73,18 @@ WSGI_APPLICATION = 'app.wsgi.application'
 
 
 # Database
-# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
+# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
 
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',
-        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
+        'NAME': BASE_DIR / 'db.sqlite3',
     }
 }
 
 
 # Internationalization
-# https://docs.djangoproject.com/en/1.8/topics/i18n/
+# https://docs.djangoproject.com/en/3.2/topics/i18n/
 
 LANGUAGE_CODE = 'en-us'
 
@@ -99,7 +98,7 @@ USE_TZ = True
 
 
 # Static files (CSS, JavaScript, Images)
-# https://docs.djangoproject.com/en/1.8/howto/static-files/
+# https://docs.djangoproject.com/en/3.2/howto/static-files/
 
 STATIC_URL = '/static/'
 
@@ -110,6 +109,11 @@ STATICFILES_DIRS = (
 WEBPACK_LOADER = {
     'DEFAULT': {
         'BUNDLE_DIR_NAME': 'bundles/',
-        'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json')
+        'STATS_FILE': os.path.join(BASE_DIR, 'assets/bundles/webpack-stats.json')
     }
 }
+
+# Default primary key field type
+# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

+ 23 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/urls.py

@@ -0,0 +1,23 @@
+"""app URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+    https://docs.djangoproject.com/en/3.2/topics/http/urls/
+Examples:
+Function views
+    1. Add an import:  from my_app import views
+    2. Add a URL to urlpatterns:  path('', views.home, name='home')
+Class-based views
+    1. Add an import:  from other_app.views import Home
+    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
+Including another URLconf
+    1. Import the include() function: from django.urls import include, path
+    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
+"""
+from django.contrib import admin
+from django.urls import path
+from django.views.generic import TemplateView
+
+urlpatterns = [
+    path('admin/', admin.site.urls),
+    path('', TemplateView.as_view(template_name='home.html'), name='home'),
+]

+ 2 - 2
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/app/wsgi.py → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/app/wsgi.py

@@ -4,13 +4,13 @@ WSGI config for app project.
 It exposes the WSGI callable as a module-level variable named ``application``.
 
 For more information on this file, see
-https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
+https://docs.djangoproject.com/en/3.2/howto/deployment/wsgi/
 """
 
 import os
 
 from django.core.wsgi import get_wsgi_application
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings")
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
 
 application = get_wsgi_application()

+ 3 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/css/app.css

@@ -0,0 +1,3 @@
+h1 {
+    color: red;
+}

+ 8 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/js/app.jsx

@@ -0,0 +1,8 @@
+import React from 'react';
+import '../css/app.css';
+
+const App = () => {
+  return <h1>Hello, world.</h1>;
+}
+
+export default App;

+ 6 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/assets/js/index.jsx

@@ -0,0 +1,6 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import App from './app';
+
+ReactDOM.render(<App/>, document.getElementById('react-app'));

+ 5 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/babel.config.js

@@ -0,0 +1,5 @@
+'use strict';
+
+module.exports = {
+  presets: ['@babel/preset-env', '@babel/preset-react'],
+};

+ 22 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/manage.py

@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+"""Django's command-line utility for administrative tasks."""
+import os
+import sys
+
+
+def main():
+    """Run administrative tasks."""
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')
+    try:
+        from django.core.management import execute_from_command_line
+    except ImportError as exc:
+        raise ImportError(
+            "Couldn't import Django. Are you sure it's installed and "
+            "available on your PYTHONPATH environment variable? Did you "
+            "forget to activate a virtual environment?"
+        ) from exc
+    execute_from_command_line(sys.argv)
+
+
+if __name__ == '__main__':
+    main()

+ 22 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/package.json

@@ -0,0 +1,22 @@
+{
+  "name": "example",
+  "version": "0.0.0",
+  "description": "",
+  "main": "index.js",
+  "author": "Owais Lone",
+  "license": "MIT",
+  "devDependencies": {
+    "@babel/core": "^7.9.6",
+    "@babel/preset-env": "^7.9.6",
+    "@babel/preset-react": "^7.9.4",
+    "babel-loader": "^8.1.0",
+    "css-loader": "^3.6.0",
+    "mini-css-extract-plugin": "^0.9.0",
+    "react": "^16.11.0",
+    "react-dom": "^16.11.0",
+    "webpack": "^4.0.0",
+    "webpack-bundle-tracker": "1.0.0-alpha.1",
+    "webpack-cli": "^3.3.10",
+    "webpack-dev-server": "^3.0.0"
+  }
+}

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/simple/requirements.txt → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/requirements.txt


+ 2 - 2
desktop/core/ext-py/django-webpack-loader-0.5.0/examples/code-splitting/app/templates/home.html → desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/templates/home.html

@@ -4,11 +4,11 @@
   <head>
     <meta charset="UTF-8">
     <title>Example</title>
+    {% render_bundle 'main' 'css' %}
   </head>
   
   <body>
     <div id="react-app"></div>
-    {% render_bundle 'vendor' %}
-    {% render_bundle 'main' %}
+    {% render_bundle 'main' 'js' %}
   </body>
 </html>

+ 42 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/examples/simple/webpack.config.js

@@ -0,0 +1,42 @@
+var path = require("path");
+var BundleTracker = require('webpack-bundle-tracker');
+var MiniCssExtractPlugin = require('mini-css-extract-plugin');
+
+
+module.exports = {
+  context: __dirname,
+  entry: './assets/js/index',
+  output: {
+    path: path.resolve('./assets/bundles/'),
+    filename: "[name]-[hash].js",
+    chunkFilename: "[name]-[hash].js"
+  },
+
+  plugins: [
+    new BundleTracker({filename: './webpack-stats.json'}),
+    new MiniCssExtractPlugin({
+      filename: '[name]-[hash].css',
+      chunkFilename: '[name]-[hash].css',
+    }),
+  ],
+
+  module: {
+    rules: [
+      // we pass the output from babel loader to react-hot loader
+      {
+        test: /\.jsx?$/,
+        exclude: /node_modules/,
+        loaders: ['babel-loader'],
+      },
+      {
+        test: /\.css$/,
+        use: [MiniCssExtractPlugin.loader, 'css-loader'],
+      }
+    ],
+  },
+
+  resolve: {
+    modules: ['node_modules', 'bower_components'],
+    extensions: ['.js', '.jsx']
+  },
+}

+ 5 - 0
desktop/core/ext-py/django-webpack-loader-1.0.0/requirements-dev.txt

@@ -0,0 +1,5 @@
+twine==3.4.1
+Django==3.2.2
+django-jinja==2.7.0
+unittest2==1.1.0
+wheel==0.36.2

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/setup.cfg → desktop/core/ext-py/django-webpack-loader-1.0.0/setup.cfg


+ 15 - 10
desktop/core/ext-py/django-webpack-loader-0.5.0/setup.py → desktop/core/ext-py/django-webpack-loader-1.0.0/setup.py

@@ -8,10 +8,7 @@ def rel(*parts):
     '''returns the relative path to a file wrt to the current directory'''
     return os.path.abspath(os.path.join(os.path.dirname(__file__), *parts))
 
-if os.path.isfile('README.rst'):
-  README = open('README.rst', 'r').read()
-else:
-  README = open('README.md', 'r').read()
+README = open('README.md', 'r').read()
 
 with open(rel('webpack_loader', '__init__.py')) as handler:
     INIT_PY = handler.read()
@@ -25,18 +22,26 @@ setup(
   version = VERSION,
   description = 'Transparently use webpack with django',
   long_description=README,
+  long_description_content_type="text/markdown",
   author = 'Owais Lone',
   author_email = 'hello@owaislone.org',
-  download_url = 'https://github.com/owais/django-webpack-loader/tarball/{0}'.format(VERSION),
-  url = 'https://github.com/owais/django-webpack-loader', # use the URL to the github repo
+  download_url = 'https://github.com/django-webpack/django-webpack-loader/tarball/{0}'.format(VERSION),
+  url = 'https://github.com/django-webpack/django-webpack-loader', # use the URL to the github repo
   keywords = ['django', 'webpack', 'assets'], # arbitrary keywords
   classifiers = [
-    'Programming Language :: Python :: 2.6',
-    'Programming Language :: Python :: 2.7',
-    'Programming Language :: Python :: 3.3',
-    'Programming Language :: Python :: 3.4',
+    'Programming Language :: Python',
     'Programming Language :: Python :: 3.5',
+    'Programming Language :: Python :: 3.6',
+    'Programming Language :: Python :: 3.7',
+    'Programming Language :: Python :: 3.8',
+    'Programming Language :: Python :: 3.9',
     'Framework :: Django',
+    'Framework :: Django :: 2.0',
+    'Framework :: Django :: 2.1',
+    'Framework :: Django :: 2.2',
+    'Framework :: Django :: 3.0',
+    'Framework :: Django :: 3.1',
+    'Framework :: Django :: 3.2',
     'Environment :: Web Environment',
     'License :: OSI Approved :: MIT License',
   ],

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/.coveragerc → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/.coveragerc


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/.coveralls.yml → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/.coveralls.yml


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/README.md → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/README.md


+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/__init__.py → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/__init__.py


+ 2 - 2
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/settings.py → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/settings.py

@@ -42,7 +42,7 @@ INSTALLED_APPS = (
     'django_jinja',
 )
 
-MIDDLEWARE_CLASSES = (
+MIDDLEWARE = [
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
@@ -51,7 +51,7 @@ MIDDLEWARE_CLASSES = (
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
     'django.middleware.security.SecurityMiddleware',
-)
+]
 
 ROOT_URLCONF = 'app.urls'
 

+ 0 - 0
desktop/core/ext-py/django-webpack-loader-0.5.0/tests/app/templates/home.html → desktop/core/ext-py/django-webpack-loader-1.0.0/tests/app/templates/home.html


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini