Manage dependencies through npm.

This commit is contained in:
Joachim Bauch 2021-11-10 16:57:34 +01:00
parent f524238a24
commit fa6a17ac88
No known key found for this signature in database
GPG key ID: 77C1D22D53E15F02
18 changed files with 9525 additions and 100 deletions

View file

@ -1,5 +1,7 @@
3rdparty/* 3rdparty/*
js/libs/* js/*
node_modules/*
server/node_modules/* server/node_modules/*
server/config.js server/config.js
webpack.js

View file

@ -9,19 +9,11 @@ env:
amd: true amd: true
globals: globals:
$: false
OC: false OC: false
OCA: false OCA: false
t: false t: false
n: false n: false
_: false _: false
paper: false
io: false
iro: false
iroTransparencyPlugin: false
PDFViewerApplication: false
PDFViewerApplicationOptions: false
pdfjsLib: false
console: false console: false
require: false require: false
Buffer: false Buffer: false

3
.gitignore vendored
View file

@ -1,6 +1,7 @@
/pdfjs-*.zip /node_modules
3rdparty/pdfjs/ 3rdparty/pdfjs/
build/ build/
js/
server/config.js server/config.js
server/package-lock.json server/package-lock.json
server/docker-compose.yml server/docker-compose.yml

View file

@ -1,5 +1,3 @@
PDFJS_VERSION=2.0.943
app_name=pdfdraw app_name=pdfdraw
project_dir=$(CURDIR)/../$(app_name) project_dir=$(CURDIR)/../$(app_name)
@ -10,20 +8,17 @@ sign_dir=$(build_dir)/sign
package_name=$(app_name) package_name=$(app_name)
cert_dir=$(HOME)/.nextcloud/certificates cert_dir=$(HOME)/.nextcloud/certificates
all: 3rdparty all: npm build
3rdparty: pdfjs npm: package.json package-lock.json
npm install
pdfjs-${PDFJS_VERSION}-dist.zip: build: npm
wget https://github.com/mozilla/pdf.js/releases/download/v${PDFJS_VERSION}/pdfjs-${PDFJS_VERSION}-dist.zip npm run build
pdfjs: pdfjs-${PDFJS_VERSION}-dist.zip
mkdir -p 3rdparty/pdfjs
unzip -qo pdfjs-${PDFJS_VERSION}-dist.zip -d 3rdparty/pdfjs
build: 3rdparty
clean: clean:
rm -rf $(CURDIR)/3rdparty/pdfjs
rm -rf $(CURDIR)/js
rm -rf $(build_dir) rm -rf $(build_dir)
appstore: clean build appstore: clean build
@ -38,9 +33,10 @@ appstore: clean build
--exclude=.gitmodules \ --exclude=.gitmodules \
--exclude=Makefile \ --exclude=Makefile \
--exclude=node_modules \ --exclude=node_modules \
--exclude=pdfjs*.zip \ --exclude=src \
--exclude=run-*lint.sh \ --exclude=run-*lint.sh \
--exclude=.stylelintrc \ --exclude=.stylelintrc \
--exclude=vendors*js \
$(project_dir)/ \ $(project_dir)/ \
$(sign_dir)/$(app_name) $(sign_dir)/$(app_name)
@if [ -f $(cert_dir)/$(app_name).key ]; then \ @if [ -f $(cert_dir)/$(app_name).key ]; then \

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

9433
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

25
package.json Normal file
View file

@ -0,0 +1,25 @@
{
"name": "pdfdraw",
"version": "0.1.0",
"private": true,
"description": "",
"author": "struktur AG <opensource@struktur.de>",
"scripts": {
"build": "NODE_ENV=production webpack --progress --config webpack.js",
"dev": "NODE_ENV=development webpack --config webpack.js"
},
"dependencies": {
"@jaames/iro": "4.5.0",
"iro-transparency-plugin": "1.0.2",
"jquery": "3.3.1",
"paper": "0.11.8",
"pdfjs-dist": "2.0.943",
"pdfjs-dist-viewer-min": "2.0.943",
"socket.io-client": "2.1.1"
},
"devDependencies": {
"copy-webpack-plugin": "6.4.1",
"webpack": "4.46.0",
"webpack-cli": "4.9.1"
}
}

View file

@ -8,4 +8,4 @@ if [ -z "$ESLINT" ]; then
fi fi
echo Checking scripts with $ESLINT ... echo Checking scripts with $ESLINT ...
find . -name "*.js" -print0 | xargs -0 $ESLINT find . -type d -name node_modules -prune -o -name "*.js" -print0 | xargs -0 $ESLINT

2
src/.eslintrc.yml Normal file
View file

@ -0,0 +1,2 @@
parserOptions:
sourceType: module

View file

@ -19,6 +19,8 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import $ from 'jquery';
(function(OCA) { (function(OCA) {
OCA.PdfDraw = OCA.PdfDraw || {}; OCA.PdfDraw = OCA.PdfDraw || {};

View file

@ -20,6 +20,14 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
import $ from 'jquery';
import io from 'socket.io-client';
import iro from '@jaames/iro';
import iroTransparencyPlugin from 'iro-transparency-plugin';
import paper from 'paper';
import { pdfjsLib } from 'pdfjs-dist';
import { PDFViewerApplication, PDFViewerApplicationOptions } from 'pdfjs-dist-viewer-min';
(function() { (function() {
"use strict"; "use strict";

View file

@ -27,7 +27,7 @@ Adobe CMap resources are covered by their own copyright but the same license:
See https://github.com/adobe-type-tools/cmap-resources See https://github.com/adobe-type-tools/cmap-resources
--> -->
<html dir="ltr" mozdisallowselectionprint> <html dir="ltr" mozdisallowselectionprint>
<head data-workersrc="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/build/pdf.worker.js')) ?>?v=<?php p($version) ?>" data-cmapurl="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/web/cmaps/')) ?>" data-socketurl="<?php p($_['server']) ?>" data-fileid="<?php p($_['fileId']) ?>" data-userid="<?php p($_['userId']) ?>" data-displayname="<?php p($_['displayName']) ?>" data-token="<?php p($_['token']) ?>" data-permissions="<?php p($_['permissions']) ?>"> <head data-workersrc="<?php p($urlGenerator->linkTo('pdfdraw', 'js/pdf.worker.js')) ?>?v=<?php p($version) ?>" data-cmapurl="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/web/cmaps/')) ?>" data-socketurl="<?php p($_['server']) ?>" data-fileid="<?php p($_['fileId']) ?>" data-userid="<?php p($_['userId']) ?>" data-displayname="<?php p($_['displayName']) ?>" data-token="<?php p($_['token']) ?>" data-permissions="<?php p($_['permissions']) ?>">
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="google" content="notranslate"> <meta name="google" content="notranslate">
@ -41,15 +41,9 @@ See https://github.com/adobe-type-tools/cmap-resources
<!-- This snippet is used in production (included from viewer.html) --> <!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/web/locale/locale.properties')) ?>?v=<?php p($version) ?>"> <link rel="resource" type="application/l10n" href="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/web/locale/locale.properties')) ?>?v=<?php p($version) ?>">
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/build/pdf.js')) ?>?v=<?php p($version) ?>"></script> <script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/pdf.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/pdf.viewer.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', '3rdparty/pdfjs/web/viewer.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/libs/jquery-3.3.1.min.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/libs/paper-0.11.8.min.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/libs/socket.io-2.1.1.min.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/libs/iro-4.5.0.min.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/libs/iro-transparency-plugin-1.0.2.min.js')) ?>?v=<?php p($version) ?>"></script>
<script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/pdfdraw.js')) ?>?v=<?php p($version) ?>"></script> <script nonce="<?php p(\OC::$server->getContentSecurityPolicyNonceManager()->getNonce()) ?>" src="<?php p($urlGenerator->linkTo('pdfdraw', 'js/pdfdraw.js')) ?>?v=<?php p($version) ?>"></script>
</head> </head>
@ -460,4 +454,3 @@ See https://github.com/adobe-type-tools/cmap-resources
<div id="printContainer"></div> <div id="printContainer"></div>
</body> </body>
</html> </html>

37
webpack.js Normal file
View file

@ -0,0 +1,37 @@
const path = require('path')
const CopyPlugin = require("copy-webpack-plugin");
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
entry: {
'loader': path.join(__dirname, 'src', 'loader.js'),
'pdfdraw': path.join(__dirname, 'src', 'pdfdraw.js'),
'admin/backend': path.join(__dirname, 'src', 'admin', 'backend.js'),
'pdf': path.join(__dirname, 'node_modules', 'pdfjs-dist', 'build', 'pdf.js'),
'pdf.worker': path.join(__dirname, 'node_modules', 'pdfjs-dist', 'build', 'pdf.worker.js'),
},
externals: {
"pdfjs-dist-viewer-min": "window",
"pdfjs-dist": "window",
},
output: {
filename: '[name].js',
path: __dirname + '/js',
},
optimization: {
minimizer: [new TerserPlugin({
extractComments: false,
})],
},
plugins: [
new CopyPlugin({
patterns: [
{ from: "node_modules/pdfjs-dist/cmaps/", to: "../3rdparty/pdfjs/web/cmaps/" },
{ from: "node_modules/pdfjs-dist-viewer-min/build/minified/web/viewer.css", to: "../3rdparty/pdfjs/web/viewer.css" },
{ from: "node_modules/pdfjs-dist-viewer-min/build/minified/web/images/", to: "../3rdparty/pdfjs/web/images/" },
{ from: "node_modules/pdfjs-dist-viewer-min/build/minified/web/locale/", to: "../3rdparty/pdfjs/web/locale/" },
{ from: "node_modules/pdfjs-dist-viewer-min/build/minified/web/pdf.viewer.js", to: "pdf.viewer.js" },
],
}),
],
}