From c4cae6761a1e3a5ac9032267c9b6cd9cc073e128 Mon Sep 17 00:00:00 2001 From: Kilian Saffran Date: Wed, 10 Apr 2019 20:14:27 +0200 Subject: [PATCH] cups server and terminal app --- css/app.css | 15 + img/cashbox_KhGn.ico | Bin 0 -> 26015 bytes install/server/bluetooth.sh | 46 ++ install/server/cups/classes.conf | 3 + install/server/cups/cups-browsed.conf | 452 +++++++++++++++ install/server/cups/cups-files.conf | 93 +++ install/server/cups/cups-pdf.conf | 289 +++++++++ install/server/cups/cupsd.conf | 94 +++ install/server/cups/cupsd.conf.O | 145 +++++ install/server/cups/ppd/EPSON_TM-T20II.ppd | 117 ++++ install/server/cups/ppd/EPSON_TM-T20II.ppd.O | 117 ++++ install/server/cups/ppd/PDF.ppd | 385 ++++++++++++ install/server/cups/ppd/PDF.ppd.O | 385 ++++++++++++ install/server/cups/printers.conf | 39 ++ install/server/cups/printers.conf.O | 22 + install/server/cups/raw.convs | 5 + install/server/cups/raw.types | 5 + install/server/cups/snmp.conf | 7 + .../server/cups/ssl/raspberrypi.fritz.box.crt | 23 + .../server/cups/ssl/raspberrypi.fritz.box.key | 27 + install/server/cups/ssl/server.crt | 18 + install/server/cups/ssl/server.key | 28 + install/server/cups/subscriptions.conf | 20 + install/server/cups/subscriptions.conf.O | 3 + install/server/epson-tm-t20-cups.tar.gz | Bin 0 -> 70942 bytes install/server/install.sh | 61 ++ install/server/pdfcashbox.pdf | Bin 0 -> 7730 bytes install/server/samba.sh | 6 + modules/paywindow/index.html | 284 ++++++--- modules/paywindow/index.js | 87 ++- package-lock.json | 547 ++++++++++++++++++ package.json | 14 +- 32 files changed, 3251 insertions(+), 86 deletions(-) create mode 100644 img/cashbox_KhGn.ico create mode 100644 install/server/bluetooth.sh create mode 100644 install/server/cups/classes.conf create mode 100644 install/server/cups/cups-browsed.conf create mode 100644 install/server/cups/cups-files.conf create mode 100644 install/server/cups/cups-pdf.conf create mode 100644 install/server/cups/cupsd.conf create mode 100644 install/server/cups/cupsd.conf.O create mode 100644 install/server/cups/ppd/EPSON_TM-T20II.ppd create mode 100644 install/server/cups/ppd/EPSON_TM-T20II.ppd.O create mode 100644 install/server/cups/ppd/PDF.ppd create mode 100644 install/server/cups/ppd/PDF.ppd.O create mode 100644 install/server/cups/printers.conf create mode 100644 install/server/cups/printers.conf.O create mode 100644 install/server/cups/raw.convs create mode 100644 install/server/cups/raw.types create mode 100644 install/server/cups/snmp.conf create mode 100644 install/server/cups/ssl/raspberrypi.fritz.box.crt create mode 100644 install/server/cups/ssl/raspberrypi.fritz.box.key create mode 100644 install/server/cups/ssl/server.crt create mode 100644 install/server/cups/ssl/server.key create mode 100644 install/server/cups/subscriptions.conf create mode 100644 install/server/cups/subscriptions.conf.O create mode 100644 install/server/epson-tm-t20-cups.tar.gz create mode 100644 install/server/install.sh create mode 100644 install/server/pdfcashbox.pdf create mode 100644 install/server/samba.sh diff --git a/css/app.css b/css/app.css index 7da579b..2dab298 100644 --- a/css/app.css +++ b/css/app.css @@ -53,6 +53,10 @@ select.form-control { background-image: url("data:image/svg+xml;utf8,"); background-position: 100% 50%; background-repeat: no-repeat; + padding-top: 10px; + height: 45px; + padding-bottom: 10px; + font-size: 18px; } select.bg-primary, select.bg-primary:hover, select.bg-primary:active { @@ -71,4 +75,15 @@ input.right { .card { margin: 10px; +} + +option { + font-size: 20px; + padding-top: 5px; + padding-bottom: 5px; +} + +.btn { + min-height: 50px; + min-width: 50px; } \ No newline at end of file diff --git a/img/cashbox_KhGn.ico b/img/cashbox_KhGn.ico new file mode 100644 index 0000000000000000000000000000000000000000..03e7d1352ec2e1de354d5837da5bbeed36589c5e GIT binary patch literal 26015 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 [] + +# The BrowseFilter directive always starts with the word +# "BrowseFilter" and it must at least contain the name of the data +# field () of the printer's properties to which it should +# apply. + +# Available field names are: + +# name: Name of the local print queue to be created +# host: Host name of the remote print server +# port: Port through which the printer is accessed on the server +# service: DNS/SD service name of the remote printer +# domain: Domain of the remote print server + +# Also all field names in the TXT records of DNS-SD-advertised printers +# are valid, like "color", "duplex", "pdl", ... If the field name of +# the filter rule does not exist for the printer, the rule is skipped. + +# The optional field is either the exact value (when the +# option EXACT is supplied) or a regular expression (Run "man 7 regex" +# in a terminal window) to be matched with the data field. + +# If no filed is supplied, rules with field names of the TXT +# record are considered for boolean matching (true/false) of boolean +# field (like duplex, which can have the values "T" for true and "F" +# for false). + +# If the option NOT is supplied, the filter rule is fulfilled if the +# regular expression or the exact value DOES NOT match the content of +# the data field. In a boolean rule (without ) the rule matches +# false. + +# Regular expressions are always considered case-insensitive and +# extended POSIX regular expressions. Field names and options (NOT, +# EXACT) are all evaluated case-insensitive. If there is an error in a +# regular expression, the BrowseFilter line gets ignored. + +# Especially to note is that supplying any simple string consisting of +# only letters, numbers, spaces, and some basic special characters as +# a regular expression matches if it is contained somewhere in the +# data field. + +# If there is more than one BrowseFilter directive, ALL the directives +# need to be fulfilled for the remote printer to be accepted. If one +# is not fulfilled, the printer will get ignored. + +# Examples: + +# Rules for standard data items which are supplied with any remote +# printer advertised via DNS-SD: + +# Print queue name must contain "hum_res_", this matches +# "hum_res_mono" or "hum_res_color" but also "old_hum_res_mono": + +# BrowseFilter name hum_res_ + +# This matches if the remote host name contains "printserver", like +# "printserver.local", "printserver2.example.com", "newprintserver": + +# BrowseFilter host printserver + +# This matches all ports with 631 int its number, for example 631, +# 8631, 10631,...: + +# BrowseFilter port 631 + +# This rule matches if the DNS-SD service name contains "@ printserver": + +# Browsefilter service @ printserver + +# Matches all domains with "local" in their names, not only "local" but +# also things like "printlocally.com": + +# BrowseFilter domain local + +# Examples for rules applying to items of the TXT record: + +# This rule selects PostScript printers, as the "PDL" field in the TXT +# record contains "postscript" then. This includes also remote CUPS +# queues which accept PostScript, independent of whether the physical +# printer behind the CUPS queue accepts PostScript or not. + +# BrowseFilter pdl postscript + +# Color printers usually contain a "Color" entry set to "T" (for true) +# in the TXT record. This rule selects them: + +# BrowseFilter color + +# This is a similar rule to select only duplex (automatic double-sided +# printing) printers: + +# BrowseFilter duplex + +# Rules with the NOT option: + +# This rule EXCLUDES printers from all hosts containing "financial" in +# their names, nice to get rid of the 100s of printers of the +# financial department: + +# BrowseFilter NOT host financial + +# Get only monochrome printers ("Color" set to "F", meaning false, in +# the TXT record): + +# BrowseFilter NOT color + +# Rules with more advanced use of regular expressions: + +# Only queue names which BEGIN WITH "hum_res_" are accepted now, so we +# still get "hum_res_mono" or "hum_res_color" but not +# "old_hum_res_mono" any more: + +# BrowseFilter name ^hum_res_ + +# Server names is accepted if it contains "print_server" OR +# "graphics_dep_server": + +# BrowseFilter host print_server|graphics_dep_server + +# "printserver1", "printserver2", and "printserver3", nothing else: + +# BrowseFilter host ^printserver[1-3]$ + +# Printers understanding at least one of PostScript, PCL, or PDF: + +# BrowseFilter pdl postscript|pcl|pdf + +# Examples for the EXACT option: + +# Only printers from "printserver.local" are accepted: + +# BrowseFilter EXACT host printserver.local + +# Printers from all servers except "prinserver2.local" are accepted: + +# BrowseFilter NOT EXACT host prinserver2.local + + +# Use BrowsePoll to poll a particular CUPS server + +# BrowsePoll cups.example.com +# BrowsePoll cups.example.com:631 +# BrowsePoll cups.example.com:631/version=1.1 + + +# LDAP browsing configuration +# The default value for all options is an empty string. Example configuration: + +# BrowseLDAPBindDN cn=cups-browsed,dc=domain,dc=tld +# BrowseLDAPCACertFile /path/to/server/certificate.pem +# BrowseLDAPDN ou=printers,dc=domain,dc=tld +# BrowseLDAPFilter (printerLocation=/Office 1/*) +# BrowseLDAPPassword s3cret +# BrowseLDAPServer ldaps://ldap.domain.tld + + +# Use DomainSocket to access the local CUPS daemon via another than the +# default domain socket. "None" or "Off" lets cups-browsed not use CUPS' +# domain socket. + +# DomainSocket /var/run/cups/cups.sock +# DomainSocket None +# DomainSocket Off + + +# Set IPBasedDeviceURIs to "Yes" if cups-browsed should create its +# local queues with device URIs with the IP addresses instead of the +# host names of the remote servers. This mode is there for any +# problems with host name resolution in the network, especially also +# if avahi-daemon is only run for printer discovery and already +# stopped while still printing. By default this mode is turned off, +# meaning that we use URIs with host names. + +# If you prefer IPv4 or IPv6 IP addresses in the URIs, you can set +# IPBasedDeviceURIs to "IPv4" to only get IPv4 IP addresses or +# IPBasedDeviceURIs to "IPv6" to only get IPv6 IP addresses. + +# IPBasedDeviceURIs No +# IPBasedDeviceURIs Yes +# IPBasedDeviceURIs IPv4 +# IPBasedDeviceURIs IPv6 + + +# Set CreateRemoteRawPrinterQueues to "Yes" to let cups-browsed also +# create local queues pointing to remote raw CUPS queues. Normally, +# only queues pointing to remote queues with PPD/driver are created +# as we do not use drivers on the client side, but in some cases +# accessing a remote raw queue can make sense, for example if the +# queue forwards the jobs by a special backend like Tea4CUPS. + +# CreateRemoteRawPrinterQueues Yes + + +# Set CreateIPPPrinterQueues to "Yes" to let cups-browsed discover IPP +# network printers (native printers, not CUPS queues) with known page +# description languages (PWG Raster, PDF, PostScript, PCL XL, PCL +# 5c/e) in the local network and auto-create PPD-less print queues for +# them (using a System V interface script to control the filter +# chain). Clients have to IPP-poll the capabilities of the printer and +# send option settings as standard IPP attributes. We do not poll the +# capabilities by ourselves to not wake up the printer from +# power-saving mode when creating the queues. Jobs have to be sent in +# one of PDF, PWG Raster, or JPEG format. Other formats are not +# accepted. This functionality is primarily for mobile devices running +# CUPS to not need a printer setup tool nor a collection of printer +# drivers and PPDs. + +# CreateIPPPrinterQueues Yes + + +# If cups-browsed is automatically creating print queues for native +# IPP network printers ("CreateIPPPrinterQueues Yes"), the type of +# queue to be created can be selected by the "IPPPrinterQueueType" +# directive. The "PPD" (default) setting makes queues with PPD file +# being created. With "Interface" or "NoPPD" the queue is created with +# a System V interface script (Not supported with CUPS 2.2.x or +# later). "Auto" is for backward compatibility and also lets queues +# with PPD get created. + +# IPPPrinterQueueType PPD +# IPPPrinterQueueType NoPPD +# IPPPrinterQueueType Interface +# IPPPrinterQueueType Auto + + +# The LoadBalancing directive switches between two methods of handling +# load balancing between equally-named remote queues which are +# represented by one local print queue making up a cluster of them +# (implicit class). + +# The two methods are: + +# Queuing of jobs on the client (LoadBalancing QueueOnClient): + +# Here we queue up the jobs on the client and regularly check the +# clustered remote print queues. If we find an idle queue, we pass +# on a job to it. + +# This is also the method which CUPS uses for classes. Advantage is a +# more even distribution of the job workload on the servers +# (especially if the printing speed of the servers is very different), +# and if a server fails, there are not several jobs stuck or +# lost. Disadvantage is that if one takes the client (laptop, mobile +# phone, ...) out of the local network, printing stops with the jobs +# waiting in the local queue. + +# Queuing of jobs on the servers (LoadBalancing QueueOnServers): + +# Here we check the number of jobs on each of the clustered remote +# printers and send an incoming job immediately to the remote printer +# with the lowest amount of jobs in its queue. This way no jobs queue +# up locally, all jobs which are waiting are waiting on one of the +# remote servers. + +# Not having jobs waiting locally has the advantage that we can take +# the local machine from the network and all jobs get printed. +# Disadvantage is that if a server with a full queue of jobs goes +# away, the jobs go away, too. + +# Default is queuing the jobs on the client as this is what CUPS does +# with classes. + +# LoadBalancing QueueOnClient +# LoadBalancing QueueOnServers + + +# With the DefaultOptions directive one or more option settings can be +# defined to be applied to every print queue newly created by +# cups-browsed. Each option is supplied as one supplies options with +# the "-o" command line argument to the "lpadmin" command (Run "man +# lpadmin" for more details). More than one option can be supplied +# separating the options by spaces. By default no option settings are +# pre-defined. + +# Note that print queues which cups-browsed already created before +# remember their previous settings and so these settings do not get +# applied. + +# DefaultOptions Option1=Value1 Option2=Value2 Option3 noOption4 + + +# The AutoShutdown directive specifies whether cups-browsed should +# automatically terminate when it has no local raw queues set up +# pointing to any discovered remote printers or no jobs on such queues +# depending on AutoShutdownOn setting (auto shutdown mode). Setting it +# to "On" activates the auto-shutdown mode, setting it to "Off" +# deactiivates it (the default). The special mode "avahi" turns auto +# shutdown off while avahi-daemon is running and on when avahi-daemon +# stops. This allows running cups-browsed on-demand when avahi-daemon +# is run on-demand. + +# AutoShutdown Off +# AutoShutdown On +# AutoShutdown avahi + + +# The AutoShutdownOn directive determines what event cups-browsed +# considers as inactivity in auto shutdown mode. "NoQueues" (the +# default) means that auto shutdown is initiated when there are no +# queues for discovered remote printers generated by cups-browsed any +# more. "NoJobs" means that all queues generated by cups-browsed are +# without jobs. + +# AutoShutdownOn NoQueues +# AutoShutdownOn NoJobs + + +# The AutoShutdownTimeout directive specifies after how many seconds +# without local raw queues set up pointing to any discovered remote +# printers or jobs on these queues cups-browsed should actually shut +# down in auto shutdown mode. Default is 30 seconds, 0 means immediate +# shutdown. + +# AutoShutdownTimeout 30 diff --git a/install/server/cups/cups-files.conf b/install/server/cups/cups-files.conf new file mode 100644 index 0000000..d03a378 --- /dev/null +++ b/install/server/cups/cups-files.conf @@ -0,0 +1,93 @@ +# +# File/directory/user/group configuration file for the CUPS scheduler. +# See "man cups-files.conf" for a complete description of this file. +# + +# List of events that are considered fatal errors for the scheduler... +#FatalErrors config + +# Do we call fsync() after writing configuration or status files? +#SyncOnClose Yes + +# Default user and group for filters/backends/helper programs; this cannot be +# any user or group that resolves to ID 0 for security reasons... +#User lp +#Group lp + +# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules... +# This cannot contain the Group value for security reasons... +SystemGroup lpadmin + + +# User that is substituted for unauthenticated (remote) root accesses... +#RemoteRoot remroot + +# Do we allow file: device URIs other than to /dev/null? +#FileDevice No + +# Permissions for configuration and log files... +#ConfigFilePerm 0640 +#LogFilePerm 00640 + +# Location of the file logging all access to the scheduler; may be the name +# "syslog". If not an absolute path, the value of ServerRoot is used as the +# root directory. Also see the "AccessLogLevel" directive in cupsd.conf. +AccessLog /var/log/cups/access_log + +# Location of cache files used by the scheduler... +#CacheDir /var/cache/cups + +# Location of data files used by the scheduler... +#DataDir /usr/share/cups + +# Location of the static web content served by the scheduler... +#DocumentRoot /usr/share/cups/doc-root + +# Location of the file logging all messages produced by the scheduler and any +# helper programs; may be the name "syslog". If not an absolute path, the value +# of ServerRoot is used as the root directory. Also see the "LogLevel" +# directive in cupsd.conf. +ErrorLog /var/log/cups/error_log + +# Location of fonts used by older print filters... +#FontPath /usr/share/cups/fonts + +# Location of LPD configuration +#LPDConfigFile + +# Location of the file logging all pages printed by the scheduler and any +# helper programs; may be the name "syslog". If not an absolute path, the value +# of ServerRoot is used as the root directory. Also see the "PageLogFormat" +# directive in cupsd.conf. +PageLog /var/log/cups/page_log + +# Location of the file listing all of the local printers... +#Printcap /var/run/cups/printcap + +# Format of the Printcap file... +#PrintcapFormat bsd +#PrintcapFormat plist +#PrintcapFormat solaris + +# Location of all spool files... +#RequestRoot /var/spool/cups + +# Location of helper programs... +#ServerBin /usr/lib/cups + +# SSL/TLS keychain for the scheduler... +#ServerKeychain ssl + +# Location of other configuration files... +#ServerRoot /etc/cups + +# Location of Samba configuration file... +#SMBConfigFile + +# Location of scheduler state files... +#StateDir /var/run/cups + +# Location of scheduler/helper temporary files. This directory is emptied on +# scheduler startup and cannot be one of the standard (public) temporary +# directory locations for security reasons... +#TempDir /var/spool/cups/tmp diff --git a/install/server/cups/cups-pdf.conf b/install/server/cups/cups-pdf.conf new file mode 100644 index 0000000..a107760 --- /dev/null +++ b/install/server/cups/cups-pdf.conf @@ -0,0 +1,289 @@ +# cups-pdf.conf -- CUPS Backend Configuration (version 2.6.1, 2011-10-04) +# 18.09.2005, Volker C. Behr +# Experimentelle Physik V, Universitaet Wuerzburg +# behr@physik.uni-wuerzburg.de +# http://www.cups-pdf.de +# +# +# This code may be freely distributed as long as this header +# is preserved. Changes to the code should be clearly indicated. +# +# This code is distributed under the GPL. +# (http://www.gnu.org/copyleft/gpl.html) +# +# For more detailed licensing information see cups-pdf.c in the +# corresponding version number. + +########################################################################### +# # +# This is the configuration file for CUPS-PDF. Values that are not set in # +# here will use the defaults. Changes take effect immediately without the # +# need for restarting any services. # +# # +# Take care not to add whitespaces at the end of a line! # +# # +########################################################################### + + +########################################################################### +# # +# Path Settings # +# # +########################################################################### + +### Key: Out +## CUPS-PDF output directory +## special qualifiers: +## ${HOME} will be expanded to the user's home directory +## ${USER} will be expanded to the user name +## in case it is an NFS export make sure it is exported without +## root_squash! +## on Ubuntu, the cupsd AppArmor profile needs to be updated +## to match the output path as per instructions in LP:147551 +### Default: /var/spool/cups-pdf/${USER} + +Out ${HOME}/PDF + +### Key: AnonDirName +## ABSOLUTE path for anonymously created PDF files +## if anonymous access is disabled this setting has no effect +### Default: /var/spool/cups-pdf/ANONYMOUS + +#AnonDirName /var/spool/cups-pdf/ANONYMOUS + +### Key: Spool +## CUPS-PDF spool directory - make sure there is no user 'SPOOL' on your +## system or change the path +### Default: /var/spool/cups-pdf/SPOOL + +#Spool /var/spool/cups-pdf/SPOOL + + +########################################################################### +# # +# Filename Settings # +# # +########################################################################### + +### Key: Truncate +## truncate long filenames to a maximum of characters +## this does not consider the full path to the output but only the filename +## without the .pdf-extension or a job-id prefix (see 'Label') +## the minimal value is 8 +### Default: 64 + +#Truncate 64 + +### Key: Cut +## removing file name extensions before appending .pdf to output +## extensions will only be removed if _both_ the following criteria are met: +## - the extension (w/o the dot) is not longer than characters +## - the remaining filename has a minimal length of 1 character +## set Cut to -1 in order to disable cutting +## recommended values: pure UNIX environment : -1 +## mixed environments : 3 +### Default: 3 + +#Cut 3 + +### Key: Label +## label all jobs with a unique job-id in order to avoid overwriting old +## files in case new ones with identical names are created; always true for +## untitled documents +## 0: label untitled documents only +## 1: label all documents with a preceeding "job_#-" +## 2: label all documents with a tailing "-job_#" +### Default: 0 + +#Label 0 + +### Key: TitlePref +## where to look first for a title when creating the output filename +## (title in PS file or title on commandline): +## 0: prefer title from %Title statement in the PS file +## 1: prefer title passed via commandline +### Default: 0 + +#TitlePref 0 + + +########################################################################### +# # +# User Settings # +# # +########################################################################### + +### Key: AnonUser +## uid for anonymous PDF creation (this might be a security issue) +## this setting has no influence on AnonDirName (see there) +## set this to an empty value to disable anonymous +### Default: nobody + +#AnonUser nobody + +### Key: LowerCase +## This options allows to check user names given to CUPS-PDF additionally +## against their lower case variants. This is necessary since in some +## Windows environments only upper case user names are passed. Usually UNIX +## user names are all lower case and it is save to use this option +## but be aware that it can lead to mis-identifications in case +## you have user names that differ only in upper/lower case. +## check only against user name as passed to CUPS : 0 +## check additionally against lower case user name : 1 +### Default: 1 + +#LowerCase 1 + +### Key: UserPrefix +## some installations require a domain prefix added to the user name +## leave empty for no prefix +### Default: + +#UserPrefix + +### Key: DirPrefix +## if a prefix was defined above this switch toggels whether to include +## the prefix in the output directory's name (if not $HOME) or not +## 0: do not include, 1: include +### Default: 0 + +#DirPrefix 0 + +### Key: RemovePrefix +## some installation pass usernames with a prefix (usually a domain name) +## if you do not want this prefix to be used by the ${USER} variable for +## output directories put the part which is to be cut here +### Default: + +#RemovePrefix + + +########################################################################### +# # +# Security Settings # +# # +########################################################################### + +### Key: AnonUMask +## umask for anonymous output +## these are the _inverse_ permissions to be granted +### Default: 0000 + +#AnonUMask 0000 + +### Key: UserUMask +## umask for user output of known users +## changing this can introduce security leaks if confidential +## information is processed! +### Default: 0077 + +#UserUMask 0077 + +### Key: Grp +## group cups-pdf is supposed to run as - this will also be the gid for all +## created directories and log files +### Default: lp + +Grp lpadmin + + +########################################################################### +# # +# Log Settings # +# # +########################################################################### + +### Key: Log +## CUPS-PDF log directory +## set this to an empty value to disable all logging +### Default: /var/log/cups + +#Log /var/log/cups + +### Key: LogType +## log-mode +## 1: errors +## 2: status (i.e. activity) +## 4: debug - this will generate a lot of log-output! +## add up values to combine options, i.e. 7 is full logging +## if logging is disabled these setting have no effect +### Default: 3 + +#LogType 3 + + +########################################################################### +# # +# PDF Conversion Settings # +# # +########################################################################### + +### Key: GhostScript +## location of GhostScript binary (gs) +## MacOSX: for using pstopdf (recommended) set this to /usr/bin/pstopdf +## or its proper location on your system +### Default: /usr/bin/gs + +#GhostScript /usr/bin/gs + +### Key: GSTmp +## location of temporary files during GhostScript operation +## this must be user-writable like /var/tmp or /tmp ! +### Default: /var/tmp + +#GSTmp /var/tmp + +### Key: GSCall +## command line for calling GhostScript (!!! DO NOT USE NEWLINES !!!) +## MacOSX: for using pstopdf set this to %s %s -o %s %s +### Default: %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s + +#GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f %s + +### Key: PDFVer +## PDF version to be created - can be "1.5", "1.4", "1.3" or "1.2" +## MacOSX: for using pstopdf set this to an empty value +### Default: 1.4 + +#PDFVer 1.4 + +### Key: PostProcessing +## postprocessing script that will be called after the creation of the PDF +## as arguments the filename of the PDF, the username as determined by +## CUPS-PDF and the one as given to CUPS-PDF will be passed +## the script will be called with user privileges +## set this to an empty value to use no postprocessing +### Default: + +#PostProcessing + + +########################################################################### +# # +# Experimental Settings # +# These settings activate experimental options. If you decide to use # +# them I would appreciate any feedback - including an 'ok' if they # +# work as expected - so I can eventually put them into the non- # +# experimental sections. # +# # +########################################################################### + +### Key: DecodeHexStrings +## this option will try to decode hex strings in the title to allow +## internationalized titles +## (have a look at contrib/pstitleconv for a suitable filter for data +## from Windows clients) +## 0: disable, 1: enable +### Default: 0 + +DecodeHexStrings 1 + +### Key: FixNewlines +## this option will try to fix various unusal line delimiters (e.g. +## form feeds) +## especially useful when using non-Linux-generated files +## 0: disable, 1: enable +### Default: 0 + +#FixNewlines 0 + diff --git a/install/server/cups/cupsd.conf b/install/server/cups/cupsd.conf new file mode 100644 index 0000000..69d6133 --- /dev/null +++ b/install/server/cups/cupsd.conf @@ -0,0 +1,94 @@ +LogLevel warn +PageLogFormat +MaxLogSize 0 +Port 631 +Listen /var/run/cups/cups.sock +Browsing On +BrowseLocalProtocols dnssd +DefaultAuthType Basic +WebInterface Yes + + Order allow,deny + Allow All + + + Order allow,deny + Allow All + + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow All + + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow All + + + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + Order deny,allow + + + Require user @OWNER @SYSTEM + Order deny,allow + + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + Require user @OWNER @SYSTEM + Order deny,allow + + + Order deny,allow + + + + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + AuthType Default + Order deny,allow + + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + Order deny,allow + + +PreserveJobFiles Yes +PreserveJobHistory Yes diff --git a/install/server/cups/cupsd.conf.O b/install/server/cups/cupsd.conf.O new file mode 100644 index 0000000..4bffb0c --- /dev/null +++ b/install/server/cups/cupsd.conf.O @@ -0,0 +1,145 @@ +# +# Configuration file for the CUPS scheduler. See "man cupsd.conf" for a +# complete description of this file. +# + +# Log general information in error_log - change "warn" to "debug" +# for troubleshooting... +LogLevel warn +PageLogFormat + +# Deactivate CUPS' internal logrotating, as we provide a better one, especially +# LogLevel debug2 gets usable now +MaxLogSize 0 + +# Only listen for connections from the local machine. +#Listen localhost:631 +Port 631 +Listen /var/run/cups/cups.sock + +# Show shared printers on the local network. +Browsing On +BrowseLocalProtocols dnssd + +# Default authentication type, when authentication is required... +DefaultAuthType Basic + +# Web interface setting... +WebInterface Yes + +# Restrict access to the server... + + Order allow,deny + Allow All + + +# Restrict access to the admin pages... + + Order allow,deny + Allow All + + +# Restrict access to configuration files... + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow All + + +# Restrict access to log files... + + AuthType Default + Require user @SYSTEM + Order allow,deny + Allow All + + +# Set the default printer/job policies... + + # Job/subscription privacy... + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + # Job-related operations must be done by the owner or an administrator... + + Order deny,allow + + + + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + Require user @OWNER @SYSTEM + Order deny,allow + + + + Order deny,allow + + + +# Set the authenticated printer/job policies... + + # Job/subscription privacy... + JobPrivateAccess default + JobPrivateValues default + SubscriptionPrivateAccess default + SubscriptionPrivateValues default + + # Job-related operations must be done by the owner or an administrator... + + AuthType Default + Order deny,allow + + + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + # All administration operations require an administrator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # All printer operations require a printer operator to authenticate... + + AuthType Default + Require user @SYSTEM + Order deny,allow + + + # Only the owner or an administrator can cancel or authenticate a job... + + AuthType Default + Require user @OWNER @SYSTEM + Order deny,allow + + + + Order deny,allow + + diff --git a/install/server/cups/ppd/EPSON_TM-T20II.ppd b/install/server/cups/ppd/EPSON_TM-T20II.ppd new file mode 100644 index 0000000..7ad2760 --- /dev/null +++ b/install/server/cups/ppd/EPSON_TM-T20II.ppd @@ -0,0 +1,117 @@ +*PPD-Adobe: "4.3" +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "tm20.ppd" +*Manufacturer: "Epson" +*Product: "(TM-T20)" +*1284DeviceID: "MFG:Epson;CMD:Epson;MDL:TMT20;CLS:PRINTER;" +*cupsVersion: 1.1 +*cupsManualCopies: True +*cupsModelNumber: 20 +*cupsFilter: "application/vnd.cups-raster 0 rastertozj" +*ModelName: "TM-T20" +*ShortNickName: "TM-T20" +*NickName: "Epson TM-T20" +*PSVersion: "(3010.000) 550" +*LanguageLevel: "3" +*ColorDevice: False +*DefaultColorSpace: Gray +*FileSystem: False +*Throughput: "1" +*LandscapeOrientation: Plus90 +*VariablePaperSize: True +*TTRasterizer: Type42 + +*OpenUI *PageSize/Media Size: PickOne +*OrderDependency: 10 AnySetup *PageSize +*DefaultPageSize: X80MMY210MM + +*PageSize X80MMY64MM/80mm x 74mm: "<>setpagedevice" +*PageSize X80MMY210MM/80mm x 210mm: "<>setpagedevice" +*PageSize X80MMY297MM/80mm x 297mm: "<>setpagedevice" +*PageSize X80MMY3276MM/80mm x 3276mm: "<>setpagedevice" + +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 10 AnySetup *PageRegion +*DefaultPageRegion: X80MMY210MM + +*PageRegion X80MMY64MM/80mm x 74mm: "<>setpagedevice" +*PageRegion X80MMY210MM/80mm x 210mm: "<>setpagedevice" +*PageRegion X80MMY297MM/80mm x 297mm: "<>setpagedevice" +*PageRegion X80MMY3276MM/80mm x 3276mm: "<>setpagedevice" + +*DefaultImageableArea: X80MMY210MM + +*ImageableArea X80MMY64MM: "0 0 226 181" +*ImageableArea X80MMY210MM: "0 0 226 595" +*ImageableArea X80MMY297MM: "0 0 226 842" +*ImageableArea X80MMY3276MM: "0 0 226 9286" + +*DefaultPaperDimension: X80MMY210MM + +*PaperDimension X80MMY64MM: "226 181" +*PaperDimension X80MMY210MM: "226 595" +*PaperDimension X80MMY297MM: "226 842" +*PaperDimension X80MMY3276MM: "226 9286" + +*MaxMediaWidth: "226" +*MaxMediaHeight: "9286" +*HWMargins: 0 0 0 0 +*CustomPageSize True: "pop pop pop <>setpagedevice" +*ParamCustomPageSize Width: 1 points 72 226 +*ParamCustomPageSize Height: 2 points 72 9282 +*ParamCustomPageSize WidthOffset: 3 points 0 0 +*ParamCustomPageSize HeightOffset: 4 points 0 0 +*ParamCustomPageSize Orientation: 5 int 0 0 + +*OpenGroup: CutGroup/Cut Options +*OpenUI *FeedDist/Feed distance after print: PickOne +*DefaultFeedDist: 4feed15mm +*FeedDist 0feed3mm/feed 3mm: "" +*FeedDist 1feed6mm/feed 6mm: "" +*FeedDist 2feed9mm/feed 9mm: "" +*FeedDist 3feed12mm/feed 12mm: "" +*FeedDist 4feed15mm/feed 15mm: "" +*FeedDist 5feed18mm/feed 18mm: "" +*FeedDist 6feed21mm/feed 21mm: "" +*FeedDist 7feed24mm/feed 24mm: "" +*FeedDist 8feed27mm/feed 27mm: "" +*FeedDist 9feed30mm/feed 30mm: "" +*FeedDist 10feed33mm/feed 33mm: "" +*FeedDist 11feed36mm/feed 36mm: "" +*FeedDist 12feed39mm/feed 39mm: "" +*FeedDist 13feed42mm/feed 42mm: "" +*FeedDist 14feed45mm/feed 45mm: "" +*CloseUI: *FeedDist + + +*OpenUI *BlankSpace/Blank space at page's end: PickOne +*DefaultBlankSpace: 0Print +*BlankSpace 0Print/Print: "" +*BlankSpace 1NoPrint/Do not print: "" +*CloseUI: *BlankSpace + +*CloseGroup: *CutGroup + +*OpenGroup: *CashDrawerGroup/Cash Drawer Control +*OpenUI *CashDrawer1Setting/Cash Drawer 1: PickOne +*DefaultCashDrawer1Setting: 0NotCashDrawer1 +*CashDrawer1Setting 0NotCashDrawer1/Not Cash Drawer 1: "" +*CashDrawer1Setting 1NotCashDrawer1BeforePrinting/Cash Drawer 1 Before Printing: "" +*CashDrawer1Setting 2NotCashDrawer1BeforePrinting/Cash Drawer 1 After Printing: "" +*CloseUI: *CashDrawer1Setting + +*OpenUI *CashDrawer2Setting/Cash Drawer 2: PickOne +*DefaultCashDrawer2Setting: 0NotCashDrawer2 +*CashDrawer2Setting 0NotCashDrawer2/Not Cash Drawer 2: "" +*CashDrawer2Setting 1NotCashDrawer2BeforePrinting/Cash Drawer 2 Before Printing: "" +*CashDrawer2Setting 2NotCashDrawer2BeforePrinting/Cash Drawer 2 After Printing: "" +*CloseUI: *CashDrawer2Setting +*CloseGroup: *CashDrawerGroup + + +*% End diff --git a/install/server/cups/ppd/EPSON_TM-T20II.ppd.O b/install/server/cups/ppd/EPSON_TM-T20II.ppd.O new file mode 100644 index 0000000..d3026c0 --- /dev/null +++ b/install/server/cups/ppd/EPSON_TM-T20II.ppd.O @@ -0,0 +1,117 @@ +*PPD-Adobe: "4.3" +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "tm20.ppd" +*Manufacturer: "Epson" +*Product: "(TM-T20)" +*1284DeviceID: "MFG:Epson;CMD:Epson;MDL:TMT20;CLS:PRINTER;" +*cupsVersion: 1.1 +*cupsManualCopies: True +*cupsModelNumber: 20 +*cupsFilter: "application/vnd.cups-raster 0 rastertozj" +*ModelName: "TM-T20" +*ShortNickName: "TM-T20" +*NickName: "Epson TM-T20" +*PSVersion: "(3010.000) 550" +*LanguageLevel: "3" +*ColorDevice: False +*DefaultColorSpace: Gray +*FileSystem: False +*Throughput: "1" +*LandscapeOrientation: Plus90 +*VariablePaperSize: True +*TTRasterizer: Type42 + +*OpenUI *PageSize/Media Size: PickOne +*OrderDependency: 10 AnySetup *PageSize +*DefaultPageSize: X80MMY64MM + +*PageSize X80MMY64MM/80mm x 74mm: "<>setpagedevice" +*PageSize X80MMY210MM/80mm x 210mm: "<>setpagedevice" +*PageSize X80MMY297MM/80mm x 297mm: "<>setpagedevice" +*PageSize X80MMY3276MM/80mm x 3276mm: "<>setpagedevice" + +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 10 AnySetup *PageRegion +*DefaultPageRegion: X80MMY64MM + +*PageRegion X80MMY64MM/80mm x 74mm: "<>setpagedevice" +*PageRegion X80MMY210MM/80mm x 210mm: "<>setpagedevice" +*PageRegion X80MMY297MM/80mm x 297mm: "<>setpagedevice" +*PageRegion X80MMY3276MM/80mm x 3276mm: "<>setpagedevice" + +*DefaultImageableArea: X80MMY64MM + +*ImageableArea X80MMY64MM: "0 0 226 181" +*ImageableArea X80MMY210MM: "0 0 226 595" +*ImageableArea X80MMY297MM: "0 0 226 842" +*ImageableArea X80MMY3276MM: "0 0 226 9286" + +*DefaultPaperDimension: X80MMY64MM + +*PaperDimension X80MMY64MM: "226 181" +*PaperDimension X80MMY210MM: "226 595" +*PaperDimension X80MMY297MM: "226 842" +*PaperDimension X80MMY3276MM: "226 9286" + +*MaxMediaWidth: "226" +*MaxMediaHeight: "9286" +*HWMargins: 0 0 0 0 +*CustomPageSize True: "pop pop pop <>setpagedevice" +*ParamCustomPageSize Width: 1 points 72 226 +*ParamCustomPageSize Height: 2 points 72 9282 +*ParamCustomPageSize WidthOffset: 3 points 0 0 +*ParamCustomPageSize HeightOffset: 4 points 0 0 +*ParamCustomPageSize Orientation: 5 int 0 0 + +*OpenGroup: CutGroup/Cut Options +*OpenUI *FeedDist/Feed distance after print: PickOne +*DefaultFeedDist: 4feed15mm +*FeedDist 0feed3mm/feed 3mm: "" +*FeedDist 1feed6mm/feed 6mm: "" +*FeedDist 2feed9mm/feed 9mm: "" +*FeedDist 3feed12mm/feed 12mm: "" +*FeedDist 4feed15mm/feed 15mm: "" +*FeedDist 5feed18mm/feed 18mm: "" +*FeedDist 6feed21mm/feed 21mm: "" +*FeedDist 7feed24mm/feed 24mm: "" +*FeedDist 8feed27mm/feed 27mm: "" +*FeedDist 9feed30mm/feed 30mm: "" +*FeedDist 10feed33mm/feed 33mm: "" +*FeedDist 11feed36mm/feed 36mm: "" +*FeedDist 12feed39mm/feed 39mm: "" +*FeedDist 13feed42mm/feed 42mm: "" +*FeedDist 14feed45mm/feed 45mm: "" +*CloseUI: *FeedDist + + +*OpenUI *BlankSpace/Blank space at page's end: PickOne +*DefaultBlankSpace: 1NoPrint +*BlankSpace 0Print/Print: "" +*BlankSpace 1NoPrint/Do not print: "" +*CloseUI: *BlankSpace + +*CloseGroup: *CutGroup + +*OpenGroup: *CashDrawerGroup/Cash Drawer Control +*OpenUI *CashDrawer1Setting/Cash Drawer 1: PickOne +*DefaultCashDrawer1Setting: 0NotCashDrawer1 +*CashDrawer1Setting 0NotCashDrawer1/Not Cash Drawer 1: "" +*CashDrawer1Setting 1NotCashDrawer1BeforePrinting/Cash Drawer 1 Before Printing: "" +*CashDrawer1Setting 2NotCashDrawer1BeforePrinting/Cash Drawer 1 After Printing: "" +*CloseUI: *CashDrawer1Setting + +*OpenUI *CashDrawer2Setting/Cash Drawer 2: PickOne +*DefaultCashDrawer2Setting: 0NotCashDrawer2 +*CashDrawer2Setting 0NotCashDrawer2/Not Cash Drawer 2: "" +*CashDrawer2Setting 1NotCashDrawer2BeforePrinting/Cash Drawer 2 Before Printing: "" +*CashDrawer2Setting 2NotCashDrawer2BeforePrinting/Cash Drawer 2 After Printing: "" +*CloseUI: *CashDrawer2Setting +*CloseGroup: *CashDrawerGroup + + +*% End diff --git a/install/server/cups/ppd/PDF.ppd b/install/server/cups/ppd/PDF.ppd new file mode 100644 index 0000000..be1d370 --- /dev/null +++ b/install/server/cups/ppd/PDF.ppd @@ -0,0 +1,385 @@ +*PPD-Adobe: "4.3" +*% +*% "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $" +*% +*% Sample Postscript driver PPD file for the Common UNIX Printing +*% System (CUPS). +*% +*% Michael Goffioul +*% +*% Changes to the original file by Volker Behr, Martin-Eric Racine, +*% Nickolay Kondrashov and other contributors: +*% added IEEE-1284 device id - 2008-03-24 +*% added custom page size - 2006-05-18 +*% replaced page descriptions - 2006-05-18 +*% InputSlot constraints removed - 2006-05-11 +*% maxed out imageable regions - 2006-05-11 +*% added pstitleiconv filter - 2006-05-11 +*% added ledger paper size - 2006-01-29 +*% match Adobe specifications - 2005-12-23 +*% additional paper formats - 2005-02-03 and 2005-02-07 +*% made A4 default paper size - 2005-02-03 +*% Color enabled - 2003-12-02 +*% +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "CUPS-PDF.PPD" +*Manufacturer: "Generic" +*Product: "(CUPS v1.1)" +*ModelName: "Generic CUPS-PDF Printer" +*ShortNickName: "Generic CUPS-PDF Printer" +*NickName: "Generic CUPS-PDF Printer" +*1284DeviceID: "MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;" +*% cupsFilter: "application/vnd.cups-postscript 0 pstitleiconv" +*PSVersion: "(2017.000) 0" +*LanguageLevel: "2" +*ColorDevice: True +*DefaultColorSpace: RGB +*FileSystem: False +*Throughput: "8" +*LandscapeOrientation: Plus90 +*TTRasterizer: Type42 + +*HWMargins: 0 0 0 0 +*VariablePaperSize: True +*MaxMediaWidth: 100000 +*MaxMediaHeight: 100000 +*NonUIOrderDependency: 100 AnySetup *CustomPageSize +*CustomPageSize True: "pop pop pop +<>setpagedevice" +*End +*ParamCustomPageSize Width: 1 points 36 100000 +*ParamCustomPageSize Height: 2 points 36 100000 +*ParamCustomPageSize Orientation: 3 int 0 3 +*ParamCustomPageSize WidthOffset: 4 points 0 0 +*ParamCustomPageSize HeightOffset: 5 points 0 0 + +*OpenGroup: General/General + +*OpenUI *PageSize/Page Size: PickOne +*OrderDependency: 100 AnySetup *PageSize +*DefaultPageSize: A4 +*PageSize 11x14/11x14: "<>setpagedevice" +*PageSize 11x17/11x17: "<>setpagedevice" +*PageSize 13x19/13x19: "<>setpagedevice" +*PageSize 16x20/16x20: "<>setpagedevice" +*PageSize 16x24/16x24: "<>setpagedevice" +*PageSize 2A/2A: "<>setpagedevice" +*PageSize 4A/4A: "<>setpagedevice" +*PageSize 8x10/8x10: "<>setpagedevice" +*PageSize 8x12/8x12: "<>setpagedevice" +*PageSize A0/A0: "<>setpagedevice" +*PageSize A1/A1: "<>setpagedevice" +*PageSize A2/A2: "<>setpagedevice" +*PageSize A3/A3: "<>setpagedevice" +*PageSize A4/A4: "<>setpagedevice" +*PageSize A5/A5: "<>setpagedevice" +*PageSize AnsiA/ANSI A: "<>setpagedevice" +*PageSize AnsiB/ANSI B: "<>setpagedevice" +*PageSize AnsiC/ANSI C: "<>setpagedevice" +*PageSize AnsiD/ANSI D: "<>setpagedevice" +*PageSize AnsiE/ANSI E: "<>setpagedevice" +*PageSize ArchA/Arch A: "<>setpagedevice" +*PageSize ArchB/Arch B: "<>setpagedevice" +*PageSize ArchC/Arch C: "<>setpagedevice" +*PageSize ArchD/Arch D: "<>setpagedevice" +*PageSize ArchE/Arch E: "<>setpagedevice" +*PageSize C0/C0: "<>setpagedevice" +*PageSize C1/C1: "<>setpagedevice" +*PageSize C2/C2: "<>setpagedevice" +*PageSize C3/C3: "<>setpagedevice" +*PageSize C4/C4: "<>setpagedevice" +*PageSize C5/C5: "<>setpagedevice" +*PageSize Env10/Envelope #10: "<>setpagedevice" +*PageSize EnvC5/Envelope C5: "<>setpagedevice" +*PageSize EnvDL/Envelope DL: "<>setpagedevice" +*PageSize EnvMonarch/Envelope Monarch: "<>setpagedevice" +*PageSize Executive/Executive: "<>setpagedevice" +*PageSize ISOB0/B0 (ISO): "<>setpagedevice" +*PageSize ISOB1/B1 (ISO): "<>setpagedevice" +*PageSize ISOB2/B2 (ISO): "<>setpagedevice" +*PageSize ISOB3/B3 (ISO): "<>setpagedevice" +*PageSize ISOB4/B4 (ISO): "<>setpagedevice" +*PageSize ISOB5/B5 (ISO): "<>setpagedevice" +*PageSize JISB0/B0 (JIS): "<>setpagedevice" +*PageSize JISB1/B1 (JIS): "<>setpagedevice" +*PageSize JISB2/B2 (JIS): "<>setpagedevice" +*PageSize JISB3/B3 (JIS): "<>setpagedevice" +*PageSize JISB4/B4 (JIS): "<>setpagedevice" +*PageSize JISB5/B5 (JIS): "<>setpagedevice" +*PageSize Ledger/Ledger: "<>setpagedevice" +*PageSize Legal/US Legal: "<>setpagedevice" +*PageSize Letter/US Letter: "<>setpagedevice" +*PageSize RA0/RA0: "<>setpagedevice" +*PageSize RA1/RA1: "<>setpagedevice" +*PageSize RA2/RA2: "<>setpagedevice" +*PageSize RA3/RA3: "<>setpagedevice" +*PageSize RA4/RA4: "<>setpagedevice" +*PageSize SRA0/SRA0: "<>setpagedevice" +*PageSize SRA1/SRA1: "<>setpagedevice" +*PageSize SRA2/SRA2: "<>setpagedevice" +*PageSize SRA3/SRA3: "<>setpagedevice" +*PageSize SRA4/SRA4: "<>setpagedevice" +*PageSize SuperA/Super A: "<>setpagedevice" +*PageSize SuperB/Super B: "<>setpagedevice" +*PageSize TabloidExtra/Tabloid Extra: "<>setpagedevice" +*PageSize Tabloid/Tabloid: "<>setpagedevice" +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 100 AnySetup *PageRegion +*DefaultPageRegion: A4 +*PageRegion 11x14/11x14: "<>setpagedevice" +*PageRegion 11x17/11x17: "<>setpagedevice" +*PageRegion 13x19/13x19: "<>setpagedevice" +*PageRegion 16x20/16x20: "<>setpagedevice" +*PageRegion 16x24/16x24: "<>setpagedevice" +*PageRegion 2A/2A: "<>setpagedevice" +*PageRegion 4A/4A: "<>setpagedevice" +*PageRegion 8x10/8x10: "<>setpagedevice" +*PageRegion 8x12/8x12: "<>setpagedevice" +*PageRegion A0/A0: "<>setpagedevice" +*PageRegion A1/A1: "<>setpagedevice" +*PageRegion A2/A2: "<>setpagedevice" +*PageRegion A3/A3: "<>setpagedevice" +*PageRegion A4/A4: "<>setpagedevice" +*PageRegion A5/A5: "<>setpagedevice" +*PageRegion AnsiA/ANSI A: "<>setpagedevice" +*PageRegion AnsiB/ANSI B: "<>setpagedevice" +*PageRegion AnsiC/ANSI C: "<>setpagedevice" +*PageRegion AnsiD/ANSI D: "<>setpagedevice" +*PageRegion AnsiE/ANSI E: "<>setpagedevice" +*PageRegion ArchA/Arch A: "<>setpagedevice" +*PageRegion ArchB/Arch B: "<>setpagedevice" +*PageRegion ArchC/Arch C: "<>setpagedevice" +*PageRegion ArchD/Arch D: "<>setpagedevice" +*PageRegion ArchE/Arch E: "<>setpagedevice" +*PageRegion C0/C0: "<>setpagedevice" +*PageRegion C1/C1: "<>setpagedevice" +*PageRegion C2/C2: "<>setpagedevice" +*PageRegion C3/C3: "<>setpagedevice" +*PageRegion C4/C4: "<>setpagedevice" +*PageRegion C5/C5: "<>setpagedevice" +*PageRegion Env10/Envelope #10: "<>setpagedevice" +*PageRegion EnvC5/Envelope C5: "<>setpagedevice" +*PageRegion EnvDL/Envelope DL: "<>setpagedevice" +*PageRegion EnvMonarch/Envelope Monarch: "<>setpagedevice" +*PageRegion Executive/Executive: "<>setpagedevice" +*PageRegion ISOB0/B0 (ISO): "<>setpagedevice" +*PageRegion ISOB1/B1 (ISO): "<>setpagedevice" +*PageRegion ISOB2/B2 (ISO): "<>setpagedevice" +*PageRegion ISOB3/B3 (ISO): "<>setpagedevice" +*PageRegion ISOB4/B4 (ISO): "<>setpagedevice" +*PageRegion ISOB5/B5 (ISO): "<>setpagedevice" +*PageRegion JISB0/B0 (JIS): "<>setpagedevice" +*PageRegion JISB1/B1 (JIS): "<>setpagedevice" +*PageRegion JISB2/B2 (JIS): "<>setpagedevice" +*PageRegion JISB3/B3 (JIS): "<>setpagedevice" +*PageRegion JISB4/B4 (JIS): "<>setpagedevice" +*PageRegion JISB5/B5 (JIS): "<>setpagedevice" +*PageRegion Ledger/Ledger: "<>setpagedevice" +*PageRegion Legal/US Legal: "<>setpagedevice" +*PageRegion Letter/US Letter: "<>setpagedevice" +*PageRegion RA0/RA0: "<>setpagedevice" +*PageRegion RA1/RA1: "<>setpagedevice" +*PageRegion RA2/RA2: "<>setpagedevice" +*PageRegion RA3/RA3: "<>setpagedevice" +*PageRegion RA4/RA4: "<>setpagedevice" +*PageRegion SRA0/SRA0: "<>setpagedevice" +*PageRegion SRA1/SRA1: "<>setpagedevice" +*PageRegion SRA2/SRA2: "<>setpagedevice" +*PageRegion SRA3/SRA3: "<>setpagedevice" +*PageRegion SRA4/SRA4: "<>setpagedevice" +*PageRegion SuperA/Super A: "<>setpagedevice" +*PageRegion SuperB/Super B: "<>setpagedevice" +*PageRegion TabloidExtra/Tabloid Extra: "<>setpagedevice" +*PageRegion Tabloid/Tabloid: "<>setpagedevice" +*CloseUI: *PageRegion + +*DefaultImageableArea: A4 +*ImageableArea 11x14/11x14: "0 0 792 1008" +*ImageableArea 11x17/11x17: "0 0 792 1224" +*ImageableArea 13x19/13x19: "0 0 936 1368" +*ImageableArea 16x20/16x20: "0 0 1152 1440" +*ImageableArea 16x24/16x24: "0 0 1152 1728" +*ImageableArea 2A/2A: "0 0 3370 4768" +*ImageableArea 4A/4A: "0 0 4768 6749" +*ImageableArea 8x10/8x10: "0 0 576 720" +*ImageableArea 8x12/8x12: "0 0 576 864" +*ImageableArea A0/A0: "0 0 2384 3370" +*ImageableArea A1/A1: "0 0 1684 2384" +*ImageableArea A2/A2: "0 0 1191 1684" +*ImageableArea A3/A3: "0 0 842 1191" +*ImageableArea A4/A4: "0 0 595 842" +*ImageableArea A5/A5: "0 0 421 595" +*ImageableArea AnsiA/ANSI A: "0 0 612 792" +*ImageableArea AnsiB/ANSI B: "0 0 792 1224" +*ImageableArea AnsiC/ANSI C: "0 0 1224 1584" +*ImageableArea AnsiD/ANSI D: "0 0 1584 2448" +*ImageableArea AnsiE/ANSI E: "0 0 2448 3168" +*ImageableArea ArchA/Arch A: "0 0 648 864" +*ImageableArea ArchB/Arch B: "0 0 864 1296" +*ImageableArea ArchC/Arch C: "0 0 1296 1728" +*ImageableArea ArchD/Arch D: "0 0 1728 2592" +*ImageableArea ArchE/Arch E: "0 0 2592 3456" +*ImageableArea C0/C0: "0 0 2599 3676" +*ImageableArea C1/C1: "0 0 1836 2599" +*ImageableArea C2/C2: "0 0 1298 1836" +*ImageableArea C3/C3: "0 0 918 1298" +*ImageableArea C4/C4: "0 0 649 918" +*ImageableArea C5/C5: "0 0 459 649" +*ImageableArea Env10/Envelope #10: "0 0 297 684" +*ImageableArea EnvC5/Envelope C5: "0 0 459 649" +*ImageableArea EnvDL/Envelope DL: "0 0 312 624" +*ImageableArea EnvMonarch/Envelope Monarch: "0 0 279 540" +*ImageableArea Executive/Executive: "0 0 522 756" +*ImageableArea ISOB0/B0 (ISO): "0 0 2834 4008" +*ImageableArea ISOB1/B1 (ISO): "0 0 2004 2834" +*ImageableArea ISOB2/B2 (ISO): "0 0 1417 2004" +*ImageableArea ISOB3/B3 (ISO): "0 0 1000 1417" +*ImageableArea ISOB4/B4 (ISO): "0 0 708 1000" +*ImageableArea ISOB5/B5 (ISO): "0 0 498 708" +*ImageableArea JISB0/B0 (JIS): "0 0 2919 4127" +*ImageableArea JISB1/B1 (JIS): "0 0 2063 2919" +*ImageableArea JISB2/B2 (JIS): "0 0 1459 2063" +*ImageableArea JISB3/B3 (JIS): "0 0 1029 1459" +*ImageableArea JISB4/B4 (JIS): "0 0 727 1029" +*ImageableArea JISB5/B5 (JIS): "0 0 518 727" +*ImageableArea Ledger/Ledger: "0 0 1224 792" +*ImageableArea Legal/US Legal: "0 0 612 1008" +*ImageableArea Letter/US Letter: "0 0 612 792" +*ImageableArea RA0/RA0: "0 0 2437 3458" +*ImageableArea RA1/RA1: "0 0 1729 2437" +*ImageableArea RA2/RA2: "0 0 1218 1729" +*ImageableArea RA3/RA3: "0 0 864 1218" +*ImageableArea RA4/RA4: "0 0 609 864" +*ImageableArea SRA0/SRA0: "0 0 2551 3628" +*ImageableArea SRA1/SRA1: "0 0 1814 2551" +*ImageableArea SRA2/SRA2: "0 0 1275 1814" +*ImageableArea SRA3/SRA3: "0 0 907 1275" +*ImageableArea SRA4/SRA4: "0 0 637 907" +*ImageableArea SuperA/Super A: "0 0 644 1008" +*ImageableArea SuperB/Super B: "0 0 936 1368" +*ImageableArea TabloidExtra/Tabloid Extra: "0 0 864 1296" +*ImageableArea Tabloid/Tabloid: "0 0 792 1224" + +*DefaultPaperDimension: A4 +*PaperDimension 11x14/11x14: "792 1008" +*PaperDimension 11x17/11x17: "792 1224" +*PaperDimension 13x19/13x19: "936 1368" +*PaperDimension 16x20/16x20: "1152 1440" +*PaperDimension 16x24/16x24: "1152 1728" +*PaperDimension 2A/2A: "3370 4768" +*PaperDimension 4A/4A: "4768 6749" +*PaperDimension 8x10/8x10: "576 720" +*PaperDimension 8x12/8x12: "576 864" +*PaperDimension A0/A0: "2384 3370" +*PaperDimension A1/A1: "1684 2384" +*PaperDimension A2/A2: "1191 1684" +*PaperDimension A3/A3: "842 1191" +*PaperDimension A4/A4: "595 842" +*PaperDimension A5/A5: "421 595" +*PaperDimension AnsiA/ANSI A: "612 792" +*PaperDimension AnsiB/ANSI B: "792 1224" +*PaperDimension AnsiC/ANSI C: "1224 1584" +*PaperDimension AnsiD/ANSI D: "1584 2448" +*PaperDimension AnsiE/ANSI E: "2448 3168" +*PaperDimension ArchA/Arch A: "648 864" +*PaperDimension ArchB/Arch B: "864 1296" +*PaperDimension ArchC/Arch C: "1296 1728" +*PaperDimension ArchD/Arch D: "1728 2592" +*PaperDimension ArchE/Arch E: "2592 3456" +*PaperDimension C0/C0: "2599 3676" +*PaperDimension C1/C1: "1836 2599" +*PaperDimension C2/C2: "1298 1836" +*PaperDimension C3/C3: "918 1298" +*PaperDimension C4/C4: "649 918" +*PaperDimension C5/C5: "459 649" +*PaperDimension Env10/Envelope #10: "297 684" +*PaperDimension EnvC5/Envelope C5: "459 649" +*PaperDimension EnvDL/Envelope DL: "312 624" +*PaperDimension EnvMonarch/Envelope Monarch: "279 540" +*PaperDimension Executive/Executive: "522 756" +*PaperDimension ISOB0/B0 (ISO): "2834 4008" +*PaperDimension ISOB1/B1 (ISO): "2004 2834" +*PaperDimension ISOB2/B2 (ISO): "1417 2004" +*PaperDimension ISOB3/B3 (ISO): "1000 1417" +*PaperDimension ISOB4/B4 (ISO): "708 1000" +*PaperDimension ISOB5/B5 (ISO): "498 708" +*PaperDimension JISB0/B0 (JIS): "2919 4127" +*PaperDimension JISB1/B1 (JIS): "2063 2919" +*PaperDimension JISB2/B2 (JIS): "1459 2063" +*PaperDimension JISB3/B3 (JIS): "1029 1459" +*PaperDimension JISB4/B4 (JIS): "727 1029" +*PaperDimension JISB5/B5 (JIS): "518 727" +*PaperDimension Ledger/Ledger: "1224 792" +*PaperDimension Legal/US Legal: "612 1008" +*PaperDimension Letter/US Letter: "612 792" +*PaperDimension RA0/RA0: "2437 3458" +*PaperDimension RA1/RA1: "1729 2437" +*PaperDimension RA2/RA2: "1218 1729" +*PaperDimension RA3/RA3: "864 1218" +*PaperDimension RA4/RA4: "609 864" +*PaperDimension SRA0/SRA0: "2551 3628" +*PaperDimension SRA1/SRA1: "1814 2551" +*PaperDimension SRA2/SRA2: "1275 1814" +*PaperDimension SRA3/SRA3: "907 1275" +*PaperDimension SRA4/SRA4: "637 907" +*PaperDimension SuperA/Super A: "644 1008" +*PaperDimension SuperB/Super B: "936 1368" +*PaperDimension TabloidExtra/Tabloid Extra: "864 1296" +*PaperDimension Tabloid/Tabloid: "792 1224" + +*OpenUI *Resolution/Output Resolution: PickOne +*OrderDependency: 100 AnySetup *Resolution +*DefaultResolution: 300dpi +*Resolution 150dpi/150 DPI: "<>setpagedevice" +*Resolution 300dpi/300 DPI: "<>setpagedevice" +*Resolution 600dpi/600 DPI: "<>setpagedevice" +*Resolution 1200dpi/1200 DPI: "<>setpagedevice" +*Resolution 2400dpi/2400 DPI: "<>setpagedevice" +*CloseUI: *Resolution + +*CloseGroup: General + +*DefaultFont: Courier +*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM +*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM +*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM +*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM +*Font Bookman-Demi: Standard "(001.004S)" Standard ROM +*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM +*Font Bookman-Light: Standard "(001.004S)" Standard ROM +*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM +*Font Courier: Standard "(002.004S)" Standard ROM +*Font Courier-Bold: Standard "(002.004S)" Standard ROM +*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM +*Font Courier-Oblique: Standard "(002.004S)" Standard ROM +*Font Helvetica: Standard "(001.006S)" Standard ROM +*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM +*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM +*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM +*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM +*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM +*Font Palatino-Bold: Standard "(001.005S)" Standard ROM +*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM +*Font Palatino-Italic: Standard "(001.005S)" Standard ROM +*Font Palatino-Roman: Standard "(001.005S)" Standard ROM +*Font Symbol: Special "(001.007S)" Special ROM +*Font Times-Bold: Standard "(001.007S)" Standard ROM +*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM +*Font Times-Italic: Standard "(001.007S)" Standard ROM +*Font Times-Roman: Standard "(001.007S)" Standard ROM +*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM +*Font ZapfDingbats: Special "(001.004S)" Standard ROM +*% +*% End of "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $". +*% diff --git a/install/server/cups/ppd/PDF.ppd.O b/install/server/cups/ppd/PDF.ppd.O new file mode 100644 index 0000000..be1d370 --- /dev/null +++ b/install/server/cups/ppd/PDF.ppd.O @@ -0,0 +1,385 @@ +*PPD-Adobe: "4.3" +*% +*% "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $" +*% +*% Sample Postscript driver PPD file for the Common UNIX Printing +*% System (CUPS). +*% +*% Michael Goffioul +*% +*% Changes to the original file by Volker Behr, Martin-Eric Racine, +*% Nickolay Kondrashov and other contributors: +*% added IEEE-1284 device id - 2008-03-24 +*% added custom page size - 2006-05-18 +*% replaced page descriptions - 2006-05-18 +*% InputSlot constraints removed - 2006-05-11 +*% maxed out imageable regions - 2006-05-11 +*% added pstitleiconv filter - 2006-05-11 +*% added ledger paper size - 2006-01-29 +*% match Adobe specifications - 2005-12-23 +*% additional paper formats - 2005-02-03 and 2005-02-07 +*% made A4 default paper size - 2005-02-03 +*% Color enabled - 2003-12-02 +*% +*FormatVersion: "4.3" +*FileVersion: "1.1" +*LanguageVersion: English +*LanguageEncoding: ISOLatin1 +*PCFileName: "CUPS-PDF.PPD" +*Manufacturer: "Generic" +*Product: "(CUPS v1.1)" +*ModelName: "Generic CUPS-PDF Printer" +*ShortNickName: "Generic CUPS-PDF Printer" +*NickName: "Generic CUPS-PDF Printer" +*1284DeviceID: "MFG:Generic;MDL:CUPS-PDF Printer;DES:Generic CUPS-PDF Printer;CLS:PRINTER;CMD:POSTSCRIPT;" +*% cupsFilter: "application/vnd.cups-postscript 0 pstitleiconv" +*PSVersion: "(2017.000) 0" +*LanguageLevel: "2" +*ColorDevice: True +*DefaultColorSpace: RGB +*FileSystem: False +*Throughput: "8" +*LandscapeOrientation: Plus90 +*TTRasterizer: Type42 + +*HWMargins: 0 0 0 0 +*VariablePaperSize: True +*MaxMediaWidth: 100000 +*MaxMediaHeight: 100000 +*NonUIOrderDependency: 100 AnySetup *CustomPageSize +*CustomPageSize True: "pop pop pop +<>setpagedevice" +*End +*ParamCustomPageSize Width: 1 points 36 100000 +*ParamCustomPageSize Height: 2 points 36 100000 +*ParamCustomPageSize Orientation: 3 int 0 3 +*ParamCustomPageSize WidthOffset: 4 points 0 0 +*ParamCustomPageSize HeightOffset: 5 points 0 0 + +*OpenGroup: General/General + +*OpenUI *PageSize/Page Size: PickOne +*OrderDependency: 100 AnySetup *PageSize +*DefaultPageSize: A4 +*PageSize 11x14/11x14: "<>setpagedevice" +*PageSize 11x17/11x17: "<>setpagedevice" +*PageSize 13x19/13x19: "<>setpagedevice" +*PageSize 16x20/16x20: "<>setpagedevice" +*PageSize 16x24/16x24: "<>setpagedevice" +*PageSize 2A/2A: "<>setpagedevice" +*PageSize 4A/4A: "<>setpagedevice" +*PageSize 8x10/8x10: "<>setpagedevice" +*PageSize 8x12/8x12: "<>setpagedevice" +*PageSize A0/A0: "<>setpagedevice" +*PageSize A1/A1: "<>setpagedevice" +*PageSize A2/A2: "<>setpagedevice" +*PageSize A3/A3: "<>setpagedevice" +*PageSize A4/A4: "<>setpagedevice" +*PageSize A5/A5: "<>setpagedevice" +*PageSize AnsiA/ANSI A: "<>setpagedevice" +*PageSize AnsiB/ANSI B: "<>setpagedevice" +*PageSize AnsiC/ANSI C: "<>setpagedevice" +*PageSize AnsiD/ANSI D: "<>setpagedevice" +*PageSize AnsiE/ANSI E: "<>setpagedevice" +*PageSize ArchA/Arch A: "<>setpagedevice" +*PageSize ArchB/Arch B: "<>setpagedevice" +*PageSize ArchC/Arch C: "<>setpagedevice" +*PageSize ArchD/Arch D: "<>setpagedevice" +*PageSize ArchE/Arch E: "<>setpagedevice" +*PageSize C0/C0: "<>setpagedevice" +*PageSize C1/C1: "<>setpagedevice" +*PageSize C2/C2: "<>setpagedevice" +*PageSize C3/C3: "<>setpagedevice" +*PageSize C4/C4: "<>setpagedevice" +*PageSize C5/C5: "<>setpagedevice" +*PageSize Env10/Envelope #10: "<>setpagedevice" +*PageSize EnvC5/Envelope C5: "<>setpagedevice" +*PageSize EnvDL/Envelope DL: "<>setpagedevice" +*PageSize EnvMonarch/Envelope Monarch: "<>setpagedevice" +*PageSize Executive/Executive: "<>setpagedevice" +*PageSize ISOB0/B0 (ISO): "<>setpagedevice" +*PageSize ISOB1/B1 (ISO): "<>setpagedevice" +*PageSize ISOB2/B2 (ISO): "<>setpagedevice" +*PageSize ISOB3/B3 (ISO): "<>setpagedevice" +*PageSize ISOB4/B4 (ISO): "<>setpagedevice" +*PageSize ISOB5/B5 (ISO): "<>setpagedevice" +*PageSize JISB0/B0 (JIS): "<>setpagedevice" +*PageSize JISB1/B1 (JIS): "<>setpagedevice" +*PageSize JISB2/B2 (JIS): "<>setpagedevice" +*PageSize JISB3/B3 (JIS): "<>setpagedevice" +*PageSize JISB4/B4 (JIS): "<>setpagedevice" +*PageSize JISB5/B5 (JIS): "<>setpagedevice" +*PageSize Ledger/Ledger: "<>setpagedevice" +*PageSize Legal/US Legal: "<>setpagedevice" +*PageSize Letter/US Letter: "<>setpagedevice" +*PageSize RA0/RA0: "<>setpagedevice" +*PageSize RA1/RA1: "<>setpagedevice" +*PageSize RA2/RA2: "<>setpagedevice" +*PageSize RA3/RA3: "<>setpagedevice" +*PageSize RA4/RA4: "<>setpagedevice" +*PageSize SRA0/SRA0: "<>setpagedevice" +*PageSize SRA1/SRA1: "<>setpagedevice" +*PageSize SRA2/SRA2: "<>setpagedevice" +*PageSize SRA3/SRA3: "<>setpagedevice" +*PageSize SRA4/SRA4: "<>setpagedevice" +*PageSize SuperA/Super A: "<>setpagedevice" +*PageSize SuperB/Super B: "<>setpagedevice" +*PageSize TabloidExtra/Tabloid Extra: "<>setpagedevice" +*PageSize Tabloid/Tabloid: "<>setpagedevice" +*CloseUI: *PageSize + +*OpenUI *PageRegion: PickOne +*OrderDependency: 100 AnySetup *PageRegion +*DefaultPageRegion: A4 +*PageRegion 11x14/11x14: "<>setpagedevice" +*PageRegion 11x17/11x17: "<>setpagedevice" +*PageRegion 13x19/13x19: "<>setpagedevice" +*PageRegion 16x20/16x20: "<>setpagedevice" +*PageRegion 16x24/16x24: "<>setpagedevice" +*PageRegion 2A/2A: "<>setpagedevice" +*PageRegion 4A/4A: "<>setpagedevice" +*PageRegion 8x10/8x10: "<>setpagedevice" +*PageRegion 8x12/8x12: "<>setpagedevice" +*PageRegion A0/A0: "<>setpagedevice" +*PageRegion A1/A1: "<>setpagedevice" +*PageRegion A2/A2: "<>setpagedevice" +*PageRegion A3/A3: "<>setpagedevice" +*PageRegion A4/A4: "<>setpagedevice" +*PageRegion A5/A5: "<>setpagedevice" +*PageRegion AnsiA/ANSI A: "<>setpagedevice" +*PageRegion AnsiB/ANSI B: "<>setpagedevice" +*PageRegion AnsiC/ANSI C: "<>setpagedevice" +*PageRegion AnsiD/ANSI D: "<>setpagedevice" +*PageRegion AnsiE/ANSI E: "<>setpagedevice" +*PageRegion ArchA/Arch A: "<>setpagedevice" +*PageRegion ArchB/Arch B: "<>setpagedevice" +*PageRegion ArchC/Arch C: "<>setpagedevice" +*PageRegion ArchD/Arch D: "<>setpagedevice" +*PageRegion ArchE/Arch E: "<>setpagedevice" +*PageRegion C0/C0: "<>setpagedevice" +*PageRegion C1/C1: "<>setpagedevice" +*PageRegion C2/C2: "<>setpagedevice" +*PageRegion C3/C3: "<>setpagedevice" +*PageRegion C4/C4: "<>setpagedevice" +*PageRegion C5/C5: "<>setpagedevice" +*PageRegion Env10/Envelope #10: "<>setpagedevice" +*PageRegion EnvC5/Envelope C5: "<>setpagedevice" +*PageRegion EnvDL/Envelope DL: "<>setpagedevice" +*PageRegion EnvMonarch/Envelope Monarch: "<>setpagedevice" +*PageRegion Executive/Executive: "<>setpagedevice" +*PageRegion ISOB0/B0 (ISO): "<>setpagedevice" +*PageRegion ISOB1/B1 (ISO): "<>setpagedevice" +*PageRegion ISOB2/B2 (ISO): "<>setpagedevice" +*PageRegion ISOB3/B3 (ISO): "<>setpagedevice" +*PageRegion ISOB4/B4 (ISO): "<>setpagedevice" +*PageRegion ISOB5/B5 (ISO): "<>setpagedevice" +*PageRegion JISB0/B0 (JIS): "<>setpagedevice" +*PageRegion JISB1/B1 (JIS): "<>setpagedevice" +*PageRegion JISB2/B2 (JIS): "<>setpagedevice" +*PageRegion JISB3/B3 (JIS): "<>setpagedevice" +*PageRegion JISB4/B4 (JIS): "<>setpagedevice" +*PageRegion JISB5/B5 (JIS): "<>setpagedevice" +*PageRegion Ledger/Ledger: "<>setpagedevice" +*PageRegion Legal/US Legal: "<>setpagedevice" +*PageRegion Letter/US Letter: "<>setpagedevice" +*PageRegion RA0/RA0: "<>setpagedevice" +*PageRegion RA1/RA1: "<>setpagedevice" +*PageRegion RA2/RA2: "<>setpagedevice" +*PageRegion RA3/RA3: "<>setpagedevice" +*PageRegion RA4/RA4: "<>setpagedevice" +*PageRegion SRA0/SRA0: "<>setpagedevice" +*PageRegion SRA1/SRA1: "<>setpagedevice" +*PageRegion SRA2/SRA2: "<>setpagedevice" +*PageRegion SRA3/SRA3: "<>setpagedevice" +*PageRegion SRA4/SRA4: "<>setpagedevice" +*PageRegion SuperA/Super A: "<>setpagedevice" +*PageRegion SuperB/Super B: "<>setpagedevice" +*PageRegion TabloidExtra/Tabloid Extra: "<>setpagedevice" +*PageRegion Tabloid/Tabloid: "<>setpagedevice" +*CloseUI: *PageRegion + +*DefaultImageableArea: A4 +*ImageableArea 11x14/11x14: "0 0 792 1008" +*ImageableArea 11x17/11x17: "0 0 792 1224" +*ImageableArea 13x19/13x19: "0 0 936 1368" +*ImageableArea 16x20/16x20: "0 0 1152 1440" +*ImageableArea 16x24/16x24: "0 0 1152 1728" +*ImageableArea 2A/2A: "0 0 3370 4768" +*ImageableArea 4A/4A: "0 0 4768 6749" +*ImageableArea 8x10/8x10: "0 0 576 720" +*ImageableArea 8x12/8x12: "0 0 576 864" +*ImageableArea A0/A0: "0 0 2384 3370" +*ImageableArea A1/A1: "0 0 1684 2384" +*ImageableArea A2/A2: "0 0 1191 1684" +*ImageableArea A3/A3: "0 0 842 1191" +*ImageableArea A4/A4: "0 0 595 842" +*ImageableArea A5/A5: "0 0 421 595" +*ImageableArea AnsiA/ANSI A: "0 0 612 792" +*ImageableArea AnsiB/ANSI B: "0 0 792 1224" +*ImageableArea AnsiC/ANSI C: "0 0 1224 1584" +*ImageableArea AnsiD/ANSI D: "0 0 1584 2448" +*ImageableArea AnsiE/ANSI E: "0 0 2448 3168" +*ImageableArea ArchA/Arch A: "0 0 648 864" +*ImageableArea ArchB/Arch B: "0 0 864 1296" +*ImageableArea ArchC/Arch C: "0 0 1296 1728" +*ImageableArea ArchD/Arch D: "0 0 1728 2592" +*ImageableArea ArchE/Arch E: "0 0 2592 3456" +*ImageableArea C0/C0: "0 0 2599 3676" +*ImageableArea C1/C1: "0 0 1836 2599" +*ImageableArea C2/C2: "0 0 1298 1836" +*ImageableArea C3/C3: "0 0 918 1298" +*ImageableArea C4/C4: "0 0 649 918" +*ImageableArea C5/C5: "0 0 459 649" +*ImageableArea Env10/Envelope #10: "0 0 297 684" +*ImageableArea EnvC5/Envelope C5: "0 0 459 649" +*ImageableArea EnvDL/Envelope DL: "0 0 312 624" +*ImageableArea EnvMonarch/Envelope Monarch: "0 0 279 540" +*ImageableArea Executive/Executive: "0 0 522 756" +*ImageableArea ISOB0/B0 (ISO): "0 0 2834 4008" +*ImageableArea ISOB1/B1 (ISO): "0 0 2004 2834" +*ImageableArea ISOB2/B2 (ISO): "0 0 1417 2004" +*ImageableArea ISOB3/B3 (ISO): "0 0 1000 1417" +*ImageableArea ISOB4/B4 (ISO): "0 0 708 1000" +*ImageableArea ISOB5/B5 (ISO): "0 0 498 708" +*ImageableArea JISB0/B0 (JIS): "0 0 2919 4127" +*ImageableArea JISB1/B1 (JIS): "0 0 2063 2919" +*ImageableArea JISB2/B2 (JIS): "0 0 1459 2063" +*ImageableArea JISB3/B3 (JIS): "0 0 1029 1459" +*ImageableArea JISB4/B4 (JIS): "0 0 727 1029" +*ImageableArea JISB5/B5 (JIS): "0 0 518 727" +*ImageableArea Ledger/Ledger: "0 0 1224 792" +*ImageableArea Legal/US Legal: "0 0 612 1008" +*ImageableArea Letter/US Letter: "0 0 612 792" +*ImageableArea RA0/RA0: "0 0 2437 3458" +*ImageableArea RA1/RA1: "0 0 1729 2437" +*ImageableArea RA2/RA2: "0 0 1218 1729" +*ImageableArea RA3/RA3: "0 0 864 1218" +*ImageableArea RA4/RA4: "0 0 609 864" +*ImageableArea SRA0/SRA0: "0 0 2551 3628" +*ImageableArea SRA1/SRA1: "0 0 1814 2551" +*ImageableArea SRA2/SRA2: "0 0 1275 1814" +*ImageableArea SRA3/SRA3: "0 0 907 1275" +*ImageableArea SRA4/SRA4: "0 0 637 907" +*ImageableArea SuperA/Super A: "0 0 644 1008" +*ImageableArea SuperB/Super B: "0 0 936 1368" +*ImageableArea TabloidExtra/Tabloid Extra: "0 0 864 1296" +*ImageableArea Tabloid/Tabloid: "0 0 792 1224" + +*DefaultPaperDimension: A4 +*PaperDimension 11x14/11x14: "792 1008" +*PaperDimension 11x17/11x17: "792 1224" +*PaperDimension 13x19/13x19: "936 1368" +*PaperDimension 16x20/16x20: "1152 1440" +*PaperDimension 16x24/16x24: "1152 1728" +*PaperDimension 2A/2A: "3370 4768" +*PaperDimension 4A/4A: "4768 6749" +*PaperDimension 8x10/8x10: "576 720" +*PaperDimension 8x12/8x12: "576 864" +*PaperDimension A0/A0: "2384 3370" +*PaperDimension A1/A1: "1684 2384" +*PaperDimension A2/A2: "1191 1684" +*PaperDimension A3/A3: "842 1191" +*PaperDimension A4/A4: "595 842" +*PaperDimension A5/A5: "421 595" +*PaperDimension AnsiA/ANSI A: "612 792" +*PaperDimension AnsiB/ANSI B: "792 1224" +*PaperDimension AnsiC/ANSI C: "1224 1584" +*PaperDimension AnsiD/ANSI D: "1584 2448" +*PaperDimension AnsiE/ANSI E: "2448 3168" +*PaperDimension ArchA/Arch A: "648 864" +*PaperDimension ArchB/Arch B: "864 1296" +*PaperDimension ArchC/Arch C: "1296 1728" +*PaperDimension ArchD/Arch D: "1728 2592" +*PaperDimension ArchE/Arch E: "2592 3456" +*PaperDimension C0/C0: "2599 3676" +*PaperDimension C1/C1: "1836 2599" +*PaperDimension C2/C2: "1298 1836" +*PaperDimension C3/C3: "918 1298" +*PaperDimension C4/C4: "649 918" +*PaperDimension C5/C5: "459 649" +*PaperDimension Env10/Envelope #10: "297 684" +*PaperDimension EnvC5/Envelope C5: "459 649" +*PaperDimension EnvDL/Envelope DL: "312 624" +*PaperDimension EnvMonarch/Envelope Monarch: "279 540" +*PaperDimension Executive/Executive: "522 756" +*PaperDimension ISOB0/B0 (ISO): "2834 4008" +*PaperDimension ISOB1/B1 (ISO): "2004 2834" +*PaperDimension ISOB2/B2 (ISO): "1417 2004" +*PaperDimension ISOB3/B3 (ISO): "1000 1417" +*PaperDimension ISOB4/B4 (ISO): "708 1000" +*PaperDimension ISOB5/B5 (ISO): "498 708" +*PaperDimension JISB0/B0 (JIS): "2919 4127" +*PaperDimension JISB1/B1 (JIS): "2063 2919" +*PaperDimension JISB2/B2 (JIS): "1459 2063" +*PaperDimension JISB3/B3 (JIS): "1029 1459" +*PaperDimension JISB4/B4 (JIS): "727 1029" +*PaperDimension JISB5/B5 (JIS): "518 727" +*PaperDimension Ledger/Ledger: "1224 792" +*PaperDimension Legal/US Legal: "612 1008" +*PaperDimension Letter/US Letter: "612 792" +*PaperDimension RA0/RA0: "2437 3458" +*PaperDimension RA1/RA1: "1729 2437" +*PaperDimension RA2/RA2: "1218 1729" +*PaperDimension RA3/RA3: "864 1218" +*PaperDimension RA4/RA4: "609 864" +*PaperDimension SRA0/SRA0: "2551 3628" +*PaperDimension SRA1/SRA1: "1814 2551" +*PaperDimension SRA2/SRA2: "1275 1814" +*PaperDimension SRA3/SRA3: "907 1275" +*PaperDimension SRA4/SRA4: "637 907" +*PaperDimension SuperA/Super A: "644 1008" +*PaperDimension SuperB/Super B: "936 1368" +*PaperDimension TabloidExtra/Tabloid Extra: "864 1296" +*PaperDimension Tabloid/Tabloid: "792 1224" + +*OpenUI *Resolution/Output Resolution: PickOne +*OrderDependency: 100 AnySetup *Resolution +*DefaultResolution: 300dpi +*Resolution 150dpi/150 DPI: "<>setpagedevice" +*Resolution 300dpi/300 DPI: "<>setpagedevice" +*Resolution 600dpi/600 DPI: "<>setpagedevice" +*Resolution 1200dpi/1200 DPI: "<>setpagedevice" +*Resolution 2400dpi/2400 DPI: "<>setpagedevice" +*CloseUI: *Resolution + +*CloseGroup: General + +*DefaultFont: Courier +*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM +*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM +*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM +*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM +*Font Bookman-Demi: Standard "(001.004S)" Standard ROM +*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM +*Font Bookman-Light: Standard "(001.004S)" Standard ROM +*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM +*Font Courier: Standard "(002.004S)" Standard ROM +*Font Courier-Bold: Standard "(002.004S)" Standard ROM +*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM +*Font Courier-Oblique: Standard "(002.004S)" Standard ROM +*Font Helvetica: Standard "(001.006S)" Standard ROM +*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM +*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM +*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM +*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM +*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM +*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM +*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM +*Font Palatino-Bold: Standard "(001.005S)" Standard ROM +*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM +*Font Palatino-Italic: Standard "(001.005S)" Standard ROM +*Font Palatino-Roman: Standard "(001.005S)" Standard ROM +*Font Symbol: Special "(001.007S)" Special ROM +*Font Times-Bold: Standard "(001.007S)" Standard ROM +*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM +*Font Times-Italic: Standard "(001.007S)" Standard ROM +*Font Times-Roman: Standard "(001.007S)" Standard ROM +*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM +*Font ZapfDingbats: Special "(001.004S)" Standard ROM +*% +*% End of "$Id: postscript.ppd,v 1.1.1.1 2000/08/24 19:23:13 goffioul Exp $". +*% diff --git a/install/server/cups/printers.conf b/install/server/cups/printers.conf new file mode 100644 index 0000000..5d3754e --- /dev/null +++ b/install/server/cups/printers.conf @@ -0,0 +1,39 @@ +# Printer configuration file for CUPS v2.2.1 +# Written by cupsd +# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING + +UUID urn:uuid:77c522f0-982e-3564-4d09-73b7c7f47720 +Info EPSON TM-T20II +MakeModel Epson TM-T20 +DeviceURI usb://EPSON/TM-T20II?serial=544338593887730000 +State Idle +StateTime 1551811423 +ConfigTime 1551811402 +Type 20484 +Accepting Yes +Shared Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job + + +UUID urn:uuid:499334c6-0cf8-3b63-730e-81df91a57937 +Info PDF +MakeModel Generic CUPS-PDF Printer +DeviceURI cups-pdf:/ +State Idle +StateTime 1554141962 +ConfigTime 1554141965 +Type 8450124 +Accepting Yes +Shared No +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job + diff --git a/install/server/cups/printers.conf.O b/install/server/cups/printers.conf.O new file mode 100644 index 0000000..fabc525 --- /dev/null +++ b/install/server/cups/printers.conf.O @@ -0,0 +1,22 @@ +# Printer configuration file for CUPS v2.2.1 +# Written by cupsd +# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING + +UUID urn:uuid:77c522f0-982e-3564-4d09-73b7c7f47720 +Info EPSON TM-T20II +Location +MakeModel Epson TM-T20 +DeviceURI usb://EPSON/TM-T20II?serial=544338593887730000 +State Idle +StateTime 1551811423 +ConfigTime 1551811402 +Type 20484 +Accepting Yes +Shared Yes +JobSheets none none +QuotaPeriod 0 +PageLimit 0 +KLimit 0 +OpPolicy default +ErrorPolicy retry-job + diff --git a/install/server/cups/raw.convs b/install/server/cups/raw.convs new file mode 100644 index 0000000..0bd0e29 --- /dev/null +++ b/install/server/cups/raw.convs @@ -0,0 +1,5 @@ +# This file was generated by the cups package. You may change it, or +# reconfigure this file with dpkg-reconfigure. If it is removed, it +# will be regenerated by the package scripts. + +application/octet-stream application/vnd.cups-raw 0 - diff --git a/install/server/cups/raw.types b/install/server/cups/raw.types new file mode 100644 index 0000000..839755f --- /dev/null +++ b/install/server/cups/raw.types @@ -0,0 +1,5 @@ +# This file was generated by the cups package. You may change it, or +# reconfigure this file with dpkg-reconfigure. If it is removed, it +# will be regenerated by the package scripts. + +application/octet-stream diff --git a/install/server/cups/snmp.conf b/install/server/cups/snmp.conf new file mode 100644 index 0000000..a7d1e3b --- /dev/null +++ b/install/server/cups/snmp.conf @@ -0,0 +1,7 @@ +# +# SNMP configuration file for CUPS. See "man cups-snmp.conf" for a complete +# description of this file. +# + +Address @LOCAL +Community public diff --git a/install/server/cups/ssl/raspberrypi.fritz.box.crt b/install/server/cups/ssl/raspberrypi.fritz.box.crt new file mode 100644 index 0000000..d4d4d7e --- /dev/null +++ b/install/server/cups/ssl/raspberrypi.fritz.box.crt @@ -0,0 +1,23 @@ +-----BEGIN CERTIFICATE----- +MIID2zCCAsOgAwIBAgIEXH6m2jANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC +R0IxHjAcBgNVBAMTFXJhc3BiZXJyeXBpLmZyaXR6LmJveDEeMBwGA1UEChMVcmFz +cGJlcnJ5cGkuZnJpdHouYm94MRAwDgYDVQQLEwdVbmtub3duMRAwDgYDVQQIEwdV +bmtub3duMRAwDgYDVQQHEwdVbmtub3duMB4XDTE5MDMwNTE2NDIwMloXDTI5MDMw +MjE2NDIwMlowgYMxCzAJBgNVBAYTAkdCMR4wHAYDVQQDExVyYXNwYmVycnlwaS5m +cml0ei5ib3gxHjAcBgNVBAoTFXJhc3BiZXJyeXBpLmZyaXR6LmJveDEQMA4GA1UE +CxMHVW5rbm93bjEQMA4GA1UECBMHVW5rbm93bjEQMA4GA1UEBxMHVW5rbm93bjCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFD5eCFdA1a1K9yyBhM9Z9V +g1n7blNClycn9CApDJO9HekojZnJrQEm5SQVYbUhLsIE+e33w4N2qSLHd4GJQ999 +1FXA2+OGlpQFY6PPd2Swf6GdHMjnUUScwmBF4EzILU+Tx6oJpY/L1QcR2rFsfTcR +e70LWZGCzDHgJ6wcpB8ufR7PnpmyBYN9nDkiKoh/xrjMcqUltzNeUSbMKWCLv4fo +l/HmqgcW5oQZO/LwvYYcDmRibLhTpU9bm+/ZA5zVfQ4E7FuHytmtsXw6ov95bO3m +km6x5Jylpz135ZOq4FJzssbgjDqZSvM/5zteHS7QNf4fJMYiTkS1IecANgy6mcUC +AwEAAaNVMFMwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNV +HQ8BAf8EBQMDByAAMB0GA1UdDgQWBBTpwva9mXCnCtyK01jNR9fKSC6+NDANBgkq +hkiG9w0BAQUFAAOCAQEAopGi3LQtFloKVADSrnq6svnE/52XaYw3nYpoIhaSmHfq +6BhmrcSy3LuS5uZEZo1VR1tpiwKe8Yn4FXEfKdS8aRdgnyBR55VW0hHgJeIz0uDg +pBxKVhJlSRbiAoqrnrl5NOboaBLaoXSPGsYPaZqwc7C+y12NGhudvNndS1K+OEGZ +GnM+s0WqTtg/oYB1iueG80dtMY0RTUXLgYqegJXP+4MnOHNqj+UzxPx/nvCj58tB +8WgHy38pTPh2IIbPFgTe/8j8cxKDiaKXlXpR6SBrSqiZ+Ui/tW7e9qkUaRHuAwQY +37d9PgUwZ7rjQZmqrwSqUDzWLMGS2VgTDP5SiADqzQ== +-----END CERTIFICATE----- diff --git a/install/server/cups/ssl/raspberrypi.fritz.box.key b/install/server/cups/ssl/raspberrypi.fritz.box.key new file mode 100644 index 0000000..17da294 --- /dev/null +++ b/install/server/cups/ssl/raspberrypi.fritz.box.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAwUPl4IV0DVrUr3LIGEz1n1WDWftuU0KXJyf0ICkMk70d6SiN +mcmtASblJBVhtSEuwgT57ffDg3apIsd3gYlD333UVcDb44aWlAVjo893ZLB/oZ0c +yOdRRJzCYEXgTMgtT5PHqgmlj8vVBxHasWx9NxF7vQtZkYLMMeAnrBykHy59Hs+e +mbIFg32cOSIqiH/GuMxypSW3M15RJswpYIu/h+iX8eaqBxbmhBk78vC9hhwOZGJs +uFOlT1ub79kDnNV9DgTsW4fK2a2xfDqi/3ls7eaSbrHknKWnPXflk6rgUnOyxuCM +OplK8z/nO14dLtA1/h8kxiJORLUh5wA2DLqZxQIDAQABAoIBABeMH0kQ2Yf7Biju +UkTrs42bTKq9AL8yQNpresokVjz18NwEreQL94FJbOfNlx8LkPfgxVbiNjchURBE +v2HQCK4FVcaw/dml/1i/o1lFIOXqv1JAo04zKOq0MtaqDN8uEJ8+gThNfpebnTQE +T+IINuVrwujQpjQdfKWjCxJkVvbZa4FPaqL0un/RydlUd//QpwGgf5tI30fxeKz5 +13pjigtBFxrmpDh/Vt3JonSGNL6PKeJ7oZi+kLNIXLb1jzOK9Zmnidxw1vya9e+D +AL9Xlp6yMkr/onaHE0Bej7HJsaur8izTtQ02qw8Kmaplg5OtCg0H4jxheJjvm2L9 +wm+mWoECgYEAwmexwtBnMAR6WuCHWjWtOk6X1qzcnrpFzfjRIbwfGtZw7fqN4W8Y +MghNkCYBAW9ggDsqGYfpHbvKxQCb7ibbPHW0RbfjRyOZ4/BzBfjQaHaOEWR6mhIr +d++TVPDJgJU0KjozQT/sarxUGIsCqcRVnjY+PyevEnxmiZ9kt44AJ6UCgYEA/n/A +V0UYxgaNu8emmfDDAUwNhT8G35J+y+CqxNJVe2gLpFLrKohthnDxdlG1UAWNJm0C +t8gekJ9MOyTmAN/+xKm4H9vzJO1h+u2Qp286w5FBlNjIF4cwnSj3MJrii6ZemsRW +SR9MA3U5kALwNesl/rk6qB6B8yc6/urBsjHjD6ECgYBO+pOkQsh5IIiY3PkANChh +NMbJB0dGEQUE7d4Ap423eIE+nXkAqgKZaPgh5N6pt5br4Z1z69xQIRf6uwmeUhjl +Uihf3pouL494pBoGxhPdLLUA6eJJL7KLMkCX1I74dyVPNn/WNWMV5dcAdZEqaUIj +WYQmYjfk+bcqmB/x1nXHpQKBgQCHTS/atbd4AB/2ByzBhsiFtgMyJdHnpqCWj3j6 +bsBXfXdDA3pXAHUKFp2ow8PbKThjh2z8e/4T8Ty77OAC8xMlRv3Gok7gAPwoRYi0 +G2RoeJ8fHSkzqQHla9QPGSj8CZUePueItITbCcVylL1UTRHEHIHcw2te9CpfQDt+ +GxuWQQKBgBxV7eZwcf+929m6fBxaSa0y+cFFejrlVM2dxrDvYR0jWiilCazWLtsa ++jVZFG0Frrlefcg/anGAKFgVgKLUolmQ6NdVHVmdG+Yl/LkQ/1hjpCq/WZ4xkKIL ++PYKqFrcVd4i9YkN//j7iCNraOiiXzLMsINAwljZJaY2nE+zRGzm +-----END RSA PRIVATE KEY----- diff --git a/install/server/cups/ssl/server.crt b/install/server/cups/ssl/server.crt new file mode 100644 index 0000000..6c0faf4 --- /dev/null +++ b/install/server/cups/ssl/server.crt @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC1DCCAbygAwIBAgIJAOJaNAl1+aEeMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNV +BAMMC3Jhc3BiZXJyeXBpMB4XDTE5MDMwNTE2MzEzNFoXDTI5MDMwMjE2MzEzNFow +FjEUMBIGA1UEAwwLcmFzcGJlcnJ5cGkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQC6yxcxUieBvMXKXWTm2JZIrj76ATyNQKlnMPf6413tIKIVdi5hxbDp +CH0VswGo8R36jYYePgw+Ga7q1YsG6fjDcr9wZGMp8sAmv6TAilXF5XgqjJwEhu+E +4BJZ4XEO0FqeWVpkPdAIQAuPx2nOLRONj0IOSZjNqpadOoFszqmxLLEF8YaJb5GI +uE7HQp6cTXu0dkPcmVElzfuSqnj5g/G/go4yZlxsrVpjTNvbAeAXn9v8VHGU5OEV +PJzKOUycjm/vMrsUJs1OFU51wJH3nTYMBemYdPRU0eyQLI1ZW9IcV88Y5Im2nLQ5 +iBjCxnakDbN3aEXtWHrUMbm+/TDCT1otAgMBAAGjJTAjMAkGA1UdEwQCMAAwFgYD +VR0RBA8wDYILcmFzcGJlcnJ5cGkwDQYJKoZIhvcNAQELBQADggEBAC6APT0Ndc5K +3AVqn2lPTwiLD/E6owz1rwTwI2NF5+LpfdSHUlc1uTY9W2qaHfhQ8uEJnyN01NV6 +T0lvMZPsNH22L88hN0QgdEIa+zbifAx5eX9WsmmiHnWb8nYd8Aldp9g6v3FZ7M4q +Cs5j7z/CcDEFLSzhMizzCILv0km6Qg1Ho8MY0OqH7dEQ7kCVdw2Eimg8cxCtRA9/ +umSXlskDzrah7s5EsU/H2mlo+8Mdiy69EaHbU3VeURdkWjzVDbugbiK7KOwtpLE8 +Gpi78Bd5d2Hi8Lmw5mMe0f5tcdycHgmnqKDWj2HAziKWneR6BV7hz78FEkMIM3lv +wickMIHLz3Y= +-----END CERTIFICATE----- diff --git a/install/server/cups/ssl/server.key b/install/server/cups/ssl/server.key new file mode 100644 index 0000000..3724e06 --- /dev/null +++ b/install/server/cups/ssl/server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6yxcxUieBvMXK +XWTm2JZIrj76ATyNQKlnMPf6413tIKIVdi5hxbDpCH0VswGo8R36jYYePgw+Ga7q +1YsG6fjDcr9wZGMp8sAmv6TAilXF5XgqjJwEhu+E4BJZ4XEO0FqeWVpkPdAIQAuP +x2nOLRONj0IOSZjNqpadOoFszqmxLLEF8YaJb5GIuE7HQp6cTXu0dkPcmVElzfuS +qnj5g/G/go4yZlxsrVpjTNvbAeAXn9v8VHGU5OEVPJzKOUycjm/vMrsUJs1OFU51 +wJH3nTYMBemYdPRU0eyQLI1ZW9IcV88Y5Im2nLQ5iBjCxnakDbN3aEXtWHrUMbm+ +/TDCT1otAgMBAAECggEAdgJwuJwqkXBtlRfD84PKDkjnSJMXajX70FHDmSGj6XfA +bsanLuXyiobuX5Mj7VPHmM9oeBrDKUiYlYwrtUaD/xazk5IYhBv1AYX51BqRbeE3 +Ncp3lvSYxd26OkaPYsiHN5tD3CihEVVE+KUHV1ZrD/f9x4D/pI+tb8/SjKdT1bZM +HIA1uC0RfU+xsEulTS3+Ufc9uySeOOfXGOxo41oDrgUNV1KBw04WRBXx1Q6XlX4O +MgDD6Hnf+8pW/sQ28xzxJF/vKekE0blgaiLdHNU3qGjKNjFLOZEarILpmX+J99mK +rYYjPtuJDMObG4yNAwTr++2y4RU886PigXzh1E/UkQKBgQD2xBrONgsvhzvxCTjZ +sOLl50fs/Ks1UjClmISOeOt6sO+EtfjKcOj7hPhGu2cqxzbtU5xZicumDD18+mG7 +wl8ZFl2ZbAAWwuOFF4z+RsnGArXZyqbY5YNSaKXwYc2pRAFwDaRyV+h65K8Px5AP +KSHWApkPxXlSzZUYcJZ25nO0TwKBgQDByHovKQJV0q+K7Xc5B+MbWqNMZfy91gA2 +yRVCn6QSAIv+Dr4wh04xGdvarP55Crre+onoWkEezkTG3nz8qa+yP3zwuciwsKZV +uX3NUWVUAUv9T41AV4NN67CFS8kABDb+3gkO2yNFUxZ4TgqzEEPxCehfC42Nnnw+ +JcVBbohewwKBgQCQIqull1uhP1R7ze8u+GsP7q/MdSlr074me5exwF+LIp5E3iWb +2ae8gkaiygPQsNwcc6H3is0xCCVCQt2jVj1F4hJ58uN6aAuNSdxJCgABcMPXms8q +EaVLFWUXq4j9PYO5d75+K2rXnYvDo8U5lcT1xD6zP51GCF72D41TlfgvcQKBgBBB +u05diF6e0C89gLT+HmVbEzwDilJ6s4XlFK2EKwV/mj70CayUjVC9NJ6ByM9qwQaX +yh3+BFyLPWXZoG6p5Z10igy/6UA5cZrbdtxUqcWEXlWf6N+u98r/rM1h8DjaIar8 +AZKHe8wDDm2FTox7HtgH1sCyfWuWEiI8lPHKThJ1AoGBAJWHP5PEf9X6KT1xnmLl +0FSXwa3J9ebSwO7dfvenmQedq6ub9mxnoZlnKZgewJb6P/rtDH08gPIn2LZ46iDB +sg56zAzKMzhc5hN+k8eTNlxk5ACNUlv0YmURKwNWxL7M157EWbcP7WRJkPHJ0wOE +W1Kua80LI0Nu9nmFDaQ8TLef +-----END PRIVATE KEY----- diff --git a/install/server/cups/subscriptions.conf b/install/server/cups/subscriptions.conf new file mode 100644 index 0000000..60938f1 --- /dev/null +++ b/install/server/cups/subscriptions.conf @@ -0,0 +1,20 @@ +# Subscription configuration file for CUPS v2.2.1 +# Written by cupsd +NextSubscriptionId 95 + +Events printer-changed +Owner root +LeaseDuration 86400 +Interval 60 +ExpirationTime 1554993783 +NextEventId 1 + + +Events all +Owner anonymous +Recipient dbus:// +LeaseDuration 86400 +Interval 0 +ExpirationTime 1554993783 +NextEventId 1 + diff --git a/install/server/cups/subscriptions.conf.O b/install/server/cups/subscriptions.conf.O new file mode 100644 index 0000000..b547ffb --- /dev/null +++ b/install/server/cups/subscriptions.conf.O @@ -0,0 +1,3 @@ +# Subscription configuration file for CUPS v2.2.1 +# Written by cupsd +NextSubscriptionId 93 diff --git a/install/server/epson-tm-t20-cups.tar.gz b/install/server/epson-tm-t20-cups.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9e1227f1d0ebb6cd47d5f405aeb6e43583ee45ca GIT binary patch literal 70942 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 tmp.sh && bash tmp.sh && rm tmp.sh + +hostnamectl set-hostname cashbox +sed -i "s/raspberrypi/cashbox/" /etc/hosts + +groupadd dks +useradd dks -c DKS -g dks -G adm,sudo,crontab -s /bin/bash -d /home/dks +echo 'echo -e "sai4seip\nsai4seip" | sudo passwd dks' > tmp.sh && bash tmp.sh && rm tmp.sh +mkdir -p /home/dks +chown dks:dks /home/dks +cp /usr/share/zoneinfo/Europe/Luxembourg /etc/localtime + +userdel pi +rm -r /home/pi +visudo +## +## # Allow members of group sudo to execute any command +## %sudo ALL=(ALL:ALL) NOPASSWD:ALL +## +apt-get update +apt-get upgrade +apt-get install cups cups-client printer-driver-cups-pdf +service cups restart +service cups-browsed restart + + +#apt-get install git +#git clone https://github.com/nemik/epson-tm-t20-cups.git +#git clone https://github.com/plinth666/epsonsimplecups.git +#apt-get install libcups2-dev libcupsimage2-dev g++ cups cups-client +#make +#./install + +echo "#bt" >> /etc/modprobe.d/raspi-blacklist.conf +echo "blacklist btbcm" >> /etc/modprobe.d/raspi-blacklist.conf +echo "blacklist hci_uart" >> /etc/modprobe.d/raspi-blacklist.conf + +#router +apt-get install hostapd bridge-utils +#to dhcpcd.conf +# cat <<'EOF' >/etc/network/interfaces.d/eth0 +# auto eth0 +# allow-hotplug eth0 +# iface eth0 inet static +# address 192.168.178.73 +# netmask 255.255.0.0 +# gateway 192.168.178.73 +# EOF + +cat <<'EOF' >/etc/dnsmasq.d/bridge.conf +interface=eth0 +bind-interfaces +server=8.8.8.8 +domain-needed +bogus-priv +dhcp-range=192.168.100.1,192.168.100.254,12h +EOF \ No newline at end of file diff --git a/install/server/pdfcashbox.pdf b/install/server/pdfcashbox.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aedc815e29834c05689ef66a8a227fe7b40213b1 GIT binary patch literal 7730 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 HbjSV$*7Q52 literal 0 HcmV?d00001 diff --git a/install/server/samba.sh b/install/server/samba.sh new file mode 100644 index 0000000..65ca1cf --- /dev/null +++ b/install/server/samba.sh @@ -0,0 +1,6 @@ +#apt-get install samba +#cd /etc/samba/ +#vim.tiny smb.conf +#service smb start +#service smbd start +#service nmbd start \ No newline at end of file diff --git a/modules/paywindow/index.html b/modules/paywindow/index.html index 7ba959a..6cfa754 100644 --- a/modules/paywindow/index.html +++ b/modules/paywindow/index.html @@ -15,53 +15,34 @@ CashBox
- - - -
- + +
-
-
- + +
+
- - - +
Anz.Einkauf
-
-
-
- 0,00€ -
-
-
-
- -
-
- -
-
- +
- + @@ -69,72 +50,235 @@
- +
- +
-
- +
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ 0,00€ +
+
+
+
- + + +
Anz.Einkauf
+
+ +
- + + + + + + + - -
+ diff --git a/modules/paywindow/index.js b/modules/paywindow/index.js index 403268e..7a3ae82 100644 --- a/modules/paywindow/index.js +++ b/modules/paywindow/index.js @@ -1,6 +1,7 @@ var winh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); var config = {}; -var tblheight1=winh-150; +var shoppingcart = {products:{},transaction:{}}; +var tblheight1=winh-180; function initpage(){ loadconfig(); load_group_selects(); @@ -67,7 +68,7 @@ function load_productgroup(listnum){ for (var i in products.sqldata){ var trow = ''; - trow += '
' + products.sqldata[i].name+'
'+ products.sqldata[i].specification +''+products.sqldata[i].grossamount+'€
'; + trow += '
' + products.sqldata[i].name+'
 '+ products.sqldata[i].specification +''+products.sqldata[i].grossamount+'€
'; trow += ''; $('#producttable' + listnum + " > tbody").append(trow.replace(/null/g,'')); } @@ -76,30 +77,41 @@ function load_productgroup(listnum){ function addproduct(idproduct){ console.log(idproduct); - var sql = "select * from products where id='"+idproduct+"';"; + + var sql = "select id,name,specification,grossamount,netamount,vatpercent,replace(printf(\"%.2f\",grossamount),'.',',') as dsp_grossamount from products where id='"+idproduct+"';"; + console.log(sql); var product = appdb.dbquery(sql); var trow = ""; var bdone = false; if ((product) && product.sqldata){ var idprod = product.sqldata[0].id; - if ((config.checkout_grouping) && (config.checkout_grouping == "1")){ - if ($("#checkout_" + idprod) != null){ - console.log("Product " + idprod +" exists!"); + var sc_idprod = idprod; + if ((!config.checkout_grouping) || (config.checkout_grouping.value != "1")){ + sc_idprod = Object.keys(shoppingcart).length + "_" + idprod; + } + if ((shoppingcart['products'][sc_idprod]) && (config.checkout_grouping) && (config.checkout_grouping.value == "1")){ + if ($("#checkout_" + sc_idprod) != null){ var cnum = $("#checkout_" + idprod + " td:first").text(); - cnum = cnum + 1; + cnum = parseInt(cnum) + 1; $("#checkout_" + idprod + " td:first").html(cnum); + shoppingcart['products'][sc_idprod].quantity = cnum; bdone = true; } - } + + } + if (bdone == false) { //console.log("Add Product " + idprod +" to list!"); - trow = ''; + trow = ''; trow += '1' ; - trow += '' + product.sqldata[0].name+'
'+ product.sqldata[0].specification +''+product.sqldata[0].grossamount+'€'; - trow += ''; + trow += '' + product.sqldata[0].name+'
'+ product.sqldata[0].specification +''+product.sqldata[0].dsp_grossamount+'€'; + trow += ''; trow += ''; - console.log(trow); + //console.log(trow); $("#checkout > tbody").append(trow); + + //console.log(sc_idprod); + shoppingcart['products'][sc_idprod] = {quantity:1,id_product:idprod,grossamount: product.sqldata[0].grossamount,vatamount: product.sqldata[0].vatamount,netamount: product.sqldata[0].netamount}; } } calctotal(); @@ -107,13 +119,58 @@ function addproduct(idproduct){ } function remove_co_product(id){ - + console.log("remove id: "+ id); + $("table#checkout > tbody tr#checkout_"+id).remove(); + delete shoppingcart['products'][id]; + calctotal(); } function calctotal(){ - + console.log(shoppingcart); + var sum = 0.00; + for (var i in shoppingcart["products"]){ + sum += shoppingcart["products"][i].quantity * parseFloat(shoppingcart["products"][i].grossamount); + } + $("#sumtotal").html(sum.toFixed(2).replace('.',',') ); + return sum.toFixed(2); } -function clean_checkout(){ +function clean_shoppingcart(){ $("#checkout > tbody").html(""); + shoppingcart = {products:{},transaction:{}}; +} + +function view_unpayedshoppingcarts(){ + $('#dlgCommands').modal('show'); +} + +function save_shoppingcart(){ + +} + +function view_payementdlg(ptype){ + } + +function book_shoppingcart(ptype){ + shoppingcart['transaction']['id']= appdb.generate_uuid(); + // appdb.dbexec("INSERT INTO transactions (id, payementtype, id_table, payedamount, cashbackamount, status, statusdate) VALUES('"+shoppingcart['transaction']['id']+"', '"+ptype+"', '"+shoppingcart['transaction']['id_table']+"', 0, 0, '', now());"); + + $('#dlgPayement').modal('show'); +} + +function view_tables(){ + var tbls = appdb.dbquery("select id,name from tables;"); + $("#tableslist").html(""); + console.log(tbls); + for (var i in tbls.sqldata){ + $("#tableslist").append(''); + } + $('#dlgTables').modal('show'); +} + +function setTable(id,name){ + $("#commandtable").html(name); + shoppingcart['transaction']['id_table'] = id; + $('#dlgTables').modal('hide'); +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 10f971c..eecf1f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,30 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "asar": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", + "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", + "dev": true, + "requires": { + "chromium-pickle-js": "^0.2.0", + "commander": "^2.19.0", + "cuint": "^0.2.2", + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "pify": "^4.0.1", + "tmp-promise": "^1.0.5" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -61,6 +85,12 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, + "author-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", + "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", + "dev": true + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -73,6 +103,18 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -82,6 +124,12 @@ "tweetnacl": "^0.14.3" } }, + "bluebird": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "dev": true + }, "bootstrap": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", @@ -94,6 +142,38 @@ "integrity": "sha512-033fnjYKgFZO98PL6E0JAqmwTJ2isoQxJBFU6BwEbIMmRZETk5iDoPGgV+7wORt4c+yABNWj8EnbFBWAHz5YPw==", "dev": true }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -122,6 +202,12 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -137,6 +223,24 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", @@ -187,6 +291,12 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -270,6 +380,122 @@ "sumchecker": "^2.0.2" } }, + "electron-notarize": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.0.5.tgz", + "integrity": "sha512-YzrqZ6RDQ7Wt2RWlxzRoQUuxnTeXrfp7laH7XKcmQqrZ6GaAr50DMPvFMpqDKdrZSHSbcgZgB7ktIQbjvITmCQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "fs-extra": "^7.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "electron-osx-sign": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.11.tgz", + "integrity": "sha512-VVd40nrnVqymvFrY9ZkOYgHJOvexHHYTR3di/SN+mjJ0OWhR1I8BRVj3U+Yamw6hnkZZNKZp52rqL5EFAAPFkQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "electron-packager": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-13.1.1.tgz", + "integrity": "sha512-3Drgcw8OEOP3Psw/PprloAFJSkSUSQgjUq3AmWffJGB3Kj5WXmZl6A3GOUs8aT7bP/8GWg4oYqSiCSnA5PQkdQ==", + "dev": true, + "requires": { + "asar": "^1.0.0", + "debug": "^4.0.1", + "electron-download": "^4.1.1", + "electron-notarize": "^0.0.5", + "electron-osx-sign": "^0.4.11", + "extract-zip": "^1.0.3", + "fs-extra": "^7.0.0", + "galactus": "^0.2.1", + "get-package-info": "^1.0.0", + "parse-author": "^2.0.0", + "pify": "^4.0.0", + "plist": "^3.0.0", + "rcedit": "^1.0.0", + "resolve": "^1.1.6", + "sanitize-filename": "^1.6.0", + "semver": "^5.3.0", + "yargs-parser": "^13.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, "env-paths": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", @@ -368,6 +594,16 @@ } } }, + "flora-colossus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.0.tgz", + "integrity": "sha1-VHKcNh7ezuAU3UQWeeGjfB13OkU=", + "dev": true, + "requires": { + "debug": "^3.1.0", + "fs-extra": "^4.0.0" + } + }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -396,6 +632,109 @@ "universalify": "^0.1.0" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "galactus": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz", + "integrity": "sha1-y+0tIKQMH1Z5o1kI4rlBVzPnjbk=", + "dev": true, + "requires": { + "debug": "^3.1.0", + "flora-colossus": "^1.0.0", + "fs-extra": "^4.0.0" + } + }, + "get-package-info": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-package-info/-/get-package-info-1.0.0.tgz", + "integrity": "sha1-ZDJ5ZWPigRPNlHTbvQAFKYWkmZw=", + "dev": true, + "requires": { + "bluebird": "^3.1.1", + "debug": "^2.2.0", + "lodash.get": "^4.0.0", + "read-pkg-up": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -411,6 +750,20 @@ "assert-plus": "^1.0.0" } }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "graceful-fs": { "version": "4.1.15", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", @@ -459,6 +812,16 @@ "repeating": "^2.0.0" } }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -513,6 +876,15 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -583,6 +955,22 @@ "strip-bom": "^2.0.0" } }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -632,6 +1020,15 @@ "mime-db": "~1.38.0" } }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", @@ -729,6 +1126,54 @@ "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", "dev": true }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-author": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", + "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=", + "dev": true, + "requires": { + "author-regex": "^1.0.0" + } + }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -744,6 +1189,12 @@ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", @@ -794,6 +1245,17 @@ "pinkie": "^2.0.0" } }, + "plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "dev": true, + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + } + }, "popper.js": { "version": "1.14.7", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.7.tgz", @@ -856,6 +1318,12 @@ "strip-json-comments": "~2.0.1" } }, + "rcedit": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-1.1.1.tgz", + "integrity": "sha512-6NjOhOpkvbc/gpMEfk2hpXuWyHfbLFN8as5jx3jf4bhELvouRoYvc8d/W3NVVPwEBF1ICfbpwp1oRm8OJ2WDWw==", + "dev": true + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -957,6 +1425,15 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, + "sanitize-filename": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", + "integrity": "sha1-YS2hyWRz+gLczaktzVtKsWSmdyo=", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", @@ -1137,6 +1614,25 @@ "integrity": "sha512-mr4MZx8XYMR7Ig/sShKILuhZj8jj89gy2QBMV0eNByOqtKUdkBLoY8SZDOwQmKsbvvFOcdWsUXyuPv6vllHj0g==", "dev": true }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmp-promise": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.0.5.tgz", + "integrity": "sha512-hOabTz9Tp49wCozFwuJe5ISrOqkECm6kzw66XTP23DuzNU7QS/KiZq5LC9Y7QSy8f1rPSLy4bKaViP0OwGI1cA==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "tmp": "0.0.33" + } + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -1161,6 +1657,15 @@ "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -1197,6 +1702,12 @@ "punycode": "^2.1.0" } }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -1230,6 +1741,24 @@ "extsprintf": "^1.2.0" } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + }, "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", @@ -1239,6 +1768,24 @@ "object-keys": "~0.4.0" } }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, "yauzl": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", diff --git a/package.json b/package.json index bbe964d..b9e7e5f 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,9 @@ "main": "main.js", "scripts": { "start": "electron .", - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "package-win": "electron-packager . cashbox --overwrite --asar --platform=win32 --arch=x64 --out=release-builds --version-string.CompanyName=DKS --version-string.FileDescription=DKS --version-string.ProductName=CashBox --icon=img/cashbox_KhG_icon.ico", +"build": "npm run pack:osx && npm run pack:win32 && npm run pack:win64" }, "repository": { "type": "git", @@ -18,11 +20,21 @@ ], "author": "Kilian Saffran", "license": "MIT", + "dependencies": { + "@fortawesome/fontawesome-free": "^5.7.2", + "bootstrap": "^4.3.1", + "bootstrap-table": "^1.13.4", + "jquery": "^3.3.1", + "popper.js": "^1.14.7", + "tinymce": "^5.0.1", + "tinymce-i18n": "^19.2.11" + }, "devDependencies": { "@fortawesome/fontawesome-free": "^5.7.2", "bootstrap": "^4.3.1", "bootstrap-table": "^1.13.4", "electron": "^4.0.5", + "electron-packager": "^13.1.1", "jquery": "^3.3.1", "popper.js": "^1.14.7", "tinymce": "^5.0.1", -- 2.39.5