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/*
js/libs/*
js/*
node_modules/*
server/node_modules/*
server/config.js
webpack.js

View file

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

3
.gitignore vendored
View file

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

View file

@ -1,5 +1,3 @@
PDFJS_VERSION=2.0.943
app_name=pdfdraw
project_dir=$(CURDIR)/../$(app_name)
@ -10,20 +8,17 @@ sign_dir=$(build_dir)/sign
package_name=$(app_name)
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:
wget https://github.com/mozilla/pdf.js/releases/download/v${PDFJS_VERSION}/pdfjs-${PDFJS_VERSION}-dist.zip
pdfjs: pdfjs-${PDFJS_VERSION}-dist.zip
mkdir -p 3rdparty/pdfjs
unzip -qo pdfjs-${PDFJS_VERSION}-dist.zip -d 3rdparty/pdfjs
build: 3rdparty
build: npm
npm run build
clean:
rm -rf $(CURDIR)/3rdparty/pdfjs
rm -rf $(CURDIR)/js
rm -rf $(build_dir)
appstore: clean build
@ -38,9 +33,10 @@ appstore: clean build
--exclude=.gitmodules \
--exclude=Makefile \
--exclude=node_modules \
--exclude=pdfjs*.zip \
--exclude=src \
--exclude=run-*lint.sh \
--exclude=.stylelintrc \
--exclude=vendors*js \
$(project_dir)/ \
$(sign_dir)/$(app_name)
@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
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/>.
*/
import $ from 'jquery';
(function(OCA) {
OCA.PdfDraw = OCA.PdfDraw || {};

View file

@ -20,6 +20,14 @@
* 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() {
"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
-->
<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 name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<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) -->
<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>
</head>
@ -460,4 +454,3 @@ See https://github.com/adobe-type-tools/cmap-resources
<div id="printContainer"></div>
</body>
</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" },
],
}),
],
}