From 47aaca77da9bdffe67ea9c96cdf5c67dd7c3802a Mon Sep 17 00:00:00 2001 From: Dan Briem Date: Sun, 16 Feb 2025 20:51:52 +0000 Subject: [PATCH 01/26] LP#2098550 Shelving Location Group Admin Reorder Focus Ensure setTimeout delays focus when reordering shelving locations using up/down arrow keys in the administration interface. Release-note: Fix an issue in the Shelving Location Group admin screen that caused keyboard focus to disappear. To test: - Go to Admin->Local Admin->Shelving Location Groups - If you don't at least 3 groups, create them - Tab to an item's move button (4 arrow icon) - Press up and down to move the item, note focus is retained Signed-off-by: Dan Briem Signed-off-by: Jane Sandberg --- .../shelving_location_groups.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/admin/local/shelving_location_groups/shelving_location_groups.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/local/shelving_location_groups/shelving_location_groups.component.ts index 1115effc12..e5f21b03e7 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/local/shelving_location_groups/shelving_location_groups.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/admin/local/shelving_location_groups/shelving_location_groups.component.ts @@ -342,7 +342,7 @@ export class ShelvingLocationGroupsComponent implements OnInit { this.draggedElement = group; this.assignNewPositions(index, index - 1); - setTimeout($event.target.focus()); + setTimeout(() => $event.target.focus(), 0); } moveDown($event, group, index) { @@ -353,7 +353,7 @@ export class ShelvingLocationGroupsComponent implements OnInit { this.draggedElement = group; this.assignNewPositions(index, index + 1); - setTimeout($event.target.focus()); + setTimeout(() => $event.target.focus(), 0); } onDragStart = (event, locationGroup) => { From b277099f5cf21ff26e9b06a936756c86f9b9c94f Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 4 Feb 2025 18:23:29 -0500 Subject: [PATCH 02/26] LP#2097391: fix the "Include items?" option with Angular record bucket export This patch fixes an issue where the "Include items?" option when exporting records from the new Angular buckets interface was ignored. To test ------- [1] Create a record bucket that has at least one bib that has items attached to it. [2] Use the 'Export All' button from the bucket interface and select the Include items? option [3] Select the record from the list and use the Export Selected Records action with the Include items? option in effect. [4] Review both output files and note that the 852 fields with item information are not include. [5] Apply the patch and repeat stesp 2 and 3. This time, the 852 fields should be present. Release-note: Fixes an issue that caused the "Include items?" option when exporting records from the Record Buckets interface to be ignored. Signed-off-by: Galen Charlton Signed-off-by: Jane Sandberg --- .../app/staff/share/buckets/record-bucket-item.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/share/buckets/record-bucket-item.component.ts b/Open-ILS/src/eg2/src/app/staff/share/buckets/record-bucket-item.component.ts index 503604eeb4..9245aeb6cb 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/buckets/record-bucket-item.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/share/buckets/record-bucket-item.component.ts @@ -237,7 +237,7 @@ export class RecordBucketItemComponent implements OnInit { let url = `/exporter?containerid=${this.bucket.id()}`; if (options.format) { url += `&format=${options.format}`; } if (options.encoding) { url += `&encoding=${options.encoding}`; } - if (options.holdings) { url += '&holdings=1'; } + if (options.includeItems) { url += '&holdings=1'; } url += `&ses=${this.auth.token()}`; window.open(url, '_blank'); } @@ -251,7 +251,7 @@ export class RecordBucketItemComponent implements OnInit { url += idParams; if (options.format) { url += `&format=${encodeURIComponent(options.format)}`; } if (options.encoding) { url += `&encoding=${encodeURIComponent(options.encoding)}`; } - if (options.holdings) { url += '&holdings=1'; } + if (options.includeItems) { url += '&holdings=1'; } url += `&ses=${encodeURIComponent(this.auth.token())}`; window.open(url, '_blank'); } From 61f227c985db74d705b293f5d07e8da95c0d59aa Mon Sep 17 00:00:00 2001 From: Dan Briem Date: Sun, 16 Feb 2025 22:01:12 +0000 Subject: [PATCH 03/26] LP#2093128 Reverts to Initial Flat/Enhanced MARC Editor on Save If you switch between the flat and enhanced MARC editor, then save, the editor reverts to whichever tab was initially loaded. This synchronizes the one-way data binding of `editorTab` with `ngbNav`'s `activeId` in the `navChange` callback. Release-note: Fix an issue that caused MARC editor interface to change unexpectedly when a record is saved. To test: - Go to a record and click the MARC Edit tab - Switch from Enhanced to Flat (or vice-versa if Flat's selected) - Click Save, note it doesn't switch to the initially loaded tab Signed-off-by: Dan Briem Signed-off-by: Jane Sandberg --- .../src/eg2/src/app/staff/share/marc-edit/editor.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.ts index c7485a8d46..376ae51922 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/editor.component.ts @@ -143,11 +143,11 @@ export class MarcEditorComponent implements OnInit { // Remember the last used tab as the preferred tab. tabChange(evt: NgbNavChangeEvent) { - // Avoid undo persistence across tabs since that could result // in changes getting lost. this.context.resetUndos(); + this.editorTab = evt.nextId; if (evt.nextId === 'flat') { this.store.setItem('cat.marcedit.flateditor', true); } else { From 35d59fa5fbc9d5d1ba7db7dcecdeefb8fff4cd96 Mon Sep 17 00:00:00 2001 From: Andrea Buntz Neiman Date: Tue, 18 Feb 2025 15:13:08 -0500 Subject: [PATCH 04/26] Docs: 3.13.9 release notes Signed-off-by: Andrea Buntz Neiman --- docs/RELEASE_NOTES_3_13.adoc | 100 +++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/docs/RELEASE_NOTES_3_13.adoc b/docs/RELEASE_NOTES_3_13.adoc index 46b99851b3..e9b75e8126 100644 --- a/docs/RELEASE_NOTES_3_13.adoc +++ b/docs/RELEASE_NOTES_3_13.adoc @@ -3,6 +3,106 @@ :numbered: :toclevels: 3 +== Evergreen 3.13.9 == + +This release contains bug fixes and documentation fixes improving on Evergreen 3.13.8. + +=== Upgrade notes === + +* The fix for https://bugs.launchpad.net/evergreen/+bug/2088529[Bug 2088529] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/1975852[Bug 1975852] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/1695911[Bug 1695911] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/2009066[Bug 2009066] requires running an upgrade script. + +=== Acquisitions === + +* Refresh line item status and color coding when Purchase order is activated. (https://bugs.launchpad.net/evergreen/+bug/1991801[Bug 1991801]) +* Fixes incorrect calculation of the line-item level cost and amount paid that can occur when creating an invoice from a purchase order or a line item. (https://bugs.launchpad.net/evergreen/+bug/2097049[Bug 2097049]) +* Makes the foreign key relationship between acq.invoice_item and acq.fund_debit deferrable so that fund debits can be deleted in the same transactions as the invoice items. (https://bugs.launchpad.net/evergreen/+bug/2009066[Bug 2009066]) + +=== Administration === + +* Fix borders, wrapped button text in org unit settings grid. Add class name @Input to org unit selector component. (https://bugs.launchpad.net/evergreen/+bug/2083725[Bug 2083725]) +* Fix an issue in the Shelving Location Group admin screen that caused keyboard focus to disappear. (https://bugs.launchpad.net/evergreen/+bug/2098550[Bug 2098550]) +* Limits browse entry values to 1000 characters (https://bugs.launchpad.net/evergreen/+bug/1695911[Bug 1695911]) + + +=== Cataloging === + +* Ensures tag order in the authority.generate_overlay_template function output. (https://bugs.launchpad.net/evergreen/+bug/2088529[Bug 2088529]) +* Removes the Z39.50 search source autosave to match the previous version of the interface. (https://bugs.launchpad.net/evergreen/+bug/2094284[Bug 2094284]) +* The 'Clear Form' button on the Import Record from Z39.50 interface now only clears the search fields, not the services and credentials inputs. (https://bugs.launchpad.net/evergreen/+bug/2084348[Bug 2084348]) +* Adds workstation setting for Monograph Parts grid preferences (https://bugs.launchpad.net/evergreen/+bug/1975852[Bug 1975852]) +* Fix an issue that caused MARC editor interface to change unexpectedly when a record is saved. (https://bugs.launchpad.net/evergreen/+bug/2093128[Bug 2093128]) + +=== Circulation === + +* Fix Text/SMS Carrier label type in the Modify Hold's dialog box. (https://bugs.launchpad.net/evergreen/+bug/2091111[Bug 2091111]) +* Patron barcode file uploads in the User Bucket's Pending User(s) list are now able to retrieve patrons whose barcode value contains embedded spaces. (https://bugs.launchpad.net/evergreen/+bug/2087873[Bug 2087873]) + +=== Documentation === + +* Refactor booking module documentation for clarity and updated visuals. +* Replace 'npm install' with 'npm ci' in the 'For Developers' installation instructions (https://bugs.launchpad.net/evergreen/+bug/2089160[Bug 2089160]). +* Updates links between refund and void billing (https://bugs.launchpad.net/bugs/2092238[Bug 2092238]) +* Updates screenshots in Shelving Location Groups documentation (https://bugs.launchpad.net/bugs/2092450[Bug 2092450]) +* Fixes headings in Batch Import MARC documentation (https://bugs.launchpad.net/bugs/2094835[Bug 2094835]) + +=== OPAC === + +* Fixes whitespace issue with empty list descriptions in the patron's lists in their OPAC account. (https://bugs.launchpad.net/evergreen/+bug/2088180[Bug 2088180]) + +=== Reports === + +* Fixes typo in bibliographic record source in IDL. (https://bugs.launchpad.net/evergreen/+bug/2086227[Bug 2086227]) +* Fixes reporting source Item's link for last captured hold (https://bugs.launchpad.net/evergreen/+bug/2097281[Bug 2097281]) +* Fixes duplication of Share / Unshare buttons (https://bugs.launchpad.net/evergreen/+bug/2081883[Bug 2081883]) + +=== Staff Client === + +* Remove noise from the browser developer console when saving Angular grids. (https://bugs.launchpad.net/evergreen/+bug/2095026[Bug 2095026]) +* Correct grid toolbar button sizes in narrow screen sizes. (https://bugs.launchpad.net/evergreen/+bug/2066069[Bug 2066069]) + + + +=== Acknowledgements === + +We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.13.9 point release of Evergreen: + +* Andrea Buntz Neiman +* Blake Graham-Henderson +* Carol Witt +* Dan Briem +* Galen Charlton +* Garry Collum +* Gina Monti +* Ian Skelskey +* Jane Sandberg +* Jason Stephenson +* Jeff Davis +* Jennifer Pringle +* John Amundson +* Llewellyn Marshall +* Mary Llewellyn +* Michele Morgan +* Mike Rylander +* Shula Link +* Stephanie Leary +* Steven Callender +* Steven Mayo +* Susan Morrison +* Terran McCanna +* Tiffany Little + + + + + + + + + + == Evergreen 3.13.8 == This release contains bug fixes and documentation fixes improving on Evergreen 3.13.7. From 3ed8f71196a3ba12a28a5e397f7e952a2838570d Mon Sep 17 00:00:00 2001 From: Andrea Buntz Neiman Date: Tue, 18 Feb 2025 16:30:26 -0500 Subject: [PATCH 05/26] Docs: 3.14.4 release notes Signed-off-by: Andrea Buntz Neiman --- docs/RELEASE_NOTES_3_14.adoc | 131 +++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/docs/RELEASE_NOTES_3_14.adoc b/docs/RELEASE_NOTES_3_14.adoc index 8d4416b4fb..984a1d5038 100644 --- a/docs/RELEASE_NOTES_3_14.adoc +++ b/docs/RELEASE_NOTES_3_14.adoc @@ -3,6 +3,137 @@ :numbered: :toclevels: 3 +== Evergreen 3.14.4 == + +This release contains bug fixes and documentation fixes improving on Evergreen 3.14.3. + +=== Upgrade notes === + +* The fix for https://bugs.launchpad.net/evergreen/+bug/2088529[Bug 2088529] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/1975852[Bug 1975852] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/1695911[Bug 1695911] requires running an upgrade script. +* The fix for https://bugs.launchpad.net/evergreen/+bug/2009066[Bug 2009066] requires running an upgrade script. + +=== Acquisitions === + +* Refresh line item status and color coding when Purchase order is activated. (https://bugs.launchpad.net/evergreen/+bug/1991801[Bug 1991801]) +* Fixes incorrect calculation of the line-item level cost and amount paid that can occur when creating an invoice from a purchase order or a line item. (https://bugs.launchpad.net/evergreen/+bug/2097049[Bug 2097049 +* Use words for Acq PO search 'Expand|Collapse All' button (https://bugs.launchpad.net/evergreen/+bug/2042988[Bug 2042988]) +* Makes the foreign key relationship between acq.invoice_item and acq.fund_debit deferrable so that fund debits can be deleted in the same transactions as the invoice items. (https://bugs.launchpad.net/evergreen/+bug/2009066[Bug 2009066]) +* Fixes color styling for on-order line items (https://bugs.launchpad.net/evergreen/+bug/2096727[Bug 2096727]) + +=== Administration === + +* Fix borders, wrapped button text in org unit settings grid. Add class name @Input to org unit selector component. (https://bugs.launchpad.net/evergreen/+bug/2083725[Bug 2083725]) +* Fix an issue in the Shelving Location Group admin screen that caused keyboard focus to disappear. (https://bugs.launchpad.net/evergreen/+bug/2098550[Bug 2098550]) +* Limits browse entry values to 1000 characters (https://bugs.launchpad.net/evergreen/+bug/1695911[Bug 1695911]) + +=== Catalog === + +* Hides facet options when viewing basket in the staff catalog (https://bugs.launchpad.net/evergreen/+bug/2093108[Bug 2093108]) + + +=== Cataloging === + +* Ensures tag order in the authority.generate_overlay_template function output. (https://bugs.launchpad.net/evergreen/+bug/2088529[Bug 2088529]) +* Removes the Z39.50 search source autosave to match the previous version of the interface. (https://bugs.launchpad.net/evergreen/+bug/2094284[Bug 2094284]) +* The 'Clear Form' button on the Import Record from Z39.50 interface now only clears the search fields, not the services and credentials inputs. (https://bugs.launchpad.net/evergreen/+bug/2084348[Bug 2084348]) +* Adds workstation setting for Monograph Parts grid preferences (https://bugs.launchpad.net/evergreen/+bug/1975852[Bug 1975852]) +* Fix an issue that caused MARC editor interface to change unexpectedly when a record is saved. (https://bugs.launchpad.net/evergreen/+bug/2093128[Bug 2093128]) +* Fixes an issue that caused the "Include items?" option when exporting records from the Record Buckets interface to be ignored. (https://bugs.launchpad.net/evergreen/+bug/2097391[Bug 2097391]) +* Fixes changed-field styling in the Holdings Editor (https://bugs.launchpad.net/evergreen/+bug/2091194[Bug 2091194]) +* Fixes performance issue when opening add-to-bucket dropdown (https://bugs.launchpad.net/bugs/2093899[Bug 2093899]) + +=== Circulation === + +* Fix Text/SMS Carrier label type in the Modify Hold's dialog box. (https://bugs.launchpad.net/evergreen/+bug/2091111[Bug 2091111]) +* Patron barcode file uploads in the User Bucket's Pending User(s) list are now able to retrieve patrons whose barcode value contains embedded spaces. (https://bugs.launchpad.net/evergreen/+bug/2087873[Bug 2087873]) +* Makes "Clear Form" button on patron search more visible (https://bugs.launchpad.net/evergreen/+bug/2089192[Bug 2089192]) +* Prevent hold reset entries from blocking hold aging and and user merges and purges (https://bugs.launchpad.net/evergreen/+bug/2097622[Bug 2097622]) + +=== Documentation === + +* Refactor booking module documentation for clarity and updated visuals. +* Replace 'npm install' with 'npm ci' in the 'For Developers' installation instructions (https://bugs.launchpad.net/evergreen/+bug/2089160[Bug 2089160]). +* Updates links between refund and void billing (https://bugs.launchpad.net/bugs/2092238[Bug 2092238]) +* Updates screenshots in Shelving Location Groups documentation (https://bugs.launchpad.net/bugs/2092450[Bug 2092450]) +* Fixes headings in Batch Import MARC documentation (https://bugs.launchpad.net/bugs/2094835[Bug 2094835]) + +=== Installation === + +* Remove unused dependency that caused logins to fail. (https://bugs.launchpad.net/evergreen/+bug/2095046[Bug 2095046]) +* New installs will now have table actor.usr_mfa_exception (https://bugs.launchpad.net/evergreen/+bug/2095215[Bug 2095215]) + +=== OPAC === + +* Fixes whitespace issue with empty list descriptions in the patron's lists in their OPAC account. (https://bugs.launchpad.net/evergreen/+bug/2088180[Bug 2088180]) +* Fixes basket buttons on OPAC item details page (https://bugs.launchpad.net/evergreen/+bug/2093791[Bug 2093791]) +* Hides SMS test success message until after test is sent. (https://bugs.launchpad.net/evergreen/+bug/2096772[Bug 2096772]) +* Remove spellcheck attribute from password fields. (https://bugs.launchpad.net/evergreen/+bug/2002327[Bug 2002327]) +* Fixes the alignment of the Opac's Search & History Preference form. (https://bugs.launchpad.net/evergreen/+bug/2097154[Bug 2097154]) +* Fixes broken select all button on OPAC search results. (https://bugs.launchpad.net/evergreen/+bug/2097384[Bug 2097384]) +* Fixes bug where user could not add multiple new search rows in OPAC Advanced Search. (https://bugs.launchpad.net/evergreen/+bug/2097131[Bug 2097131]) +* Restores missing Shelving Location filter to Advanced Search (https://bugs.launchpad.net/evergreen/+bug/2089178[Bug 2089178]) +* Fix to allow expert search to add and delete rows (https://bugs.launchpad.net/evergreen/+bug/2097555[Bug 2097555]) + +=== Reports === + +* Fixes duplication of Share / Unshare buttons (https://bugs.launchpad.net/evergreen/+bug/2081883[Bug 2081883]) +* Fixes typo in bibliographic record source in IDL. (https://bugs.launchpad.net/evergreen/+bug/2086227[Bug 2086227]) +* Fixes reporting source Item's link for last captured hold (https://bugs.launchpad.net/evergreen/+bug/2097281[Bug 2097281]) + +=== Self Checkout === + +* Hides canceled holds from holds view (https://bugs.launchpad.net/evergreen/+bug/2091041[Bug 2091041]) +* Corrects auto-logout popup button text (https://bugs.launchpad.net/evergreen/+bug/2093903[Bug 2093903]) + +=== Staff Client === + +* Remove noise from the browser developer console when saving Angular grids. (https://bugs.launchpad.net/evergreen/+bug/2095026[Bug 2095026]) +* Fixes typo in AngularJS Booking > Pick Up Reservation (https://bugs.launchpad.net/evergreen/+bug/2095190[Bug 2095190]) +* Fixes Retrieve Recent Patrons link (https://bugs.launchpad.net/evergreen/+bug/2091174[Bug 2091174]) + + +=== Acknowledgements === + +We would like to thank the following individuals who contributed code, testing, documentation, and patches to the 3.14.4 point release of Evergreen: + +* Andrea Buntz Neiman +* Bill Erickson +* Blake Graham-Henderson +* Carol Witt +* Christine Morgan +* Dan Briem +* Galen Charlton +* Garry Collum +* Gina Monti +* Ian Skelskey +* Jane Sandberg +* Jason Etheridge +* Jason Stephenson +* Jeff Davis +* Jennifer Pringle +* John Amundson +* Lindsay Stratton +* Llewellyn Marshall +* Mary Llewellyn +* Michele Morgan +* Mike Rylander +* Ruth Frasur Davis +* Shula Link +* Stephanie Leary +* Steven Callender +* Steven Mayo +* Susan Morrison +* Tara Kunesh +* Terran McCanna +* Tiffany Little + + + + + + == Evergreen 3.14.3 == This release contains bug fixes and documentation fixes improving on Evergreen 3.14.2. From 971edba595457ebb92e260d362140c6069084780 Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Thu, 20 Feb 2025 08:44:27 -0500 Subject: [PATCH 06/26] Forward port 3.13.8-3.13.9 db upgrade script Signed-off-by: Jason Stephenson --- .../3.13.8-3.13.19-upgrade-db.sql | 259 ++++++++++++++++++ 1 file changed, 259 insertions(+) create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql new file mode 100644 index 0000000000..4d98160630 --- /dev/null +++ b/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql @@ -0,0 +1,259 @@ +--Upgrade Script for 3.13.8 to 3.13.19 +\set eg_version '''3.13.19''' +BEGIN; +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.13.19', :eg_version); + +SELECT evergreen.upgrade_deps_block_check('1447', :eg_version); + +CREATE OR REPLACE FUNCTION authority.generate_overlay_template (source_xml TEXT) RETURNS TEXT AS $f$ +DECLARE + cset INT; + main_entry authority.control_set_authority_field%ROWTYPE; + bib_field authority.control_set_bib_field%ROWTYPE; + auth_id INT DEFAULT oils_xpath_string('//*[@tag="901"]/*[local-name()="subfield" and @code="c"]', source_xml)::INT; + tmp_data XML; + replace_data XML[] DEFAULT '{}'::XML[]; + replace_rules TEXT[] DEFAULT '{}'::TEXT[]; + auth_field XML[]; + auth_i1 TEXT; + auth_i2 TEXT; +BEGIN + IF auth_id IS NULL THEN + RETURN NULL; + END IF; + + -- Default to the LoC control set + SELECT control_set INTO cset FROM authority.record_entry WHERE id = auth_id; + + -- if none, make a best guess + IF cset IS NULL THEN + SELECT control_set INTO cset + FROM authority.control_set_authority_field + WHERE tag IN ( + SELECT UNNEST(XPATH('//*[local-name()="datafield" and starts-with(@tag,"1")]/@tag',marc::XML)::TEXT[]) + FROM authority.record_entry + WHERE id = auth_id + ) + LIMIT 1; + END IF; + + -- if STILL none, no-op change + IF cset IS NULL THEN + RETURN XMLELEMENT( + name record, + XMLATTRIBUTES('http://www.loc.gov/MARC21/slim' AS xmlns), + XMLELEMENT( name leader, '00881nam a2200193 4500'), + XMLELEMENT( + name datafield, + XMLATTRIBUTES( '905' AS tag, ' ' AS ind1, ' ' AS ind2), + XMLELEMENT( + name subfield, + XMLATTRIBUTES('d' AS code), + '901c' + ) + ) + )::TEXT; + END IF; + + FOR main_entry IN SELECT * FROM authority.control_set_authority_field acsaf WHERE acsaf.control_set = cset AND acsaf.main_entry IS NULL ORDER BY acsaf.tag LOOP + auth_field := XPATH('//*[local-name()="datafield" and @tag="'||main_entry.tag||'"][1]',source_xml::XML); + auth_i1 := (XPATH('//*[local-name()="datafield"]/@ind1',auth_field[1]))[1]; + auth_i2 := (XPATH('//*[local-name()="datafield"]/@ind2',auth_field[1]))[1]; + IF ARRAY_LENGTH(auth_field,1) > 0 THEN + FOR bib_field IN SELECT * FROM authority.control_set_bib_field WHERE authority_field = main_entry.id ORDER BY control_set_bib_field.tag LOOP + SELECT XMLELEMENT( -- XMLAGG avoids magical creation, but requires unnest subquery + name datafield, + XMLATTRIBUTES(bib_field.tag AS tag, auth_i1 AS ind1, auth_i2 AS ind2), + XMLAGG(UNNEST) + ) INTO tmp_data FROM UNNEST(XPATH('//*[local-name()="subfield"]', auth_field[1])); + replace_data := replace_data || tmp_data; + replace_rules := replace_rules || ( bib_field.tag || main_entry.sf_list || E'[0~\\)' || auth_id || '$]' ); + tmp_data = NULL; + END LOOP; + EXIT; + END IF; + END LOOP; + + SELECT XMLAGG(UNNEST) INTO tmp_data FROM UNNEST(replace_data); + + RETURN XMLELEMENT( + name record, + XMLATTRIBUTES('http://www.loc.gov/MARC21/slim' AS xmlns), + XMLELEMENT( name leader, '00881nam a2200193 4500'), + tmp_data, + XMLELEMENT( + name datafield, + XMLATTRIBUTES( '905' AS tag, ' ' AS ind1, ' ' AS ind2), + XMLELEMENT( + name subfield, + XMLATTRIBUTES('r' AS code), + ARRAY_TO_STRING(replace_rules,',') + ) + ) + )::TEXT; +END; +$f$ STABLE LANGUAGE PLPGSQL; + + +SELECT evergreen.upgrade_deps_block_check('1449', :eg_version); + +CREATE OR REPLACE FUNCTION metabib.reingest_metabib_field_entries( + bib_id BIGINT, + skip_facet BOOL DEFAULT FALSE, + skip_display BOOL DEFAULT FALSE, + skip_browse BOOL DEFAULT FALSE, + skip_search BOOL DEFAULT FALSE, + only_fields INT[] DEFAULT '{}'::INT[] +) RETURNS VOID AS $func$ +DECLARE + fclass RECORD; + ind_data metabib.field_entry_template%ROWTYPE; + mbe_row metabib.browse_entry%ROWTYPE; + mbe_id BIGINT; + b_skip_facet BOOL; + b_skip_display BOOL; + b_skip_browse BOOL; + b_skip_search BOOL; + value_prepped TEXT; + field_list INT[] := only_fields; + field_types TEXT[] := '{}'::TEXT[]; +BEGIN + + IF field_list = '{}'::INT[] THEN + SELECT ARRAY_AGG(id) INTO field_list FROM config.metabib_field; + END IF; + + SELECT COALESCE(NULLIF(skip_facet, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_facet_indexing' AND enabled)) INTO b_skip_facet; + SELECT COALESCE(NULLIF(skip_display, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_display_indexing' AND enabled)) INTO b_skip_display; + SELECT COALESCE(NULLIF(skip_browse, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_browse_indexing' AND enabled)) INTO b_skip_browse; + SELECT COALESCE(NULLIF(skip_search, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_search_indexing' AND enabled)) INTO b_skip_search; + + IF NOT b_skip_facet THEN field_types := field_types || '{facet}'; END IF; + IF NOT b_skip_display THEN field_types := field_types || '{display}'; END IF; + IF NOT b_skip_browse THEN field_types := field_types || '{browse}'; END IF; + IF NOT b_skip_search THEN field_types := field_types || '{search}'; END IF; + + PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled; + IF NOT FOUND THEN + IF NOT b_skip_search THEN + FOR fclass IN SELECT * FROM config.metabib_class LOOP + EXECUTE $$DELETE FROM metabib.$$ || fclass.name || $$_field_entry WHERE source = $$ || bib_id || $$ AND field = ANY($1)$$ USING field_list; + END LOOP; + END IF; + IF NOT b_skip_facet THEN + DELETE FROM metabib.facet_entry WHERE source = bib_id AND field = ANY(field_list); + END IF; + IF NOT b_skip_display THEN + DELETE FROM metabib.display_entry WHERE source = bib_id AND field = ANY(field_list); + END IF; + IF NOT b_skip_browse THEN + DELETE FROM metabib.browse_entry_def_map WHERE source = bib_id AND def = ANY(field_list); + END IF; + END IF; + + FOR ind_data IN SELECT * FROM biblio.extract_metabib_field_entry( bib_id, ' ', field_types, field_list ) LOOP + + -- don't store what has been normalized away + CONTINUE WHEN ind_data.value IS NULL; + + IF ind_data.field < 0 THEN + ind_data.field = -1 * ind_data.field; + END IF; + + IF ind_data.facet_field AND NOT b_skip_facet THEN + INSERT INTO metabib.facet_entry (field, source, value) + VALUES (ind_data.field, ind_data.source, ind_data.value); + END IF; + + IF ind_data.display_field AND NOT b_skip_display THEN + INSERT INTO metabib.display_entry (field, source, value) + VALUES (ind_data.field, ind_data.source, ind_data.value); + END IF; + + + IF ind_data.browse_field AND NOT b_skip_browse THEN + -- A caveat about this SELECT: this should take care of replacing + -- old mbe rows when data changes, but not if normalization (by + -- which I mean specifically the output of + -- evergreen.oils_tsearch2()) changes. It may or may not be + -- expensive to add a comparison of index_vector to index_vector + -- to the WHERE clause below. + + CONTINUE WHEN ind_data.sort_value IS NULL; + + value_prepped := metabib.browse_normalize(ind_data.value, ind_data.field); + IF ind_data.browse_nocase THEN -- for "nocase" browse definions, look for a preexisting row that matches case-insensitively on value and use that + SELECT INTO mbe_row * FROM metabib.browse_entry + WHERE evergreen.lowercase(value) = evergreen.lowercase(value_prepped) AND sort_value = ind_data.sort_value + ORDER BY sort_value, value LIMIT 1; -- gotta pick something, I guess + END IF; + + IF mbe_row.id IS NOT NULL THEN -- asked to check for, and found, a "nocase" version to use + mbe_id := mbe_row.id; + ELSE -- otherwise, an UPSERT-protected variant + INSERT INTO metabib.browse_entry + ( value, sort_value ) VALUES + ( SUBSTRING(value_prepped FOR 1000), SUBSTRING(ind_data.sort_value FOR 1000) ) + ON CONFLICT (sort_value, value) DO UPDATE SET sort_value = SUBSTRING(EXCLUDED.sort_value FOR 1000) -- must update a row to return an existing id + RETURNING id INTO mbe_id; + END IF; + + INSERT INTO metabib.browse_entry_def_map (entry, def, source, authority) + VALUES (mbe_id, ind_data.field, ind_data.source, ind_data.authority); + END IF; + + IF ind_data.search_field AND NOT b_skip_search THEN + -- Avoid inserting duplicate rows + EXECUTE 'SELECT 1 FROM metabib.' || ind_data.field_class || + '_field_entry WHERE field = $1 AND source = $2 AND value = $3' + INTO mbe_id USING ind_data.field, ind_data.source, ind_data.value; + -- RAISE NOTICE 'Search for an already matching row returned %', mbe_id; + IF mbe_id IS NULL THEN + EXECUTE $$ + INSERT INTO metabib.$$ || ind_data.field_class || $$_field_entry (field, source, value) + VALUES ($$ || + quote_literal(ind_data.field) || $$, $$ || + quote_literal(ind_data.source) || $$, $$ || + quote_literal(ind_data.value) || + $$);$$; + END IF; + END IF; + + END LOOP; + + IF NOT b_skip_search THEN + PERFORM metabib.update_combined_index_vectors(bib_id); + PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_symspell_reification' AND enabled; + IF NOT FOUND THEN + PERFORM search.symspell_dictionary_reify(); + END IF; + END IF; + + RETURN; +END; +$func$ LANGUAGE PLPGSQL; + + +SELECT evergreen.upgrade_deps_block_check('1451', :eg_version); + +INSERT into config.workstation_setting_type (name, grp, datatype, label) +VALUES ( + 'eg.grid.catalog.record.parts', 'gui', 'object', + oils_i18n_gettext( + 'eg.grid.catalog.record.parts', + 'Grid Config: catalog.record.parts', + 'cwst', 'label' + ) +); + + + +SELECT evergreen.upgrade_deps_block_check('1454', :eg_version); + +ALTER TABLE acq.invoice_item ALTER CONSTRAINT invoice_item_fund_debit_fkey DEFERRABLE INITIALLY DEFERRED; + +COMMIT; + +-- Update auditor tables to catch changes to source tables. +-- Can be removed/skipped if there were no schema changes. +SELECT auditor.update_auditors(); From 474ad4e8cf16d13686597aa9550ec60ecd0f083e Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Thu, 20 Feb 2025 08:47:41 -0500 Subject: [PATCH 07/26] Forward port 3.14.3-3.14.4 db upgrade script Signed-off-by: Jason Stephenson --- .../3.14.3-3.14.4-upgrade-db.sql | 972 ++++++++++++++++++ 1 file changed, 972 insertions(+) create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/3.14.3-3.14.4-upgrade-db.sql diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.14.3-3.14.4-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.14.3-3.14.4-upgrade-db.sql new file mode 100644 index 0000000000..251f4ba2c0 --- /dev/null +++ b/Open-ILS/src/sql/Pg/version-upgrade/3.14.3-3.14.4-upgrade-db.sql @@ -0,0 +1,972 @@ +--Upgrade Script for 3.14.3 to 3.14.4 +\set eg_version '''3.14.4''' +BEGIN; +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.14.4', :eg_version); + +SELECT evergreen.upgrade_deps_block_check('1447', :eg_version); + +CREATE OR REPLACE FUNCTION authority.generate_overlay_template (source_xml TEXT) RETURNS TEXT AS $f$ +DECLARE + cset INT; + main_entry authority.control_set_authority_field%ROWTYPE; + bib_field authority.control_set_bib_field%ROWTYPE; + auth_id INT DEFAULT oils_xpath_string('//*[@tag="901"]/*[local-name()="subfield" and @code="c"]', source_xml)::INT; + tmp_data XML; + replace_data XML[] DEFAULT '{}'::XML[]; + replace_rules TEXT[] DEFAULT '{}'::TEXT[]; + auth_field XML[]; + auth_i1 TEXT; + auth_i2 TEXT; +BEGIN + IF auth_id IS NULL THEN + RETURN NULL; + END IF; + + -- Default to the LoC control set + SELECT control_set INTO cset FROM authority.record_entry WHERE id = auth_id; + + -- if none, make a best guess + IF cset IS NULL THEN + SELECT control_set INTO cset + FROM authority.control_set_authority_field + WHERE tag IN ( + SELECT UNNEST(XPATH('//*[local-name()="datafield" and starts-with(@tag,"1")]/@tag',marc::XML)::TEXT[]) + FROM authority.record_entry + WHERE id = auth_id + ) + LIMIT 1; + END IF; + + -- if STILL none, no-op change + IF cset IS NULL THEN + RETURN XMLELEMENT( + name record, + XMLATTRIBUTES('http://www.loc.gov/MARC21/slim' AS xmlns), + XMLELEMENT( name leader, '00881nam a2200193 4500'), + XMLELEMENT( + name datafield, + XMLATTRIBUTES( '905' AS tag, ' ' AS ind1, ' ' AS ind2), + XMLELEMENT( + name subfield, + XMLATTRIBUTES('d' AS code), + '901c' + ) + ) + )::TEXT; + END IF; + + FOR main_entry IN SELECT * FROM authority.control_set_authority_field acsaf WHERE acsaf.control_set = cset AND acsaf.main_entry IS NULL ORDER BY acsaf.tag LOOP + auth_field := XPATH('//*[local-name()="datafield" and @tag="'||main_entry.tag||'"][1]',source_xml::XML); + auth_i1 := (XPATH('//*[local-name()="datafield"]/@ind1',auth_field[1]))[1]; + auth_i2 := (XPATH('//*[local-name()="datafield"]/@ind2',auth_field[1]))[1]; + IF ARRAY_LENGTH(auth_field,1) > 0 THEN + FOR bib_field IN SELECT * FROM authority.control_set_bib_field WHERE authority_field = main_entry.id ORDER BY control_set_bib_field.tag LOOP + SELECT XMLELEMENT( -- XMLAGG avoids magical creation, but requires unnest subquery + name datafield, + XMLATTRIBUTES(bib_field.tag AS tag, auth_i1 AS ind1, auth_i2 AS ind2), + XMLAGG(UNNEST) + ) INTO tmp_data FROM UNNEST(XPATH('//*[local-name()="subfield"]', auth_field[1])); + replace_data := replace_data || tmp_data; + replace_rules := replace_rules || ( bib_field.tag || main_entry.sf_list || E'[0~\\)' || auth_id || '$]' ); + tmp_data = NULL; + END LOOP; + EXIT; + END IF; + END LOOP; + + SELECT XMLAGG(UNNEST) INTO tmp_data FROM UNNEST(replace_data); + + RETURN XMLELEMENT( + name record, + XMLATTRIBUTES('http://www.loc.gov/MARC21/slim' AS xmlns), + XMLELEMENT( name leader, '00881nam a2200193 4500'), + tmp_data, + XMLELEMENT( + name datafield, + XMLATTRIBUTES( '905' AS tag, ' ' AS ind1, ' ' AS ind2), + XMLELEMENT( + name subfield, + XMLATTRIBUTES('r' AS code), + ARRAY_TO_STRING(replace_rules,',') + ) + ) + )::TEXT; +END; +$f$ STABLE LANGUAGE PLPGSQL; + + +SELECT evergreen.upgrade_deps_block_check('1448', :eg_version); + +CREATE TABLE IF NOT EXISTS actor.usr_mfa_exception ( + id SERIAL PRIMARY KEY, + usr BIGINT NOT NULL REFERENCES actor.usr (id) DEFERRABLE INITIALLY DEFERRED, + ingress TEXT -- disregard MFA requirement for specific ehow (ingress types, like 'sip2'), or NULL for all +); + + + +SELECT evergreen.upgrade_deps_block_check('1449', :eg_version); + +CREATE OR REPLACE FUNCTION metabib.reingest_metabib_field_entries( + bib_id BIGINT, + skip_facet BOOL DEFAULT FALSE, + skip_display BOOL DEFAULT FALSE, + skip_browse BOOL DEFAULT FALSE, + skip_search BOOL DEFAULT FALSE, + only_fields INT[] DEFAULT '{}'::INT[] +) RETURNS VOID AS $func$ +DECLARE + fclass RECORD; + ind_data metabib.field_entry_template%ROWTYPE; + mbe_row metabib.browse_entry%ROWTYPE; + mbe_id BIGINT; + b_skip_facet BOOL; + b_skip_display BOOL; + b_skip_browse BOOL; + b_skip_search BOOL; + value_prepped TEXT; + field_list INT[] := only_fields; + field_types TEXT[] := '{}'::TEXT[]; +BEGIN + + IF field_list = '{}'::INT[] THEN + SELECT ARRAY_AGG(id) INTO field_list FROM config.metabib_field; + END IF; + + SELECT COALESCE(NULLIF(skip_facet, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_facet_indexing' AND enabled)) INTO b_skip_facet; + SELECT COALESCE(NULLIF(skip_display, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_display_indexing' AND enabled)) INTO b_skip_display; + SELECT COALESCE(NULLIF(skip_browse, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_browse_indexing' AND enabled)) INTO b_skip_browse; + SELECT COALESCE(NULLIF(skip_search, FALSE), EXISTS (SELECT enabled FROM config.internal_flag WHERE name = 'ingest.skip_search_indexing' AND enabled)) INTO b_skip_search; + + IF NOT b_skip_facet THEN field_types := field_types || '{facet}'; END IF; + IF NOT b_skip_display THEN field_types := field_types || '{display}'; END IF; + IF NOT b_skip_browse THEN field_types := field_types || '{browse}'; END IF; + IF NOT b_skip_search THEN field_types := field_types || '{search}'; END IF; + + PERFORM * FROM config.internal_flag WHERE name = 'ingest.assume_inserts_only' AND enabled; + IF NOT FOUND THEN + IF NOT b_skip_search THEN + FOR fclass IN SELECT * FROM config.metabib_class LOOP + EXECUTE $$DELETE FROM metabib.$$ || fclass.name || $$_field_entry WHERE source = $$ || bib_id || $$ AND field = ANY($1)$$ USING field_list; + END LOOP; + END IF; + IF NOT b_skip_facet THEN + DELETE FROM metabib.facet_entry WHERE source = bib_id AND field = ANY(field_list); + END IF; + IF NOT b_skip_display THEN + DELETE FROM metabib.display_entry WHERE source = bib_id AND field = ANY(field_list); + END IF; + IF NOT b_skip_browse THEN + DELETE FROM metabib.browse_entry_def_map WHERE source = bib_id AND def = ANY(field_list); + END IF; + END IF; + + FOR ind_data IN SELECT * FROM biblio.extract_metabib_field_entry( bib_id, ' ', field_types, field_list ) LOOP + + -- don't store what has been normalized away + CONTINUE WHEN ind_data.value IS NULL; + + IF ind_data.field < 0 THEN + ind_data.field = -1 * ind_data.field; + END IF; + + IF ind_data.facet_field AND NOT b_skip_facet THEN + INSERT INTO metabib.facet_entry (field, source, value) + VALUES (ind_data.field, ind_data.source, ind_data.value); + END IF; + + IF ind_data.display_field AND NOT b_skip_display THEN + INSERT INTO metabib.display_entry (field, source, value) + VALUES (ind_data.field, ind_data.source, ind_data.value); + END IF; + + + IF ind_data.browse_field AND NOT b_skip_browse THEN + -- A caveat about this SELECT: this should take care of replacing + -- old mbe rows when data changes, but not if normalization (by + -- which I mean specifically the output of + -- evergreen.oils_tsearch2()) changes. It may or may not be + -- expensive to add a comparison of index_vector to index_vector + -- to the WHERE clause below. + + CONTINUE WHEN ind_data.sort_value IS NULL; + + value_prepped := metabib.browse_normalize(ind_data.value, ind_data.field); + IF ind_data.browse_nocase THEN -- for "nocase" browse definions, look for a preexisting row that matches case-insensitively on value and use that + SELECT INTO mbe_row * FROM metabib.browse_entry + WHERE evergreen.lowercase(value) = evergreen.lowercase(value_prepped) AND sort_value = ind_data.sort_value + ORDER BY sort_value, value LIMIT 1; -- gotta pick something, I guess + END IF; + + IF mbe_row.id IS NOT NULL THEN -- asked to check for, and found, a "nocase" version to use + mbe_id := mbe_row.id; + ELSE -- otherwise, an UPSERT-protected variant + INSERT INTO metabib.browse_entry + ( value, sort_value ) VALUES + ( SUBSTRING(value_prepped FOR 1000), SUBSTRING(ind_data.sort_value FOR 1000) ) + ON CONFLICT (sort_value, value) DO UPDATE SET sort_value = SUBSTRING(EXCLUDED.sort_value FOR 1000) -- must update a row to return an existing id + RETURNING id INTO mbe_id; + END IF; + + INSERT INTO metabib.browse_entry_def_map (entry, def, source, authority) + VALUES (mbe_id, ind_data.field, ind_data.source, ind_data.authority); + END IF; + + IF ind_data.search_field AND NOT b_skip_search THEN + -- Avoid inserting duplicate rows + EXECUTE 'SELECT 1 FROM metabib.' || ind_data.field_class || + '_field_entry WHERE field = $1 AND source = $2 AND value = $3' + INTO mbe_id USING ind_data.field, ind_data.source, ind_data.value; + -- RAISE NOTICE 'Search for an already matching row returned %', mbe_id; + IF mbe_id IS NULL THEN + EXECUTE $$ + INSERT INTO metabib.$$ || ind_data.field_class || $$_field_entry (field, source, value) + VALUES ($$ || + quote_literal(ind_data.field) || $$, $$ || + quote_literal(ind_data.source) || $$, $$ || + quote_literal(ind_data.value) || + $$);$$; + END IF; + END IF; + + END LOOP; + + IF NOT b_skip_search THEN + PERFORM metabib.update_combined_index_vectors(bib_id); + PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_symspell_reification' AND enabled; + IF NOT FOUND THEN + PERFORM search.symspell_dictionary_reify(); + END IF; + END IF; + + RETURN; +END; +$func$ LANGUAGE PLPGSQL; + + +SELECT evergreen.upgrade_deps_block_check('1451', :eg_version); + +INSERT into config.workstation_setting_type (name, grp, datatype, label) +VALUES ( + 'eg.grid.catalog.record.parts', 'gui', 'object', + oils_i18n_gettext( + 'eg.grid.catalog.record.parts', + 'Grid Config: catalog.record.parts', + 'cwst', 'label' + ) +); + + + +SELECT evergreen.upgrade_deps_block_check('1454', :eg_version); + +ALTER TABLE acq.invoice_item ALTER CONSTRAINT invoice_item_fund_debit_fkey DEFERRABLE INITIALLY DEFERRED; + + +SELECT evergreen.upgrade_deps_block_check('1457', :eg_version); + +ALTER TABLE action.hold_request_reset_reason_entry DROP CONSTRAINT hold_request_reset_reason_entry_hold_fkey; +ALTER TABLE action.hold_request_reset_reason_entry ADD FOREIGN KEY (hold) REFERENCES action.hold_request(id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; + +CREATE OR REPLACE FUNCTION actor.usr_merge( src_usr INT, dest_usr INT, del_addrs BOOLEAN, del_cards BOOLEAN, deactivate_cards BOOLEAN ) RETURNS VOID AS $$ +DECLARE + suffix TEXT; + bucket_row RECORD; + picklist_row RECORD; + queue_row RECORD; + folder_row RECORD; +BEGIN + + -- Bail if src_usr equals dest_usr because the result of merging a + -- user with itself is not what you want. + IF src_usr = dest_usr THEN + RETURN; + END IF; + + -- do some initial cleanup + UPDATE actor.usr SET card = NULL WHERE id = src_usr; + UPDATE actor.usr SET mailing_address = NULL WHERE id = src_usr; + UPDATE actor.usr SET billing_address = NULL WHERE id = src_usr; + + -- actor.* + IF del_cards THEN + DELETE FROM actor.card where usr = src_usr; + ELSE + IF deactivate_cards THEN + UPDATE actor.card SET active = 'f' WHERE usr = src_usr; + END IF; + UPDATE actor.card SET usr = dest_usr WHERE usr = src_usr; + END IF; + + + IF del_addrs THEN + DELETE FROM actor.usr_address WHERE usr = src_usr; + ELSE + UPDATE actor.usr_address SET usr = dest_usr WHERE usr = src_usr; + END IF; + + UPDATE actor.usr_message SET usr = dest_usr WHERE usr = src_usr; + -- dupes are technically OK in actor.usr_standing_penalty, should manually delete them... + UPDATE actor.usr_standing_penalty SET usr = dest_usr WHERE usr = src_usr; + PERFORM actor.usr_merge_rows('actor.usr_org_unit_opt_in', 'usr', src_usr, dest_usr); + PERFORM actor.usr_merge_rows('actor.usr_setting', 'usr', src_usr, dest_usr); + + -- permission.* + PERFORM actor.usr_merge_rows('permission.usr_perm_map', 'usr', src_usr, dest_usr); + PERFORM actor.usr_merge_rows('permission.usr_object_perm_map', 'usr', src_usr, dest_usr); + PERFORM actor.usr_merge_rows('permission.usr_grp_map', 'usr', src_usr, dest_usr); + PERFORM actor.usr_merge_rows('permission.usr_work_ou_map', 'usr', src_usr, dest_usr); + + + -- container.* + + -- For each *_bucket table: transfer every bucket belonging to src_usr + -- into the custody of dest_usr. + -- + -- In order to avoid colliding with an existing bucket owned by + -- the destination user, append the source user's id (in parenthesese) + -- to the name. If you still get a collision, add successive + -- spaces to the name and keep trying until you succeed. + -- + FOR bucket_row in + SELECT id, name + FROM container.biblio_record_entry_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.biblio_record_entry_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = bucket_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR bucket_row in + SELECT id, name + FROM container.call_number_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.call_number_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = bucket_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR bucket_row in + SELECT id, name + FROM container.copy_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.copy_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = bucket_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR bucket_row in + SELECT id, name + FROM container.user_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.user_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = bucket_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + UPDATE container.user_bucket_item SET target_user = dest_usr WHERE target_user = src_usr; + + -- vandelay.* + -- transfer queues the same way we transfer buckets (see above) + FOR queue_row in + SELECT id, name + FROM vandelay.queue + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE vandelay.queue + SET owner = dest_usr, name = name || suffix + WHERE id = queue_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + UPDATE vandelay.session_tracker SET usr = dest_usr WHERE usr = src_usr; + + -- money.* + PERFORM actor.usr_merge_rows('money.collections_tracker', 'usr', src_usr, dest_usr); + PERFORM actor.usr_merge_rows('money.collections_tracker', 'collector', src_usr, dest_usr); + UPDATE money.billable_xact SET usr = dest_usr WHERE usr = src_usr; + UPDATE money.billing SET voider = dest_usr WHERE voider = src_usr; + UPDATE money.bnm_payment SET accepting_usr = dest_usr WHERE accepting_usr = src_usr; + + -- action.* + UPDATE action.circulation SET usr = dest_usr WHERE usr = src_usr; + UPDATE action.circulation SET circ_staff = dest_usr WHERE circ_staff = src_usr; + UPDATE action.circulation SET checkin_staff = dest_usr WHERE checkin_staff = src_usr; + UPDATE action.usr_circ_history SET usr = dest_usr WHERE usr = src_usr; + + UPDATE action.hold_request SET usr = dest_usr WHERE usr = src_usr; + UPDATE action.hold_request SET fulfillment_staff = dest_usr WHERE fulfillment_staff = src_usr; + UPDATE action.hold_request SET requestor = dest_usr WHERE requestor = src_usr; + UPDATE action.hold_request SET canceled_by = dest_usr WHERE canceled_by = src_usr; + UPDATE action.hold_request_reset_reason_entry SET requestor = dest_usr WHERE requestor = src_usr; + UPDATE action.hold_notification SET notify_staff = dest_usr WHERE notify_staff = src_usr; + + UPDATE action.in_house_use SET staff = dest_usr WHERE staff = src_usr; + UPDATE action.non_cataloged_circulation SET staff = dest_usr WHERE staff = src_usr; + UPDATE action.non_cataloged_circulation SET patron = dest_usr WHERE patron = src_usr; + UPDATE action.non_cat_in_house_use SET staff = dest_usr WHERE staff = src_usr; + UPDATE action.survey_response SET usr = dest_usr WHERE usr = src_usr; + + -- acq.* + UPDATE acq.fund_allocation SET allocator = dest_usr WHERE allocator = src_usr; + UPDATE acq.fund_transfer SET transfer_user = dest_usr WHERE transfer_user = src_usr; + UPDATE acq.invoice SET closed_by = dest_usr WHERE closed_by = src_usr; + + -- transfer picklists the same way we transfer buckets (see above) + FOR picklist_row in + SELECT id, name + FROM acq.picklist + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE acq.picklist + SET owner = dest_usr, name = name || suffix + WHERE id = picklist_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + UPDATE acq.purchase_order SET owner = dest_usr WHERE owner = src_usr; + UPDATE acq.po_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.po_note SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.provider_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.provider_note SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.lineitem_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.lineitem_note SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.lineitem_usr_attr_definition SET usr = dest_usr WHERE usr = src_usr; + + -- asset.* + UPDATE asset.copy SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.copy SET editor = dest_usr WHERE editor = src_usr; + UPDATE asset.copy_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.call_number SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.call_number SET editor = dest_usr WHERE editor = src_usr; + UPDATE asset.call_number_note SET creator = dest_usr WHERE creator = src_usr; + + -- serial.* + UPDATE serial.record_entry SET creator = dest_usr WHERE creator = src_usr; + UPDATE serial.record_entry SET editor = dest_usr WHERE editor = src_usr; + + -- reporter.* + -- It's not uncommon to define the reporter schema in a replica + -- DB only, so don't assume these tables exist in the write DB. + BEGIN + UPDATE reporter.template SET owner = dest_usr WHERE owner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + BEGIN + UPDATE reporter.report SET owner = dest_usr WHERE owner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + BEGIN + UPDATE reporter.schedule SET runner = dest_usr WHERE runner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + BEGIN + -- transfer folders the same way we transfer buckets (see above) + FOR folder_row in + SELECT id, name + FROM reporter.template_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.template_folder + SET owner = dest_usr, name = name || suffix + WHERE id = folder_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + BEGIN + -- transfer folders the same way we transfer buckets (see above) + FOR folder_row in + SELECT id, name + FROM reporter.report_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.report_folder + SET owner = dest_usr, name = name || suffix + WHERE id = folder_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + BEGIN + -- transfer folders the same way we transfer buckets (see above) + FOR folder_row in + SELECT id, name + FROM reporter.output_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.output_folder + SET owner = dest_usr, name = name || suffix + WHERE id = folder_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + -- propagate preferred name values from the source user to the + -- destination user, but only when values are not being replaced. + WITH susr AS (SELECT * FROM actor.usr WHERE id = src_usr) + UPDATE actor.usr SET + pref_prefix = + COALESCE(pref_prefix, (SELECT pref_prefix FROM susr)), + pref_first_given_name = + COALESCE(pref_first_given_name, (SELECT pref_first_given_name FROM susr)), + pref_second_given_name = + COALESCE(pref_second_given_name, (SELECT pref_second_given_name FROM susr)), + pref_family_name = + COALESCE(pref_family_name, (SELECT pref_family_name FROM susr)), + pref_suffix = + COALESCE(pref_suffix, (SELECT pref_suffix FROM susr)) + WHERE id = dest_usr; + + -- Copy and deduplicate name keywords + -- String -> array -> rows -> DISTINCT -> array -> string + WITH susr AS (SELECT * FROM actor.usr WHERE id = src_usr), + dusr AS (SELECT * FROM actor.usr WHERE id = dest_usr) + UPDATE actor.usr SET name_keywords = ( + WITH keywords AS ( + SELECT DISTINCT UNNEST( + REGEXP_SPLIT_TO_ARRAY( + COALESCE((SELECT name_keywords FROM susr), '') || ' ' || + COALESCE((SELECT name_keywords FROM dusr), ''), E'\\s+' + ) + ) AS parts + ) SELECT STRING_AGG(kw.parts, ' ') FROM keywords kw + ) WHERE id = dest_usr; + + -- Finally, delete the source user + PERFORM actor.usr_delete(src_usr,dest_usr); + +END; +$$ LANGUAGE plpgsql; + +CREATE OR REPLACE FUNCTION actor.usr_purge_data( + src_usr IN INTEGER, + specified_dest_usr IN INTEGER +) RETURNS VOID AS $$ +DECLARE + suffix TEXT; + renamable_row RECORD; + dest_usr INTEGER; +BEGIN + + IF specified_dest_usr IS NULL THEN + dest_usr := 1; -- Admin user on stock installs + ELSE + dest_usr := specified_dest_usr; + END IF; + + -- action_trigger.event (even doing this, event_output may--and probably does--contain PII and should have a retention/removal policy) + UPDATE action_trigger.event SET context_user = dest_usr WHERE context_user = src_usr; + + -- acq.* + UPDATE acq.fund_allocation SET allocator = dest_usr WHERE allocator = src_usr; + UPDATE acq.lineitem SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.lineitem SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.lineitem SET selector = dest_usr WHERE selector = src_usr; + UPDATE acq.lineitem_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.lineitem_note SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.invoice SET closed_by = dest_usr WHERE closed_by = src_usr; + DELETE FROM acq.lineitem_usr_attr_definition WHERE usr = src_usr; + + -- Update with a rename to avoid collisions + FOR renamable_row in + SELECT id, name + FROM acq.picklist + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE acq.picklist + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + UPDATE acq.picklist SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.picklist SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.po_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.po_note SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.purchase_order SET owner = dest_usr WHERE owner = src_usr; + UPDATE acq.purchase_order SET creator = dest_usr WHERE creator = src_usr; + UPDATE acq.purchase_order SET editor = dest_usr WHERE editor = src_usr; + UPDATE acq.claim_event SET creator = dest_usr WHERE creator = src_usr; + + -- action.* + DELETE FROM action.circulation WHERE usr = src_usr; + UPDATE action.circulation SET circ_staff = dest_usr WHERE circ_staff = src_usr; + UPDATE action.circulation SET checkin_staff = dest_usr WHERE checkin_staff = src_usr; + UPDATE action.hold_notification SET notify_staff = dest_usr WHERE notify_staff = src_usr; + UPDATE action.hold_request SET fulfillment_staff = dest_usr WHERE fulfillment_staff = src_usr; + UPDATE action.hold_request SET requestor = dest_usr WHERE requestor = src_usr; + UPDATE action.hold_request SET canceled_by = dest_usr WHERE canceled_by = src_usr; + UPDATE action.hold_request_reset_reason_entry SET requestor = dest_usr WHERE requestor = src_usr; + DELETE FROM action.hold_request WHERE usr = src_usr; + UPDATE action.in_house_use SET staff = dest_usr WHERE staff = src_usr; + UPDATE action.non_cat_in_house_use SET staff = dest_usr WHERE staff = src_usr; + DELETE FROM action.non_cataloged_circulation WHERE patron = src_usr; + UPDATE action.non_cataloged_circulation SET staff = dest_usr WHERE staff = src_usr; + DELETE FROM action.survey_response WHERE usr = src_usr; + UPDATE action.fieldset SET owner = dest_usr WHERE owner = src_usr; + DELETE FROM action.usr_circ_history WHERE usr = src_usr; + UPDATE action.curbside SET notes = NULL WHERE patron = src_usr; + + -- actor.* + DELETE FROM actor.card WHERE usr = src_usr; + DELETE FROM actor.stat_cat_entry_usr_map WHERE target_usr = src_usr; + DELETE FROM actor.usr_privacy_waiver WHERE usr = src_usr; + DELETE FROM actor.usr_message WHERE usr = src_usr; + + -- The following update is intended to avoid transient violations of a foreign + -- key constraint, whereby actor.usr_address references itself. It may not be + -- necessary, but it does no harm. + UPDATE actor.usr_address SET replaces = NULL + WHERE usr = src_usr AND replaces IS NOT NULL; + DELETE FROM actor.usr_address WHERE usr = src_usr; + DELETE FROM actor.usr_org_unit_opt_in WHERE usr = src_usr; + UPDATE actor.usr_org_unit_opt_in SET staff = dest_usr WHERE staff = src_usr; + DELETE FROM actor.usr_setting WHERE usr = src_usr; + DELETE FROM actor.usr_standing_penalty WHERE usr = src_usr; + UPDATE actor.usr_message SET title = 'purged', message = 'purged', read_date = NOW() WHERE usr = src_usr; + DELETE FROM actor.usr_message WHERE usr = src_usr; + UPDATE actor.usr_standing_penalty SET staff = dest_usr WHERE staff = src_usr; + UPDATE actor.usr_message SET editor = dest_usr WHERE editor = src_usr; + + -- asset.* + UPDATE asset.call_number SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.call_number SET editor = dest_usr WHERE editor = src_usr; + UPDATE asset.call_number_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.copy SET creator = dest_usr WHERE creator = src_usr; + UPDATE asset.copy SET editor = dest_usr WHERE editor = src_usr; + UPDATE asset.copy_note SET creator = dest_usr WHERE creator = src_usr; + + -- auditor.* + DELETE FROM auditor.actor_usr_address_history WHERE id = src_usr; + DELETE FROM auditor.actor_usr_history WHERE id = src_usr; + UPDATE auditor.asset_call_number_history SET creator = dest_usr WHERE creator = src_usr; + UPDATE auditor.asset_call_number_history SET editor = dest_usr WHERE editor = src_usr; + UPDATE auditor.asset_copy_history SET creator = dest_usr WHERE creator = src_usr; + UPDATE auditor.asset_copy_history SET editor = dest_usr WHERE editor = src_usr; + UPDATE auditor.biblio_record_entry_history SET creator = dest_usr WHERE creator = src_usr; + UPDATE auditor.biblio_record_entry_history SET editor = dest_usr WHERE editor = src_usr; + + -- biblio.* + UPDATE biblio.record_entry SET creator = dest_usr WHERE creator = src_usr; + UPDATE biblio.record_entry SET editor = dest_usr WHERE editor = src_usr; + UPDATE biblio.record_note SET creator = dest_usr WHERE creator = src_usr; + UPDATE biblio.record_note SET editor = dest_usr WHERE editor = src_usr; + + -- container.* + -- Update buckets with a rename to avoid collisions + FOR renamable_row in + SELECT id, name + FROM container.biblio_record_entry_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.biblio_record_entry_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR renamable_row in + SELECT id, name + FROM container.call_number_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.call_number_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR renamable_row in + SELECT id, name + FROM container.copy_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.copy_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + FOR renamable_row in + SELECT id, name + FROM container.user_bucket + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE container.user_bucket + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + DELETE FROM container.user_bucket_item WHERE target_user = src_usr; + + -- money.* + DELETE FROM money.billable_xact WHERE usr = src_usr; + DELETE FROM money.collections_tracker WHERE usr = src_usr; + UPDATE money.collections_tracker SET collector = dest_usr WHERE collector = src_usr; + + -- permission.* + DELETE FROM permission.usr_grp_map WHERE usr = src_usr; + DELETE FROM permission.usr_object_perm_map WHERE usr = src_usr; + DELETE FROM permission.usr_perm_map WHERE usr = src_usr; + DELETE FROM permission.usr_work_ou_map WHERE usr = src_usr; + + -- reporter.* + -- Update with a rename to avoid collisions + BEGIN + FOR renamable_row in + SELECT id, name + FROM reporter.output_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.output_folder + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + BEGIN + UPDATE reporter.report SET owner = dest_usr WHERE owner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + -- Update with a rename to avoid collisions + BEGIN + FOR renamable_row in + SELECT id, name + FROM reporter.report_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.report_folder + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + BEGIN + UPDATE reporter.schedule SET runner = dest_usr WHERE runner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + BEGIN + UPDATE reporter.template SET owner = dest_usr WHERE owner = src_usr; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + -- Update with a rename to avoid collisions + BEGIN + FOR renamable_row in + SELECT id, name + FROM reporter.template_folder + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE reporter.template_folder + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + EXCEPTION WHEN undefined_table THEN + -- do nothing + END; + + -- vandelay.* + -- Update with a rename to avoid collisions + FOR renamable_row in + SELECT id, name + FROM vandelay.queue + WHERE owner = src_usr + LOOP + suffix := ' (' || src_usr || ')'; + LOOP + BEGIN + UPDATE vandelay.queue + SET owner = dest_usr, name = name || suffix + WHERE id = renamable_row.id; + EXCEPTION WHEN unique_violation THEN + suffix := suffix || ' '; + CONTINUE; + END; + EXIT; + END LOOP; + END LOOP; + + UPDATE vandelay.session_tracker SET usr = dest_usr WHERE usr = src_usr; + + -- NULL-ify addresses last so other cleanup (e.g. circ anonymization) + -- can access the information before deletion. + UPDATE actor.usr SET + active = FALSE, + card = NULL, + mailing_address = NULL, + billing_address = NULL + WHERE id = src_usr; + +END; +$$ LANGUAGE plpgsql; + +COMMIT; + +-- Update auditor tables to catch changes to source tables. +-- Can be removed/skipped if there were no schema changes. +SELECT auditor.update_auditors(); From 9d695c9cc3d6976598fa9d947acffd9cfe512de8 Mon Sep 17 00:00:00 2001 From: Gina Monti Date: Tue, 18 Feb 2025 12:37:38 -0500 Subject: [PATCH 08/26] Updating Item Status page Updating screenshots and instructions for this page: https://docs.evergreen-ils.org/docs/latest/admin/copy_statuses.html Signed-off-by: Jane Sandberg --- .../images/copy_status/copy_status_add.png | Bin 55969 -> 0 bytes .../images/copy_status/copy_status_delete.png | Bin 33491 -> 0 bytes .../images/copy_status/copy_status_edit.png | Bin 8402 -> 0 bytes .../delete-item-status-confirmation.png | Bin 0 -> 13190 bytes .../copy_status/delete-item-status-option.png | Bin 0 -> 50463 bytes .../copy_status/edit-item-status-option.png | Bin 0 -> 50543 bytes .../copy_status/new-item-status-form.png | Bin 0 -> 47276 bytes docs/modules/admin/pages/copy_statuses.adoc | 37 +++++++++--------- 8 files changed, 19 insertions(+), 18 deletions(-) delete mode 100644 docs/modules/admin/assets/images/copy_status/copy_status_add.png delete mode 100644 docs/modules/admin/assets/images/copy_status/copy_status_delete.png delete mode 100644 docs/modules/admin/assets/images/copy_status/copy_status_edit.png create mode 100644 docs/modules/admin/assets/images/copy_status/delete-item-status-confirmation.png create mode 100644 docs/modules/admin/assets/images/copy_status/delete-item-status-option.png create mode 100644 docs/modules/admin/assets/images/copy_status/edit-item-status-option.png create mode 100644 docs/modules/admin/assets/images/copy_status/new-item-status-form.png diff --git a/docs/modules/admin/assets/images/copy_status/copy_status_add.png b/docs/modules/admin/assets/images/copy_status/copy_status_add.png deleted file mode 100644 index 8c01477344a5dca592a84482ddbb116f4d63e58f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55969 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 a?m?d^n{|-igvxKgkGQamP?3PH_x}NGgue#> diff --git a/docs/modules/admin/assets/images/copy_status/copy_status_delete.png b/docs/modules/admin/assets/images/copy_status/copy_status_delete.png deleted file mode 100644 index 525a84ce72bf3c86a48602534914f86b692671dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33491 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 i29Bz+SL%fWUvysO-_Oe$b2w=WDq$hSY4EO`V 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 diff --git a/docs/modules/admin/assets/images/copy_status/delete-item-status-confirmation.png b/docs/modules/admin/assets/images/copy_status/delete-item-status-confirmation.png new file mode 100644 index 0000000000000000000000000000000000000000..dcccd38c87817dbe04f17f9e2673eb08012a68b5 GIT binary patch literal 13190 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 h1#xb3tltPDK_)CvgjF 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 `@?wIkL<4bR){~BJBs{>}el1pZK!akp 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 `@?wIkL<4bR){~BJBs{>}el1pZK!akp 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 U8rLt1vF}?;UGHYz^}B)p1L!Qw?*IS* literal 0 HcmV?d00001 diff --git a/docs/modules/admin/pages/copy_statuses.adoc b/docs/modules/admin/pages/copy_statuses.adoc index 7e1a5b24e9..d0de9670a0 100644 --- a/docs/modules/admin/pages/copy_statuses.adoc +++ b/docs/modules/admin/pages/copy_statuses.adoc @@ -57,25 +57,27 @@ Evergreen comes pre-loaded with a number of item statuses. == Adding Item Statuses == -. In the _New Status_ field, enter the name of the new status you wish to add. -. Click _Add_. -. Locate your new status and check the _Holdable_ check box if you wish to allow -users to place holds on items in this status. Check _OPAC Visible_ if you wish -for this status to appear in the public catalog. Check _Sets copy active_ if you -wish for this status to set the active date for new items. -. Click _Save Changes_ at the bottom of the screen to save changes to the new +. In the _New Item Status_ field, enter the name of the new status you wish to add. +. Fill out the form as needed. +. Click _Save_ at the bottom of the screen to save changes to the new status. -image::copy_status/copy_status_add.png[Adding item statuses] +image::copy_status/new-item-status-form.png[Adding item statuses] + +[TIP] +==== +The _Holdable_ check box will allow +users to place holds on items in this status. _OPAC Visible_ allows for this status to appear in the public catalog. _Sets copy active_ allows this status to set the active date for new items. +==== == Deleting Item Statuses == -. Highlight the statuses you wish to delete. Ctrl-click to select more than one -status. -. Click _Delete Selected_. -. Click _OK_ to verify. +. Highlight the statuses you wish to delete. Right-click and select _Delete Selected_. +. Click _Confirm_ to verify. + +image::copy_status/delete-item-status-option.png[Delete an item status] -image::copy_status/copy_status_delete.png[Deleting item statuses] +image::copy_status/delete-item-status-confirmation.png[Confirm to delete item status] [NOTE] You will not be able to delete statuses if items currently exist with that @@ -83,11 +85,10 @@ status. == Editing Item Statuses == -. Double click on a status name to change its name. Enter the new name. +. Select desired status and right-click. -. To change whether a status is holdable, visible in the OPAC, or sets the -item's active date, check or uncheck the relevant checkbox. +. Choose _Edit Selected_ -. Once you have finished editing the statuses, remember to click Save Changes. +. You will be brought back to the same form that allows a new status creation. Make your changes and click _Save_. -image::copy_status/copy_status_edit.png[Editing item statuses] +image::copy_status/edit-item-status-option.png[Editing item statuses] From e904ffba37ae8094212e486e6dab91e6179e4097 Mon Sep 17 00:00:00 2001 From: IanSkelskey Date: Thu, 13 Feb 2025 15:08:29 -0500 Subject: [PATCH 09/26] Refactor action triggers documentation and update images - Removed outdated images: `event_def_details.png`, `new_event_def.png` - Added new images: `local_admin_option.png`, `new_event_def_btn.png`, `tabs.png` - Updated images for sections: Email and Print Event Definitions and Parameters - Cleanup and streamlined content in action triggers documentation: - Changed \"Introduction\" to \"Overview\" - Reorganized content for clarity - Consolidated some sections and reduced redundancy - Added explanations for components like Hooks and Reactors - Expanded on how to create alternate message templates - Explained cron job setup in detail Release-Note: Improve and reorganize action triggers documentation in admin module Signed-off-by: Ian Skelskey Signed-off-by: Jane Sandberg --- .../images/actiontriggers/admin-menu-item.png | Bin 0 -> 5114 bytes .../images/actiontriggers/admin-submenu.png | Bin 0 -> 38805 bytes .../actiontriggers/event_def_details.png | Bin 29430 -> 0 bytes .../actiontriggers/local_admin_option.png | Bin 0 -> 8114 bytes .../images/actiontriggers/new_event_def.png | Bin 28250 -> 0 bytes .../actiontriggers/new_event_def_btn.png | Bin 0 -> 11904 bytes .../actiontriggers/new_event_def_modal.png | Bin 0 -> 41542 bytes .../images/actiontriggers/ope_event_defs.png | Bin 23485 -> 97030 bytes .../actiontriggers/ope_event_params.png | Bin 17630 -> 48243 bytes .../assets/images/actiontriggers/tabs.png | Bin 0 -> 14667 bytes docs/modules/admin/pages/actiontriggers.adoc | 656 +++++++++++------- 11 files changed, 394 insertions(+), 262 deletions(-) create mode 100644 docs/modules/admin/assets/images/actiontriggers/admin-menu-item.png create mode 100644 docs/modules/admin/assets/images/actiontriggers/admin-submenu.png delete mode 100644 docs/modules/admin/assets/images/actiontriggers/event_def_details.png create mode 100644 docs/modules/admin/assets/images/actiontriggers/local_admin_option.png delete mode 100644 docs/modules/admin/assets/images/actiontriggers/new_event_def.png create mode 100644 docs/modules/admin/assets/images/actiontriggers/new_event_def_btn.png create mode 100644 docs/modules/admin/assets/images/actiontriggers/new_event_def_modal.png create mode 100644 docs/modules/admin/assets/images/actiontriggers/tabs.png diff --git a/docs/modules/admin/assets/images/actiontriggers/admin-menu-item.png b/docs/modules/admin/assets/images/actiontriggers/admin-menu-item.png new file mode 100644 index 0000000000000000000000000000000000000000..2b2863bbc8f841d4068fb39cc691d8c87c3581a3 GIT binary patch literal 5114 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%0D4mcC7vIN&UtvYViGM|$j~%(ckQ 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 literal 0 HcmV?d00001 diff --git a/docs/modules/admin/assets/images/actiontriggers/event_def_details.png b/docs/modules/admin/assets/images/actiontriggers/event_def_details.png deleted file mode 100644 index 25e3a92b50215555d72f5be18e25aa2dccccecbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29430 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 oK` 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 diff --git a/docs/modules/admin/assets/images/actiontriggers/new_event_def_btn.png b/docs/modules/admin/assets/images/actiontriggers/new_event_def_btn.png new file mode 100644 index 0000000000000000000000000000000000000000..e638d48cf615ee5194bf1b0a4cd9ff03bbf64a9c GIT binary patch literal 11904 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 literal 0 HcmV?d00001 diff --git a/docs/modules/admin/assets/images/actiontriggers/new_event_def_modal.png b/docs/modules/admin/assets/images/actiontriggers/new_event_def_modal.png new file mode 100644 index 0000000000000000000000000000000000000000..041496628d890e266bf34cdb5877aa9019623948 GIT binary patch literal 41542 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

vYH*#k6wC$zHP#68&clZ!j<ATr(jneD}2O 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

?WznV%Z^T=(wny~C#SUfk5062Tqi|%$oUuf< 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

QJlkJTuGBxNe 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 literal 23485 zcmd42byQp5w=Wt>DQ%%h@dBkq3luM|E$;4C+zJ7L1_`vdOK~ky+?^0;ad+3^POuQ1 zoBqCM+;hi$_uO&LeKOu3naNt&YtFUT+I!k(u22;v=@-vmJqG{)FJxsT)Bu1-V*mi! z!qZ2np0Bg2C8#enkec)-K>0AmE~@d^>Z9UE0H7)w>(&GV)qdtEqYDB6a60~e(0YJ{ z<^X`cnykb}4G*Kkr5E0WQ?Sd2Dy^m@trplL)4*cYQnbmK_7}Kv3C}-4U;^#tz{uqEG}euUZz?3{oNKXeGr}*flv4UiOP0L)fgZ{L7La_^pNq zhX+N>;}4W9<411l*pdsDGJXq)ZT6x{e5(OC3|TJyyn?

ur0I0DweXW%4@kMwBaJy}<3-vInyJ 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⋙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

GpjP( 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 diff --git a/docs/modules/admin/assets/images/actiontriggers/tabs.png b/docs/modules/admin/assets/images/actiontriggers/tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..de07adabc695cb0dcb19f74964807645d407f47a GIT binary patch literal 14667 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%0DS&8u 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 z *Local Administration* -> *Notifications / Action triggers*. - -[NOTE] -========== -You must have Local Administrator permissions to access the Action Triggers module. -========== - -You will notice four tabs on this page: <>, <>, <> and <>. - - -[#event_definitions] - -== Event Definitions == - -Event Definitions is the main tab and contains the key fields when working with action triggers. These fields include: - -=== Table 1: Action Trigger Event Definitions === - - -|============================================== -|*Field* |*Description* -| Owning Library |The shortname of the library for which the action / trigger / hook is defined. -| Name |The name of the trigger event, that links to a trigger event environment containing a set of fields that will be returned to the <> and/or <> for processing. -| <> |The name of the trigger for the trigger event. The underlying `action_trigger.hook` table defines the Fieldmapper class in the core_type column off of which the rest of the field definitions "hang". -| Enabled |Sets the given trigger as enabled or disabled. This must be set to enabled for the Action trigger to run. -| Processing Delay |Defines how long after a given trigger / hook event has occurred before the associated action ("Reactor") will be taken. -| Processing Delay Context Field |Defines the field associated with the event on which the processing delay is calculated. For example, the processing delay context field on the `hold.capture` hook (which has a `core_type` of `ahr`) is _capture_time_. -| Processing Group Context Field |Used to batch actions based on its associated group. -| <> |Links the action trigger to the Reactor. -| <> |The subroutines receive the trigger environment as an argument and return either _1_ if the validator is _true_ or _0_ if the validator returns _false_. -| Event Repeatability Delay |Allows events to be repeated after this delay interval. -| Failure Cleanup |After an event is reacted to and if there is a failure a cleanup module can be run to clean up after the event. -| Granularity |Used to group events by how often they should be run. Options are Hourly, Daily, Weekly, Monthly, Yearly, but you may also create new values. -| Max Event Validity Delay |Allows events to have a range of time that they are valid. This value works with the *Processing Delay* to define a time range. -| Message Library Path |Defines the org_unit object for a Patron Message Center message. -| Message Template |A Template Toolkit template that can be used to generate output for a Patron Message Center message. The output may or may not be used by the reactor or another external process. -| Message Title |The title that will display on a Patron Message Center message. -| Message User Path |Defines the user object for a Patron Message Center message. -| Opt-In Settings Type |Choose which User Setting Type will decide if this event will be valid for a certain user. Use this to allow users to Opt-In or Opt-Out of certain events. -| Opt-In User Field |Set to the name of the field in the selected hook's core type that will link the core type to the actor.usr table. -| Success Cleanup |After an event is reacted to successfully a cleanup module can be run to clean up after the event. -| Template |A Template Toolkit template that can be used to generate output. The output may or may not be used by the reactor or another external process. -|============================================== - - -== Creating Action Triggers == - -. From the top menu, select *Administration* -> *Local Administration* -> *Notifications / Action triggers*. -. Select the _New Event Definition_ button. -+ -image::actiontriggers/new_event_def.png[New Event Definition] -+ -. Select an _Owning Library_. -. Create a unique _Name_ for your new action trigger. -. Select the _Hook_. -. Check the _Enabled_ check box. -. Set the _Processing Delay_ in the appropriate format. E.g. _7 days_ to run 7 days from the trigger event or _00:01:00_ to run 1 hour after the _Processing Delay Context Field_. -. Set the _Processing Delay Context Field_ and _Processing Group Context Field_. -. Select the _Reactor_ and _Validator_. -. Set the _Event Repeatability Delay_. -. Select the _Failure Cleanup_ and _Granularity_. -+ -image::actiontriggers/event_def_details.png[Event Definition Details] -+ -. Set the _Max Event Validity Delay_. -. If you wish to send a User Message through the Message Center, set a _Message Library Path_. Enter text in the _Message Template_. Enter a title for this message in _Message Title_, and set a value in _Message User Path_. -. Select the _Opt-In Setting Type_. -. Set the _Opt-In User Field_. -. Select the _Success Cleanup_. -. Enter text in the _Template_ text box if required. These are for email messages. Here is a sample template for sending 90 day overdue notices: - - - [%- USE date -%] - [%- user = target.0.usr -%] - To: [%- params.recipient_email || user.email %] - From: [%- helpers.get_org_setting(user.home_ou.id, 'org.bounced_emails') || lib.email || params.sender_email || default_sender %] - Subject: Overdue Items Marked Lost - Auto-Submitted: auto-generated - - Dear [% user.family_name %], [% user.first_given_name %] - The following items are 90 days overdue and have been marked LOST. - [%- params.recipient_email || user.email %][%- params.sender_email || default_sender %] - [% FOR circ IN target %] - Title: [% circ.target_copy.call_number.record.simple_record.title %] - Barcode: [% circ.target_copy.barcode %] - Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %] - Item Cost: [% helpers.get_copy_price(circ.target_copy) %] - Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %] - Library: [% circ.circ_lib.name %] - [% END %] - - [% FOR circ IN target %] - Title: [% circ.target_copy.call_number.record.simple_record.title %] - Barcode: [% circ.target_copy.barcode %] - Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %] - Item Cost: [% helpers.get_copy_price(circ.target_copy) %] - Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %] - Library: [% circ.circ_lib.name %] - [% END %] - -. Once you are satisfied with your new event trigger, click the _Save_ button located at the bottom of the form. - - -[TIP] -========= -A quick and easy way to create new action triggers is to clone an existing action trigger. -========= - -[[creating_alternate_message_templates]] -=== Creating Alternate Message Templates === -indexterm:[Localization, Notices, Localized Notices] - -As of version 3.9 there is the ability to create alternate templates for Action Triggers that will generate locale specific out for Action Triggers. If you send notices in multiple languages, we recommend putting some words to that effect in your notice templates. The template, message and message title can all be localized. To use the feature the following UI elements have been added: +Action Triggers allow administrators to set up actions for specific events, +useful for notifications such as hold notifications. -* When you double-click on an Event Definition under Notifications / Action Triggers to edit it there will be a tab option for _Edit Alternate Template_ if the reactor is *ProcessTemplate*, *SendEmail*, or *SendSMS*. Note that this feature does not automatically translate existing templates, and an Evergreen administrator must create new alternate templates for each desired locale. -* In the Patron Registration and Patron Editor screens staff members may select a locale for a patron and edit it in the _Patron Preferred Language_ field. -* Patrons may set their own locale in the My Account interface off the OPAC by going to _Preferences --> Personal Information_ and setting the _Preferred Language_ field. +=== Accessing the Notifications / Action Triggers Module === -The templates used on the Edit Definition tab are the defaults that are used if there are no alternate templates available that match the preferred language. If alternate templates are available the system will use a locale that is an exact match and then if failing that use one where the language code matches and then fall back to the default one. +Access the Notifications / Action Triggers from the top menu bar in the staff client +by navigating to *Administration* -> *Local Administration* -> +*Notifications / Action triggers*. -For example, if a patron has a locale of fr-CA and there are templates for both fr-CA and fr-FR it will use the fr-CA. If the fr-CA template was deleted it would fall back on using the fr-FR for the patron since it at least shares the same base language. +.Administration Menu Item +image::actiontriggers/admin-menu-item.png[Administration top menu option.,width=120] -Valid locales are the codes defined in the `i18n_locale` table in the config schema. +.Administration Submenu +image::actiontriggers/admin-submenu.png[Administration menu options.,width=240] - - - -=== Cloning Existing Action Triggers === - -. Right click on the line of the action trigger you wish to clone, and choose _Clone Selected_. -.. You will be asked to confirm whether or not you wish to clone the event definition environment along with the action trigger. -. An editing window will open. Notice that the fields will be populated with content from the cloned action trigger. Edit as necessary and give the new action trigger a unique Name. -. Click _Save_. - -=== Editing Action Triggers === - -. Double-click on the action trigger you wish to edit or right click on the line of the action trigger you wish to edit, and choose _Edit Event Definition_. -. The Edit Definition screen will appear. When you are finished editing, click _Save_ at the bottom of the form. Or click _Back to Notification/Action Triggers_ to exit without saving. - - -=== Deleting Action Triggers === - -. Right click on the line of the action trigger you wish to delete. -. Choose _Delete Selected_ ofrom the action menu. +.Notification / Action Triggers Item in Local Administration +image::actiontriggers/local_admin_option.png[Local Administration menu item for Notifications / Action Triggers.,width=300] [NOTE] -============ -Before deleting an action trigger, you should consider disabling it through the editing form. This way you can keep it for future use or cloning. -============ - -=== Testing Action Triggers === - -. Go to the list of action triggers. -. . Double-click on the action trigger you wish to edit or right click on the line of the action trigger you wish to edit, and choose _Edit Event Definition_. -. Go to the _Run Tests_ tab. -. If there is a test available, fill in the required information and click _Go_. -. View the output of the test. - -WARNING: If you are testing an email or SMS notification, use a test account and email as an example. Using the Test feature will actually result in the notification being sent if configured correctly. Similarly, use a test item or barcode when testing a circulation-based event like Mark Lost since the test will mark the item as lost. - -[#hooks] +==== +You must have Local Administrator permissions to access the Notifications / +Action Triggers Module. +==== + +== Main Parts of Action Triggers == + +Action triggers are composed of four main components: Event Definitions, +Hooks, Reactors, and Validators. + +.Table of Main Parts of Action Triggers +[cols="1,3"] +|=== +| *Part* | *Description* +| Event Definitions | Define the events and conditions that initiate actions. +| Hooks | Specify the Fieldmapper class and link to the IDL class. +| Reactors | Connect triggers to the actions to be executed. +| Validators | Establish validation tests to determine if actions should be executed. +|=== + +Each of these components has a corresponding tab in the Notifications / +Action Triggers module. +Selecting a tab displays a grid of relevant data with options to add, edit, +or delete entries. + +.Action Trigger Module Tabs +image::actiontriggers/tabs.png[Action Trigger Module Tabs, width=450] + +=== Event Definitions === + +Event Definitions is the main tab and contains the key fields when working +with action triggers. +An event definition is a set of fields that will be returned to the +validators and/or reactors for processing. +Normally, when you create a new action trigger, you will start here. +Evergreen comes with a set of predefined hooks, validators, and reactors +that can be used to create new action triggers. + +[[_event_definition_fields]] +.Event Definition Fields +[cols="1,3"] +|=== +| *Field* | *Description* +| Owning Library | The shortname of the library for which the action / trigger / hook is defined. +| Name | The name of the trigger event, that links to a trigger event environment containing a set of fields that will be returned to the xref:#_validators[Validators] and/or xref:#_reactors[Reactors] for processing. +| xref:#hooks[Hook] | The name of the trigger for the trigger event. The underlying `action_trigger.hook` table defines the Fieldmapper class in the core_type column off of which the rest of the field definitions "hang". +| Enabled | Sets the given trigger as enabled or disabled. This must be set to enabled for the Action trigger to run. +| Processing Delay | Defines how long after a given trigger / hook event has occurred before the associated action ("Reactor") will be taken. +| Processing Delay Context Field | Defines the field associated with the event on which the processing delay is calculated. +| Processing Group Context Field | Used to batch actions based on its associated group. +| Reactor | Links the action trigger to the Reactor. +| xref:#_validator[Validator] | The subroutines receive the trigger environment as an argument and return either _1_ if the validator is _true_ or _0_ if the validator returns _false_. +| Event Repeatability Delay | Allows events to be repeated after this delay interval. +| Failure Cleanup | After an event is reacted to and if there is a failure a cleanup module can be run to clean up after the event. +| Granularity | Used to group events by how often they should be run. +| Max Event Validity Delay | Allows events to have a range of time that they are valid. +| Message Library Path | Defines the org_unit object for a Patron Message Center message. +| Message Template | A Template Toolkit template that can be used to generate output for a Patron Message Center message. +| Message Title | The title that will display on a Patron Message Center message. +| Message User Path | Defines the user object for a Patron Message Center message. +| Opt-In Settings Type | Choose which User Setting Type will decide if this event will be valid for a certain user. +| Opt-In User Field | Set to the name of the field in the selected hook's core type that will link the core type to the actor.usr table. +| Success Cleanup | After an event is reacted to successfully a cleanup module can be run to clean up after the event. +| Template | A Template Toolkit template that can be used to generate output. +|=== === Hooks === -Hooks define the Fieldmapper class in the core_type column off of which the rest of the field definitions "hang". - - -==== Table 2. Hooks ==== +Hooks define the class in the Fieldmapper that an action trigger will listen +for. +Essentially, a hook represents an event that may occur in the system. - -|======================= +.Hook Fields +[cols="1,3"] +|=== | *Field* | *Description* | Hook Key | A unique name given to the hook. | Core Type | Used to link the action trigger to the IDL class in `fm_IDL.xml` | Description | Text to describe the purpose of the hook. | Passive | Indicates whether or not an event is created by direct user action or is circumstantial. -|======================= +|=== -You may also create, edit and delete Hooks but the Core Type must refer to an IDL class in the `fm_IDL.xml` file. +==== Passive vs. Active Hooks ==== +*Passive Hooks*: These hooks require a periodic check by a cron job to +determine whether an event has occurred. +Examples include: -[#reactors] +* Checking if an item is overdue by a certain number of days. +* Sending notifications for upcoming due dates. -=== Reactors === +These hooks rely on background jobs to scan the database and create relevant +events when conditions are met. -Reactors link the trigger definition to the action to be carried out. +*Active Hooks*: These hooks are triggered automatically when a predefined +event occurs. +Examples include: + +* A hold becoming available. +* An item being checked in. -==== Table 3. Action Trigger Reactors ==== +Since these events are already occurring within the system’s normal +workflow, the action trigger framework can immediately create an event +without requiring a periodic check. +=== Reactors === + +Reactors link the trigger definition to the action to be carried out. -|======================= -| Field | Description +.Reactor Fields +[cols="1,3"] +|=== +| *Field* | *Description* | Module Name | The name of the Module to run if the action trigger is validated. It must be defined as a subroutine in `/openils/lib/perl5/OpenILS/Application/Trigger/Reactor.pm` or as a module in `/openils/lib/perl5/OpenILS/Application/Trigger/Reactor/*.pm`. | Description | Description of the Action to be carried out. -|======================= - -You may also create, edit and delete Reactors. Just remember that there must be an associated subroutine or module in the Reactor Perl module. +|=== ==== CallHTTP Reactor ==== -This Action/Trigger reactor module allows an Evergreen administrator to -create event defintions that use HTTP (or HTTPS) to contact external services -and let them know that something has happened in Evergreen. - -For instance, a discovery layer can be informed when a bib record is updated -or when a user's barcode changes. +The CallHTTP reactor allows Evergreen to send HTTP or HTTPS requests to an +external service. +This is useful for integrations, such as sending push notifications or +making API calls to external applications. +The HTTP request is configured using a Template Toolkit template that +formats the request. ===== CallHTTP Reactor Template Syntax ===== -The new reactor module uses a template to define its behavior. While the -template is processed by Template Toolkit, as with any A/T templates, its -output format is new to Evergreen. - -The template should output data that can be parsed by the Config::General Perl -module. See: https://metacpan.org/pod/Config::General +The template should output data that can be parsed by the Config::General +Perl module. +See: https://metacpan.org/pod/Config::General -Top level settings should include the HTTP *method* and the *url*. +Top-level settings should include the HTTP *method* and the *url*. A block called *Headers* can be used to supply arbitrary HTTP headers. A block called *Parameters* can be used to append CGI parameters to the URL, -most useful for GET form submission. Repeated parameters are allowed. If -this block is used, the URL should /not/ contain any parameters, use one or -the other. +most useful for GET form submission. -A HEREDOC called *content* can be used with POST or PUT to send an arbitrary block -of content to the remote server. +A HEREDOC called *content* can be used with POST or PUT to send an arbitrary +block of content to the remote server. -If the requested URL requires Basic or Digest authentication, the template can -include top level configuration parameters to supply a *user*, *password*, *realm*, -and hostname:port *location*. +If the requested URL requires Basic or Digest authentication, the template +can include top-level configuration parameters to supply a *user*, +*password*, *realm*, and hostname:port *location*. -A default user agent string of "EvergreenReactor/1.0" is used when sending requests. -This can be overridden using the top level *agent* setting. +A default user agent string of "EvergreenReactor/1.0" is used when sending +requests. +This can be overridden using the top-level *agent* setting. -Here is an example template that could be used by a definition attached to the -*bib.edit* hook: +Example template for the *bib.edit* hook: -[source,conf] +[source,xml] ---- -method post # Valid values are post, get, put, delete, head +method post url https://example.com/api/incoming-update agent MySpecialAgent/0.1 @@ -272,71 +201,209 @@ content < 1) %] +Subject: Courtesy Notice +Auto-Submitted: auto-generated + +Dear [% user.family_name %], [% user.first_given_name %] +As a reminder, the following items are due in 3 days. + +[% FOR circ IN target %] + [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%] + Title: [% copy_details.title %] + Author: [% copy_details.author %] + Barcode: [% circ.target_copy.barcode %] + Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %] + Item Cost: [% helpers.get_copy_price(circ.target_copy) %] + Library: [% circ.circ_lib.name %] + Library Phone: [% circ.circ_lib.phone %] -==== Table 4. Action Trigger Validators ==== +[% END %] +---- +. Once you are satisfied with your new event trigger, click the _Save_ button located at the bottom of the form. -|======================= -| Field | Description -| Module Name | The name of the subroutine in `/openils/lib/perl5/OpenILS/Application/Trigger/Reactor.pm` to validate the action trigger. -| Description | Description of validation test to run. -|======================= +[TIP] +==== +A quick and easy way to create new action triggers is to +xref:admin:actiontriggers.adoc#_cloning_existing_action_triggers[clone an +existing action trigger]. +==== -You may also create, edit and delete Validators. Just remember that their must be an associated subroutine in the Reactor.pm Perl module. +=== Creating Alternate Message Templates === +indexterm:[Localization, Notices, Localized Notices] -[[processing_action_triggers]] -== Processing Action Triggers == +As of version 3.9, there is the ability to create alternate templates for +Action Triggers that will generate locale-specific output for Action +Triggers. -To run action triggers, an Evergreen administrator will need to run the trigger processing script. This should be set up as a cron job to run periodically. To run the script, use this command: +To use the feature, the following UI elements have been added: ----- -/openils/bin/action_trigger_runner.pl --process-hooks --run-pending ----- +* When you double-click on an Event Definition under Notifications / Action + Triggers to edit it, there will be a tab option for _Edit Alternate + Template_ if the reactor is *ProcessTemplate*, *SendEmail*, or *SendSMS*. +* In the Patron Registration and Patron Editor screens, staff members may + select a locale for a patron and edit it in the _Patron Preferred + Language_ field. +* Patrons may set their own locale in the My Account interface off the OPAC + by going to _Preferences --> Personal Information_ and setting the + _Preferred Language_ field. -You have several options when running the script: +The templates used on the Edit Definition tab are the defaults that are used +if there are no alternate templates available that match the preferred +language. -* --run-pending: Run pending events to send emails or take other actions as -specified by the reactor in the event definition. +Valid locales are the codes defined in the `i18n_locale` table in the config +schema. -* --process-hooks: Create hook events +=== Cloning Existing Action Triggers === -* --osrf-config=[config_file]: OpenSRF core config file. Defaults to: -/openils/conf/opensrf_core.xml +. Right-click on the line of the action trigger you wish to clone, and choose _Clone Selected_. +.. You will be asked to confirm whether or not you wish to clone the event definition environment along with the action trigger. +. An editing window will open. Notice that the fields will be populated with content from the cloned action trigger. Edit as necessary and give the new action trigger a unique Name. +. Click _Save_. -* --custom-filters=[filter_file]: File containing a JSON Object which describes any hooks -that should use a user-defined filter to find their target objects. Defaults to: -/openils/conf/action_trigger_filters.json +== Editing Action Triggers == -* --max-sleep=[seconds]: When in process-hooks mode, wait up to [seconds] for the lock file to go -away. Defaults to 3600 (1 hour). +. Double-click on the action trigger you wish to edit or right-click on the line of the action trigger you wish to edit, and choose _Edit Event Definition_. +. The Edit Definition screen will appear. When you are finished editing, click _Save_ at the bottom of the form. Or click _Back to Notification/Action Triggers_ to exit without saving. -* --hooks=hook1[,hook2,hook3,...]: Define which hooks to create events for. If none are defined, it -defaults to the list of hooks defined in the --custom-filters option. -Requires --process-hooks. +== Deleting Action Triggers == -* --granularity=[label]: Limit creating events and running pending events to -those only with [label] granularity setting. +. Right-click on the line of the action trigger you wish to delete. +. Choose _Delete Selected_ from the action menu. -* --debug-stdout: Print server responses to STDOUT (as JSON) for debugging. +[NOTE] +==== +Before deleting an action trigger, you should consider disabling it through +the editing form. +This way you can keep it for future use or cloning. +==== -* --lock-file=[file_name]: Sets the lock file for the process. +== Testing Action Triggers == -* --verbose: Show details of script processing. +. Go to the list of action triggers. +. Double-click on the action trigger you wish to edit or right-click on the line of the action trigger you wish to edit, and choose _Edit Event Definition_. +. Go to the _Run Tests_ tab. +. If there is a test available, fill in the required information and click _Go_. +. View the output of the test. + +[WARNING] +==== +If you are testing an email or SMS notification, use a test account and +email as an example. +Using the Test feature will actually result in the notification being sent +if configured correctly. +Similarly, use a test item or barcode when testing a circulation-based event +like Mark Lost since the test will mark the item as lost. +==== + +== Processing Action Triggers == + +To run action triggers, an Evergreen administrator will need to run the +trigger processing script. +This should be set up as a cron job to run periodically. +To run the script, use this command: + +---- +/openils/bin/action_trigger_runner.pl --process-hooks --run-pending +---- -* --help: Show help information. +.Table of Script Options +[cols="1,3"] +|=== +| *Option* | *Description* +| --run-pending | Run pending events to send emails or take other actions as specified by the reactor in the event definition. +| --process-hooks | Create hook events. +| --osrf-config=[config_file] | OpenSRF core config file. Defaults to: /openils/conf/opensrf_core.xml. +| --custom-filters=[filter_file] | File containing a JSON Object which describes any hooks that should use a user-defined filter to find their target objects. Defaults to: /openils/conf/action_trigger_filters.json. +| --max-sleep=[seconds] | When in process-hooks mode, wait up to [seconds] for the lock file to go away. Defaults to 3600 (1 hour). +| --hooks=hook1[,hook2,hook3,...] | Define which hooks to create events for. If none are defined, it defaults to the list of hooks defined in the --custom-filters option. Requires --process-hooks. +| --granularity=[label] | Limit creating events and running pending events to those only with [label] granularity setting. +| --debug-stdout | Print server responses to STDOUT (as JSON) for debugging. +| --lock-file=[file_name] | Sets the lock file for the process. +| --verbose | Show details of script processing. +| --help | Show help information. +|=== Examples: -* Run all pending events that have no granularity set. This is what you tell -CRON to run at regular intervals. +* Run all pending events that have no granularity set. + This is what you tell CRON to run at regular intervals. + ---- perl action_trigger_runner.pl --run-pending @@ -348,31 +415,83 @@ perl action_trigger_runner.pl --run-pending perl action_trigger_runner.pl --hooks=checkout.due --process-hooks ---- -* Batch create all events for a specific granularity and to send notices for all -pending events with that same granularity. +* Batch create all events for a specific granularity and to send notices for + all pending events with that same granularity. + ---- perl action_trigger_runner.pl --run-pending --granularity=Hourly --process-hooks ---- -[[configure_opac_email_print]] +=== Setting Up Cron Jobs === + +Many action triggers are processed using cron jobs. +Passive hooks require periodic execution, typically scheduled at intervals +such as hourly or daily. +Stock Evergreen runs the action trigger runner every 30 minutes to process +pending events. + +==== Example Cron Job ==== + +To periodically check for events and execute action triggers, administrators +can set up a cron job with the following command: + +---- +/openils/bin/action_trigger_runner.pl --process-hooks --run-pending +---- + +This command: + +* Processes hooks (--process-hooks) to create new events. +* Runs pending events (--run-pending) to execute any triggered actions. + +==== Example Cron Job Setup ==== + +A standard Evergreen setup might include cron jobs like: + +---- +0 * * * * perl /openils/bin/action_trigger_runner.pl --run-pending +30 * * * * perl /openils/bin/action_trigger_runner.pl --process-hooks +---- + +This means: + +* Every hour on the hour (0 * * * *), Evergreen processes pending actions. +* Every 30 minutes past the hour (30 * * * *), Evergreen scans for new + events. + +==== Granularity in Cron Jobs ==== + +Granularity settings allow different types of events to run at different +frequencies: + +---- +perl action_trigger_runner.pl --run-pending --granularity=Hourly +---- + +This ensures that only events tagged with Hourly granularity will be +executed. + == Configure OPAC Record Email and Print == -The information displayed in the printout and email is defined and generated by two new Notification/Action Triggers named `biblio.record_entry.print` and `biblio.record_entry.email`. +The information displayed in the printout and email is defined and generated +by two Notification/Action Triggers named `biblio.record_entry.print` and +`biblio.record_entry.email`. -The printout and email will include the following bibliographic information by default: +By default, the printout and email will include the following bibliographic +information: -* Bibliographic Record ID -* Title statement -* Author +* Bibliographic Record ID +* Title statement +* Author * Item Type -* Publisher -* Publication date -* ISBN +* Publisher +* Publication date +* ISBN * ISSN * UPC -If *Full display* is selected by the OPAC user, the following holdings information is included in the printout or email, if relevant: +If the OPAC user selects *Full display*, the following holdings information +is included in the printout or email, if relevant: * Circulating Library * Item Location @@ -381,18 +500,31 @@ If *Full display* is selected by the OPAC user, the following holdings informati * Item Status * Item Barcode -The bibliographic and item information included in the printout or email can be configured by modifying the respective Action Trigger templates. +The bibliographic and item information included in the printout or email can +be configured by modifying the respective Action Trigger templates. -For the Full display, the maximum number of copies to be displayed per record can also be configured in the Action Trigger Event Parameter field. To set the maximum number of copies for display, go to *Administration -> Local Administration -> Notifications / Action Triggers* and find the print or email notification/action trigger to modify. +To configure the maximum number of copies displayed per record for the Full +display, follow these steps: -. Double click on the action trigger you wish to modify +1. Go to *Administration -> Local Administration -> Notifications / Action + Triggers*. +2. Find the print or email notification/action trigger you wish to modify. + +.Email and Print Event Definitions image::actiontriggers/ope_event_defs.png[Email and Print Event Definitions] +3. Double-click on the action trigger. +4. Select the *Edit Parameters* tab. +5. In the upper left-hand corner, select *New Parameter* to create a new + Trigger Event Parameter. + -. Select the *Edit Parameters* tab and in the upper left-hand corner, select *New Parameter* to create a new Trigger Event Parameter. -. In the _Parameter Name_ field enter holdings_limit. -. In the _Parameter Value_ field enter the maximum number of copies to be displayed per record. -. Select *Save* to save your changes. -+ +.Email and Print Event Parameters image::actiontriggers/ope_event_params.png[Email and Print Event Parameters] -+ +6. In the _Parameter Name_ field, enter `holdings_limit`. +7. In the _Parameter Value_ field, enter the maximum number of copies to be + displayed per record. +8. Select *Save* to save your changes. + +For more information on how to invoke this functionality from the front end, +please refer to +xref:opac:using_the_public_access_catalog.adoc#_printing_and_emailing_records[the +section on printing and emailing records in the OPAC documentation]. From 41ec90b7e8ac48872187f40e4eb33bbf034e5672 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 18 Feb 2025 17:38:47 -0500 Subject: [PATCH 10/26] LP#2098814: release note extractor now accepts multi-line release notes This patch updates the release note extractor script so that if a commit includes a release note tagged with Release-note: that extends over more than one line, all of them will be considered as part of the same note. Multi-line release notes should not start with a whitespace character on the second and subsequent lines. To test ------- [1] Apply the patch and run extract_release_notes_from_commits.pl; verify that multi-line release notes in commit messages are fully included in the output. Release-note: [dev] Update the release note extractor so that all lines of a multi-line release notes in a commit message are incuded in the output Signed-off-by: Galen Charlton Signed-off-by: Jane Sandberg --- .../extract_release_notes_from_commits.pl | 50 ++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/docs/tools/extract_release_notes_from_commits.pl b/docs/tools/extract_release_notes_from_commits.pl index c6ec3e638c..c67ad2c743 100755 --- a/docs/tools/extract_release_notes_from_commits.pl +++ b/docs/tools/extract_release_notes_from_commits.pl @@ -97,30 +97,76 @@ my ($bugnum) = (shift(@lines) =~ /(\d+)/); $bugnum //= 'unknown'; my @notes = (); + my $in_note = 0; + my $full_note = ''; foreach my $line (@lines) { if ($line =~ /^\s*release-notes*:(.*)/i) { + if ($in_note) { + # we have more than one release note in the commit for some reason; let's + # assume they're intended to be separate entries + push @notes, $full_note; + $full_note = ''; + } + $in_note = 1; my $note = $1; $note =~ s/^\s+//; $note =~ s/^://; $note =~ s/^\s+//; $note =~ s/\s+$//; - push @notes, $note if $note; + $full_note .= ' ' . $note; + $full_note =~ s/^ //; } elsif ($line =~ /^\s*signed-off-by:\s*(.*?)$/i) { + if ($in_note) { + push @notes, $full_note; + $full_note = ''; + $in_note = 0; + } my $reviewer = $1; $reviewer =~ s/\<.*$//; $reviewer =~ s/^\s+//; $reviewer =~ s/\s+$//; $reviewers{$reviewer}++ if $reviewer; } elsif ($line =~ /^\s+sponsored-by:\s*(.*?)\s*$/i) { + if ($in_note) { + push @notes, $full_note; + $full_note = ''; + $in_note = 0; + } $sponsors{$1}++ if $1; } elsif ($line =~ /^\s+co-authored-by:\s*(.*?)\s*$/i) { + if ($in_note) { + push @notes, $full_note; + $full_note = ''; + $in_note = 0; + } my $coauthor = $1; $coauthor =~ s/<.*$//; $coauthor =~ s/^\s+//; $coauthor =~ s/\s+$//; $authors{$coauthor}++ if $coauthor; - } + } else { + if ($in_note) { + if ($line =~ /^ \S/) { + # if we get here, four spaces followed by a non-space character + # is assumed to be the continuation of a note + my $note = $line; + $note =~ s/^\s+//; + $note =~ s/\s+$//; + $full_note .= ' ' . $note; + $full_note =~ s/^ //; + } else { + push @notes, $full_note; + $full_note = ''; + $in_note = 0; + } + } + } } + + if ($in_note) { + push @notes, $full_note; + } + foreach my $note (@notes) { if ($bugnum =~ /^\d+$/) { print "* $note (https://bugs.launchpad.net/evergreen/+bug/${bugnum}[Bug $bugnum])\n"; From c3d721727cca1f03a97f19493e65b2ce6542b6b5 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 18 Feb 2025 11:20:57 -0500 Subject: [PATCH 11/26] LP#2098644: fix regression caused by keyboard handling of MARC Edit Character Map This patch fixes an issue where the HostListener for the jump-to-letter-range navigation feature of the new MARC Edit Character Map was grabbing keydown events that it shouldn't have tried to handle. It also cleans up browser console noise generated when the user types a digit character. To test ------- [1] Open a bib record and ensure that the enahnced MARC editor tab is active. [2] Try to add the record to a new bucket via the Other Actions menu. Note that keys in the range 0-9 and a-z are not entered into the bucket name input when pressed. [3] Try other text inputs in the MARC editor, such as the bib source input. Note that the same alphanumeric characters cannot be entered. [4] Apply the patch and repeat steps 1-3. This time, there should be no interference with keyboard input. [5] Open the Special Characters modal. Verify that single-letter keyboard shortcuts work as aspected. [6] Close the modal. Verify that keyboard input remains normal. This patch intentionally does not include a release notes entry as it follows up on an enhancement that has not been released yet. Signed-off-by: Galen Charlton Signed-off-by: Dan Briem Signed-off-by: Jane Sandberg --- .../staff/share/marc-edit/charmap/charmap-dialog.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/charmap/charmap-dialog.component.ts b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/charmap/charmap-dialog.component.ts index 9c732b18c5..c2687a4d1d 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/marc-edit/charmap/charmap-dialog.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/share/marc-edit/charmap/charmap-dialog.component.ts @@ -38,12 +38,12 @@ export class CharMapDialogComponent extends DialogComponent implements OnInit { @HostListener('window:keydown', ['$event']) focusHeading($event) { + if (!this.modalRef) {return;} // don't grab keydown if the charmap modal isn't open if (this.disableAccessKeys) {return;} // console.debug("Keydown ", $event.key); const letters = '0123456789abcdefghijklmnopqrstuvwxyz'.split(''); if (letters.includes($event.key)) { - $event.preventDefault(); - const el = document.querySelector('[data-index='+$event.key+']') as HTMLElement; + const el = document.querySelector('[data-index='+String($event.key)+']') as HTMLElement; setTimeout(() => el?.focus()); } } From a0f580a4364413cc8ea5588b9b0ebcf4f410850c Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Thu, 20 Feb 2025 13:40:58 -0500 Subject: [PATCH 12/26] LP2098994: Log signals in the reporter Add a Perl sigtrap handler in clark-kent.pl to log the signal and exit when it receives a signal. Testing is relatively straightforward: 1. Start the reporter. 2. Send it the TERM signale with kill: `kill $(cat /tmp/reporter-LOCK)`. 3. Check the osrfsys.log to see that nothing is logged. 4. Delete the reporter lock file: `rm /tmp/reporter-LOCK.` 5. Apply this commit. 6. Do `sudo make install` in the Evergreen source directory. 7. Follow that with `sudo chown -R opensrf:opensrf /openils ./`. 8. Repeat steps 1 & 2. 9. `grep 'Reporter received signal' /openils/var/log/osrfsys.log` should return a line. 10. Delete the reporter lock file (for hygiene). Release-note: Add a signal handler to the reporter to log the signal and exit. Signed-off-by: Jason Stephenson Signed-off-by: Jane Sandberg --- Open-ILS/src/reporter/clark-kent.pl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Open-ILS/src/reporter/clark-kent.pl b/Open-ILS/src/reporter/clark-kent.pl index 2f86bd2fab..55df938c81 100755 --- a/Open-ILS/src/reporter/clark-kent.pl +++ b/Open-ILS/src/reporter/clark-kent.pl @@ -28,6 +28,7 @@ use Email::Send; use Scalar::Util 'looks_like_number'; use List::MoreUtils qw/uniq/; +use sigtrap qw/handler die_signal normal-signals/; use open ':utf8'; @@ -1165,3 +1166,8 @@ sub pivot_data { } +sub die_signal { + my $sig = shift; + $logger->warn("Reporter received signal $sig"); + exit(0); +} From 25d41334a87a7b1c338a347a33213cb92ed912f1 Mon Sep 17 00:00:00 2001 From: Steven Mayo Date: Thu, 20 Feb 2025 13:53:16 -0500 Subject: [PATCH 13/26] lp2099133 Acq Invoice Legacy Interface Link Fetches the Library Setting for whether to show legacy invoice links in invoice.component. This will allow the 'Open In Legacy Interface' link to appear. Release-note: Display a "Show Invoice in Legacy Interface" in invoices when configured. Signed-off-by: Steven Mayo Signed-off-by: Jane Sandberg --- .../src/app/staff/acq/invoice/invoice.component.html | 10 +++++----- .../eg2/src/app/staff/acq/invoice/invoice.component.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.html b/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.html index c4e2397910..d3f774480e 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.html +++ b/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.html @@ -47,11 +47,6 @@ Print --> - - - Show Invoice in Legacy Interface - - + + + Show Invoice in Legacy Interface + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.ts index b24c54ac16..90f5f4fed5 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/invoice/invoice.component.ts @@ -15,6 +15,7 @@ import {InvoiceChargesComponent} from './charges.component'; import {PoService} from '../po/po.service'; import {LineitemResultsComponent} from '@eg/staff/acq/search/lineitem-results.component'; import {firstValueFrom, Subscription} from 'rxjs'; +import { ServerStoreService } from '@eg/core/server-store.service'; @Component({ templateUrl: 'invoice.component.html', @@ -38,6 +39,7 @@ export class InvoiceComponent implements OnInit, OnDestroy, CanComponentDeactiva needs_invoice_create_perm = true; needs_invoice_view_perm = true; showFmEditor = true; + showLegacyLinks = false; @ViewChildren(LineitemResultsComponent) liResults: QueryList; @ViewChild(InvoiceDetailsComponent, { static: false }) invoiceDetails: InvoiceDetailsComponent; @@ -56,7 +58,8 @@ export class InvoiceComponent implements OnInit, OnDestroy, CanComponentDeactiva private perm: PermService, private pcrud: PcrudService, public invoiceService: InvoiceService, - public poService: PoService + public poService: PoService, + public store: ServerStoreService ) {} ngOnInit() { @@ -88,6 +91,11 @@ export class InvoiceComponent implements OnInit, OnDestroy, CanComponentDeactiva this.onTabChange = ($event) => { this.showFmEditor = $event.nextId === 'main'; }; + + this.store.getItemBatch(['ui.staff.acq.show_deprecated_links']) + .then(settings => { + this.showLegacyLinks = settings['ui.staff.acq.show_deprecated_links']; + }); } async loadPerms(): Promise { From 2eeee6dd7f7c4083e691c6d41ca31a72441493fb Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Sat, 22 Feb 2025 12:18:32 -0500 Subject: [PATCH 14/26] Fix upgrade file name typo Correct 3.13.8-3.13.19-upgrade-db.sql to 3.13.8-3.13.9-upgrade-db.sql filename. Signed-off-by: Jason Stephenson --- ...3.13.8-3.13.19-upgrade-db.sql => 3.13.8-3.13.9-upgrade-db.sql} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Open-ILS/src/sql/Pg/version-upgrade/{3.13.8-3.13.19-upgrade-db.sql => 3.13.8-3.13.9-upgrade-db.sql} (100%) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql similarity index 100% rename from Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.19-upgrade-db.sql rename to Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql From 3557563529d56138259de8b289b69084d95d875a Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Sat, 22 Feb 2025 12:23:15 -0500 Subject: [PATCH 15/26] Fix version number in 3.13.8 to 3.13.9 db upgrade It looks like the wrong version number, 3.13.19, was used when stamping the file. This commit corrects that. Signed-off-by: Jason Stephenson --- .../src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql index 4d98160630..d82b4d8358 100644 --- a/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql +++ b/Open-ILS/src/sql/Pg/version-upgrade/3.13.8-3.13.9-upgrade-db.sql @@ -1,7 +1,7 @@ ---Upgrade Script for 3.13.8 to 3.13.19 -\set eg_version '''3.13.19''' +--Upgrade Script for 3.13.8 to 3.13.9 +\set eg_version '''3.13.9''' BEGIN; -INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.13.19', :eg_version); +INSERT INTO config.upgrade_log (version, applied_to) VALUES ('3.13.9', :eg_version); SELECT evergreen.upgrade_deps_block_check('1447', :eg_version); From 063fc52a4004fb74fcda09d2c580fcfec1b6bb44 Mon Sep 17 00:00:00 2001 From: Ian Skelskey <46094112+IanSkelskey@users.noreply.github.com> Date: Sat, 22 Feb 2025 23:54:58 -0500 Subject: [PATCH 16/26] Potential fix for code scanning alert no. 45: Useless regular-expression character escape Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .../src/app/staff/reporter/full/my-templates.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/reporter/full/my-templates.component.html b/Open-ILS/src/eg2/src/app/staff/reporter/full/my-templates.component.html index a814ab0dd7..0f4d98a0ad 100644 --- a/Open-ILS/src/eg2/src/app/staff/reporter/full/my-templates.component.html +++ b/Open-ILS/src/eg2/src/app/staff/reporter/full/my-templates.component.html @@ -51,10 +51,10 @@ > -

+ - + {{row.documentation}} From 5476188f97b7153f7e230027fca1ae944da6ed47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 04:56:23 +0000 Subject: [PATCH 17/26] Bump browserify-sign in /Open-ILS/web/js/ui/default/staff Bumps [browserify-sign](https://github.com/crypto-browserify/browserify-sign) from 4.2.1 to 4.2.3. - [Changelog](https://github.com/browserify/browserify-sign/blob/main/CHANGELOG.md) - [Commits](https://github.com/crypto-browserify/browserify-sign/compare/v4.2.1...v4.2.3) --- updated-dependencies: - dependency-name: browserify-sign dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../web/js/ui/default/staff/package-lock.json | 250 +++++++++++------- 1 file changed, 159 insertions(+), 91 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/package-lock.json b/Open-ILS/web/js/ui/default/staff/package-lock.json index 0c101e522d..7398ade522 100644 --- a/Open-ILS/web/js/ui/default/staff/package-lock.json +++ b/Open-ILS/web/js/ui/default/staff/package-lock.json @@ -338,22 +338,23 @@ "dev": true }, "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "minimalistic-assert": "^1.0.0" } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true, + "license": "MIT" }, "node_modules/assert": { "version": "1.5.0", @@ -625,10 +626,11 @@ "dev": true }, "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, + "license": "MIT" }, "node_modules/body-parser": { "version": "1.20.0", @@ -740,34 +742,39 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, + "license": "ISC", "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" } }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/browserify-sign/node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 6" + "node": ">= 0.10" } }, "node_modules/browserify-sign/node_modules/safe-buffer": { @@ -1566,10 +1573,11 @@ "dev": true }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -4153,18 +4161,58 @@ } }, "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, + "license": "ISC", "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-asn1/node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, + "node_modules/parse-asn1/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -4317,10 +4365,11 @@ } }, "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, + "license": "MIT", "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -4634,10 +4683,11 @@ } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7398,21 +7448,20 @@ "dev": true }, "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "minimalistic-assert": "^1.0.0" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true } } @@ -7631,9 +7680,9 @@ "dev": true }, "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "body-parser": { @@ -7736,31 +7785,31 @@ } }, "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" } }, "safe-buffer": { @@ -8451,9 +8500,9 @@ "dev": true }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, "requires": { "bn.js": "^4.11.9", @@ -10578,16 +10627,35 @@ } }, "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } } }, "parse-glob": { @@ -10714,9 +10782,9 @@ } }, "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -10967,9 +11035,9 @@ } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "requires": { "core-util-is": "~1.0.0", From 1a2919e1854e47041a5482e1f1d269412f1b4b8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 04:56:45 +0000 Subject: [PATCH 18/26] Bump elliptic from 6.5.4 to 6.6.1 in /Open-ILS/web/js/ui/default/staff Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.4 to 6.6.1. - [Commits](https://github.com/indutny/elliptic/compare/v6.5.4...v6.6.1) --- updated-dependencies: - dependency-name: elliptic dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Open-ILS/web/js/ui/default/staff/package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/package-lock.json b/Open-ILS/web/js/ui/default/staff/package-lock.json index 0c101e522d..f6f5e4ccff 100644 --- a/Open-ILS/web/js/ui/default/staff/package-lock.json +++ b/Open-ILS/web/js/ui/default/staff/package-lock.json @@ -1566,10 +1566,11 @@ "dev": true }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, + "license": "MIT", "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", @@ -8451,9 +8452,9 @@ "dev": true }, "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "dev": true, "requires": { "bn.js": "^4.11.9", From c4d030774ff2ba5923345178af75987a6e0ff469 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 04:56:56 +0000 Subject: [PATCH 19/26] Bump decode-uri-component in /Open-ILS/web/js/ui/default/staff Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2. - [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases) - [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2) --- updated-dependencies: - dependency-name: decode-uri-component dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Open-ILS/web/js/ui/default/staff/package-lock.json | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/package-lock.json b/Open-ILS/web/js/ui/default/staff/package-lock.json index 0c101e522d..9127094d13 100644 --- a/Open-ILS/web/js/ui/default/staff/package-lock.json +++ b/Open-ILS/web/js/ui/default/staff/package-lock.json @@ -1384,10 +1384,11 @@ } }, "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } @@ -8300,9 +8301,9 @@ "dev": true }, "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true }, "define-property": { From fe320204e1b6e691e27d2a0c434d85499e8aa66d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 23 Feb 2025 05:03:12 +0000 Subject: [PATCH 20/26] Bump karma Bumps the npm_and_yarn group with 1 update in the /Open-ILS/web/js/ui/default/staff directory: [karma](https://github.com/karma-runner/karma). Updates `karma` from 1.7.1 to 6.4.4 - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/1.7.1...v6.4.4) --- updated-dependencies: - dependency-name: karma dependency-type: direct:development dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- .../web/js/ui/default/staff/package-lock.json | 3849 +++++++---------- Open-ILS/web/js/ui/default/staff/package.json | 2 +- 2 files changed, 1568 insertions(+), 2283 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/package-lock.json b/Open-ILS/web/js/ui/default/staff/package-lock.json index d8a1d04675..d8304fc9a1 100644 --- a/Open-ILS/web/js/ui/default/staff/package-lock.json +++ b/Open-ILS/web/js/ui/default/staff/package-lock.json @@ -34,7 +34,7 @@ "clean-webpack-plugin": "^0.1.17", "copy-webpack-plugin": "^4.3.0", "jasmine-core": "^2.99.1", - "karma": "^1.7.1", + "karma": "^6.4.4", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^1.2.0", "karma-jasmine": "^1.1.1", @@ -45,24 +45,62 @@ "webpack-merge": "^4.1.1" } }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@glidejs/glide": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@glidejs/glide/-/glide-3.4.1.tgz", "integrity": "sha512-C34AEcK1HjSyxilRToUL54I6KAoodojUbeRlXoruobZuG0eGm8xfDL+3kgkWj7AJK4EZtunSOYfoqMp70eDtwg==" }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha512-AOPopplFOUlmUugwiZUCDpOwmqvSgdCyE8iJVLWI4NcB7qfMKQN34dn5xYtlUU03XGG5egRWW4NW5gIxpa5hEA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, + "license": "MIT", "dependencies": { - "mime-types": "~2.1.11", - "negotiator": "0.6.1" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -102,12 +140,6 @@ "node": ">=0.4.0" } }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", - "dev": true - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -237,14 +269,34 @@ "node": ">=0.10.0" } }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, "node_modules/aproba": { @@ -262,23 +314,12 @@ "underscore.string": "~2.4.0" } }, - "node_modules/arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -288,15 +329,7 @@ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -322,21 +355,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha512-6ZjfQaBSy6CuIH0+B0NrxMfDE5VIOCP/5gOqSpEIsaAZx9/giszzrXg6PZ7G51U/n88UmlAgYLNQ9wAnII7PJA==", - "dev": true - }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -395,6 +413,7 @@ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -412,19 +431,15 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true + "dev": true, + "optional": true }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, + "optional": true, "bin": { "atob": "bin/atob.js" }, @@ -432,12 +447,6 @@ "node": ">= 4.5.0" } }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -449,6 +458,7 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, + "optional": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -467,6 +477,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -479,6 +490,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -491,6 +503,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -503,6 +516,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -517,6 +531,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -526,19 +541,11 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -560,24 +567,13 @@ ] }, "node_modules/base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, - "dependencies": { - "callsite": "1.0.0" - }, + "license": "MIT", "engines": { - "node": "*" + "node": "^4.5.0 || >= 5.9" } }, "node_modules/big.js": { @@ -594,6 +590,7 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -608,12 +605,6 @@ "file-uri-to-path": "1.0.0" } }, - "node_modules/blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha512-YRc9zvVz4wNaxcXmiSgb9LAg7YYwqQ2xd0Sj6osfA7k/PKmIGVlnOYs3wOFdkRC9/JpQu8sGt/zHgJV7xzerfg==", - "dev": true - }, "node_modules/blob-tmp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/blob-tmp/-/blob-tmp-1.0.0.tgz", @@ -675,17 +666,16 @@ } }, "node_modules/braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/brorand": { @@ -817,28 +807,6 @@ "isarray": "^1.0.0" } }, - "node_modules/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, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/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 - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -892,6 +860,7 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, + "optional": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -912,6 +881,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -929,15 +899,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", @@ -961,44 +922,82 @@ } }, "node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" }, "optionalDependencies": { - "fsevents": "^1.0.0" + "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "node_modules/chokidar/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chokidar/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "node_modules/chokidar/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/chokidar/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^1.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, "node_modules/chownr": { @@ -1022,6 +1021,7 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, + "optional": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -1037,6 +1037,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -1049,6 +1050,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -1096,6 +1098,7 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, + "optional": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -1104,6 +1107,26 @@ "node": ">=0.10.0" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -1113,44 +1136,18 @@ "node": ">=0.1.90" } }, - "node_modules/combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha512-4Mi0V7N48B9KzC8Zl/U7wiWuxMFEHf44N3/PSoAvWDu8IOPrddNo1y1tC/kXbP7IvVMhgCFMMNzgKb0pWoin9w==", - "dev": true, - "dependencies": { - "lodash": "^4.5.0" - } - }, - "node_modules/combine-lists/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", - "dev": true - }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", - "dev": true + "dev": true, + "optional": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -1210,10 +1207,11 @@ } }, "node_modules/cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -1237,6 +1235,7 @@ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -1260,20 +1259,26 @@ "node": ">= 4" } }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -1372,6 +1377,16 @@ "type": "^1.0.1" } }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1396,6 +1411,7 @@ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, "license": "MIT", + "optional": true, "engines": { "node": ">=0.10" } @@ -1405,6 +1421,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -1418,6 +1435,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -1430,6 +1448,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -1442,6 +1461,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1456,6 +1476,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -1465,6 +1486,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -1595,6 +1617,13 @@ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -1623,88 +1652,60 @@ } }, "node_modules/engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha512-VNQ79eqoDiapJ2tDMu+N7SPDm11btXpO7b2gsxBVd1XbxBCx6xLyTESIuFlWUspsbuif6Rq88pYNrQce5G7bqw==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", "dev": true, + "license": "MIT", "dependencies": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" } }, - "node_modules/engine.io-client": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "integrity": "sha512-260nnbHkYPTPnA9cjH2oCvWmqNwYofsNBkDfViI9iS487oMcl3kUeSgXJCwMxASgOL5DVlQF4hb0NzRNFkUaFg==", + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "1.1.2", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", - "dev": true, - "dependencies": { - "ms": "0.7.2" - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true - }, - "node_modules/engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha512-3UyTJo+5Jbmr7rd3MosTAApK7BOIo4sjx8dJYSHa3Em5R3A9Y2s9GWu4JFJe6Px0VieJC0hKUA5NBytC+O7k2A==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" + "license": "MIT", + "engines": { + "node": ">=10.0.0" } }, "node_modules/engine.io/node_modules/debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "0.7.2" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/engine.io/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { "version": "3.4.1", @@ -1829,6 +1830,16 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1945,87 +1956,6 @@ "node": ">=4" } }, - "node_modules/expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha512-zOOsEnAhvIxxd0esCNbYG2xerGf46niZ1egS43eV7Fu4t7VIScgPXMcMabCLaPrqkzwvwo6zZipDiX3t0ILF2w==", - "dev": true, - "dependencies": { - "array-slice": "^0.2.3", - "array-unique": "^0.2.1", - "braces": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-braces/node_modules/braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha512-EIMHIv2UXHWFY2xubUGKz+hq9hNkENj4Pjvr7h58cmJgpkK2yMlKA8I484f7MSttkzVAy/lL7X9xDaILd6avzA==", - "dev": true, - "dependencies": { - "expand-range": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-braces/node_modules/expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha512-busOHJ0t7t5UcutcyNDqmaDX+1cb0XlqsAUgTlmplVv0rIqBaMcBSZRLlkDm0nxtl8O3o/EvRRrdQ/WnyPERLQ==", - "dev": true, - "dependencies": { - "is-number": "^0.1.1", - "repeat-string": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-braces/node_modules/is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha512-la5kPULwIgkSSaZj9w7/A1uHqOBAgOhDUKQ5CkfL8LZ4Si6r4+2D0hI6b4o60MW4Uj2yNJARWIZUDPxlvOYQcw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-braces/node_modules/repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha512-yHeI3F9v20MY+8/5WAUgIWseMZwpLD+l9h5hGyzh6fQjhle2AwjjRDao1m5IozSDuVvMw09/mvE8AU1oDmZKpQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", - "dev": true, - "dependencies": { - "is-posix-bracket": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", - "dev": true, - "dependencies": { - "fill-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -2052,6 +1982,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, + "optional": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -2065,6 +1996,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "optional": true, "dependencies": { "is-plain-object": "^2.0.4" }, @@ -2072,27 +2004,6 @@ "node": ">=0.10.0" } }, - "node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2117,29 +2028,30 @@ "dev": true, "optional": true }, - "node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "node_modules/fill-range/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "^7.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0" } }, "node_modules/finalhandler": { @@ -2207,6 +2119,13 @@ "node": ">=4" } }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -2242,18 +2161,7 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2263,6 +2171,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, + "optional": true, "dependencies": { "map-cache": "^0.2.2" }, @@ -2280,6 +2189,21 @@ "readable-stream": "^2.0.0" } }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -2357,20 +2281,23 @@ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -2381,68 +2308,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { - "is-extglob": "^1.0.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, "node_modules/globby": { @@ -2480,27 +2356,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha512-k1Umb4/jrBWZbtL+QKSji8qWeoZ7ZTkXdnDXt1wxwBKAFM0//u96wDj43mBIqCIas8rDQMYyrBEvcS8hdGd4Sg==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/has-binary/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", - "dev": true - }, "node_modules/has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", @@ -2527,6 +2382,7 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, + "optional": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -2541,6 +2397,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2550,6 +2407,7 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, + "optional": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -2563,6 +2421,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -2575,6 +2434,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -2587,6 +2447,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -2766,12 +2627,6 @@ "node": ">=0.8.19" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2811,6 +2666,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -2829,6 +2685,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, + "optional": true, "dependencies": { "binary-extensions": "^1.0.0" }, @@ -2859,6 +2716,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -2871,6 +2729,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -2885,6 +2744,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2904,32 +2764,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", - "dev": true, - "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -2968,15 +2808,13 @@ } }, "node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, "node_modules/is-plain-object": { @@ -2984,6 +2822,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "optional": true, "dependencies": { "isobject": "^3.0.1" }, @@ -2996,24 +2835,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3032,6 +2854,7 @@ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3055,15 +2878,16 @@ "dev": true }, "node_modules/isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", "dev": true, - "dependencies": { - "buffer-alloc": "^1.2.0" - }, + "license": "MIT", "engines": { - "node": ">=0.6.0" + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, "node_modules/isexe": { @@ -3072,18 +2896,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/jasmine-core": { "version": "2.99.1", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", @@ -3119,13 +2931,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA==", - "deprecated": "Please use the native JSON object instead of JSON 3", - "dev": true - }, "node_modules/json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -3138,45 +2943,53 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/karma": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", - "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", - "dev": true, - "dependencies": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "chokidar": "^1.4.1", - "colors": "^1.1.0", - "combine-lists": "^1.0.0", - "connect": "^3.6.0", - "core-js": "^2.2.0", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "expand-braces": "^0.1.1", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^3.8.0", - "log4js": "^0.6.31", - "mime": "^1.3.4", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "1.7.3", - "source-map": "^0.5.3", - "tmp": "0.0.31", - "useragent": "^2.1.12" + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, "bin": { "karma": "bin/karma" }, "engines": { - "node": "0.10 || 0.12 || 4 || 5 || 6 || 7 || 8" + "node": ">= 10" } }, "node_modules/karma-chrome-launcher": { @@ -3252,6 +3065,160 @@ "node": ">=0.1.90" } }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -3346,48 +3313,53 @@ } }, "node_modules/lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", - "dev": true + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" }, "node_modules/log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha512-Cd+klbx7lkiaamEId9/0odHxv/PFHDz2E12kEfd6/CzIOZD084DzysASR/Dot4i1dYPBQKC3r2XIER+dfbLOmw==", - "deprecated": "0.x is no longer supported. Please upgrade to 6.x or higher.", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "readable-stream": "~1.0.2", - "semver": "~4.3.3" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "engines": { - "node": ">=0.8" + "node": ">=8.0" } }, - "node_modules/log4js/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/log4js/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "node_modules/log4js/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, + "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/log4js/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true + "node_modules/log4js/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/longest": { "version": "1.0.1", @@ -3440,6 +3412,7 @@ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3449,6 +3422,7 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, + "optional": true, "dependencies": { "object-visit": "^1.0.0" }, @@ -3456,12 +3430,6 @@ "node": ">=0.10.0" } }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -3504,51 +3472,6 @@ "readable-stream": "^2.0.1" } }, - "node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", - "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -3569,15 +3492,16 @@ "dev": true }, "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4" + "node": ">=4.0.0" } }, "node_modules/mime-db": { @@ -3623,10 +3547,11 @@ "dev": true }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3666,6 +3591,7 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, + "optional": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -3679,6 +3605,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "optional": true, "dependencies": { "is-plain-object": "^2.0.4" }, @@ -3749,6 +3676,7 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, + "optional": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -3771,6 +3699,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3780,6 +3709,7 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -3789,15 +3719,17 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -3890,13 +3822,11 @@ } }, "node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -3931,17 +3861,12 @@ "node": ">=0.10.0" } }, - "node_modules/object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA==", - "dev": true - }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, + "optional": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -3956,6 +3881,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -3977,6 +3903,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, + "optional": true, "dependencies": { "isobject": "^3.0.0" }, @@ -3989,19 +3916,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", - "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4011,6 +3926,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, + "optional": true, "dependencies": { "isobject": "^3.0.1" }, @@ -4023,6 +3939,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4048,31 +3965,6 @@ "wrappy": "1" } }, - "node_modules/optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", - "dev": true, - "dependencies": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "node_modules/optimist/node_modules/minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", - "dev": true - }, - "node_modules/options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -4093,15 +3985,6 @@ "node": ">=4" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -4214,42 +4097,6 @@ ], "license": "MIT" }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", - "dev": true, - "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-glob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-glob/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -4262,33 +4109,6 @@ "node": ">=0.10.0" } }, - "node_modules/parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha512-v38ZjVbinlZ2r1Rz06WUZEnGoSRcEGX+roMsiWjHeAe23s2qlQUyfmsPQZvh7d8l0E8AZzTIO/RkUr00LfkSiA==", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw==", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog==", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -4303,6 +4123,7 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4383,11 +4204,11 @@ } }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "optional": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4421,15 +4242,7 @@ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", - "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4560,38 +4373,6 @@ "node": ">=0.4.x" } }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randomatic/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -4704,6 +4485,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "optional": true, "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -4718,6 +4500,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4727,6 +4510,7 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4736,6 +4520,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "optional": true, "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -4757,6 +4542,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -4769,6 +4555,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, + "optional": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -4787,6 +4574,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -4799,6 +4587,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -4811,6 +4600,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -4823,6 +4613,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -4835,6 +4626,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -4847,6 +4639,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -4859,6 +4652,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -4873,6 +4667,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -4882,6 +4677,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, + "optional": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -4901,6 +4697,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -4913,6 +4710,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -4925,6 +4723,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, + "optional": true, "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -4940,6 +4739,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -4952,6 +4752,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -4964,6 +4765,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -4976,6 +4778,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4990,6 +4793,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -5002,6 +4806,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -5014,6 +4819,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -5023,6 +4829,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -5032,6 +4839,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "optional": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -5051,23 +4859,12 @@ "node": ">=0.10.0" } }, - "node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "dependencies": { - "is-equal-shallow": "^0.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, + "optional": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -5080,13 +4877,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "dev": true, + "optional": true }, "node_modules/repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -5139,17 +4938,26 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "dev": true, + "optional": true }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, + "optional": true, "engines": { "node": ">=0.12" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -5204,6 +5012,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, + "optional": true, "dependencies": { "ret": "~0.1.10" } @@ -5240,6 +5049,7 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "optional": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -5255,6 +5065,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -5342,6 +5153,7 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "optional": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -5361,6 +5173,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "optional": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -5375,6 +5188,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -5387,6 +5201,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -5399,6 +5214,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -5411,6 +5227,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5425,6 +5242,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -5434,6 +5252,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -5443,6 +5262,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.2.0" }, @@ -5455,6 +5275,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -5467,6 +5288,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -5475,138 +5297,123 @@ } }, "node_modules/socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha512-CmZLQTyj5nKKVBoguhisLP5Yl6oEfEWbQQQQ0MdXAazCZdRpGR4FG6rd13ryovTa75S36PgXsAGtzwllCWrgbQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "2.3.3", - "engine.io": "1.8.3", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.3", - "socket.io-parser": "2.3.1" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha512-zmYvlFJay9skt4yk1MffE9p93HKvQtyy0BLZ5dRM73bOXFJXNZWq8qZVdY456sLaxdK6fHGiZ7glxzqvzwGzkw==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" + "debug": "~4.3.4", + "ws": "~8.17.1" } }, "node_modules/socket.io-adapter/node_modules/debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "0.7.2" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/socket.io-adapter/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "integrity": "sha512-ZEPOqFboJuuVau/3sMF4PgzJM/X+TDhssgufCnGtPtSL2Nmt4dL3i9JheCT1B45hiYM5cgO+wTO8EYmxbpwHSw==", - "dev": true, - "dependencies": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.3", - "has-binary": "0.1.7", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "dependencies": { - "ms": "0.7.2" - } - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "license": "MIT" }, "node_modules/socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha512-j6l4g/+yWQjmy1yByzg1DPFL4vxQw+NwCJatIxni/AE1wfm17FBtIKSWU4Ay+onrJwDxmC4eK4QS/04ZsqYwZQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, + "license": "MIT", "dependencies": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha512-YhIbp3PJiznERfjlIkK0ue4obZxt2S60+0W8z24ZymOHT8sHloOqWOqZRU2eN5OlY8U08VFsP02letcu26FilA==", - "dev": true - }, "node_modules/socket.io-parser/node_modules/debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "0.7.1" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, "node_modules/socket.io-parser/node_modules/ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/socket.io/node_modules/debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "0.7.2" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/socket.io/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/source-list-map": { "version": "2.0.1", @@ -5629,6 +5436,7 @@ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, + "optional": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -5642,7 +5450,8 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true + "dev": true, + "optional": true }, "node_modules/spdx-correct": { "version": "3.1.1", @@ -5681,6 +5490,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "optional": true, "dependencies": { "extend-shallow": "^3.0.0" }, @@ -5702,6 +5512,7 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, + "optional": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -5715,6 +5526,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -5770,6 +5582,46 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/streamroller/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -5896,23 +5748,15 @@ } }, "node_modules/tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha512-lfyEfOppKvWNeId5CArFLwgwef+iCnbEIy0JWYf1httIEXnx4ndL4Dr1adw7hPgeQfSlTbc/gqn6iaKcROpw5Q==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=14.14" } }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", - "dev": true - }, "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -5924,6 +5768,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -5936,6 +5781,7 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, + "optional": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -5951,6 +5797,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, + "optional": true, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -5964,6 +5811,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -6011,6 +5859,33 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "node_modules/ua-parser-js": { + "version": "0.7.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz", + "integrity": "sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -6067,12 +5942,6 @@ "webpack": "^1.9 || ^2 || ^2.1.0-beta || ^2.2.0-rc || ^3.0.0" } }, - "node_modules/ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha512-QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==", - "dev": true - }, "node_modules/underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -6086,11 +5955,19 @@ "node": "*" } }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, + "optional": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -6119,6 +5996,16 @@ "imurmurhash": "^0.1.4" } }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -6133,6 +6020,7 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, + "optional": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -6146,6 +6034,7 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, + "optional": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -6160,6 +6049,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, + "optional": true, "dependencies": { "isarray": "1.0.0" }, @@ -6172,6 +6062,7 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -6181,6 +6072,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -6210,7 +6102,8 @@ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "dev": true, + "optional": true }, "node_modules/url": { "version": "0.11.0", @@ -6233,20 +6126,11 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "dev": true, - "dependencies": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -6287,6 +6171,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -6762,178 +6656,10 @@ "node": ">=0.10.0" } }, - "node_modules/watchpack-chokidar2/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/watchpack/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/watchpack/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/watchpack/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchpack/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchpack/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/watchpack/node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/watchpack/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "node_modules/webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", "dev": true, "dependencies": { "acorn": "^5.0.0", @@ -6975,12 +6701,6 @@ "lodash": "^4.17.15" } }, - "node_modules/webpack-merge/node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -7036,15 +6756,6 @@ "node": ">= 0.8.0" } }, - "node_modules/wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -7079,28 +6790,25 @@ "dev": true }, "node_modules/ws": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "integrity": "sha512-lobrh3Dhp6tD1hv7NAIMx+oX/rsH/yd6/4krpBmJ/6ulsMZgQMuttlWTuYVWLV6ZjlpWIOjz55KbQbcKSQywEQ==", - "dev": true, - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "node_modules/wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha512-qfR6ovmRRMxNHgUNYI9LRdVofApe/eYrv4ggNOvvCP+pPdEo9Ym93QN4jUceGD6PignBbp2zAzgoE7GibAdq2A==", - "dev": true - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha512-kauAa/1btT613pYX92WXR6kx5trYeckB5YMd3pPvtkMo2Twdfhwl683M8NiSqWHHo97xAC6bnvK1DWFKxfmejg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/xtend": { @@ -7202,33 +6910,57 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", - "dev": true } }, "dependencies": { + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, "@glidejs/glide": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/@glidejs/glide/-/glide-3.4.1.tgz", "integrity": "sha512-C34AEcK1HjSyxilRToUL54I6KAoodojUbeRlXoruobZuG0eGm8xfDL+3kgkWj7AJK4EZtunSOYfoqMp70eDtwg==" }, + "@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, + "requires": { + "undici-types": "~6.20.0" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha512-AOPopplFOUlmUugwiZUCDpOwmqvSgdCyE8iJVLWI4NcB7qfMKQN34dn5xYtlUU03XGG5egRWW4NW5gIxpa5hEA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "requires": { - "mime-types": "~2.1.11", - "negotiator": "0.6.1" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "acorn": { @@ -7254,12 +6986,6 @@ } } }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", - "dev": true - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -7369,14 +7095,23 @@ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "aproba": { @@ -7394,32 +7129,19 @@ "underscore.string": "~2.4.0" } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "dev": true, + "optional": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", - "dev": true + "dev": true, + "optional": true }, "array-union": { "version": "1.0.2", @@ -7436,18 +7158,6 @@ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha512-6ZjfQaBSy6CuIH0+B0NrxMfDE5VIOCP/5gOqSpEIsaAZx9/giszzrXg6PZ7G51U/n88UmlAgYLNQ9wAnII7PJA==", - "dev": true - }, "asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", @@ -7504,7 +7214,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "dev": true, + "optional": true }, "async": { "version": "2.6.3", @@ -7513,33 +7224,21 @@ "dev": true, "requires": { "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "dev": true, + "optional": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true + "dev": true, + "optional": true }, "balanced-match": { "version": "1.0.0", @@ -7552,6 +7251,7 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, + "optional": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -7567,6 +7267,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^1.0.0" } @@ -7576,6 +7277,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -7585,6 +7287,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -7594,6 +7297,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -7604,22 +7308,18 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true } } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==", - "dev": true - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -7627,20 +7327,11 @@ "dev": true }, "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -7651,7 +7342,8 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "dev": true, + "optional": true }, "bindings": { "version": "1.5.0", @@ -7663,12 +7355,6 @@ "file-uri-to-path": "1.0.0" } }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha512-YRc9zvVz4wNaxcXmiSgb9LAg7YYwqQ2xd0Sj6osfA7k/PKmIGVlnOYs3wOFdkRC9/JpQu8sGt/zHgJV7xzerfg==", - "dev": true - }, "blob-tmp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/blob-tmp/-/blob-tmp-1.0.0.tgz", @@ -7722,14 +7408,12 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "fill-range": "^7.1.1" } }, "brorand": { @@ -7841,28 +7525,6 @@ "isarray": "^1.0.0" } }, - "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": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -7913,6 +7575,7 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, + "optional": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -7929,7 +7592,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, @@ -7943,12 +7607,6 @@ "get-intrinsic": "^1.0.2" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", - "dev": true - }, "camelcase": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", @@ -7966,35 +7624,50 @@ } }, "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "is-extglob": "^1.0.0" + "picomatch": "^2.2.1" } } } @@ -8020,6 +7693,7 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, + "optional": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -8032,6 +7706,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -8040,7 +7715,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, @@ -8083,57 +7759,45 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, + "optional": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha512-4Mi0V7N48B9KzC8Zl/U7wiWuxMFEHf44N3/PSoAvWDu8IOPrddNo1y1tC/kXbP7IvVMhgCFMMNzgKb0pWoin9w==", - "dev": true, - "requires": { - "lodash": "^4.5.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - } - } - }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", - "dev": true - }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -8184,9 +7848,9 @@ "dev": true }, "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true }, "copy-concurrently": { @@ -8207,7 +7871,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "dev": true, + "optional": true }, "copy-webpack-plugin": { "version": "4.6.0", @@ -8225,18 +7890,22 @@ "serialize-javascript": "^1.4.0" } }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -8334,6 +8003,12 @@ "type": "^1.0.1" } }, + "date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -8353,13 +8028,15 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true + "dev": true, + "optional": true }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, + "optional": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -8370,6 +8047,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -8379,6 +8057,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -8388,6 +8067,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -8398,13 +8078,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true } } }, @@ -8523,6 +8205,12 @@ } } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -8545,92 +8233,44 @@ } }, "engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha512-VNQ79eqoDiapJ2tDMu+N7SPDm11btXpO7b2gsxBVd1XbxBCx6xLyTESIuFlWUspsbuif6Rq88pYNrQce5G7bqw==", - "dev": true, - "requires": { - "accepts": "1.3.3", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "ws": "1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true - } - } - }, - "engine.io-client": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "integrity": "sha512-260nnbHkYPTPnA9cjH2oCvWmqNwYofsNBkDfViI9iS487oMcl3kUeSgXJCwMxASgOL5DVlQF4hb0NzRNFkUaFg==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", "dev": true, "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "2.3.3", - "engine.io-parser": "1.3.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parsejson": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "1.1.2", - "xmlhttprequest-ssl": "1.5.3", - "yeast": "0.1.2" + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true - }, "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "^2.1.3" } }, "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha512-3UyTJo+5Jbmr7rd3MosTAApK7BOIo4sjx8dJYSHa3Em5R3A9Y2s9GWu4JFJe6Px0VieJC0hKUA5NBytC+O7k2A==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "0.0.6", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.4", - "has-binary": "0.1.7", - "wtf-8": "1.0.0" - } + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true }, "enhanced-resolve": { "version": "3.4.1", @@ -8751,6 +8391,12 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -8844,68 +8490,6 @@ "strip-eof": "^1.0.0" } }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha512-zOOsEnAhvIxxd0esCNbYG2xerGf46niZ1egS43eV7Fu4t7VIScgPXMcMabCLaPrqkzwvwo6zZipDiX3t0ILF2w==", - "dev": true, - "requires": { - "array-slice": "^0.2.3", - "array-unique": "^0.2.1", - "braces": "^0.1.2" - }, - "dependencies": { - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha512-EIMHIv2UXHWFY2xubUGKz+hq9hNkENj4Pjvr7h58cmJgpkK2yMlKA8I484f7MSttkzVAy/lL7X9xDaILd6avzA==", - "dev": true, - "requires": { - "expand-range": "^0.1.0" - } - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha512-busOHJ0t7t5UcutcyNDqmaDX+1cb0XlqsAUgTlmplVv0rIqBaMcBSZRLlkDm0nxtl8O3o/EvRRrdQ/WnyPERLQ==", - "dev": true, - "requires": { - "is-number": "^0.1.1", - "repeat-string": "^0.2.2" - } - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha512-la5kPULwIgkSSaZj9w7/A1uHqOBAgOhDUKQ5CkfL8LZ4Si6r4+2D0hI6b4o60MW4Uj2yNJARWIZUDPxlvOYQcw==", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha512-yHeI3F9v20MY+8/5WAUgIWseMZwpLD+l9h5hGyzh6fQjhle2AwjjRDao1m5IozSDuVvMw09/mvE8AU1oDmZKpQ==", - "dev": true - } - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", - "dev": true, - "requires": { - "fill-range": "^2.1.0" - } - }, "ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", @@ -8934,6 +8518,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, + "optional": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -8944,29 +8529,13 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "optional": true, "requires": { "is-plain-object": "^2.0.4" } } } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true - } - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -8991,23 +8560,24 @@ "dev": true, "optional": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", - "dev": true - }, "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "to-regex-range": "^5.0.1" + }, + "dependencies": { + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "finalhandler": { @@ -9062,6 +8632,12 @@ "locate-path": "^2.0.0" } }, + "flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -9082,22 +8658,15 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, - "requires": { - "for-in": "^1.0.1" - } + "optional": true }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, + "optional": true, "requires": { "map-cache": "^0.2.2" } @@ -9112,6 +8681,17 @@ "readable-stream": "^2.0.0" } }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -9174,73 +8754,30 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "dev": true, + "optional": true }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", - "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "is-glob": "^4.0.1" } }, "globby": { @@ -9272,29 +8809,6 @@ "function-bind": "^1.1.1" } }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha512-k1Umb4/jrBWZbtL+QKSji8qWeoZ7ZTkXdnDXt1wxwBKAFM0//u96wDj43mBIqCIas8rDQMYyrBEvcS8hdGd4Sg==", - "dev": true, - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", - "dev": true - }, "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", @@ -9312,6 +8826,7 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, + "optional": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -9322,7 +8837,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, @@ -9331,6 +8847,7 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, + "optional": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -9341,6 +8858,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" }, @@ -9350,6 +8868,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -9361,6 +8880,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -9492,12 +9012,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -9531,6 +9045,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -9546,6 +9061,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, + "optional": true, "requires": { "binary-extensions": "^1.0.0" } @@ -9570,6 +9086,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -9579,6 +9096,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -9589,7 +9107,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "dev": true, + "optional": true } } }, @@ -9597,28 +9116,14 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" - } + "dev": true }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "dev": true, + "optional": true }, "is-extglob": { "version": "2.1.1", @@ -9645,19 +9150,17 @@ } }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "optional": true, "requires": { "isobject": "^3.0.1" }, @@ -9666,22 +9169,11 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", - "dev": true - }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -9692,7 +9184,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "dev": true, + "optional": true }, "is-wsl": { "version": "2.2.0", @@ -9710,13 +9203,10 @@ "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" - } + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true }, "isexe": { "version": "2.0.0", @@ -9724,15 +9214,6 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, "jasmine-core": { "version": "2.99.1", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", @@ -9765,12 +9246,6 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA==", - "dev": true - }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", @@ -9780,39 +9255,149 @@ "minimist": "^1.2.0" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "karma": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", - "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", - "dev": true, - "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "chokidar": "^1.4.1", - "colors": "^1.1.0", - "combine-lists": "^1.0.0", - "connect": "^3.6.0", - "core-js": "^2.2.0", + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", + "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "expand-braces": "^0.1.1", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^3.8.0", - "log4js": "^0.6.31", - "mime": "^1.3.4", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "1.7.3", - "source-map": "^0.5.3", - "tmp": "0.0.31", - "useragent": "^2.1.12" + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } } }, "karma-chrome-launcher": { @@ -9945,43 +9530,37 @@ } }, "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha512-Cd+klbx7lkiaamEId9/0odHxv/PFHDz2E12kEfd6/CzIOZD084DzysASR/Dot4i1dYPBQKC3r2XIER+dfbLOmw==", + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, "requires": { - "readable-stream": "~1.0.2", - "semver": "~4.3.3" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" + "ms": "^2.1.3" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -10024,23 +9603,19 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "dev": true, + "optional": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, + "optional": true, "requires": { "object-visit": "^1.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -10077,44 +9652,6 @@ "readable-stream": "^2.0.1" } }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -10134,9 +9671,9 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true }, "mime-db": { @@ -10173,9 +9710,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -10210,6 +9747,7 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, + "optional": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -10220,6 +9758,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "optional": true, "requires": { "is-plain-object": "^2.0.4" } @@ -10280,6 +9819,7 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, + "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -10298,26 +9838,29 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "dev": true, + "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "dev": true, + "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true } } }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, "neo-async": { @@ -10408,13 +9951,10 @@ } }, "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "npm-run-path": { "version": "2.0.2", @@ -10437,17 +9977,12 @@ "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", "dev": true }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA==", - "dev": true - }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, + "optional": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -10459,6 +9994,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10476,6 +10012,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, + "optional": true, "requires": { "isobject": "^3.0.0" }, @@ -10484,25 +10021,17 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", - "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, + "optional": true, "requires": { "isobject": "^3.0.1" }, @@ -10511,7 +10040,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, @@ -10533,30 +10063,6 @@ "wrappy": "1" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", - "dev": true - } - } - }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==", - "dev": true - }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -10574,12 +10080,6 @@ "mem": "^1.1.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true - }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -10659,35 +10159,6 @@ } } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", @@ -10697,33 +10168,6 @@ "error-ex": "^1.2.0" } }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha512-v38ZjVbinlZ2r1Rz06WUZEnGoSRcEGX+roMsiWjHeAe23s2qlQUyfmsPQZvh7d8l0E8AZzTIO/RkUr00LfkSiA==", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw==", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog==", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -10734,7 +10178,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "dev": true, + "optional": true }, "path-browserify": { "version": "0.0.1", @@ -10796,11 +10241,10 @@ } }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true }, "pify": { "version": "3.0.0", @@ -10821,13 +10265,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", - "dev": true + "dev": true, + "optional": true }, "process": { "version": "0.11.10", @@ -10935,31 +10374,6 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -11055,6 +10469,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "optional": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -11065,19 +10480,22 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "dev": true, + "optional": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "dev": true, + "optional": true }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "optional": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -11096,6 +10514,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11107,6 +10526,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, + "optional": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -11122,6 +10542,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11131,6 +10552,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11140,6 +10562,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" }, @@ -11149,6 +10572,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -11160,6 +10584,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" }, @@ -11169,6 +10594,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -11180,6 +10606,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -11190,7 +10617,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "dev": true, + "optional": true } } }, @@ -11199,6 +10627,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, + "optional": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -11215,6 +10644,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^1.0.0" } @@ -11224,6 +10654,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11235,6 +10666,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, + "optional": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -11247,6 +10679,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11258,6 +10691,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -11267,6 +10701,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -11276,6 +10711,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11287,6 +10723,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" }, @@ -11296,6 +10733,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -11306,19 +10744,22 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "optional": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -11337,20 +10778,12 @@ } } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, + "optional": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -11360,13 +10793,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "dev": true, + "optional": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "dev": true, + "optional": true }, "repeat-string": { "version": "1.6.1", @@ -11406,12 +10841,20 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "dev": true, + "optional": true }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "optional": true + }, + "rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true }, "right-align": { @@ -11462,6 +10905,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, + "optional": true, "requires": { "ret": "~0.1.10" } @@ -11495,6 +10939,7 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "optional": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -11507,6 +10952,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11578,6 +11024,7 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "optional": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -11594,6 +11041,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11603,6 +11051,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, + "optional": true, "requires": { "is-extendable": "^0.1.0" } @@ -11614,6 +11063,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "optional": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -11625,6 +11075,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^1.0.0" } @@ -11634,6 +11085,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -11643,6 +11095,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^6.0.0" } @@ -11652,6 +11105,7 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, + "optional": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11662,13 +11116,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "optional": true } } }, @@ -11677,148 +11133,93 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "optional": true, "requires": { "kind-of": "^3.2.0" } }, "socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha512-CmZLQTyj5nKKVBoguhisLP5Yl6oEfEWbQQQQ0MdXAazCZdRpGR4FG6rd13ryovTa75S36PgXsAGtzwllCWrgbQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", "dev": true, "requires": { - "debug": "2.3.3", - "engine.io": "1.8.3", - "has-binary": "0.1.7", - "object-assign": "4.1.0", - "socket.io-adapter": "0.5.0", - "socket.io-client": "1.7.3", - "socket.io-parser": "2.3.1" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "^2.1.3" } }, "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha512-zmYvlFJay9skt4yk1MffE9p93HKvQtyy0BLZ5dRM73bOXFJXNZWq8qZVdY456sLaxdK6fHGiZ7glxzqvzwGzkw==", - "dev": true, - "requires": { - "debug": "2.3.3", - "socket.io-parser": "2.3.1" - }, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true - } - } - }, - "socket.io-client": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "integrity": "sha512-ZEPOqFboJuuVau/3sMF4PgzJM/X+TDhssgufCnGtPtSL2Nmt4dL3i9JheCT1B45hiYM5cgO+wTO8EYmxbpwHSw==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "requires": { - "backo2": "1.0.2", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "2.3.3", - "engine.io-client": "1.8.3", - "has-binary": "0.1.7", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseuri": "0.0.5", - "socket.io-parser": "2.3.1", - "to-array": "0.1.4" + "debug": "~4.3.4", + "ws": "~8.17.1" }, "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true - }, "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "0.7.2" + "ms": "^2.1.3" } }, "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha512-j6l4g/+yWQjmy1yByzg1DPFL4vxQw+NwCJatIxni/AE1wfm17FBtIKSWU4Ay+onrJwDxmC4eK4QS/04ZsqYwZQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "requires": { - "component-emitter": "1.1.2", - "debug": "2.2.0", - "isarray": "0.0.1", - "json3": "3.3.2" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" }, "dependencies": { - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha512-YhIbp3PJiznERfjlIkK0ue4obZxt2S60+0W8z24ZymOHT8sHloOqWOqZRU2eN5OlY8U08VFsP02letcu26FilA==", - "dev": true - }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "0.7.1" + "ms": "^2.1.3" } }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -11840,6 +11241,7 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, + "optional": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -11852,7 +11254,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true + "dev": true, + "optional": true }, "spdx-correct": { "version": "3.1.1", @@ -11891,6 +11294,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "optional": true, "requires": { "extend-shallow": "^3.0.0" } @@ -11909,6 +11313,7 @@ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, + "optional": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -11919,6 +11324,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, + "optional": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11970,6 +11376,34 @@ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, + "streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "requires": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12068,18 +11502,9 @@ } }, "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha512-lfyEfOppKvWNeId5CArFLwgwef+iCnbEIy0JWYf1httIEXnx4ndL4Dr1adw7hPgeQfSlTbc/gqn6iaKcROpw5Q==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true }, "to-arraybuffer": { @@ -12093,6 +11518,7 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -12102,6 +11528,7 @@ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, + "optional": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -12114,6 +11541,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, + "optional": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -12124,6 +11552,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2" } @@ -12164,6 +11593,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "ua-parser-js": { + "version": "0.7.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz", + "integrity": "sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==", + "dev": true + }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", @@ -12207,12 +11642,6 @@ "webpack-sources": "^1.0.1" } }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha512-QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==", - "dev": true - }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -12223,11 +11652,18 @@ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=" }, + "undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, + "optional": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -12253,6 +11689,12 @@ "imurmurhash": "^0.1.4" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -12264,6 +11706,7 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, + "optional": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -12274,6 +11717,7 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, + "optional": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -12285,6 +11729,7 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, + "optional": true, "requires": { "isarray": "1.0.0" } @@ -12295,13 +11740,15 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "dev": true, + "optional": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "optional": true } } }, @@ -12325,7 +11772,8 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "dev": true, + "optional": true }, "url": { "version": "0.11.0", @@ -12349,17 +11797,8 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, - "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } + "optional": true }, "util": { "version": "0.11.1", @@ -12400,6 +11839,12 @@ "spdx-expression-parse": "^3.0.0" } }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -12422,124 +11867,6 @@ "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", "watchpack-chokidar2": "^2.0.1" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "optional": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "optional": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "optional": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "requires": { - "is-number": "^7.0.0" - } - } } }, "watchpack-chokidar2": { @@ -12918,13 +12245,6 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true } } }, @@ -12973,14 +12293,6 @@ "dev": true, "requires": { "lodash": "^4.17.15" - }, - "dependencies": { - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - } } }, "webpack-sources": { @@ -13022,12 +12334,6 @@ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", - "dev": true - }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -13058,26 +12364,11 @@ "dev": true }, "ws": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "integrity": "sha512-lobrh3Dhp6tD1hv7NAIMx+oX/rsH/yd6/4krpBmJ/6ulsMZgQMuttlWTuYVWLV6ZjlpWIOjz55KbQbcKSQywEQ==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, - "requires": { - "options": ">=0.0.5", - "ultron": "1.0.x" - } - }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha512-qfR6ovmRRMxNHgUNYI9LRdVofApe/eYrv4ggNOvvCP+pPdEo9Ym93QN4jUceGD6PignBbp2zAzgoE7GibAdq2A==", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha512-kauAa/1btT613pYX92WXR6kx5trYeckB5YMd3pPvtkMo2Twdfhwl683M8NiSqWHHo97xAC6bnvK1DWFKxfmejg==", - "dev": true + "requires": {} }, "xtend": { "version": "4.0.2", @@ -13172,12 +12463,6 @@ "dev": true } } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", - "dev": true } } } diff --git a/Open-ILS/web/js/ui/default/staff/package.json b/Open-ILS/web/js/ui/default/staff/package.json index 3c032d914e..90ad866260 100644 --- a/Open-ILS/web/js/ui/default/staff/package.json +++ b/Open-ILS/web/js/ui/default/staff/package.json @@ -9,7 +9,7 @@ "clean-webpack-plugin": "^0.1.17", "copy-webpack-plugin": "^4.3.0", "jasmine-core": "^2.99.1", - "karma": "^1.7.1", + "karma": "^6.4.4", "karma-chrome-launcher": "^3.1.0", "karma-firefox-launcher": "^1.2.0", "karma-jasmine": "^1.1.1", From 61bdbd299e83e5b6c51b446853dc330637e6e3f6 Mon Sep 17 00:00:00 2001 From: Ian Skelskey <46094112+IanSkelskey@users.noreply.github.com> Date: Sun, 23 Feb 2025 00:12:27 -0500 Subject: [PATCH 21/26] Potential fix for code scanning alert no. 44: Useless regular-expression character escape Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .../eg2/src/app/staff/reporter/full/my-reports.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Open-ILS/src/eg2/src/app/staff/reporter/full/my-reports.component.html b/Open-ILS/src/eg2/src/app/staff/reporter/full/my-reports.component.html index 8bb2a8c3f7..76b92a0ffe 100644 --- a/Open-ILS/src/eg2/src/app/staff/reporter/full/my-reports.component.html +++ b/Open-ILS/src/eg2/src/app/staff/reporter/full/my-reports.component.html @@ -62,7 +62,7 @@ - + {{row.documentation}} From 773121206da25bd534f25053a9060fa53162bf5b Mon Sep 17 00:00:00 2001 From: Ian Skelskey <46094112+IanSkelskey@users.noreply.github.com> Date: Sun, 23 Feb 2025 00:20:18 -0500 Subject: [PATCH 22/26] Potential fix for code scanning alert no. 43: Useless regular-expression character escape Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- .../eg2/src/app/staff/reporter/full/definition.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html b/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html index d7bc2ec3bd..857aecc187 100644 --- a/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html +++ b/Open-ILS/src/eg2/src/app/staff/reporter/full/definition.component.html @@ -60,8 +60,8 @@
- {{templ.doc_url}} - {{templ.doc_url}} + {{templ.doc_url}} + {{templ.doc_url}}
From 518d949b328a60d92b3ea38ce0e3e842a99593aa Mon Sep 17 00:00:00 2001 From: Ian Skelskey <46094112+IanSkelskey@users.noreply.github.com> Date: Sun, 23 Feb 2025 00:23:11 -0500 Subject: [PATCH 23/26] Potential fix for code scanning alert no. 41: Double escaping or unescaping Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> --- Open-ILS/xul/staff_client/chrome/content/util/text.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Open-ILS/xul/staff_client/chrome/content/util/text.js b/Open-ILS/xul/staff_client/chrome/content/util/text.js index 48819be62a..ddf44c43ca 100644 --- a/Open-ILS/xul/staff_client/chrome/content/util/text.js +++ b/Open-ILS/xul/staff_client/chrome/content/util/text.js @@ -36,12 +36,12 @@ util.text.preserve_string_in_html = function( text ) { } util.text.reverse_preserve_string_in_html = function( text ) { - text = text.replace(/&/g, '&'); text = text.replace(/"/g, '"'); text = text.replace(/'/g, "'"); text = text.replace(/ /g, ' '); text = text.replace(/</g, '<'); text = text.replace(/>/g, '>'); + text = text.replace(/&/g, '&'); return text; } From efd353c00b28cfeb028cb41253c43869832aa303 Mon Sep 17 00:00:00 2001 From: Ian Skelskey Date: Sun, 23 Feb 2025 00:25:23 -0500 Subject: [PATCH 24/26] Delete xul directory --- Open-ILS/xul/staff_client/LICENSE | 0 Open-ILS/xul/staff_client/Makefile.am | 411 - Open-ILS/xul/staff_client/README | 3 - Open-ILS/xul/staff_client/application.ini | 39 - Open-ILS/xul/staff_client/chrome.manifest | 27 - .../chrome/branding/locale/en-US/brand.dtd | 6 - .../branding/locale/en-US/brand.properties | 3 - .../xul/staff_client/chrome/chrome.manifest | 6 - .../chrome/content/OpenILS/data.js | 1134 -- .../chrome/content/OpenILS/event_util.js | 40 - .../chrome/content/OpenILS/global_util.js | 695 - .../chrome/content/OpenILS/util/fmall.js | 15 - .../content/OpenILS/util_overlay_chrome.xul | 82 - .../content/OpenILS/util_overlay_offline.xul | 77 - .../chrome/content/admin/survey.js | 284 - .../chrome/content/admin/survey_overlay.xul | 96 - .../chrome/content/admin/survey_wizard.xul | 65 - .../chrome/content/auth/controller.js | 608 - .../chrome/content/auth/session.js | 195 - .../staff_client/chrome/content/cat/opac.js | 1243 -- .../staff_client/chrome/content/cat/opac.xul | 90 - .../chrome/content/circ/offline.js | 160 - .../chrome/content/circ/offline.xul | 100 - .../chrome/content/circ/offline_checkin.js | 154 - .../chrome/content/circ/offline_checkin.xul | 88 - .../chrome/content/circ/offline_checkout.js | 319 - .../chrome/content/circ/offline_checkout.xul | 127 - .../content/circ/offline_in_house_use.js | 156 - .../content/circ/offline_in_house_use.xul | 97 - .../chrome/content/circ/offline_register.js | 383 - .../chrome/content/circ/offline_register.xul | 136 - .../chrome/content/circ/offline_renew.js | 272 - .../chrome/content/circ/offline_renew.xul | 121 - .../staff_client/chrome/content/circ/util.js | 282 - .../chrome/content/firefox/overlay.xul | 18 - .../staff_client/chrome/content/main/JSAN.js | 290 - .../chrome/content/main/about.html | 400 - .../chrome/content/main/bindings.xml | 568 - .../chrome/content/main/constants.js | 530 - .../staff_client/chrome/content/main/main.js | 823 -- .../staff_client/chrome/content/main/main.xul | 214 - .../staff_client/chrome/content/main/menu.js | 2975 ----- .../chrome/content/main/menu_frame.xul | 126 - .../chrome/content/main/menu_frame_menus.xul | 745 -- .../content/main/menu_frame_overlay.xul | 302 - .../chrome/content/main/search_prefs.xul | 138 - .../chrome/content/main/simple_auth.xul | 159 - .../staff_client/chrome/content/main/test.xul | 24 - .../staff_client/chrome/content/test/test.js | 13 - .../chrome/content/util/barcode.js | 41 - .../chrome/content/util/browser.js | 581 - .../chrome/content/util/browser.xul | 146 - .../chrome/content/util/clipboard.js | 73 - .../chrome/content/util/controller.js | 72 - .../staff_client/chrome/content/util/date.js | 195 - .../staff_client/chrome/content/util/deck.js | 193 - .../staff_client/chrome/content/util/error.js | 643 - .../staff_client/chrome/content/util/exec.js | 113 - .../chrome/content/util/fancy_prompt.xul | 151 - .../staff_client/chrome/content/util/file.js | 306 - .../chrome/content/util/fm_utils.js | 163 - .../chrome/content/util/fm_view.xul | 206 - .../chrome/content/util/functional.js | 151 - .../staff_client/chrome/content/util/hide.js | 189 - .../staff_client/chrome/content/util/list.js | 2273 ---- .../chrome/content/util/list_clipboard.xul | 107 - .../staff_client/chrome/content/util/money.js | 72 - .../chrome/content/util/mozilla.js | 72 - .../chrome/content/util/network.js | 625 - .../staff_client/chrome/content/util/print.js | 775 -- .../chrome/content/util/print_win.js | 165 - .../chrome/content/util/rbrowser.xul | 153 - .../chrome/content/util/shell.html | 63 - .../staff_client/chrome/content/util/shell.js | 720 -- .../chrome/content/util/socket.js | 157 - .../staff_client/chrome/content/util/sort.js | 21 - .../staff_client/chrome/content/util/sound.js | 144 - .../chrome/content/util/sprintf.js | 182 - .../staff_client/chrome/content/util/text.js | 48 - .../chrome/content/util/timestamp.js | 138 - .../chrome/content/util/timestamp.xul | 49 - .../chrome/content/util/untrusted_window.xul | 15 - .../chrome/content/util/widget_prompt.js | 77 - .../chrome/content/util/widget_prompt.xul | 49 - .../chrome/content/util/widgets.js | 527 - .../chrome/content/util/window.js | 101 - .../chrome/content/util/xuledit.js | 63 - .../chrome/content/util/xuledit.xul | 15 - .../chrome/locale/en-US/auth.properties | 15 - .../chrome/locale/en-US/offline.properties | 336 - .../xul/staff_client/chrome/skin/auth.css | 3 - .../xul/staff_client/chrome/skin/browser.css | 2070 --- .../xul/staff_client/chrome/skin/global.css | 164 - .../chrome/skin/hotkeys/Default.keyset | 20 - .../chrome/skin/hotkeys/Minimal.keyset | 7 - .../chrome/skin/hotkeys/None.keyset | 1 - .../staff_client/chrome/skin/hotkeys/README | 33 - .../skin/media/images/Arrow-rightup-small.png | Bin 4498 -> 0 bytes .../images/Arrow-rightup-small_toolbar.png | Bin 7475 -> 0 bytes .../media/images/HILLBLU_famiglia_32x32.png | Bin 4364 -> 0 bytes .../media/images/HILLBLU_famiglia_toolbar.png | Bin 6888 -> 0 bytes .../media/images/HILLBLU_indici_32x32.png | Bin 4372 -> 0 bytes .../media/images/HILLBLU_indici_toolbar.png | Bin 6813 -> 0 bytes .../skin/media/images/HILLBLU_lente_32x32.png | Bin 4401 -> 0 bytes .../media/images/HILLBLU_lente_toolbar.png | Bin 6876 -> 0 bytes .../skin/media/images/HILLBLU_libro_32x32.png | Bin 4298 -> 0 bytes .../media/images/HILLBLU_libro_toolbar.png | Bin 6581 -> 0 bytes .../skin/media/images/Search_Items_32x32.png | Bin 4757 -> 0 bytes .../media/images/Search_Items_toolbar.png | Bin 7646 -> 0 bytes .../chrome/skin/media/images/center.png | Bin 4670 -> 0 bytes .../skin/media/images/center_toolbar.png | Bin 7998 -> 0 bytes .../media/images/hotkeys_disable_toolbar.png | Bin 9011 -> 0 bytes .../chrome/skin/media/images/licenses.txt | 48 - .../chrome/skin/media/images/newtab.png | Bin 237 -> 0 bytes .../chrome/skin/media/images/opentriangle.gif | Bin 65 -> 0 bytes .../toolbar_blue/acq_bib_search_toolbar.png | Bin 5864 -> 0 bytes .../acq_claim_eligible_toolbar.png | Bin 4125 -> 0 bytes .../acq_create_invoice_toolbar.png | Bin 5330 -> 0 bytes .../toolbar_blue/acq_create_po_toolbar.png | Bin 4780 -> 0 bytes .../acq_invoice_search_toolbar.png | Bin 5520 -> 0 bytes .../acq_new_brief_record_toolbar.png | Bin 4387 -> 0 bytes .../toolbar_blue/acq_po_search_toolbar.png | Bin 5290 -> 0 bytes .../acq_unified_search_toolbar.png | Bin 5104 -> 0 bytes .../toolbar_blue/acq_upload_toolbar.png | Bin 5129 -> 0 bytes .../acq_user_requests_toolbar.png | Bin 5082 -> 0 bytes .../toolbar_blue/acq_view_my_pl_toolbar.png | Bin 4709 -> 0 bytes .../toolbar_blue/booking_capture_toolbar.png | Bin 5504 -> 0 bytes .../booking_pull_list_toolbar.png | Bin 5159 -> 0 bytes .../booking_reservation_pickup_toolbar.png | Bin 4697 -> 0 bytes .../booking_reservation_return_toolbar.png | Bin 4671 -> 0 bytes .../booking_reservation_toolbar.png | Bin 4871 -> 0 bytes .../browse_holds_shelf_toolbar.png | Bin 5498 -> 0 bytes .../circ_hold_pull_list_toolbar.png | Bin 5216 -> 0 bytes .../toolbar_blue/circ_renew_toolbar.png | Bin 5848 -> 0 bytes .../edit_copy_buckets_toolbar.png | Bin 4963 -> 0 bytes .../edit_record_buckets_toolbar.png | Bin 4982 -> 0 bytes .../images/toolbar_blue/portal_toolbar.png | Bin 4703 -> 0 bytes .../retrieve_last_patron_toolbar.png | Bin 5140 -> 0 bytes .../chrome/skin/media/images/triangle.gif | Bin 116 -> 0 bytes Open-ILS/xul/staff_client/components/clh.js | 153 - .../staff_client/components/forceexternal.js | 52 - .../xul/staff_client/components/nsOpenILS.js | 49 - .../staff_client/components/oils_protocol.js | 250 - .../custom_images/Beta Header.png | Bin 11461 -> 0 bytes .../custom_images/Beta Wizard - Install.png | Bin 32118 -> 0 bytes .../custom_images/Beta Wizard - Uninstall.png | Bin 34317 -> 0 bytes Open-ILS/xul/staff_client/custom_images/DCO | 27 - .../xul/staff_client/custom_images/Header.png | Bin 9400 -> 0 bytes .../xul/staff_client/custom_images/README | 15 - .../custom_images/Wizard - Install.png | Bin 34443 -> 0 bytes .../custom_images/Wizard - Uninstall.png | Bin 36967 -> 0 bytes .../custom_images/beta/header.bmp | Bin 25818 -> 0 bytes .../custom_images/beta/install.bmp | Bin 154542 -> 0 bytes .../custom_images/beta/uninstall.bmp | Bin 154542 -> 0 bytes .../custom_images/release/header.bmp | Bin 25818 -> 0 bytes .../custom_images/release/install.bmp | Bin 154542 -> 0 bytes .../custom_images/release/uninstall.bmp | Bin 154542 -> 0 bytes .../defaults/preferences/autoupdate.js | 29 - .../defaults/preferences/chrome_list.js | 2 - .../defaults/preferences/initialhost.js | 3 - .../defaults/preferences/inspector.js | 47 - .../defaults/preferences/prefs.js | 35 - .../preferences/standalone_xul_app.js | 73 - .../xul/staff_client/evergreen-icon-beta.ico | Bin 353118 -> 0 bytes Open-ILS/xul/staff_client/evergreen-icon.ico | Bin 353118 -> 0 bytes .../staff_client/external/aa_per_machine.js | 2 - .../staff_client/external/closure_compiler.sh | 3 - .../xul/staff_client/external/developers.js | 14 - .../staff_client/external/dojo_template.js | 34 - .../staff_client/external/dojo_template.xul | 37 - .../staff_client/external/dump_splitter.sh | 8 - .../staff_client/external/libmar/Makefile.am | 1 - .../xul/staff_client/external/libmar/README | 11 - .../staff_client/external/libmar/configure.ac | 50 - .../external/libmar/src/Makefile.am | 2 - .../staff_client/external/libmar/src/mar.h | 169 - .../external/libmar/src/mar_cmdline.h | 94 - .../external/libmar/src/mar_create.c | 416 - .../external/libmar/src/mar_extract.c | 102 - .../external/libmar/src/mar_private.h | 88 - .../external/libmar/src/mar_read.c | 581 - .../external/libmar/tool/Makefile.am | 5 - .../external/libmar/tool/bsdiff.c | 393 - .../staff_client/external/libmar/tool/crc32.c | 22 - .../staff_client/external/libmar/tool/mar.c | 179 - .../staff_client/external/make_entities.pl | 28 - .../xul/staff_client/external/make_updates.sh | 353 - .../xul/staff_client/external/prune_dirs.sh | 6 - .../xul/staff_client/external/template.js | 37 - .../xul/staff_client/external/template.xul | 72 - Open-ILS/xul/staff_client/extras.example.nsi | 24 - .../staff_client/imagesources/licenses.txt | 32 - .../imagesources/maketoolbarpics.sh | 61 - .../toolbar_blue/background_3_blue.svg | 33 - .../toolbar_blue/blue_acq_bib_search.svg | 63 - .../toolbar_blue/blue_acq_claim_eligible.svg | 39 - .../toolbar_blue/blue_acq_create_invoice.svg | 48 - .../toolbar_blue/blue_acq_create_po.svg | 52 - .../toolbar_blue/blue_acq_invoice_search.svg | 72 - .../blue_acq_new_brief_record.svg | 42 - .../toolbar_blue/blue_acq_po_search.svg | 77 - .../toolbar_blue/blue_acq_unified_search.svg | 55 - .../toolbar_blue/blue_acq_upload.svg | 42 - .../toolbar_blue/blue_acq_user_requests.svg | 81 - .../toolbar_blue/blue_acq_view_my_pl.svg | 50 - .../toolbar_blue/blue_booking_capture.svg | 92 - .../toolbar_blue/blue_booking_pull_list.svg | 42 - .../toolbar_blue/blue_booking_reservation.svg | 57 - .../blue_booking_reservation_pickup.svg | 47 - .../blue_booking_reservation_return.svg | 47 - .../toolbar_blue/blue_browse_holds_shelf.svg | 112 - .../toolbar_blue/blue_circ_hold_pull_list.svg | 112 - .../toolbar_blue/blue_circ_renew.svg | 50 - .../toolbar_blue/blue_edit_copy_buckets.svg | 44 - .../toolbar_blue/blue_edit_record_buckets.svg | 46 - .../imagesources/toolbar_blue/blue_portal.svg | 36 - .../blue_retrieve_last_patron.svg | 80 - Open-ILS/xul/staff_client/install.rdf | 29 - .../server/OpenILS/symbol_overlay.js | 47 - .../server/OpenILS/symbol_overlay.xul | 376 - .../server/OpenILS/util_overlay.xul | 106 - .../xul/staff_client/server/addon/addons.js | 83 - .../xul/staff_client/server/addon/addons.xul | 55 - .../staff_client/server/addon/autoloader.js | 78 - .../server/addon/pv_supa_goodstuff.js | 802 -- .../pv_supa_goodstuff_config_overlay.xul | 46 - .../pv_supa_goodstuff_test1.expect | 52 - .../pv_supa_goodstuff_test2.expect | 144 - .../pv_supa_goodstuff_test3.expect | 109 - .../xul/staff_client/server/admin/admin.css | 55 - .../xul/staff_client/server/admin/adminlib.js | 194 - .../staff_client/server/admin/cash_reports.js | 119 - .../server/admin/cash_reports.xhtml | 94 - .../server/admin/circ_age_to_lost.js | 120 - .../server/admin/circ_age_to_lost.xul | 65 - .../staff_client/server/admin/closed_dates.js | 478 - .../server/admin/closed_dates.xhtml | 238 - .../server/admin/copy_locations.js | 310 - .../server/admin/copy_locations.xhtml | 251 - .../do_not_auto_attempt_print_setting.js | 114 - .../do_not_auto_attempt_print_setting.xul | 60 - .../server/admin/font_settings.xul | 177 - .../server/admin/hold_pull_list.js | 115 - .../server/admin/hold_pull_list.xhtml | 95 - .../server/admin/hold_pull_list_classic.js | 241 - .../server/admin/hold_pull_list_classic.xhtml | 63 - .../xul/staff_client/server/admin/index.xhtml | 102 - .../server/admin/non_cat_types.js | 228 - .../server/admin/non_cat_types.xhtml | 165 - .../server/admin/offline_manage_xacts.js | 885 -- .../server/admin/offline_manage_xacts.xul | 104 - .../server/admin/org_unit_settings.js | 595 - .../server/admin/org_unit_settings.xhtml | 219 - .../server/admin/patrons_due_refunds.js | 205 - .../server/admin/patrons_due_refunds.xul | 68 - .../server/admin/printer_settings.js | 100 - .../server/admin/printer_settings.txt | 15 - .../server/admin/printer_settings.xul | 69 - .../server/admin/stat_cat_editor.js | 702 -- .../server/admin/stat_cat_editor.xhtml | 342 - .../xul/staff_client/server/admin/toolbar.js | 706 -- .../xul/staff_client/server/admin/toolbar.xul | 109 - .../staff_client/server/admin/transit_list.js | 462 - .../server/admin/transit_list.xul | 156 - .../staff_client/server/admin/upload_xacts.js | 51 - .../server/admin/upload_xacts.xhtml | 43 - .../xul/staff_client/server/admin/work_log.js | 185 - .../staff_client/server/admin/work_log.xul | 77 - .../xul/staff_client/server/cat/bib_brief.js | 303 - .../xul/staff_client/server/cat/bib_brief.xul | 53 - .../server/cat/bib_brief_overlay.js | 185 - .../server/cat/bib_brief_overlay.xul | 54 - .../server/cat/bib_brief_overlay_vertical.xul | 62 - .../server/cat/bib_brief_vertical.xul | 47 - .../staff_client/server/cat/bibs_abreast.js | 208 - .../staff_client/server/cat/bibs_abreast.xul | 69 - .../server/cat/bucketz39_dialog.js | 236 - .../server/cat/bucketz39_dialog.xul | 35 - .../server/cat/bucketz39_dialog_overlay.xul | 97 - .../staff_client/server/cat/copy_browser.js | 2009 --- .../staff_client/server/cat/copy_browser.xul | 212 - .../staff_client/server/cat/copy_buckets.js | 763 -- .../staff_client/server/cat/copy_buckets.xul | 96 - .../server/cat/copy_buckets_overlay.xul | 83 - .../server/cat/copy_buckets_quick.xul | 174 - .../staff_client/server/cat/copy_editor.js | 1761 --- .../staff_client/server/cat/copy_editor.xul | 107 - .../staff_client/server/cat/copy_notes.xul | 225 - .../staff_client/server/cat/copy_summary.xul | 248 - .../server/cat/manage_multi_home_items.js | 475 - .../server/cat/manage_multi_home_items.xul | 92 - .../xul/staff_client/server/cat/marc_new.xul | 213 - .../staff_client/server/cat/marc_view.html | 56 - .../xul/staff_client/server/cat/marc_view.xul | 86 - .../xul/staff_client/server/cat/marcedit.css | 109 - .../xul/staff_client/server/cat/marcedit.js | 2440 ---- .../xul/staff_client/server/cat/marcedit.xul | 291 - .../staff_client/server/cat/record_buckets.js | 944 -- .../server/cat/record_buckets.xul | 92 - .../server/cat/record_buckets_overlay.xul | 239 - .../server/cat/record_buckets_quick.xul | 166 - .../staff_client/server/cat/spine_labels.js | 633 - .../staff_client/server/cat/spine_labels.xul | 175 - Open-ILS/xul/staff_client/server/cat/util.js | 1295 -- .../server/cat/volume_buckets.xul | 62 - .../server/cat/volume_copy_creator.js | 1478 --- .../server/cat/volume_copy_creator.xul | 130 - .../server/cat/volume_copy_editor.js | 156 - .../server/cat/volume_copy_editor.xul | 63 - .../server/cat/volume_copy_editor_horiz.xul | 69 - .../staff_client/server/cat/volume_editor.js | 285 - .../staff_client/server/cat/volume_editor.xul | 100 - Open-ILS/xul/staff_client/server/cat/z3950.js | 1296 -- .../xul/staff_client/server/cat/z3950.xul | 218 - .../server/circ/alternate_copy_summary.js | 731 -- .../server/circ/alternate_copy_summary.xul | 310 - .../server/circ/backdate_post_checkin.js | 126 - .../server/circ/backdate_post_checkin.xul | 49 - .../xul/staff_client/server/circ/checkin.js | 811 -- .../xul/staff_client/server/circ/checkin.xul | 86 - .../server/circ/checkin_overlay.xul | 202 - .../xul/staff_client/server/circ/checkout.js | 1123 -- .../xul/staff_client/server/circ/checkout.xul | 111 - .../server/circ/checkout_overlay.xul | 70 - .../staff_client/server/circ/circ_brief.xul | 166 - .../staff_client/server/circ/circ_summary.xul | 165 - .../staff_client/server/circ/copy_details.xul | 224 - .../staff_client/server/circ/copy_status.js | 1326 -- .../staff_client/server/circ/copy_status.xul | 168 - .../server/circ/copy_status_overlay.xul | 210 - .../staff_client/server/circ/in_house_use.js | 370 - .../staff_client/server/circ/in_house_use.xul | 132 - .../server/circ/missing_pieces.js | 48 - .../server/circ/missing_pieces.xul | 38 - .../server/circ/pre_cat_fields.xul | 128 - .../server/circ/print_list_template_editor.js | 455 - .../circ/print_list_template_editor.xul | 128 - .../xul/staff_client/server/circ/renew.js | 495 - .../xul/staff_client/server/circ/renew.xul | 96 - .../server/circ/renew_overlay.xul | 130 - Open-ILS/xul/staff_client/server/circ/util.js | 4072 ------ Open-ILS/xul/staff_client/server/index.xhtml | 554 - .../locale/en-US/addon/addons.properties | 6 - .../en-US/addon/pv_supa_goodstuff.properties | 23 - .../server/locale/en-US/admin.properties | 114 - .../server/locale/en-US/cat.properties | 558 - .../server/locale/en-US/circ.properties | 504 - .../server/locale/en-US/common.properties | 207 - .../en-US/marcedit-tooltips-authority.xml | 5433 -------- .../locale/en-US/marcedit-tooltips-mfhd.xml | 2063 --- .../server/locale/en-US/marcedit-tooltips.xml | 10523 ---------------- .../locale/en-US/multiclass_search_help.html | 39 - .../server/locale/en-US/patron.properties | 455 - .../server/locale/en-US/serial.properties | 155 - .../server/locale/fi-FI/marcedit-tooltips.xml | 9908 --------------- .../server/locale/fr-CA/marcedit-tooltips.xml | 9452 -------------- Open-ILS/xul/staff_client/server/main/JSAN.js | 290 - .../xul/staff_client/server/main/data.xul | 242 - .../server/main/gen_offline_widgets.xul | 239 - .../staff_client/server/main/simple_auth.xul | 191 - .../server/main/verify_credentials.js | 125 - .../server/main/verify_credentials.xul | 72 - .../xul/staff_client/server/main/ws_info.xul | 231 - .../server/patron/barcode_entry.xul | 240 - .../xul/staff_client/server/patron/bill2.js | 1221 -- .../xul/staff_client/server/patron/bill2.xul | 241 - .../server/patron/bill_cc_info.xul | 254 - .../server/patron/bill_check_info.xul | 89 - .../server/patron/bill_details.js | 402 - .../server/patron/bill_details.xul | 81 - .../server/patron/bill_history.js | 472 - .../server/patron/bill_history.xul | 147 - .../server/patron/bill_summary_overlay.xul | 61 - .../staff_client/server/patron/bill_wizard.js | 226 - .../server/patron/bill_wizard.xul | 75 - .../xul/staff_client/server/patron/display.js | 1092 -- .../staff_client/server/patron/display.xul | 134 - .../server/patron/display_horiz.xul | 134 - .../server/patron/display_horiz_overlay.xul | 148 - .../server/patron/display_overlay.xul | 148 - .../server/patron/edit_standing_penalty.js | 147 - .../server/patron/edit_standing_penalty.xul | 72 - .../staff_client/server/patron/hold_cancel.js | 87 - .../server/patron/hold_cancel.xul | 57 - .../server/patron/hold_details.js | 310 - .../server/patron/hold_details.xul | 106 - .../xul/staff_client/server/patron/holds.js | 1949 --- .../xul/staff_client/server/patron/holds.xul | 95 - .../server/patron/holds_overlay.xul | 211 - .../staff_client/server/patron/info_group.js | 536 - .../staff_client/server/patron/info_group.xul | 104 - .../staff_client/server/patron/info_notes.xul | 267 - .../server/patron/info_stat_cats.xul | 204 - .../server/patron/info_surveys.xul | 203 - .../xul/staff_client/server/patron/items.js | 1131 -- .../xul/staff_client/server/patron/items.xul | 87 - .../server/patron/items_overlay.xul | 220 - .../server/patron/new_standing_penalty.js | 130 - .../server/patron/new_standing_penalty.xul | 73 - .../staff_client/server/patron/place_hold.js | 331 - .../staff_client/server/patron/place_hold.xul | 106 - .../staff_client/server/patron/search_form.js | 406 - .../server/patron/search_form.xul | 106 - .../server/patron/search_form_horiz.xul | 106 - .../patron/search_form_horiz_overlay.xul | 131 - .../server/patron/search_form_overlay.xul | 148 - .../server/patron/search_result.js | 310 - .../server/patron/search_result.xul | 98 - .../server/patron/search_result_overlay.xul | 24 - .../xul/staff_client/server/patron/staged.js | 298 - .../xul/staff_client/server/patron/staged.xul | 73 - .../server/patron/standing_penalties.js | 469 - .../server/patron/standing_penalties.xul | 124 - .../xul/staff_client/server/patron/summary.js | 1170 -- .../staff_client/server/patron/summary.xul | 159 - .../server/patron/summary_overlay.xul | 252 - .../server/patron/summary_overlay_horiz.xul | 306 - .../server/patron/user_buckets.xul | 65 - .../staff_client/server/patron/user_edit.js | 442 - .../server/patron/user_edit.xhtml | 176 - .../staff_client/server/patron/user_edit.xul | 124 - .../server/patron/user_edit_xhtml.js | 501 - .../xul/staff_client/server/patron/util.js | 987 -- .../server/serial/batch_receive.js | 1179 -- .../server/serial/batch_receive.xul | 32 - .../server/serial/batch_receive_overlay.xul | 180 - .../xul/staff_client/server/serial/common.js | 62 - .../staff_client/server/serial/editor_base.js | 615 - .../server/serial/manage_dists.js | 1241 -- .../server/serial/manage_dists.xul | 102 - .../server/serial/manage_items.js | 1488 --- .../server/serial/manage_items.xul | 130 - .../staff_client/server/serial/manage_subs.js | 1463 --- .../server/serial/manage_subs.xul | 105 - .../xul/staff_client/server/serial/notes.xul | 355 - .../server/serial/pattern_wizard.js | 936 -- .../server/serial/pattern_wizard.xul | 33 - .../server/serial/pattern_wizard_overlay.xul | 350 - .../server/serial/sbsum_editor.js | 117 - .../server/serial/sbsum_editor.xul | 33 - .../staff_client/server/serial/scap_editor.js | 154 - .../server/serial/scap_editor.xul | 34 - .../server/serial/sdist2_editor.xul | 44 - .../server/serial/sdist_editor.js | 451 - .../server/serial/sdist_editor.xul | 43 - .../staff_client/server/serial/select_aou.xul | 106 - .../server/serial/select_unit.xul | 95 - .../server/serial/serctrl_main.xul | 137 - .../staff_client/server/serial/siss_editor.js | 243 - .../server/serial/siss_editor.xul | 18 - .../server/serial/sisum_editor.js | 117 - .../server/serial/sisum_editor.xul | 33 - .../server/serial/sitem_editor.js | 181 - .../server/serial/sitem_editor.xul | 95 - .../server/serial/sssum_editor.js | 117 - .../server/serial/sssum_editor.xul | 33 - .../staff_client/server/serial/sstr_editor.js | 115 - .../server/serial/sstr_editor.xul | 33 - .../staff_client/server/serial/ssub_editor.js | 191 - .../server/serial/ssub_editor.xul | 18 - .../server/skin/addon/pv_supa_goodstuff.css | 1 - .../staff_client/server/skin/bucketz39.css | 5 - Open-ILS/xul/staff_client/server/skin/cat.css | 22 - .../xul/staff_client/server/skin/circ.css | 104 - .../server/skin/custom.js.example | 66 - .../xul/staff_client/server/skin/global.css | 159 - .../server/skin/media/audio/bonus.wav | Bin 6012 -> 0 bytes .../server/skin/media/audio/question.wav | Bin 67628 -> 0 bytes .../server/skin/media/audio/redalert.wav | Bin 45404 -> 0 bytes .../server/skin/media/audio/toggled.wav | Bin 4758 -> 0 bytes .../server/skin/media/images/bad_barcode.png | Bin 7499 -> 0 bytes .../server/skin/media/images/bell.png | Bin 1035 -> 0 bytes .../skin/media/images/bell_disabled.png | Bin 819 -> 0 bytes .../skin/media/images/book_question.png | Bin 8237 -> 0 bytes .../server/skin/media/images/down_arrow.gif | Bin 61 -> 0 bytes .../server/skin/media/images/down_arrow.png | Bin 776 -> 0 bytes .../server/skin/media/images/grinder.gif | Bin 186 -> 0 bytes .../server/skin/media/images/holdshelf.png | Bin 8149 -> 0 bytes .../server/skin/media/images/icon_delete.gif | Bin 156 -> 0 bytes .../server/skin/media/images/left_arrow.png | Bin 700 -> 0 bytes .../server/skin/media/images/licenses.txt | 12 - .../skin/media/images/patron_left_arrow.png | Bin 583 -> 0 bytes .../skin/media/images/patron_right_arrow.png | Bin 581 -> 0 bytes .../server/skin/media/images/portal/LICENSE | 70 - .../server/skin/media/images/portal/back.png | Bin 6731 -> 0 bytes .../skin/media/images/portal/background.png | Bin 2640 -> 0 bytes .../skin/media/images/portal/batchimport.png | Bin 5517 -> 0 bytes .../server/skin/media/images/portal/book.png | Bin 6296 -> 0 bytes .../skin/media/images/portal/bucket.png | Bin 4179 -> 0 bytes .../skin/media/images/portal/eg_tiny_logo.jpg | Bin 1722 -> 0 bytes .../skin/media/images/portal/forward.png | Bin 6814 -> 0 bytes .../skin/media/images/portal/helpdesk.png | Bin 8801 -> 0 bytes .../server/skin/media/images/portal/holds.png | Bin 5281 -> 0 bytes .../server/skin/media/images/portal/logo.png | Bin 24396 -> 0 bytes .../server/skin/media/images/portal/map.PNG | Bin 3371 -> 0 bytes .../skin/media/images/portal/newtab2.PNG | Bin 2997 -> 0 bytes .../media/images/portal/receipt_editor.png | Bin 2463 -> 0 bytes .../media/images/portal/registerpatron.png | Bin 6485 -> 0 bytes .../skin/media/images/portal/reports.png | Bin 5920 -> 0 bytes .../media/images/portal/retreivepatron.png | Bin 7188 -> 0 bytes .../server/skin/media/images/portal/z3950.png | Bin 5050 -> 0 bytes .../server/skin/media/images/reserve.png | Bin 5981 -> 0 bytes .../server/skin/media/images/right_arrow.png | Bin 755 -> 0 bytes .../server/skin/media/images/skull.png | Bin 6092 -> 0 bytes .../server/skin/media/images/stop_sign.png | Bin 1729 -> 0 bytes .../server/skin/media/images/tools.png | Bin 7462 -> 0 bytes .../server/skin/media/images/transit.png | Bin 7573 -> 0 bytes .../server/skin/media/images/turtle.gif | Bin 4243 -> 0 bytes .../server/skin/media/images/up_arrow.gif | Bin 75 -> 0 bytes .../server/skin/media/images/up_arrow.png | Bin 764 -> 0 bytes .../server/skin/patron_display.css | 116 - .../server/skin/patron_summary.css | 18 - .../xul/staff_client/server/skin/print.css | 10 - .../xul/staff_client/server/skin/serial.css | 38 - .../staff_client/server/skin/simple_auth.css | 7 - Open-ILS/xul/staff_client/update.rdf | 27 - Open-ILS/xul/staff_client/windowssetup.nsi | 304 - .../xul/staff_client/xulrunner-stub.beta.exe | Bin 194560 -> 0 bytes .../staff_client/xulrunner-stub.release.exe | Bin 194560 -> 0 bytes 519 files changed, 143900 deletions(-) delete mode 100644 Open-ILS/xul/staff_client/LICENSE delete mode 100644 Open-ILS/xul/staff_client/Makefile.am delete mode 100644 Open-ILS/xul/staff_client/README delete mode 100644 Open-ILS/xul/staff_client/application.ini delete mode 100644 Open-ILS/xul/staff_client/chrome.manifest delete mode 100644 Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.dtd delete mode 100644 Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.properties delete mode 100644 Open-ILS/xul/staff_client/chrome/chrome.manifest delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/event_util.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/util/fmall.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_chrome.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_offline.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/admin/survey.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/admin/survey_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/admin/survey_wizard.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/auth/controller.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/auth/session.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/cat/opac.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/cat/opac.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_checkout.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_in_house_use.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_in_house_use.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_register.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_register.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_renew.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/offline_renew.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/circ/util.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/firefox/overlay.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/JSAN.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/about.html delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/bindings.xml delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/constants.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/main.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/main.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/menu.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/menu_frame.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/menu_frame_menus.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/menu_frame_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/search_prefs.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/simple_auth.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/main/test.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/test/test.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/barcode.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/browser.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/browser.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/clipboard.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/controller.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/date.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/deck.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/error.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/exec.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/fancy_prompt.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/file.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/fm_utils.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/fm_view.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/functional.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/hide.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/list.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/list_clipboard.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/money.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/mozilla.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/network.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/print.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/print_win.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/rbrowser.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/shell.html delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/shell.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/socket.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/sort.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/sound.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/sprintf.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/text.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/timestamp.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/timestamp.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/untrusted_window.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/widget_prompt.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/widget_prompt.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/widgets.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/window.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/xuledit.js delete mode 100644 Open-ILS/xul/staff_client/chrome/content/util/xuledit.xul delete mode 100644 Open-ILS/xul/staff_client/chrome/locale/en-US/auth.properties delete mode 100644 Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/auth.css delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/browser.css delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/global.css delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/hotkeys/Default.keyset delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/hotkeys/Minimal.keyset delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/hotkeys/None.keyset delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/hotkeys/README delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/Arrow-rightup-small.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/Arrow-rightup-small_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_famiglia_32x32.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_famiglia_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_indici_32x32.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_indici_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_lente_32x32.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_lente_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_libro_32x32.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/HILLBLU_libro_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/Search_Items_32x32.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/Search_Items_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/center.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/center_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/hotkeys_disable_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/licenses.txt delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/newtab.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/opentriangle.gif delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_bib_search_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_claim_eligible_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_create_invoice_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_create_po_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_invoice_search_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_new_brief_record_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_po_search_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_unified_search_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_upload_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_user_requests_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/acq_view_my_pl_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/booking_capture_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/booking_pull_list_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/booking_reservation_pickup_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/booking_reservation_return_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/booking_reservation_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/browse_holds_shelf_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/circ_hold_pull_list_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/circ_renew_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/edit_copy_buckets_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/edit_record_buckets_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/portal_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/toolbar_blue/retrieve_last_patron_toolbar.png delete mode 100644 Open-ILS/xul/staff_client/chrome/skin/media/images/triangle.gif delete mode 100644 Open-ILS/xul/staff_client/components/clh.js delete mode 100644 Open-ILS/xul/staff_client/components/forceexternal.js delete mode 100644 Open-ILS/xul/staff_client/components/nsOpenILS.js delete mode 100644 Open-ILS/xul/staff_client/components/oils_protocol.js delete mode 100644 Open-ILS/xul/staff_client/custom_images/Beta Header.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/Beta Wizard - Install.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/Beta Wizard - Uninstall.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/DCO delete mode 100644 Open-ILS/xul/staff_client/custom_images/Header.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/README delete mode 100644 Open-ILS/xul/staff_client/custom_images/Wizard - Install.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/Wizard - Uninstall.png delete mode 100644 Open-ILS/xul/staff_client/custom_images/beta/header.bmp delete mode 100644 Open-ILS/xul/staff_client/custom_images/beta/install.bmp delete mode 100644 Open-ILS/xul/staff_client/custom_images/beta/uninstall.bmp delete mode 100644 Open-ILS/xul/staff_client/custom_images/release/header.bmp delete mode 100644 Open-ILS/xul/staff_client/custom_images/release/install.bmp delete mode 100644 Open-ILS/xul/staff_client/custom_images/release/uninstall.bmp delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/autoupdate.js delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/chrome_list.js delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/initialhost.js delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/inspector.js delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/prefs.js delete mode 100644 Open-ILS/xul/staff_client/defaults/preferences/standalone_xul_app.js delete mode 100644 Open-ILS/xul/staff_client/evergreen-icon-beta.ico delete mode 100644 Open-ILS/xul/staff_client/evergreen-icon.ico delete mode 100644 Open-ILS/xul/staff_client/external/aa_per_machine.js delete mode 100755 Open-ILS/xul/staff_client/external/closure_compiler.sh delete mode 100644 Open-ILS/xul/staff_client/external/developers.js delete mode 100644 Open-ILS/xul/staff_client/external/dojo_template.js delete mode 100644 Open-ILS/xul/staff_client/external/dojo_template.xul delete mode 100755 Open-ILS/xul/staff_client/external/dump_splitter.sh delete mode 100644 Open-ILS/xul/staff_client/external/libmar/Makefile.am delete mode 100644 Open-ILS/xul/staff_client/external/libmar/README delete mode 100644 Open-ILS/xul/staff_client/external/libmar/configure.ac delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/Makefile.am delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar.h delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar_cmdline.h delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar_create.c delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar_extract.c delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar_private.h delete mode 100644 Open-ILS/xul/staff_client/external/libmar/src/mar_read.c delete mode 100644 Open-ILS/xul/staff_client/external/libmar/tool/Makefile.am delete mode 100644 Open-ILS/xul/staff_client/external/libmar/tool/bsdiff.c delete mode 100644 Open-ILS/xul/staff_client/external/libmar/tool/crc32.c delete mode 100644 Open-ILS/xul/staff_client/external/libmar/tool/mar.c delete mode 100755 Open-ILS/xul/staff_client/external/make_entities.pl delete mode 100755 Open-ILS/xul/staff_client/external/make_updates.sh delete mode 100755 Open-ILS/xul/staff_client/external/prune_dirs.sh delete mode 100644 Open-ILS/xul/staff_client/external/template.js delete mode 100644 Open-ILS/xul/staff_client/external/template.xul delete mode 100644 Open-ILS/xul/staff_client/extras.example.nsi delete mode 100644 Open-ILS/xul/staff_client/imagesources/licenses.txt delete mode 100755 Open-ILS/xul/staff_client/imagesources/maketoolbarpics.sh delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/background_3_blue.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_bib_search.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_claim_eligible.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_create_invoice.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_create_po.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_invoice_search.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_new_brief_record.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_po_search.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_unified_search.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_upload.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_user_requests.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_acq_view_my_pl.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_booking_capture.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_booking_pull_list.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_booking_reservation.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_booking_reservation_pickup.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_booking_reservation_return.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_browse_holds_shelf.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_circ_hold_pull_list.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_circ_renew.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_edit_copy_buckets.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_edit_record_buckets.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_portal.svg delete mode 100644 Open-ILS/xul/staff_client/imagesources/toolbar_blue/blue_retrieve_last_patron.svg delete mode 100755 Open-ILS/xul/staff_client/install.rdf delete mode 100644 Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.js delete mode 100644 Open-ILS/xul/staff_client/server/OpenILS/symbol_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/OpenILS/util_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/addon/addons.js delete mode 100644 Open-ILS/xul/staff_client/server/addon/addons.xul delete mode 100644 Open-ILS/xul/staff_client/server/addon/autoloader.js delete mode 100644 Open-ILS/xul/staff_client/server/addon/pv_supa_goodstuff.js delete mode 100644 Open-ILS/xul/staff_client/server/addon/pv_supa_goodstuff_config_overlay.xul delete mode 100755 Open-ILS/xul/staff_client/server/addon/pv_supa_goodstuff_tests/pv_supa_goodstuff_test1.expect delete mode 100755 Open-ILS/xul/staff_client/server/addon/pv_supa_goodstuff_tests/pv_supa_goodstuff_test2.expect delete mode 100755 Open-ILS/xul/staff_client/server/addon/pv_supa_goodstuff_tests/pv_supa_goodstuff_test3.expect delete mode 100644 Open-ILS/xul/staff_client/server/admin/admin.css delete mode 100644 Open-ILS/xul/staff_client/server/admin/adminlib.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/cash_reports.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/cash_reports.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/circ_age_to_lost.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/circ_age_to_lost.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/closed_dates.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/closed_dates.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/copy_locations.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/copy_locations.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/do_not_auto_attempt_print_setting.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/do_not_auto_attempt_print_setting.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/font_settings.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/hold_pull_list.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/hold_pull_list.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/hold_pull_list_classic.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/hold_pull_list_classic.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/index.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/non_cat_types.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/non_cat_types.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/org_unit_settings.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/org_unit_settings.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/patrons_due_refunds.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/printer_settings.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/printer_settings.txt delete mode 100644 Open-ILS/xul/staff_client/server/admin/printer_settings.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/stat_cat_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/stat_cat_editor.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/toolbar.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/toolbar.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/transit_list.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/transit_list.xul delete mode 100644 Open-ILS/xul/staff_client/server/admin/upload_xacts.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/upload_xacts.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/admin/work_log.js delete mode 100644 Open-ILS/xul/staff_client/server/admin/work_log.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief_overlay_vertical.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bib_brief_vertical.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bibs_abreast.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/bibs_abreast.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/bucketz39_dialog.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/bucketz39_dialog_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_browser.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_browser.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_buckets.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_buckets.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_buckets_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_buckets_quick.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_notes.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/copy_summary.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/manage_multi_home_items.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/marc_new.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/marc_view.html delete mode 100644 Open-ILS/xul/staff_client/server/cat/marc_view.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/marcedit.css delete mode 100644 Open-ILS/xul/staff_client/server/cat/marcedit.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/marcedit.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/record_buckets.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/record_buckets.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/record_buckets_quick.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/spine_labels.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/spine_labels.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/util.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_buckets.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_copy_creator.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_copy_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_copy_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_copy_editor_horiz.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/volume_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/cat/z3950.js delete mode 100644 Open-ILS/xul/staff_client/server/cat/z3950.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkin.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkin.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkin_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkout.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkout.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/checkout_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/circ_brief.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/circ_summary.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/copy_details.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/copy_status.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/copy_status.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/in_house_use.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/in_house_use.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/missing_pieces.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/missing_pieces.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/pre_cat_fields.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/print_list_template_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/renew.js delete mode 100644 Open-ILS/xul/staff_client/server/circ/renew.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/renew_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/circ/util.js delete mode 100644 Open-ILS/xul/staff_client/server/index.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/addon/addons.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/addon/pv_supa_goodstuff.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/admin.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/cat.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/circ.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/common.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/marcedit-tooltips-authority.xml delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/marcedit-tooltips-mfhd.xml delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/marcedit-tooltips.xml delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/multiclass_search_help.html delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/patron.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/en-US/serial.properties delete mode 100644 Open-ILS/xul/staff_client/server/locale/fi-FI/marcedit-tooltips.xml delete mode 100644 Open-ILS/xul/staff_client/server/locale/fr-CA/marcedit-tooltips.xml delete mode 100644 Open-ILS/xul/staff_client/server/main/JSAN.js delete mode 100644 Open-ILS/xul/staff_client/server/main/data.xul delete mode 100644 Open-ILS/xul/staff_client/server/main/gen_offline_widgets.xul delete mode 100644 Open-ILS/xul/staff_client/server/main/simple_auth.xul delete mode 100644 Open-ILS/xul/staff_client/server/main/verify_credentials.js delete mode 100644 Open-ILS/xul/staff_client/server/main/verify_credentials.xul delete mode 100644 Open-ILS/xul/staff_client/server/main/ws_info.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/barcode_entry.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill2.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill2.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_cc_info.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_check_info.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_details.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_details.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_history.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_history.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_summary_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_wizard.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/bill_wizard.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/display.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/display.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/display_horiz.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/display_horiz_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/display_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/hold_cancel.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/hold_cancel.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/hold_details.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/hold_details.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/holds.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/holds.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/holds_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/info_group.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/info_group.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/info_notes.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/info_stat_cats.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/info_surveys.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/items.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/items.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/items_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/new_standing_penalty.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/place_hold.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/place_hold.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_form.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_form.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_form_horiz.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_form_horiz_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_form_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_result.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_result.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/search_result_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/staged.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/staged.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/standing_penalties.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/standing_penalties.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/summary.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/summary.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/summary_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/summary_overlay_horiz.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/user_buckets.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/user_edit.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/user_edit.xhtml delete mode 100644 Open-ILS/xul/staff_client/server/patron/user_edit.xul delete mode 100644 Open-ILS/xul/staff_client/server/patron/user_edit_xhtml.js delete mode 100644 Open-ILS/xul/staff_client/server/patron/util.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/batch_receive.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/batch_receive.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/batch_receive_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/common.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/editor_base.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_dists.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_dists.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_items.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_items.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_subs.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/manage_subs.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/notes.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/pattern_wizard.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/pattern_wizard.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/pattern_wizard_overlay.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sbsum_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sbsum_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/scap_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/scap_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sdist2_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sdist_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sdist_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/select_aou.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/select_unit.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/serctrl_main.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/siss_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/siss_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sisum_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sisum_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sitem_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sitem_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sssum_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sssum_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/sstr_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/sstr_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/serial/ssub_editor.js delete mode 100644 Open-ILS/xul/staff_client/server/serial/ssub_editor.xul delete mode 100644 Open-ILS/xul/staff_client/server/skin/addon/pv_supa_goodstuff.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/bucketz39.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/cat.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/circ.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/custom.js.example delete mode 100644 Open-ILS/xul/staff_client/server/skin/global.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/audio/bonus.wav delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/audio/question.wav delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/audio/redalert.wav delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/audio/toggled.wav delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/bad_barcode.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/bell.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/bell_disabled.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/book_question.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/down_arrow.gif delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/down_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/grinder.gif delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/holdshelf.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/icon_delete.gif delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/left_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/licenses.txt delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/patron_left_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/patron_right_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/LICENSE delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/back.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/background.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/batchimport.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/book.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/bucket.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/eg_tiny_logo.jpg delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/forward.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/helpdesk.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/holds.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/logo.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/map.PNG delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/newtab2.PNG delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/receipt_editor.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/registerpatron.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/reports.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/retreivepatron.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/portal/z3950.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/reserve.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/right_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/skull.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/stop_sign.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/tools.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/transit.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/turtle.gif delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/up_arrow.gif delete mode 100644 Open-ILS/xul/staff_client/server/skin/media/images/up_arrow.png delete mode 100644 Open-ILS/xul/staff_client/server/skin/patron_display.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/patron_summary.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/print.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/serial.css delete mode 100644 Open-ILS/xul/staff_client/server/skin/simple_auth.css delete mode 100644 Open-ILS/xul/staff_client/update.rdf delete mode 100644 Open-ILS/xul/staff_client/windowssetup.nsi delete mode 100644 Open-ILS/xul/staff_client/xulrunner-stub.beta.exe delete mode 100644 Open-ILS/xul/staff_client/xulrunner-stub.release.exe diff --git a/Open-ILS/xul/staff_client/LICENSE b/Open-ILS/xul/staff_client/LICENSE deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/Open-ILS/xul/staff_client/Makefile.am b/Open-ILS/xul/staff_client/Makefile.am deleted file mode 100644 index 78e7e3c8e3..0000000000 --- a/Open-ILS/xul/staff_client/Makefile.am +++ /dev/null @@ -1,411 +0,0 @@ -#--------------------------------------------------------- -# Makefile.am for xul/staff_client -## Process this file with automake to generate Makefile.in -#--------------------------------------------------------- -export WEBDIR=@localstatedir@/web -export STAFF_CLIENT_BUILD_ID = $$(/bin/cat build/BUILD_ID) -export STAFF_CLIENT_VERSION = $$(/bin/cat build/VERSION) -export STAFF_CLIENT_STAMP_ID = legacy - -# from http://closure-compiler.googlecode.com/files/compiler-latest.zip FIXME: Autotools this? -export CLOSURE_COMPILER_JAR = ~/closure-compiler/compiler.jar - -# XULRunner is our base. -XULRUNNER_VERSION=14.0.1 -XULRUNNER_WINFILE=xulrunner-$(XULRUNNER_VERSION).en-US.win32.zip -XULRUNNER_LINUX32FILE=xulrunner-$(XULRUNNER_VERSION).en-US.linux-i686.tar.bz2 -XULRUNNER_LINUX64FILE=xulrunner-$(XULRUNNER_VERSION).en-US.linux-x86_64.tar.bz2 -XULRUNNER_URL=http://archive.mozilla.org/pub/mozilla.org/xulrunner/releases/$(XULRUNNER_VERSION)/runtimes/ -XULRUNNER_MAJOR_VERSION=$$(echo ${XULRUNNER_VERSION} | cut -d. -f1) - -# Extensions we include when not an extension ourselves -# Grab the latest. If that becomes a problem we can swap them out for specific versions. -DOMINSPECTOR_URL=https://addons.mozilla.org/firefox/downloads/latest/6622/addon-6622-latest.xpi -DOMINSPECTOR_ID=inspector@mozilla.org -VENKMAN_URL=https://addons.mozilla.org/firefox/downloads/latest/216/addon-216-latest.xpi -VENKMAN_ID={f13b157f-b174-47e7-a34d-4815ddfdfeb8} - -OPENSRF_JSLIBS = "$(OPENSRF_LIBS)/javascript" -CHROME_LOCALES = $$(ls -1 chrome/locale) -SKIN_CSS = $$(ls -1 server/skin/*css | sed -e "s/.css/_custom.css/") -UPDATESDIR=@localstatedir@/updates - -GIT_BRANCH=$$(echo $$(git rev-parse --abbrev-ref HEAD || echo main) | sed 's|.*/||') -GIT_TAG=$$(git rev-parse --short HEAD) # For auto-tagging builds - -export NSIS_EXTRAOPTS -export NSIS_WICON=$$(if [ -f client/evergreen.ico ]; then echo '-DWICON'; fi) -export NSIS_AUTOUPDATE=$$([ -f client/defaults/preferences/autoupdate.js ] && echo '-DAUTOUPDATE') -export NSIS_DEV=$$([ -f client/defaults/preferences/developers.js ] && echo '-DDEVELOPER') -export NSIS_PERMACHINE=$$([ -f client/defaults/preferences/aa_per_machine.js ] && echo '-DPERMACHINE') -export NSIS_EXTRAS=$$([ -f extras.nsi ] && echo '-DEXTRAS') -# Url taken from http://nsis.sourceforge.net/AccessControl_plug-in -NSIS_ACCESSCONTROL=http://nsis.sourceforge.net/mediawiki/images/4/4a/AccessControl.zip - -#------------------------------ -# Build ILS XUL CLIENT/SERVER -#------------------------------ - -if BUILDILSCLIENT -OILSSERVER_INST = server-xul -endif - -install-exec-local: $(OILSSERVER_INST) - -# Helper target -# For when you want to add devbuild/permachine/autoupdate to an existing stamp id -rebuild: export STAFF_CLIENT_STAMP_ID=`cat PREV_STAMP_ID` -rebuild: export STAFF_CLIENT_VERSION=`cat PREV_VERSION` -rebuild: build - -rigrelease: - @echo ' * Rigging for release branding' - @cp xulrunner-stub.release.exe xulrunner-stub.exe - @mkdir -p branding - @cp evergreen-icon.ico branding/evergreen.ico - @sed -i -e 's/^\s*;\?\s*!define UI_IMAGESET "release"/!define UI_IMAGESET "release"/' -e 's/^\s*;\?\s*!define UI_IMAGESET "beta"/;!define UI_IMAGESET "beta"/' windowssetup.nsi - -rigbeta: - @echo ' * Rigging for beta branding' - @cp xulrunner-stub.beta.exe xulrunner-stub.exe - @mkdir -p branding - @cp evergreen-icon-beta.ico branding/evergreen.ico - @sed -i -e 's/^\s*;\?\s*!define UI_IMAGESET "release"/;!define UI_IMAGESET "release"/' -e 's/^\s*;\?\s*!define UI_IMAGESET "beta"/!define UI_IMAGESET "beta"/' windowssetup.nsi - -devbuild: build - @echo ' * Copying in developer preferences' - @cp external/developers.js build/defaults/preferences/ - -permachine: build - @echo ' * Copying in default to machine level registration file' - @cp external/aa_per_machine.js build/defaults/preferences/ - -build: build_dir chrome2remote localize_manifest generated custom_skins open-ils stamp - @echo To test the staff client: - @echo " cd build/" - @echo " xulrunner application.ini" - -build_dir: - @echo ' * Creating and populating build/ ' - @rm -rf build/ - @mkdir -p build/ - @cp -fR chrome build/ - @cp -fR server build/ - @cp -fR defaults build/ - @cp -fR components build/ - @cp application.ini build/ - @cp chrome.manifest build/ - @if [ -f "install.mccoy.rdf" ]; then cp install.mccoy.rdf build/install.rdf; else cp install.rdf build/; fi - @cp -fR build/chrome/content/util/ build/server/ - @cp -fR build/chrome/content/auth/ build/server/ - @cp build/chrome/content/main/constants.js build/server/main/constants.js - @cp build/chrome/content/main/bindings.xml build/server/main/bindings.xml - @cp build/chrome/content/OpenILS/data.js build/server/OpenILS/data.js - @cp build/chrome/content/OpenILS/global_util.js build/server/OpenILS/global_util.js - @cp build/chrome/content/OpenILS/event_util.js build/server/OpenILS/event_util.js - @if [ -d branding ]; then cp -fR branding/* build/; fi - @external/prune_dirs.sh build/ - -# Convert chrome to remote for server localization -chrome2remote: - @for loc in $(CHROME_LOCALES); do \ - cp -fr chrome/locale/$$loc build/server/locale/. ; \ - done; - -# Update the manifest for our installed locales -localize_manifest: - @for loc in $(CHROME_LOCALES) ; do \ - if [ "$$loc" != "en-US" ]; then ( echo "locale open_ils_staff_client $$loc locale/$$loc/" >> build/chrome/chrome.manifest ) ; fi; \ - done; - -# On this page: -# https://developer.mozilla.org/en/xul_application_packaging -# The Documentation states: -# BUILD ID should be a unique build identifier, usually date based, and should be different for each released version -# VERSION should be in a format as described here: -# https://developer.mozilla.org/en/Toolkit_version_format - -# The default "automatic" BUILD ID is acceptable. - -# The version from the README usually conforms to that documentation, unless it is main. -# If we are in main, we probably have git kicking around, ask it for the revision and build an appropriate version string. - -# Neither really applies to the STAMP, though. -# The method below gives the same format STAMPS as previous instructions provided. If README has version 1.2.3.4 then STAMP_ID will become rel_1_2_3_4. -# Main VERSION will end up with 0branch.release, main STAMP ID will be 0branch_release. -stamp: - @/bin/date +"%Y%m%d.%H%M%S" > build/BUILD_ID - @if [ -n "${STAFF_CLIENT_BUILD_ID}" ]; then ( echo "Stamping with Build ID: ${STAFF_CLIENT_BUILD_ID}" ; echo ${STAFF_CLIENT_BUILD_ID} > build/BUILD_ID ) ; fi - @if [ -z "${STAFF_CLIENT_BUILD_ID}" ]; then ( echo "No Build ID for versioning" ; echo "none" > build/BUILD_ID ) ; fi - @sed -n -e 's/^AC_INIT([^,]*, \([^,]*\),.*$$/\1/p' @top_srcdir@/configure.ac > build/VERSION - @if [ "${STAFF_CLIENT_VERSION}" == "trunk" ]; then echo "0${GIT_BRANCH}.${GIT_TAG}" > build/VERSION; fi - @if [ -n "${STAFF_CLIENT_VERSION}" ]; then ( echo "Stamping with Version: ${STAFF_CLIENT_VERSION}" ; echo ${STAFF_CLIENT_VERSION} > build/VERSION ) ; fi - @if [ -z "${STAFF_CLIENT_VERSION}" ]; then ( echo "No Version" ; echo "none" > build/VERSION ) ; fi - @sed -e 's/\./_/g' -e 's/^\([0-9_]*\)$$/rel_&/' build/VERSION > build/STAMP_ID - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then ( echo "Stamping with Stamp ID: ${STAFF_CLIENT_STAMP_ID}" ; echo ${STAFF_CLIENT_STAMP_ID} > build/STAMP_ID ) ; fi - @if [ -z "${STAFF_CLIENT_STAMP_ID}" ]; then ( echo "No Stamp ID for versioning" ; echo "none" > build/STAMP_ID ) ; fi - @if [ -n "${STAFF_CLIENT_VERSION}" ]; then sed -i -e s/^Version=.\*/Version=${STAFF_CLIENT_VERSION}/ build/application.ini ; fi - @if [ -n "${STAFF_CLIENT_VERSION}" ]; then sed -i -e "s|.*|${STAFF_CLIENT_VERSION}|" build/install.rdf ; fi - @if [ -n "${STAFF_CLIENT_VERSION}" ]; then find build/ -name 'constants.js' -exec sed -i -e "s/\(CLIENT_VERSION *= '\)'/\1${STAFF_CLIENT_VERSION}'/" {} \; ; fi - @if [ -n "${STAFF_CLIENT_BUILD_ID}" ]; then sed -i -e s/^BuildID=.\*/BuildID=${STAFF_CLIENT_BUILD_ID}/ build/application.ini ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.css' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.xul' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.html' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.xhtml' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.js' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name '*.xml' -exec sed -i -e s/xul\\\/server/xul\\\/${STAFF_CLIENT_STAMP_ID}\\\/server/g {} \; ; fi - @if [ -n "${STAFF_CLIENT_STAMP_ID}" ]; then find build/ -name 'constants.js' -exec sed -i -e "s/\(CLIENT_STAMP *= '\)'/\1${STAFF_CLIENT_STAMP_ID}'/" {} \; ; fi - @if [ -n "${STAFF_CLIENT_NAME}" ]; then sed -i -e s/^Name=.\*/Name=${STAFF_CLIENT_NAME}/ build/application.ini ; fi - @if [ -z "${AUTOUPDATE_HOST}" ]; then rm -f build/defaults/preferences/autoupdate.js; fi - @if [ -z "${AUTOUPDATE_HOST}" ]; then sed -i -e /updateURL/d build/install.rdf; fi - @if [ -n "${AUTOUPDATE_HOST}" ]; then echo "Applying automatic update host ${AUTOUPDATE_HOST}"; fi - @if [ -n "${AUTOUPDATE_HOST}" ]; then sed -i -e "s|::HOSTNAME::|${AUTOUPDATE_HOST}|" -e "s|https\?://\(https\?://\)|\1|" build/defaults/preferences/autoupdate.js; fi - @if [ -n "${AUTOUPDATE_HOST}" ]; then sed -i -e "s|::HOSTNAME::|${AUTOUPDATE_HOST}|" -e "s|https\?://\(https\?://\)|\1|" build/install.rdf; fi - @if [ -z "${INITIAL_HOST}" ]; then rm -f build/defaults/preferences/initialhost.js; fi - @if [ -n "${INITIAL_HOST}" ]; then sed -i -e "s/%INITIAL_HOST%/${INITIAL_HOST}/" build/defaults/preferences/initialhost.js; fi - @cp build/STAMP_ID PREV_STAMP_ID - @cp build/VERSION PREV_VERSION - -bell: - @perl -e 'print "Ringing bell..." . chr(7) . "\n";' - -bundle: - @rm -f build/build.tar - @tar -c --exclude=server -f build.tar build/ - @mv build.tar build/ - @md5sum build/build.tar > build/build.tar.md5 - -generated: - @echo ' * Grabbing lang.dtd from the OPAC code ' - @cp @top_srcdir@/Open-ILS/web/opac/locale/en-US/lang.dtd build/chrome/locale/en-US/ - -open-ils: - @echo ' * Grabbing more OPAC code and legacy code and custom code' - @cp @top_srcdir@/Open-ILS/web/opac/common/js/*.js build/chrome/content/OpenILS/util/ - @cp $(OPENSRF_JSLIBS)/*.js build/chrome/content/OpenILS/util/ - @external/prune_dirs.sh build/ - -custom_skins: - @for skin in $(SKIN_CSS); do \ - if [ ! -f "$$skin" ]; then ( touch build/"$$skin" ); fi \ - done; - -needwebdir: - @if [ -z "$(WEBDIR)" ]; then echo "!!!--------!!!"; echo "WEBDIR is not set. Must use top level Makefile or set WEBDIR to use this target."; echo "!!!--------!!!"; exit 1; fi - -server-xul: needwebdir build - @echo $@ - mkdir -p $(DESTDIR)$(WEBDIR) - mkdir -p $(DESTDIR)$(WEBDIR)/xul/ - @echo "STAMP_ID = $(STAFF_CLIENT_STAMP_ID)" - @echo "Copying xul into $(DESTDIR)$(WEBDIR)/xul/$(STAFF_CLIENT_STAMP_ID)" - mkdir -p "$(DESTDIR)$(WEBDIR)/xul/$(STAFF_CLIENT_STAMP_ID)" - cp -R @top_srcdir@/Open-ILS/xul/staff_client/build/server "$(DESTDIR)${WEBDIR}/xul/${STAFF_CLIENT_STAMP_ID}/" - @if [ "${STAFF_CLIENT_STAMP_ID}" == "legacy" ]; then \ - echo "Installing the legacy parts of the XUL staff client"; \ - if [ -L "$(DESTDIR)${WEBDIR}/xul/server" ]; then \ - echo "Updating XUL server symlink to point to legacy code"; \ - rm $(DESTDIR)${WEBDIR}/xul/server; \ - ( cd "$(DESTDIR)${WEBDIR}/xul"; ln -s legacy/server server; ); \ - else \ - if [ ! -f "$(DESTDIR)${WEBDIR}/xul/server" ]; then \ - echo "Creating XUL server symlink to point to legacy code"; \ - ( cd "$(DESTDIR)${WEBDIR}/xul"; ln -s legacy/server server; ); \ - else \ - if [ -d "$(DESTDIR)${WEBDIR}/xul/server" ]; then \ - echo "WARNING: $(DESTDIR)${WEBDIR}/xul/server is a directory; "; \ - echo "Not overwriting it, but you should probably do the following: "; \ - echo "1. Remove or move it, and "; \ - echo "2. Create a symlink from $(DESTDIR)${WEBDIR}/xul/legacy/server to $(DESTDIR)${WEBDIR}/xul/server "; \ - fi; \ - fi; \ - fi; \ - fi; # manage the server symlink if installing the 'legacy' staff client - -compress-javascript: build - @echo "Size of build/ before compression = " `du -sh build/` - @echo " * Running Google's Closure Compiler against javascript. Errors in build/compression.err" - @external/closure_compiler.sh $(CLOSURE_COMPILER_JAR) 2>> build/compression.err - @echo `find build/ -name '*.js~' -size 0 -print | wc -l` compression failures - @find build/ -name '*.js~' -size 0 -exec rm {} \; # remove the output files for those that did not compile - @echo `find build/ -name '*.js~' -print | wc -l` compression successes - @find build/ -name '*.js~' -exec perl -e '$$a = "{}"; chop $$a; `mv $$a~ $$a`;' \; - @echo "Size of build/ (minus compression.err) after compression = " `du -sh --exclude compression.err build/` - -# Easy way to make all three kinds of clients - -clients: - @make win-client - @make linux32-client - @make linux64-client - @make generic-client - -# By doing this we don't change the original build in the build folder -# Great for adding/changing things without a full rebuild - -client_dir: - @if [ ! -f build/BUILD_ID ]; then echo 'ERROR! Current build not stamped!'; exit 1; fi - @echo 'Prepping Client Set' - @rm -rf client/ - @mkdir -p client - @cp -fR build/* client/ - @rm -rf client/server/ - @rm -f client/build.tar* - -# When building as a standalone client install.rdf is a bad thing -# as we haven't "sanitized" the client for extension use - -client_app: client_dir - @echo 'Cleaning Extension Information' - @rm -f client/install.rdf - @echo 'Installing Extensions' - @mkdir -p client/extensions -# Note: XULRunner before 4 requires extracted extensions -# XULRunner after 4 keeps them in XPI form...unless their manifest says to unpack -# This block is thus structured to make it easy to add the latter kind later. - @if [ ${XULRUNNER_MAJOR_VERSION} -lt 4 ]; then \ - if [ -f extensions/${DOMINSPECTOR_ID}.xpi ]; then \ - mkdir -p client/extensions/${DOMINSPECTOR_ID}/; \ - unzip extensions/${DOMINSPECTOR_ID}.xpi -d client/extensions/${DOMINSPECTOR_ID}/; \ - fi; \ - if [ -f extensions/${VENKMAN_ID}.xpi ]; then \ - mkdir -p client/extensions/${VENKMAN_ID}/; \ - unzip extensions/${VENKMAN_ID}.xpi -d client/extensions/${VENKMAN_ID}/; \ - fi; \ - else \ - if [ -f extensions/${DOMINSPECTOR_ID}.xpi ]; then \ - cp extensions/${DOMINSPECTOR_ID}.xpi client/extensions/; \ - fi; \ - if [ -f extensions/${VENKMAN_ID}.xpi ]; then \ - cp extensions/${VENKMAN_ID}.xpi client/extensions/; \ - fi; \ - fi - -# If automatic updates are enabled, or the standalone_xul_app.js is present, -# the extension can break Firefox. -# Also, per machine registration + extension mode is probably a bad idea. -# Remove those, and we need an updated chrome.manifest - -client_ext: client_dir - @echo 'Cleaning App Information' - @rm -f client/application.ini - @rm -f client/defaults/preferences/autoupdate.js - @rm -f client/defaults/preferences/autochannel.js - @rm -f client/defaults/preferences/standalone_xul_app.js - @rm -f client/defaults/preferences/aa_per_machine.js - @echo 'Prepping chrome.manifest' - @perl -ne 'if(/open_ils_staff_client/) { s/ (?!chrome:\/\/open_ils_staff_client)([^ ]*)$$/ chrome\/\1/; print; }' client/chrome/chrome.manifest > client/chrome.manifest - @grep -v manifest build/chrome.manifest >> client/chrome.manifest - -# Would merge client_ext into this one, but this way an installer that doesn't -# use an xpi can be made for extension later, if desired - -extension: client_ext - @echo ' * Packaging as an XPI' - @(cd client/ && zip -q -r ../evergreen.xpi * -x defaults/preferences/standalone_xul_app.js) - @md5sum evergreen.xpi > evergreen.xpi.md5 - -# Fetch extensions to load into the client -# This could be done in a "if they aren't there" fashion, but these are manually triggered anyway -# That, and this way you can update the extensions by running this target again -fetch-extensions: fetch-dom-inspector fetch-venkman - -fetch-dom-inspector: - @echo 'Fetching DOM Inspector' - @mkdir -p extensions/ - @wget -Oextensions/${DOMINSPECTOR_ID}.xpi ${DOMINSPECTOR_URL} - -fetch-venkman: - @echo 'Fetching Venkman' - @mkdir -p extensions/ - @wget -Oextensions/${VENKMAN_ID}.xpi ${VENKMAN_URL} - -# Generic client, as an xpi, theoretically suitable for --install-app usage - -generic-client: client_app - @echo 'Packing Generic Client via zip (as xpi file)' - @rm -f evergreen_staff_client.xpi - @cd client && zip -q -r ../evergreen_staff_client.xpi * - @echo done - -# These two targets complete the layout defined on -# https://developer.mozilla.org/en/XULRunner/Deploying_XULRunner_1.8 -# for their respective platforms in regards to XULRunner deployment - -nsis_check: - @echo 'Checking for makensis' - @type -P makensis > /dev/null || ( echo 'MAKENSIS NOT FOUND: Cannot continue. Do you need to install the NSIS package?' && exit 1 ) - -unzip_check: - @echo 'Checking for unzip' - @type -P unzip > /dev/null || ( echo 'UNZIP NOT FOUND: Cannot continue.' && exit 1 ) - -branding_check: - @echo 'Checking for branding' - @[ -f xulrunner-stub.exe ] || echo 'xulrunner-stub.exe not found' - @[ -f build/evergreen.ico ] || echo 'build/evergreen.ico not found' - @if [ ! -f xulrunner-stub.exe -o ! -f build/evergreen.ico ]; then echo 'Branding incomplete. Did you forget to run "make rigbeta" or "make rigrelease"?'; echo 'You will need to "make rebuild" afterwards.'; exit 1; fi - -# Note that I decided to use win/lin channels for ease of coding platform specific updates - -win-xulrunner: unzip_check branding_check client_app - @echo 'Preparing Windows xulrunner' - @if [ ! -f ${XULRUNNER_WINFILE} ]; then wget ${XULRUNNER_URL}${XULRUNNER_WINFILE}; fi - @unzip -q ${XULRUNNER_WINFILE} -dclient - @if [ -f client/defaults/preferences/autoupdate.js ]; then echo 'pref("app.update.channel","win");' >> client/defaults/preferences/autochannel.js; fi; - @if [ -d branding_win ]; then cp -fR branding_win/* client/; fi - @echo 'Preparing stub' - @if [ -f xulrunner-stub.exe ]; then cp xulrunner-stub.exe client/evergreen.exe; rm client/xulrunner/xulrunner-stub.exe; else mv client/xulrunner/xulrunner-stub.exe client/evergreen.exe; fi - @if [ ${XULRUNNER_MAJOR_VERSION} -ge 4 -a -f client/xulrunner/mozcrt19.dll ]; then cp client/xulrunner/mozcrt19.dll client/; fi # XULRunner 4+ need this, if the file exists - @if [ ${XULRUNNER_MAJOR_VERSION} -ge 9 -a -f client/xulrunner/mozutils.dll ]; then cp client/xulrunner/mozutils.dll client/; fi # XULRunner 9+ need this, if the file exists - -linux32-xulrunner: client_app - @echo 'Preparing Linux (32 bit) xulrunner' - @if [ ! -f ${XULRUNNER_LINUX32FILE} ]; then wget ${XULRUNNER_URL}${XULRUNNER_LINUX32FILE}; fi - @cd client; tar xjf ../${XULRUNNER_LINUX32FILE}; cd .. - @if [ -f client/defaults/preferences/autoupdate.js ]; then echo 'pref("app.update.channel","lin");' >> client/defaults/preferences/autochannel.js; fi; - @if [ -d branding_lin ]; then cp -fR branding_lin/* client/; fi - @echo 'Preparing stub' - @mv client/xulrunner/xulrunner-stub client/evergreen - -linux64-xulrunner: client_app - @echo 'Preparing Linux (64 bit) xulrunner' - @if [ ! -f ${XULRUNNER_LINUX64FILE} ]; then wget ${XULRUNNER_URL}${XULRUNNER_LINUX64FILE}; fi - @cd client; tar xjf ../${XULRUNNER_LINUX64FILE}; cd .. - @if [ -f client/defaults/preferences/autoupdate.js ]; then echo 'pref("app.update.channel","lin64");' >> client/defaults/preferences/autochannel.js; fi; -# Note: We assume that we want 32 bit branding files, but provide a way to override for 64 bit - @if [ -d branding_lin ]; then cp -fR branding_lin/* client/; fi - @if [ -d branding_lin64 ]; then cp -fR branding_lin64/* client/; fi - @echo 'Preparing stub' - @mv client/xulrunner/xulrunner-stub client/evergreen - - -# Build a windows installer. - -win-client: nsis_check win-xulrunner - @if [ "${NSIS_AUTOUPDATE}${NSIS_PERMACHINE}" -a ! -d AccessControl ]; then echo 'Fetching AccessControl Plugin'; wget ${NSIS_ACCESSCONTROL} -O AccessControl.zip; unzip AccessControl.zip $$(unzip -t AccessControl.zip | grep 'AccessControl/Contrib/' > /dev/null || echo "-dAccessControl"); fi - @echo 'Building installer' - @makensis -V2 -DPRODUCT_VERSION="${STAFF_CLIENT_VERSION}" ${NSIS_WICON} ${NSIS_AUTOUPDATE} ${NSIS_DEV} ${NSIS_PERMACHINE} ${NSIS_EXTRAS} ${NSIS_EXTRAOPTS} windowssetup.nsi - @echo 'Done' - -# For linux, just build a tar.bz2 archive - -linux32-client: linux32-xulrunner - @echo 'Packing as evergreen_staff_client_i686.tar.bz2' - @rm -f evergreen_staff_client_i686.tar.bz2 - @cd client; tar cjf ../evergreen_staff_client_i686.tar.bz2 *; cd .. - @echo 'Done' - -linux64-client: linux64-xulrunner - @echo 'Packing as evergreen_staff_client_x86_64.tar.bz2' - @rm -f evergreen_staff_client_x86_64.tar.bz2 - @cd client; tar cjf ../evergreen_staff_client_x86_64.tar.bz2 *; cd .. - @echo 'Done' - -# For running the updates script with the correct updates directory, optionally building clients as well - -updates updates-client win-updates win-updates-client linux32-updates linux32-updates-client linux64-updates linux64-updates-client generic-updates generic-updates-client extension-updates: - @if [ ! -f build/BUILD_ID ]; then echo 'ERROR! Current build not stamped!'; exit 1; fi - @if [ ! -x external/make_updates.sh ]; then chmod u+x external/make_updates.sh; fi - @if [ ! -x external/make_updates.sh ]; then echo 'ERROR! external/make_updates.sh is not executable!'; exit 1; fi - @external/make_updates.sh ${UPDATESDIR} $@ diff --git a/Open-ILS/xul/staff_client/README b/Open-ILS/xul/staff_client/README deleted file mode 100644 index a65c06822b..0000000000 --- a/Open-ILS/xul/staff_client/README +++ /dev/null @@ -1,3 +0,0 @@ -bzr test abc -fru fru -wacka wakca diff --git a/Open-ILS/xul/staff_client/application.ini b/Open-ILS/xul/staff_client/application.ini deleted file mode 100644 index bc089f64b5..0000000000 --- a/Open-ILS/xul/staff_client/application.ini +++ /dev/null @@ -1,39 +0,0 @@ -[App] -; Modified by Jason for Evergreen -; This file is used by XUL Runner like so: xulrunner ./application.ini -; -; This field specifies your organization's name. This field is recommended, -; but optional. -Vendor=OpenILS -; -; This field specifies your application's name. This field is required. -Name=open_ils_staff_client -; -; This field specifies your application's version. This field is required. -Version=20090223 -; -; This field specifies your application's build ID (timestamp). This field is -; required. -BuildID=20090223 -; -; -; This ID is just an example. Every XUL app ought to have it's own unique ID. -; You can use the microsoft "guidgen" or "uuidgen" tools, or go on -; irc.mozilla.org and /msg botbot uuid. This field is optional. -ID=staff-client@open-ils.org -[Gecko] -; -; This field is required. It specifies the minimum Gecko version that this -; application requires. Specifying 1.8 matches all releases with a version -; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2). -MinVersion=1.9 -; -; This field is optional. It specifies the maximum Gecko version that this -; application requires. It should be specified if your application uses -; unfrozen interfaces. Specifying 1.8 matches all releases with a version -; prefixed by 1.8 (e.g., 1.8a4, 1.8b, 1.8.2). -MaxVersion=14.* - -[XRE] -EnableExtensionManager=1 - diff --git a/Open-ILS/xul/staff_client/chrome.manifest b/Open-ILS/xul/staff_client/chrome.manifest deleted file mode 100644 index bcb090c70a..0000000000 --- a/Open-ILS/xul/staff_client/chrome.manifest +++ /dev/null @@ -1,27 +0,0 @@ -# Grab manifest from chrome directory -manifest chrome/chrome.manifest -# Grab xulrunner binary manifest -manifest components/binary.manifest - -# Register our components -#component {classID} components/file.js -#contract @foobar/mycomponent;1 {classID} -#category category-name MyComponent @foobar/mycomponent;1 - -# Data Store Component -component {dc3e4b5f-c0f4-4b34-bc57-7b4099c3a5d6} components/nsOpenILS.js -contract @open-ils.org/openils_data_cache;1 {dc3e4b5f-c0f4-4b34-bc57-7b4099c3a5d6} - -# Command Line Handler -component {7e608198-7355-483a-a85a-20322e4ef91a} components/clh.js -contract @mozilla.org/commandlinehandler/general-startup;1?type=egcli {7e608198-7355-483a-a85a-20322e4ef91a} -category command-line-handler m-egcli @mozilla.org/commandlinehandler/general-startup;1?type=egcli - -# Remote XUL Protocol (oils://) -component {51d35450-5e59-11e1-b86c-0800200c9a66} components/oils_protocol.js -contract @mozilla.org/network/protocol;1?name=oils {51d35450-5e59-11e1-b86c-0800200c9a66} - -# Force External -component {D969ED61-DF4C-FA12-A2A6-70AA94C222FB} components/forceexternal.js -contract @mozilla.org/content-policy;1?type=egfe {D969ED61-DF4C-FA12-A2A6-70AA94C222FB} -category content-policy m-egfe @mozilla.org/content-policy;1?type=egfe diff --git a/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.dtd b/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.dtd deleted file mode 100644 index 7ea9b3bf88..0000000000 --- a/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.dtd +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.properties b/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.properties deleted file mode 100644 index 6f28d527f5..0000000000 --- a/Open-ILS/xul/staff_client/chrome/branding/locale/en-US/brand.properties +++ /dev/null @@ -1,3 +0,0 @@ -brandShortName=Evergreen -brandFullName=Evergreen -vendorShortName=open-ils.org diff --git a/Open-ILS/xul/staff_client/chrome/chrome.manifest b/Open-ILS/xul/staff_client/chrome/chrome.manifest deleted file mode 100644 index 0a4f7233e3..0000000000 --- a/Open-ILS/xul/staff_client/chrome/chrome.manifest +++ /dev/null @@ -1,6 +0,0 @@ -content open_ils_staff_client content/ -locale open_ils_staff_client en-US locale/en-US/ -skin open_ils_staff_client open_ils_staff_client skin/ -locale branding en-US branding/locale/en-US/ - -overlay chrome://browser/content/browser.xul chrome://open_ils_staff_client/content/firefox/overlay.xul diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js deleted file mode 100644 index fe1d7a1e27..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js +++ /dev/null @@ -1,1134 +0,0 @@ -dump('entering OpenILS/data.js\n'); - -if (typeof OpenILS == 'undefined') OpenILS = {}; -OpenILS.data = function () { - - try { - /* We're going to turn this guy into a singleton, at least for a given window, and look for it in xulG */ - if (! window.xulG) { window.xulG = {}; } - if (window.xulG._data) { return window.xulG._data; } - - JSAN.use('util.error'); this.error = new util.error(); - JSAN.use('util.network'); this.network = new util.network(); - } catch(E) { - alert(location.href + '\nError in OpenILS.data constructor: ' + E); - throw(E); - } - - window.xulG._data = this; - return this; -} - -OpenILS.data.prototype = { - - 'list' : {}, - 'hash' : {}, - 'tree' : {}, - - 'temp' : '', - - 'data_progress' : function(msg) { - try { - var x = document.getElementById('data_progress'); - if (x) { - x.appendChild( document.createTextNode( msg ) ); - } - } catch(E) { - this.error.sdump('D_ERROR',msg + '\n' + E); - } - }, - - 'init' : function (params) { - - try { - if (params && params.via == 'stash') { - this.stash_retrieve(); - } else { - this.network_retrieve(); - } - - } catch(E) { - this.error.sdump('D_ERROR','Error in OpenILS.data.init(' - +js2JSON(params)+'): ' + js2JSON(E) ); - } - - - }, - - // This should be invoked only once per application, in a persistant window - 'init_observer_functions' : function() { - try { - var obj = this; // OpenILS.data - obj.observers = {}; // - obj.observers.id = 1; // Unique id for each observer function added - obj.observers.id2path = {}; // Lookup for full_path via observer id - obj.observers.cache = {}; // Observer funcs go in here - - // For a given path, this executes all the registered observer funcs - obj.observers.dispatch = function(full_path, old_value, new_value) { - obj.error.sdump('D_OBSERVERS', 'entering observers.dispatch\nfull_path = ' + full_path + '\nold_value = ' + js2JSON(old_value) + '\nnew_value = ' + js2JSON(new_value) + '\n'); - try { - var path = full_path.split(/\./).pop(); - for (var i in obj.observers.cache[full_path]) { - try { - var o = obj.observers.cache[full_path][i]; - if (typeof o.func == 'function') o.func(path, old_value, new_value); - } catch(E) { - obj.error.sdump('D_ERROR','Error in OpenILS.data.observers.dispatch(): ' + js2JSON(E) ); - } - } - } catch(E) { - obj.error.sdump('D_ERROR','Error in OpenILS.data.observers.dispatch(): ' + js2JSON(E) ); - } - } - - // This registers an observer function for a given path - obj.observers.add = function(full_path, func) { - try { - obj.error.sdump('D_OBSERVERS', 'entering observers.add\nfull_path = ' + full_path + '\nfunc = ' + func + '\n'); - var data_cache = Components.classes["@open-ils.org/openils_data_cache;1"].getService(); - var stash = data_cache.wrappedJSObject.data; - - var id = obj.observers.id++; - if (typeof obj.observers.cache[ full_path ] == 'undefined') obj.observers.cache[ full_path ] = {}; - obj.observers.cache[ full_path ][ id ] = { 'func' : func, 'time_added' : new Date() }; - obj.observers.id2path[ id ] = [ full_path ]; - - var path_list = full_path.split(/\./); - var observed_prop = path_list.pop(); - - // Convert soft path to object reference. Error if any but the last node is undefined - for (var i in path_list) stash = stash[ path_list[i] ]; - - /* - - // experiment with storing only json in cache to avoid the [ ] -> { '0' : .., '1' : .. } bug - - if (stash[observed_prop] && getKeys( obj.observers.cache[ full_path ] ).length == 0) { - stash['_' + observed_prop] = js2JSON(stash[observed_prop]); - } - - stash.__defineSetter__(observed_prop, function(x) { this['_'+observed_prop] = js2JSON(x); }); - stash.__defineGetter__(observed_prop, function() { return JSON2js(this['_'+observed_prop]); }); - */ - - stash.watch( - observed_prop, - function(p,old_value,new_value) { - obj.observers.dispatch(full_path,old_value,new_value); - return new_value; - } - ); - - return id; - } catch(E) { - obj.error.sdump('D_ERROR','Error in OpenILS.data.observers.add(): ' + js2JSON(E) ); - } - } - - // This unregisters an observer function for a given observer id - obj.observers.remove = function(id) { - try { - obj.error.sdump('D_OBSERVERS', 'entering observers.remove\nid = ' + id + '\n'); - var path = obj.observers.id2path[ id ]; - delete obj.observers.cache[ path ][ id ]; - delete obj.observers.id2path[ id ]; - } catch(E) { - obj.error.sdump('D_ERROR','Error in OpenILS.data.observers.remove(): ' + js2JSON(E) ); - } - } - - // This purges observer functions for a given path - obj.observers.purge = function(full_path) { - obj.error.sdump('D_OBSERVERS', 'entering observers.purge\nfull_path = ' + full_path + '\n'); - try { - var remove_these = []; - for (var id in obj.observers.cache[ full_path ]) remove_these.push( id ); - for (var id in remove_these) delete obj.observers.id2path[ id ]; - delete obj.observers.cache[ full_path ]; - } catch(E) { - obj.error.sdump('D_ERROR','Error in OpenILS.data.observers.purge(): ' + js2JSON(E) ); - } - } - - obj.stash('observers'); // make this accessible globally - - } catch(E) { - this.error.sdump('D_ERROR','Error in OpenILS.data.init_observer_functions(): ' + js2JSON(E) ); - } - }, - - 'stash' : function () { - try { - var data_cache = Components.classes["@open-ils.org/openils_data_cache;1"].getService(); - for (var i = 0; i < arguments.length; i++) { - try { - if (arguments[i] != 'hash' && arguments[i] != 'list') this.error.sdump('D_DATA_STASH','stashing ' + arguments[i] + ' : ' + this[arguments[i]] + (typeof this[arguments[i]] == 'object' ? ' = ' + (this[arguments[i]]) : '') + '\n'); - } catch(F) { alert(F); } - data_cache.wrappedJSObject.data[arguments[i]] = this[arguments[i]]; - } - } catch(E) { - this.error.sdump('D_ERROR','Error in OpenILS.data.stash(): ' + js2JSON(E) ); - } - }, - - 'lookup' : function(key,value) { - try { - var obj = this; var found; - if (obj.hash[key] && obj.hash[key][value]) return obj.hash[key][value]; - switch(key) { - case 'acnp': - found = obj.network.simple_request('FM_ACNP_RETRIEVE_VIA_PCRUD',[ ses(), { 'id' : { '=' : value } }]); - if (typeof found.ilsevent != 'undefined') throw(js2JSON(found)); - found = found[0]; - break; - case 'acns': - found = obj.network.simple_request('FM_ACNS_RETRIEVE_VIA_PCRUD',[ ses(), { 'id' : { '=' : value } }]); - if (typeof found.ilsevent != 'undefined') throw(js2JSON(found)); - found = found[0]; - break; - case 'acpl': - found = obj.network.simple_request('FM_ACPL_RETRIEVE_VIA_ID.authoritative',[ value ]); - break; - case 'actsc': - found = obj.network.simple_request('FM_ACTSC_RETRIEVE_VIA_PCRUD',[ ses(), { 'id' : { '=' : value } }]); - if (typeof found.ilsevent != 'undefined') throw(js2JSON(found)); - found = found[0]; - break; - default: return undefined; break; - } - if (typeof found.ilsevent != 'undefined') throw(found); - if (!obj.hash[key]) obj.hash[key] = {}; - obj.hash[key][value] = found; - if (!obj.list[key]) obj.list[key] = []; - obj.list[key].push( found ); - obj.stash('hash','list'); - return found; - } catch(E) { - alert('Error in OpenILS.data.lookup('+key+','+value+'): ' + E ); - return undefined; - } - }, - - '_debug_stash' : function() { - try { - var data_cache = Components.classes["@open-ils.org/openils_data_cache;1"].getService(); - for (var i in data_cache.wrappedJSObject.data) { - dump('_debug_stash ' + i + '\n'); - } - } catch(E) { - this.error.sdump('D_ERROR','Error in OpenILS.data._debug_stash(): ' + js2JSON(E) ); - } - }, - - '_fm_objects' : { - - 'pgt' : [ api.FM_PGT_RETRIEVE.app, api.FM_PGT_RETRIEVE.method, [], true ], - 'cit' : [ api.FM_CIT_RETRIEVE.app, api.FM_CIT_RETRIEVE.method, [], true ], - 'citm' : [ api.FM_CITM_RETRIEVE.app, api.FM_CITM_RETRIEVE.method, [{'query':{'ctype' : 'item_type'}}], true ], - /* - 'cst' : [ api.FM_CST_RETRIEVE.app, api.FM_CST_RETRIEVE.method, [], true ], - */ - /* - 'acpl' : [ api.FM_ACPL_RETRIEVE.app, api.FM_ACPL_RETRIEVE.method, [], true ], - */ - 'ccs' : [ api.FM_CCS_RETRIEVE.app, api.FM_CCS_RETRIEVE.method, [], true ], - 'aou' : [ api.FM_AOU_RETRIEVE.app, api.FM_AOU_RETRIEVE.method, [], true ], - 'aout' : [ api.FM_AOUT_RETRIEVE.app, api.FM_AOUT_RETRIEVE.method, [], true ], - 'crahp' : [ api.FM_CRAHP_RETRIEVE.app, api.FM_CRAHP_RETRIEVE.method, [], true ] - }, - - 'stash_retrieve' : function() { - try { - var data_cache = Components.classes["@open-ils.org/openils_data_cache;1"].getService(); - var dc = data_cache.wrappedJSObject.data; - for (var i in dc) { - this.error.sdump('D_DATA_RETRIEVE','Retrieving ' + i + ' : ' + dc[i] + '\n'); - this[i] = dc[i]; - } - } catch(E) { - this.error.sdump('D_ERROR','Error in OpenILS.data._debug_stash(): ' + js2JSON(E) ); - } - }, - - 'load_saved_print_templates' : function() { - var obj = this; - try { - JSAN.use('util.file'); var file = new util.file('print_list_templates'); - if (file._file.exists()) { - try { - var x = file.get_object(); - if (x) { - for (var i in x) { - obj.print_list_templates[i] = x[i]; - } - // handle macro changes - var templates = [ 'bills_current', 'bills_historical' ]; - for (var i = 0; i < templates.length; i++) { - if (obj.print_list_templates[templates[i]]) { - // mbts_id - obj.print_list_templates[templates[i]].line_item = - obj.print_list_templates[templates[i]].line_item.replace( - /%id%/g, '%mbts_id%'); - // mbts_xact_start - obj.print_list_templates[templates[i]].line_item = - obj.print_list_templates[templates[i]].line_item.replace( - /%xact_start%/g, '%mbts_xact_start%'); - // mbts_xact_finish - obj.print_list_templates[templates[i]].line_item = - obj.print_list_templates[templates[i]].line_item.replace( - /%xact_finish%/g, '%mbts_xact_finish%'); - } - } - // - obj.stash('print_list_templates'); - obj.data_progress('Saved print templates retrieved from file. '); - } - } catch(E) { - alert(E); - } - } - file.close(); - } catch(E) { - alert("Error in OpenILS.data, load_saved_print_templates(): " + E); - } - }, - - 'fetch_print_strategy' : function() { - var obj = this; - try { - obj.print_strategy = {}; - var print_contexts = [ 'default', 'receipt', 'label', 'mail', 'offline' ]; - for (var i in print_contexts) { - JSAN.use('util.file'); var file = new util.file('print_strategy.' + print_contexts[i]); - if (file._file.exists()) { - try { - var x = file.get_content(); - if (x) { - obj.print_strategy[ print_contexts[i] ] = x; - obj.data_progress('Print strategy ' + print_contexts[i] + ' retrieved from file. '); - } - } catch(E) { - alert(E); - } - } - file.close(); - } - obj.stash('print_strategy'); - } catch(E) { - alert('Error in OpenILS.data, fetch_print_strategy(): ' + E); - } - }, - - 'print_list_defaults' : function() { - var obj = this; - //if (typeof obj.print_list_templates == 'undefined') { - { - obj.print_list_types = [ - 'offline_checkout', - 'offline_checkin', - 'offline_renew', - 'offline_inhouse_use', - 'items', - 'bills', - 'payment', - 'holds', - /* 'patrons' */ - ]; - // We define this for the benefit of the editor. - // We don't assign them here, leaving that to the user. - // Without one assigned per template the context the util.print was created with will be used instead. - obj.print_list_contexts = [ - 'default', - 'receipt', - 'label', - 'mail', - 'offline', - ]; - obj.print_list_templates = { - 'item_status' : { - 'type' : 'items', - 'header' : 'The following items have been examined:
    ', - 'line_item' : '
  1. %title%
    \r\nBarcode: %barcode%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - }, - 'transit_list' : { - 'type' : 'transits', - 'header' : 'Transits:
    ', - 'line_item' : '
  1. From: %transit_source% To: %transit_dest_lib%
    \r\nWhen: %transit_source_send_time%
    \r\nBarcode: %transit_item_barcode% Title: %transit_item_title%
    \r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - }, - 'items_out' : { - 'type' : 'items', - 'header' : 'Welcome to %LIBRARY%!
\r\nYou have the following items:
    ', - 'line_item' : '
  1. %title%
    \r\nBarcode: %barcode% Due: %due_date%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\nYou were helped by %STAFF_FIRSTNAME%
\r\n
\r\n' - }, - 'renew' : { - 'type' : 'items', - 'header' : 'Welcome to %LIBRARY%!
\r\nYou have renewed the following items:
    ', - 'line_item' : '
  1. %title%
    \r\nBarcode: %barcode% Due: %due_date%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\nYou were helped by %STAFF_FIRSTNAME%
\r\n
\r\n' - }, - 'checkout' : { - 'type' : 'items', - 'header' : 'Welcome to %LIBRARY%!
\r\nYou checked out the following items:
    ', - 'line_item' : '
  1. %title%
    \r\nBarcode: %barcode% Due: %due_date%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\nYou were helped by %STAFF_FIRSTNAME%
\r\n
\r\n' - }, - 'offline_checkout' : { - 'type' : 'offline_checkout', - 'header' : 'Patron %patron_barcode%
\r\nYou checked out the following items:
    ', - 'line_item' : '
  1. Barcode: %barcode%
    \r\nDue: %due_date%\r\n', - 'footer' : '

%TODAY_TRIM%
\r\n
\r\n' - }, - 'checkin' : { - 'type' : 'items', - 'header' : 'You checked in the following items:
    ', - 'line_item' : '
  1. %title%
    \r\nBarcode: %barcode% Call Number: %call_number%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - }, - 'bill_payment' : { - 'type' : 'payment', - 'header' : 'Welcome to %LIBRARY%!
A receipt of your transaction:
Original Balance: $%original_balance%
Payment Method: %payment_type%
Payment Received: $%payment_received%
Payment Applied: $%payment_applied%
Billings Voided: %voided_balance%
Change Given: $%change_given%
New Balance: $%new_balance%

Note: %note%

Specific bills:

', - 'line_item' : 'Bill #%bill_id% %last_billing_type% Received: $%payment%
%barcode% %title%

', - 'footer' : '


%SHORTNAME% %TODAY_TRIM%

' - }, - 'bills_historical' : { - 'type' : 'bills', - 'header' : 'Welcome to %LIBRARY%!
You had the following bills:
    ', - 'line_item' : '
    Bill #%mbts_id% %title%
    Date:%mbts_xact_start%
    Type:%xact_type%
    Last Billing:%last_billing_type%
    %last_billing_note%
    Total Billed:$%total_owed%
    Last Payment:%last_payment_type%
    %last_payment_note%
    Total Paid:$%total_paid%
    Balance:$%balance_owed%

    ', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - }, - 'bills_current' : { - 'type' : 'bills', - 'header' : 'Welcome to %LIBRARY%!
You have the following bills:
    ', - 'line_item' : '
    Bill #%mbts_id%
    Date:%mbts_xact_start%
    Type:%xact_type%
    Last Billing:%last_billing_type%
    %last_billing_note%
    Total Billed:$%total_owed%
    Last Payment:%last_payment_type%
    %last_payment_note%
    Total Paid:$%total_paid%
    Balance:$%balance_owed%

    ', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - }, - 'offline_checkin' : { - 'type' : 'offline_checkin', - 'header' : 'You checked in the following items:
    ', - 'line_item' : '
  1. Barcode: %barcode%\r\n', - 'footer' : '

%TODAY_TRIM%
\r\n
\r\n' - }, - 'offline_renew' : { - 'type' : 'offline_renew', - 'header' : 'You renewed the following items:
    ', - 'line_item' : '
  1. Barcode: %barcode%\r\n', - 'footer' : '

%TODAY_TRIM%
\r\n
\r\n' - }, - 'offline_inhouse_use' : { - 'type' : 'offline_inhouse_use', - 'header' : 'You marked the following in-house items used:
    ', - 'line_item' : '
  1. Barcode: %barcode%\r\nUses: %count%', - 'footer' : '

%TODAY_TRIM%
\r\n
\r\n' - }, - 'in_house_use' : { - 'type' : 'items', - 'header' : 'You marked the following in-house items used:
    ', - 'line_item' : '
  1. Barcode: %barcode%\r\nUses: %uses%\r\n
    %alert_message%', - 'footer' : '

%TODAY_TRIM%
\r\n
\r\n' - }, - 'holds' : { - 'type' : 'holds', - 'header' : 'Welcome to %LIBRARY%!
\r\nYou have the following titles on hold:
    ', - 'line_item' : '
  1. %title%\r\n', - 'footer' : '

%SHORTNAME% %TODAY_TRIM%
\r\nYou were helped by %STAFF_FIRSTNAME%
\r\n
\r\n' - }, - 'holds_on_bib' : { - 'type' : 'holds', - 'inherit' : 'holds' - }, - 'holds_for_patron' : { - 'type' : 'holds', - 'inherit' : 'holds' - }, - 'holds_shelf' : { - 'type' : 'holds', - 'inherit' : 'holds' - }, - 'holds_pull_list' : { - 'type' : 'holds', - 'inherit' : 'holds' - }, - 'hold_slip' : { - 'type' : 'holds', - 'header' : 'This item needs to be routed to %route_to%:
\r\nBarcode: %item_barcode%
\r\nTitle: %item_title%
\r\n
\r\n%hold_for_msg%
\r\nBarcode: %PATRON_BARCODE%
\r\nNotify by phone: %notify_by_phone%
\r\nNotified by text: %notify_by_text%
\r\nNotified by email: %notify_by_email%
\r\n', - 'line_item' : '%formatted_note%
\r\n', - 'footer' : '
\r\nRequest date: %request_date%
\r\nSlip Date: %TODAY_TRIM%
\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%
\r\n
\r\n' - }, - 'transit_slip' : { - 'type' : 'transits', - 'header' : 'This item needs to be routed to %route_to%:
\r\n%route_to_org_fullname%
\r\n%street1%
\r\n%street2%
\r\n%city_state_zip%
\r\n
\r\nBarcode: %item_barcode%
\r\nTitle: %item_title%
\r\nAuthor: %item_author%
\r\n
\r\n', - 'line_item' : '', - 'footer' : 'Slip Date: %TODAY_TRIM%
\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%
\r\n
\r\n' - }, - 'hold_transit_slip' : { - 'type' : 'transits', - 'header' : 'This item needs to be routed to %route_to%:
\r\n%route_to_org_fullname%
\r\n%street1%
\r\n%street2%
\r\n%city_state_zip%
\r\n
\r\nBarcode: %item_barcode%
\r\nTitle: %item_title%
\r\nAuthor: %item_author%
\r\n
\r\nBarcode: %PATRON_BARCODE%
\r\n', - 'line_item' : '%formatted_note%
\r\n', - 'footer' : '
\r\nRequest date: %request_date%
\r\nSlip Date: %TODAY_TRIM%
\r\nPrinted by %STAFF_FIRSTNAME% at %SHORTNAME%
\r\n
\r\n' - }, - 'holdings_maintenance' : { - 'type' : 'items', - 'header' : 'Title: %title%
\r\nAuthor: %author%
\r\nISBN: %isbn% Edition: %edition% PubDate: %pubdate%
\r\nTCN: %tcn_value% Record ID: %mvr_doc_id%
\r\nCreator: %creator% Create Date: %create_date%
\r\nEditor: %editor% Edit Date: %edit_date%
\r\n', - 'line_item' : '%prefix% %tree_location% %suffix% %parts% %acp_status%
\r\n', - 'footer' : '
%SHORTNAME% %TODAY_TRIM%
\r\n
\r\n' - } - }; - - obj.stash( 'print_list_templates', 'print_list_types' ); - } - }, - - 'network_retrieve' : function() { - var obj = this; - - JSAN.use('util.file'); var file = new util.file('global_font_adjust'); - if (file._file.exists()) { - try { - var x = file.get_object(); - if (x) { - obj.global_font_adjust = x; - obj.stash('global_font_adjust'); - obj.data_progress('Saved font settings retrieved from file. '); - } - } catch(E) { - alert(E); - } - } - file.close(); - - JSAN.use('util.file'); var file = new util.file('no_sound'); - if (file._file.exists()) { - try { - var x = file.get_content(); - if (x) { - obj.no_sound = x; - obj.stash('no_sound'); - obj.data_progress('Saved sound settings retrieved from file. '); - } - } catch(E) { - alert(E); - } - } - file.close(); - - obj.print_list_defaults(); - obj.data_progress('Default print templates set. '); - obj.load_saved_print_templates(); - obj.fetch_print_strategy(); - JSAN.use('util.print'); (new util.print()).GetPrintSettings(); - obj.data_progress('Printer settings retrieved. '); - - JSAN.use('util.functional'); - JSAN.use('util.fm_utils'); - - function gen_fm_retrieval_func(classname,data) { - var app = data[0]; var method = data[1]; var params = data[2]; var cacheable = data[3]; - return function () { - - function convert() { - try { - if (obj.list[classname].constructor.name == 'Array') { - obj.hash[classname] = - util.functional.convert_object_list_to_hash( - obj.list[classname], - classname == 'citm' ? 'code' : null - ); - } - } catch(E) { - - obj.error.sdump('D_ERROR',E + '\n'); - } - - } - - try { - var level = obj.error.sdump_levels.D_SES_RESULT; - if (classname == 'aou' || classname == 'my_aou') - obj.error.sdump_levels.D_SES_RESULT = false; - var robj = obj.network.request( app, method, params); - if (robj != null && typeof robj.ilsevent != 'undefined') { - obj.error.standard_unexpected_error_alert('The staff client failed to retrieve expected data from this call, "' + method + '"',robj); - throw(robj); - } - obj.list[classname] = robj == null ? [] : robj; - obj.error.sdump_levels.D_SES_RESULT = level; - convert(); - obj.data_progress('Retrieved list for ' + classname + ' objects. '); - - } catch(E) { - // if cacheable, try offline - if (cacheable) { - /* FIXME -- we're going to revisit caching and do it differently - try { - var file = new util.file( classname ); - obj.list[classname] = file.get_object(); file.close(); - convert(); - } catch(E) { - throw(E); - } - */ - throw(E); // for now - } else { - throw(E); // for now - } - } - } - } - - // If we don't clear these, then things like obj.list['acnp_for_lib_1'] may stick around - obj.hash = {}; obj.list = {}; - - this.chain = []; - - this.chain.push( - function() { - try { - var robj = obj.network.simple_request('CIRC_MODIFIER_LIST',[{'full':true}]); - if (typeof robj.ilsevent != 'undefined') throw(robj); - obj.list.ccm = robj == null ? [] : robj; - obj.hash.ccm = util.functional.convert_object_list_to_hash( obj.list.ccm ); - obj.list.circ_modifier = util.functional.map_list( obj.list.ccm, function(o) { return o.code(); } ); - obj.data_progress('Retrieved circ modifier list. '); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'cnal', - [ - api.FM_CNAL_RETRIEVE.app, - api.FM_CNAL_RETRIEVE.method, - [ obj.session.key ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'bpt', - [ - api.FM_BPT_PCRUD_SEARCH.app, - api.FM_BPT_PCRUD_SEARCH.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"bpt":"id"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'cbc', - [ - api.FM_CBC_PCRUD_SEARCH.app, - api.FM_CBC_PCRUD_SEARCH.method, - [ obj.session.key, {"active":"t"}, {"order_by":{"cbc":"id"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'cfg', - [ - api.FM_CFG_RETRIEVE_VIA_PCRUD.app, - api.FM_CFG_RETRIEVE_VIA_PCRUD.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"cfg":"id"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'csp', - [ - api.FM_CSP_PCRUD_SEARCH.app, - api.FM_CSP_PCRUD_SEARCH.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"csp":"id"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'acnc', - [ - api.FM_ACNC_RETRIEVE_VIA_PCRUD.app, - api.FM_ACNC_RETRIEVE_VIA_PCRUD.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"acnc":"name"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'ahrcc', - [ - api.FM_AHRCC_PCRUD_SEARCH.app, - api.FM_AHRCC_PCRUD_SEARCH.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"ahrcc":"label"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'au', - [ - api.FM_AU_RETRIEVE_VIA_SESSION.app, - api.FM_AU_RETRIEVE_VIA_SESSION.method, - [ obj.session.key ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - obj.list.au = [ obj.list.au ]; - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'my_asv', - [ - api.FM_ASV_RETRIEVE_REQUIRED.app, - api.FM_ASV_RETRIEVE_REQUIRED.method, - [ obj.session.key ], - true - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'asv', - [ - api.FM_ASV_RETRIEVE.app, - api.FM_ASV_RETRIEVE.method, - [ obj.session.key ], - true - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - obj.error.sdump('D_DEBUG','_fm_objects = ' + js2JSON(this._fm_objects) + '\n'); - - for (var i in this._fm_objects) { - this.chain.push( gen_fm_retrieval_func(i,this._fm_objects[i]) ); - } - - // The previous org_tree call returned a tree, not a list or hash. - this.chain.push( - function () { - obj.tree.aou = obj.list.aou; - obj.list.aou = util.fm_utils.flatten_ou_branch( obj.tree.aou ); - for (var i = 0; i < obj.list.aou.length; i++) { - var c = obj.list.aou[i].children(); - if (!c) c = []; - c = c.sort( - function( a, b ) { - if (a.shortname() < b.shortname()) return -1; - if (a.shortname() > b.shortname()) return 1; - return 0; - } - ); - obj.list.aou[i].children( c ); - } - obj.list.aou = util.fm_utils.flatten_ou_branch( obj.tree.aou ); - obj.hash.aou = util.functional.convert_object_list_to_hash( obj.list.aou ); - } - ); - - // The previous pgt call returned a tree, not a list or hash. - this.chain.push( - function () { - obj.tree.pgt = obj.list.pgt; - obj.list.pgt = util.fm_utils.flatten_ou_branch( obj.tree.pgt ); - obj.hash.pgt = util.functional.convert_object_list_to_hash( obj.list.pgt ); - } - ); - - // Do these after we get the user object - - this.chain.push( - function() { - try { - var robj = obj.network.simple_request('FM_AOUS_RETRIEVE',[ obj.session.key, obj.list.au[0].ws_ou() ]); - if (typeof robj.ilsevent != 'undefined') throw(robj); - obj.hash.aous = robj; - obj.data_progress('Retrieved org unit settings. '); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - - function() { - - gen_fm_retrieval_func('my_aou', - [ - api.FM_AOU_RETRIEVE_RELATED_VIA_SESSION.app, - api.FM_AOU_RETRIEVE_RELATED_VIA_SESSION.method, - [ obj.session.key, obj.list.au[0].ws_ou() ], /* use ws_ou and not home_ou */ - true - ] - )(); - } - ); - - this.chain.push( - - function () { - - gen_fm_retrieval_func( 'my_actsc', - [ - api.FM_ACTSC_RETRIEVE_VIA_AOU.app, - api.FM_ACTSC_RETRIEVE_VIA_AOU.method, - [ obj.session.key, obj.list.au[0].ws_ou() ], - true - ] - )(); - } - ); - - this.chain.push( - - function () { - - gen_fm_retrieval_func( 'my_asc', - [ - api.FM_ASC_RETRIEVE_VIA_AOU.app, - api.FM_ASC_RETRIEVE_VIA_AOU.method, - [ obj.session.key, obj.list.au[0].ws_ou() ], - true - ] - )(); - } - ); - - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'cnct', - [ - api.FM_CNCT_RETRIEVE.app, - api.FM_CNCT_RETRIEVE.method, - [ obj.list.au[0].ws_ou() ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'my_cnct', - [ - api.FM_CNCT_RETRIEVE.app, - api.FM_CNCT_RETRIEVE.method, - [ obj.list.au[0].ws_ou() ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'acpl', - [ - api.FM_ACPL_RETRIEVE.app, - api.FM_ACPL_RETRIEVE.method, - [ obj.list.au[0].ws_ou() ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'csc', - [ - api.FM_CSC_RETRIEVE_VIA_PCRUD.app, - api.FM_CSC_RETRIEVE_VIA_PCRUD.method, - [ obj.session.key, {"id":{"!=":null}}, {"order_by":{"csc":"name"}} ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'atb', - [ - api.FM_ATB_RETRIEVE_VIA_PCRUD.app, - api.FM_ATB_RETRIEVE_VIA_PCRUD.method, - [ - obj.session.key, - { - "-or": [ - { "ws" : obj.list.au[0].wsid() }, - { "usr" : obj.list.au[0].id() }, - { "org" : util.functional.map_list( obj.list.my_aou, function(o) { return o.id(); } ) } - ] - }, - { - "order_by":{"atb":"label"} - } - ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'acnp', - [ - api.FM_ACNP_RETRIEVE_VIA_PCRUD.app, - api.FM_ACNP_RETRIEVE_VIA_PCRUD.method, - [ obj.session.key, {"owning_lib":{"=":obj.list.au[0].ws_ou()}}, {"order_by":{"acnp":"label_sortkey"}} ], - false - ] - ); - try { - f(); - obj.list['acnp_for_lib_'+obj.list.au[0].ws_ou()] = obj.list.acnp; - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'acns', - [ - api.FM_ACNS_RETRIEVE_VIA_PCRUD.app, - api.FM_ACNS_RETRIEVE_VIA_PCRUD.method, - [ obj.session.key, {"owning_lib":{"=":obj.list.au[0].ws_ou()}}, {"order_by":{"acns":"label_sortkey"}} ], - false - ] - ); - try { - f(); - obj.list['acns_for_lib_'+obj.list.au[0].ws_ou()] = obj.list.acns; - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - this.chain.push( - function() { - var f = gen_fm_retrieval_func( - 'cbt', - [ - api.FM_CBT_RETRIEVE.app, - api.FM_CBT_RETRIEVE.method, - [ obj.session.key, obj.list.au[0].ws_ou() ], - false - ] - ); - try { - f(); - } catch(E) { - var error = 'Error: ' + js2JSON(E); - obj.error.sdump('D_ERROR',error); - throw(E); - } - } - ); - - if (typeof this.on_complete == 'function') { - - this.chain.push( this.on_complete ); - } - JSAN.use('util.exec'); this.exec = new util.exec(); - this.exec.on_error = function(E) { - - if (typeof obj.on_error == 'function') { - return obj.on_error(E); /* false breaks chain */ - } else { - alert('oops: ' + E ); - return false; /* break chain */ - } - - } - - this.chain.push( - function () { - try { - var prefs = Components.classes['@mozilla.org/preferences-service;1'] - .getService(Components.interfaces['nsIPrefBranch']); - prefs.clearUserPref('general.useragent.override'); - obj.data_progress('Cleared deprecated "general.useragent.override" value. '); - } catch(E) { - obj.error.sdump('D_ERROR','Error clearing "general.useragent.override" for ' - + location.href + '\n' + E + '\n'); - } - } - ); - - this.exec.chain( this.chain ); - - } -} - -dump('exiting OpenILS/data.js\n'); diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/event_util.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/event_util.js deleted file mode 100644 index 6e7d09ddd6..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/event_util.js +++ /dev/null @@ -1,40 +0,0 @@ -function EventListenerList() { - this._listeners = []; - return this; -} - -EventListenerList.prototype = { - 'add' : function(node, type, listener, useCapture) { - try { - node.addEventListener(type,listener,useCapture); - this._listeners.push({ - 'node' : node, - 'type' : type, - 'listener' : listener, - 'useCapture' : useCapture - }); - } catch(E) { - alert(location.href + ' Error adding event listener ' + type + ': ' + E); - } - }, - - 'removeAll' : function() { - try { - if (typeof this._listeners != 'undefined') { - for (var i = this._listeners.length - 1; i >= 0; i--) { - this._listeners[i].node.removeEventListener( - this._listeners[i].type, - this._listeners[i].listener, - this._listeners[i].useCapture - ); - this._listeners[i].listener = null; - delete this._listeners[i]; - } - this._listeners = []; - } - } catch(E) { - alert(location.href + ' Error in unloadEventListeners(): ' + E); - } - } -} - diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js deleted file mode 100644 index 10432aea1c..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js +++ /dev/null @@ -1,695 +0,0 @@ - if(window.arguments && typeof window.arguments[0] == 'object' && typeof xulG == 'undefined') { - xulG = window.arguments[0]; - } - - function $(id) { return document.getElementById(id); } - - function oils_unsaved_data_V() { - var tabs = window.parent.parent.document.getElementById('main_tabs'); - - if (tabs) { - var idx = tabs.selectedIndex; - var tab = tabs.childNodes[idx]; - } - - JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve(); - data.stash_retrieve(); - if (typeof data.unsaved_data == 'undefined') { data.unsaved_data = 0; } - //If there are tabs, we allow unsaved data to be incremented only a single time from marc edit. - //If there are not tabs, then we are in a new window like the Copy Editor (so retain original locking). - if (tab) { - if (tab.marc_edit_allow_multiple_locks || tab.in_marc_edit == false) { - data.unsaved_data++; - window.oils_lock++; - } - } else { - data.unsaved_data++; - window.oils_lock++; - } - - data.stash('unsaved_data'); - dump('\n=-=-=-=-=\n'); - dump('oils_unsaved_data_V for ' + location.href + '\n'); - dump('incrementing window.oils_lock\n'); - dump('incrementing data.unsaved_data\n'); - dump('\twindow.oils_lock == ' + window.oils_lock + '\n'); - dump('\tdata.unsaved_data == ' + data.unsaved_data + '\n'); - } - - function oils_unsaved_data_P(count) { - dump('\n=-=-=-=-=\n'); - dump('oils_unsaved_data_P for ' + location.href + '\n'); - if (!count) { count = 1; } - dump('decrementing window.oils_lock by ' + count + '\n'); - window.oils_lock -= count; - if (window.oils_lock < 0) { window.oils_lock = 0; } - JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve(); - data.stash_retrieve(); - if (typeof data.unsaved_data == 'undefined') { data.unsaved_data = 0; } - dump('decrementing data.unsaved_data by ' + count + '\n'); - data.unsaved_data -= count; - if (data.unsaved_data < 0) { data.unsaved_data = 0; } - data.stash('unsaved_data'); - dump('\twindow.oils_lock == ' + window.oils_lock + '\n'); - dump('\tdata.unsaved_data == ' + data.unsaved_data + '\n'); - } - - function oils_lock_page(params) { - dump('\n=-=-=-=-=\n'); - dump('oils_lock_page for ' + location.href + '\n'); - if (!params) { params = {}; } - if (window.oils_lock > 0) { - if (!params.allow_multiple_locks) { - return window.oils_lock; - } - } - var tabs = window.parent.parent.document.getElementById('main_tabs'); - - if (tabs) { - var idx = tabs.selectedIndex; - var tab = tabs.childNodes[idx]; - } - - if (typeof xulG != 'undefined') { - if (typeof xulG.unlock_tab == 'function') { - dump('\twith xulG.lock_tab\n'); - xulG.lock_tab(); - //make sure we are not in the marc edit window - var marceditRe = /\/marcedit.xul$/; - if (marceditRe.exec(window.document.location)) { - //We do not have to check for tab here because - //the MARC editor is explicitly in a tabbed window - if (tab) { - tab.marc_edit_changed = true; - tab.marc_edit_allow_multiple_locks = false; - } - } - window.oils_lock++; // different window scope than the chrome of xulG.lock_tab - } else { - dump('\twithout xulG.lock_tab\n'); - oils_unsaved_data_V(); - } - } else { - dump('\twithout xulG.lock_tab\n'); - oils_unsaved_data_V(); - } - return window.oils_lock; - } - - function oils_unlock_page(params) { - dump('\n=-=-=-=-=\n'); - dump('oils_unlock_page for ' + location.href + '\n'); - - if (typeof xulG != 'undefined') { - if (typeof xulG.unlock_tab == 'function') { - dump('\twith xulG.unlock_tab\n'); - xulG.unlock_tab(); - window.oils_lock--; // different window scope than the chrome of xulG.unlock_tab - if (window.oils_lock < 0) { window.oils_lock = 0; } - } else { - dump('\twithout xulG.unlock_tab\n'); - oils_unsaved_data_P(); - } - } else { - dump('\twithout xulG.unlock_tab\n'); - oils_unsaved_data_P(); - } - return window.oils_lock; - } - - window.oils_lock = 0; - dump('\n=-=-=-=-=\n'); - dump('init window.oils_lock == ' + window.oils_lock + ' for ' + location.href + '\n'); - window.addEventListener( - 'close', - function(ev) { - try { - dump('\n=-=-=-=-=\n'); - dump('oils_lock_page/oils_unlock_page onclose handler for ' + location.href + '\n'); - if (window.oils_lock > 0) { - var confirmation = window.confirm($('offlineStrings').getString('menu.close_window.unsaved_data_warning')); - if (!confirmation) { - ev.preventDefault(); - return false; - } - } - - if (typeof xulG != 'undefined') { - if (typeof xulG.unlock_tab == 'function') { - xulG.unlock_tab(); - } else { - oils_unsaved_data_P( window.oils_lock ); - } - } else { - oils_unsaved_data_P( window.oils_lock ); - } - window.oils_lock = 0; - dump('forcing window.oils_lock == ' + window.oils_lock + '\n'); - - // Dispatching the window close event doesn't always close the window, even though the event does happen - setTimeout( - function() { - try { - window.close(); - } catch(E) { - dump('Error inside global_util.js, onclose handler, setTimeout window.close KLUDGE: ' + E + '\n'); - } - }, 0 - ); - - return true; - } catch(E) { - dump('Error inside global_util.js, onclose handler: ' + E + '\n'); - return true; - } - }, - false - ); - - function ses(a,params) { - try { - if (!params) params = {}; - var data; - if (params.data) { - data = params.data; data.stash_retrieve(); - } else { - // This has been breaking in certain contexts, with an internal instantiation of util.error failing because of util.error being an object instead of the constructor function it should be - JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve(); - } - - switch(a) { - case 'staff' : return data.list.au[0]; break; - case 'staff_id' : return data.list.au[0].id(); break; - case 'staff_usrname' : return data.list.au[0].usrname(); break; - case 'ws_name': - return data.ws_name; - break; - case 'ws_id' : - return data.list.au[0].wsid(); - break; - case 'ws_ou' : - return data.list.au[0].ws_ou(); - break; - case 'ws_ou_shortname' : - return data.hash.aou[ data.list.au[0].ws_ou() ].shortname(); - break; - case 'authtime' : - return data.session.authtime; - break; - case 'key': - default: - return data.session.key; - break; - } - } catch(E) { - alert(location.href + '\nError in global_utils.js, ses(): ' + E); - throw(E); - } - } - - function font_helper() { - try { - JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'}); - removeCSSClass(document.documentElement,'ALL_FONTS_LARGER'); - removeCSSClass(document.documentElement,'ALL_FONTS_SMALLER'); - removeCSSClass(document.documentElement,'ALL_FONTS_XX_SMALL'); - removeCSSClass(document.documentElement,'ALL_FONTS_X_SMALL'); - removeCSSClass(document.documentElement,'ALL_FONTS_SMALL'); - removeCSSClass(document.documentElement,'ALL_FONTS_MEDIUM'); - removeCSSClass(document.documentElement,'ALL_FONTS_LARGE'); - removeCSSClass(document.documentElement,'ALL_FONTS_X_LARGE'); - removeCSSClass(document.documentElement,'ALL_FONTS_XX_LARGE'); - addCSSClass(document.documentElement,data.global_font_adjust); - } catch(E) { - var Strings = $('offlineStrings') || $('commonStrings'); - alert(Strings.getFormattedString('openils.global_util.font_size.error', [E])); - } - } - - function oils_persist(e,cancelable) { - try { - if (!e) { return; } - if (typeof cancelable == 'undefined') { cancelable = false; } - var evt = document.createEvent("Events"); - evt.initEvent( 'oils_persist', false, cancelable ); // event name, bubbles, cancelable - e.dispatchEvent(evt); - } catch(E) { - alert('Error with oils_persist():' + E); - } - } - - function oils_persist_hostname() { - if(location.protocol == 'oils:') { - JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'}); - return data.server_unadorned; - } else { - return location.hostname; - } - } - - function persist_helper(base_key_suffix) { - try { - if (base_key_suffix) { - base_key_suffix = base_key_suffix.replace(/[^A-Za-z]/g,'_') + '_'; - } else { - base_key_suffix = ''; - } - window.persist_helper_event_listeners = new EventListenerList(); - - function gen_event_handler(etype,node) { - return function(ev) { - try { - oils_persist(ev.target); - } catch(E) { - alert('Error in persist_helper, firing virtual event oils_persist after ' + etype + ' event on ' + node.nodeName + '.id = ' + node.id + ': ' + E); - } - }; - }; - - function gen_oils_persist_handler(bk,node) { - return function(ev) { - try { - var target; - if (ev.target.nodeName == 'command') { - target = node; - if (ev.explicitOriginalTarget != node) return; - } else { - target = ev.target; - if (target == window) { - target = window.document.documentElement; - } - } - var filename = location.pathname.split('/')[ location.pathname.split('/').length - 1 ]; - var base_key = 'oils_persist_' + String(oils_persist_hostname() + '_' + filename + '_' + target.getAttribute('id')).replace('/','_','g') + '_' + base_key_suffix; - var attribute_list = target.getAttribute('oils_persist').split(' '); - dump('on_oils_persist: <<< ' + target.nodeName + '.id = ' + target.id + '\t' + bk + '\n'); - for (var j = 0; j < attribute_list.length; j++) { - var key = base_key + attribute_list[j]; - var value; - try { - value = encodeURI(target.getAttribute( attribute_list[j] )); - } catch(E) { - dump('Error in persist_helper with encodeURI: ' + E + '\n'); - value = target.getAttribute( attribute_list[j] ); - } - if ( attribute_list[j] == 'checked' && ['checkbox','toolbarbutton'].indexOf( target.nodeName ) > -1 ) { - value = target.checked; - dump('\t' + value + ' <== .' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'value' && ['menulist'].indexOf( target.nodeName ) > -1 ) { - value = target.value; - dump('\t' + value + ' <== .' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'value' && ['textbox'].indexOf( target.nodeName ) > -1 ) { - value = target.value; - dump('\t' + value + ' <== .' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'sizemode' && ['window'].indexOf( target.nodeName ) > -1 ) { - value = window.windowState; - dump('\t' + value + ' <== window.windowState, @' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'height' && ['window'].indexOf( target.nodeName ) > -1 ) { - value = window.outerHeight; - dump('\t' + value + ' <== window.outerHeight, @' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'width' && ['window'].indexOf( target.nodeName ) > -1 ) { - value = window.outerWidth; - dump('\t' + value + ' <== window.outerWidth, @' + attribute_list[j] + '\n'); - } else { - dump('\t' + value + ' <== @' + attribute_list[j] + '\n'); - } - prefs.setCharPref( key, value ); - // TODO: Need to add logic for splitter repositioning, grippy state, etc. - // NOTE: oils_persist_peers and oils_persist="width" on those peers can help with the elements adjacent to a splitter - } - if (target.hasAttribute('oils_persist_peers') && ! ev.cancelable) { // We abuse the .cancelable field on the oils_persist event to prevent looping - var peer_list = target.getAttribute('oils_persist_peers').split(' '); - for (var j = 0; j < peer_list.length; j++) { - dump('on_oils_persist: dispatching oils_persist to peer ' + peer_list[j] + '\n'); - oils_persist( document.getElementById( peer_list[j] ), true ); - } - } - } catch(E) { - alert('Error in persist_helper() event listener for ' + bk + ': ' + E); - } - }; - } - - var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']); - var nodes = document.getElementsByAttribute('oils_persist','*'); - for (var i = 0; i < nodes.length; i++) { - var filename = location.pathname.split('/')[ location.pathname.split('/').length - 1 ]; - var base_key = 'oils_persist_' + String(oils_persist_hostname() + '_' + filename + '_' + nodes[i].getAttribute('id')).replace('/','_','g') + '_' + base_key_suffix; - var attribute_list = nodes[i].getAttribute('oils_persist').split(' '); - dump('persist_helper: >>> ' + nodes[i].nodeName + '.id = ' + nodes[i].id + '\t' + base_key + '\n'); - for (var j = 0; j < attribute_list.length; j++) { - var key = base_key + attribute_list[j]; - var has_key = prefs.prefHasUserValue(key); - var value; - try { - value = has_key ? decodeURI(prefs.getCharPref(key)) : null; - } catch(E) { - dump('Error in persist_helper with decodeURI: ' + E + '\n'); - value = has_key ? prefs.getCharPref(key) : null; - } - if (value == 'true') { value = true; } - if (value == 'false') { value = false; } - if (has_key) { - if ( attribute_list[j] == 'checked' && ['checkbox','toolbarbutton'].indexOf( nodes[i].nodeName ) > -1 ) { - nodes[i].checked = value; - dump('\t' + value + ' ==> .' + attribute_list[j] + '\n'); - if (!value) { - nodes[i].removeAttribute('checked'); - dump('\tremoving @checked\n'); - } - } else if ( attribute_list[j] == 'value' && ['textbox'].indexOf( nodes[i].nodeName ) > -1 ) { - nodes[i].value = value; - dump('\t' + value + ' ==> .' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'value' && ['menulist'].indexOf( nodes[i].nodeName ) > -1 ) { - nodes[i].value = value; - dump('\t' + value + ' ==> .' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'sizemode' && ['window'].indexOf( nodes[i].nodeName ) > -1 ) { - switch(value) { - case window.STATE_MAXIMIZED: - window.maximize(); - break; - case window.STATE_MINIMIZED: - window.minimize(); - break; - }; - dump('\t' + value + ' ==> window.windowState, @' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'height' && ['window'].indexOf( nodes[i].nodeName ) > -1 ) { - window.outerHeight = value; - dump('\t' + value + ' ==> window.outerHeight, @' + attribute_list[j] + '\n'); - } else if ( attribute_list[j] == 'width' && ['window'].indexOf( nodes[i].nodeName ) > -1 ) { - window.outerWidth = value; - dump('\t' + value + ' ==> window.outerWidth, @' + attribute_list[j] + '\n'); - } else { - nodes[i].setAttribute( attribute_list[j], value); - dump('\t' + value + ' ==> @' + attribute_list[j] + '\n'); - } - } - } - var cmd = nodes[i].getAttribute('command'); - var cmd_el = document.getElementById(cmd); - if (nodes[i].disabled == false && nodes[i].hidden == false) { - var no_poke = nodes[i].getAttribute('oils_persist_no_poke'); - if (no_poke && no_poke == 'true') { - // Timing issue for some checkboxes; don't poke them with an event - dump('\tnot poking\n'); - } else { - if (cmd_el) { - dump('\tpoking @command\n'); - var evt = document.createEvent("Events"); - evt.initEvent( 'command', true, true ); - cmd_el.dispatchEvent(evt); - } else { - dump('\tpoking\n'); - var evt = document.createEvent("Events"); - evt.initEvent( 'command', true, true ); - nodes[i].dispatchEvent(evt); - } - } - } - if (cmd_el) { - window.persist_helper_event_listeners.add(cmd_el, - 'command', - gen_event_handler('command',cmd_el), - false - ); - window.persist_helper_event_listeners.add(cmd_el, - 'oils_persist', - gen_oils_persist_handler( base_key, nodes[i] ), - false - ); - } else { - var node = nodes[i]; - var event_types = []; - if (node.hasAttribute('oils_persist_events')) { - var event_type_list = node.getAttribute('oils_persist_events').split(' '); - for (var j = 0; j < event_type_list.length; j++) { - event_types.push( event_type_list[j] ); - } - } else { - if (node.nodeName == 'textbox') { - event_types.push('change'); - } else if (node.nodeName == 'menulist') { - event_types.push('select'); - } else if (node.nodeName == 'window') { - event_types.push('resize'); - node = window; // xul window is an element of window.document - } else { - event_types.push('command'); - } - } - for (var j = 0; j < event_types.length; j++) { - window.persist_helper_event_listeners.add(node, - event_types[j], - gen_event_handler(event_types[j],node), - false - ); - } - window.persist_helper_event_listeners.add(node, - 'oils_persist', - gen_oils_persist_handler( base_key, node ), - false - ); - } - } - } catch(E) { - alert('Error in persist_helper(): ' + E); - } - } - - function persist_helper_cleanup() { - try { - window.persist_helper_event_listeners.removeAll(); - } catch(E) { - alert('Error in persist_helper_cleanup(): ' + E); - } - } - - function getKeys(o) { - var keys = []; - for (var k in o) keys.push(k); - return keys; - } - - function get_contentWindow(frame) { - try { - if (frame && frame.contentWindow) { - try { - if (typeof frame.contentWindow.wrappedJSObject != 'undefined') { - return frame.contentWindow.wrappedJSObject; - } - } catch(E) { - var Strings = $('offlineStrings') || $('commonStrings'); - alert(Strings.getFormattedString('openils.global_util.content_window_jsobject.error', [frame, E])); - } - return frame.contentWindow; - } else { - return null; - } - } catch(E) { - var Strings = $('offlineStrings') || $('commonStrings'); - alert(Strings.getFormattedString('openils.global_util.content_window.error', [frame, E])); - } - } - - function xul_param(param_name,_params) { - /* By default, this function looks for a CGI-style query param identified by param_name. If one isn't found, it then looks in xulG. If one still isn't found, and _params.stash_name is true, it looks in the global xpcom stash for the field identified by stash_name. If _params.concat is true, then it looks in all these places and concatenates the results. There are also options for converting JSON to javascript objects, and clearing the xpcom stash_name field after retrieval. Also added, ability to search a specific spot in the xpcom stash that implements a stack to hold xulG's for modal windows */ - try { - //dump('xul_param('+param_name+','+js2JSON(_params)+')\n'); - var value = undefined; if (!_params) _params = {}; - if (typeof _params.no_cgi == 'undefined') { - var cgi = new CGI(); - if (cgi.param(param_name)) { - var x = cgi.param(param_name); - //dump('\tfound via location.href = ' + x + '\n'); - if (typeof _params.JSON2js_if_cgi != 'undefined') { - x = JSON2js( x ); - //dump('\tJSON2js = ' + x + '\n'); - } - if (typeof _params.concat == 'undefined') { - //alert(param_name + ' x = ' + x); - return x; // value - } else { - if (value) { - if (value.constructor != Array) value = [ value ]; - value = value.concat(x); - } else { - value = x; - } - } - } - } - if (typeof _params.no_xulG == 'undefined') { - if (typeof xulG == 'object' && typeof xulG[ param_name ] != 'undefined') { - var x = xulG[ param_name ]; - //dump('\tfound via xulG = ' + x + '\n'); - if (typeof _params.JSON2js_if_xulG != 'undefined') { - x = JSON2js( x ); - //dump('\tJSON2js = ' + x + '\n'); - } - if (typeof _params.concat == 'undefined') { - //alert(param_name + ' x = ' + x); - return x; // value - } else { - if (value) { - if (value.constructor != Array) value = [ value ]; - value = value.concat(x); - } else { - value = x; - } - } - } - } - if (typeof _params.no_xpcom == 'undefined') { - /* the field names used for temp variables in the global stash tend to be more unique than xuLG or CGI param names, to avoid collisions */ - if (typeof _params.stash_name != 'undefined') { - JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.init({'via':'stash'}); - if (typeof data[ _params.stash_name ] != 'undefined') { - var x = data[ _params.stash_name ]; - //dump('\tfound via xpcom = ' + x + '\n'); - if (typeof _params.JSON2js_if_xpcom != 'undefined') { - x = JSON2js( x ); - //dump('\tJSON2js = ' + x + '\n'); - } - if (_params.clear_xpcom) { - data[ _params.stash_name ] = undefined; data.stash( _params.stash_name ); - } - if (typeof _params.concat == 'undefined') { - //alert(param_name + ' x = ' + x); - return x; // value - } else { - if (value) { - if (value.constructor != Array) value = [ value ]; - value = value.concat(x); - } else { - value = x; - } - } - } - } - } - //alert(param_name + ' value = ' + value); - return value; - } catch(E) { - dump('xul_param error: ' + E + '\n'); - } - } - - function get_bool(a) { - // Normal javascript interpretation except 'f' == false, per postgres, and 'F' == false, and '0' == false (newer JSON is returning '0' instead of 0 in cases) - // So false includes 'f', '', '0', 0, null, and undefined - if (a == 'f') return false; - if (a == 'F') return false; - if (a == '0') return false; - if (a) return true; else return false; - } - - function get_localized_bool(a) { - var Strings = $('offlineStrings') || $('commonStrings'); - return get_bool(a) ? Strings.getString('common.yes') : Strings.getString('common.no'); - } - - function get_db_true() { - return 't'; - } - - function get_db_false() { - return 'f'; - } - - function copy_to_clipboard(ev) { - try { - var text; - if (typeof ev == 'object') { - if (typeof ev.target != 'undefined') { - if (typeof ev.target.textContent != 'undefined') if (ev.target.textContent) text = ev.target.textContent; - if (typeof ev.target.value != 'undefined') if (ev.target.value) text = ev.target.value; - } - } else if (typeof ev == 'string') { - text = ev; - } - const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"] - .getService(Components.interfaces.nsIClipboardHelper); - gClipboardHelper.copyString(text); - var Strings = $('offlineStrings') || $('commonStrings'); - // alert(Strings.getFormattedString('openils.global_util.clipboard', [text])); - } catch(E) { - var Strings = $('offlineStrings') || $('commonStrings'); - alert(Strings.getFormattedString('openils.global_util.clipboard.error', [E])); - } - } - - function clear_the_cache() { - try { - var cacheClass = Components.classes["@mozilla.org/network/cache-service;1"]; - var cacheService = cacheClass.getService(Components.interfaces.nsICacheService); - cacheService.evictEntries(Components.interfaces.nsICache.STORE_ON_DISK); - cacheService.evictEntries(Components.interfaces.nsICache.STORE_IN_MEMORY); - } catch(E) { - var Strings = $('offlineStrings') || $('commonStrings'); - alert(Strings.getFormattedString('openils.global_util.clear_cache.error', [E])); - } - } - - function toOpenWindowByType(inType, uri) { - var winopts = "chrome,extrachrome,menubar,resizable,scrollbars,status,toolbar"; - window.open(uri, "_blank", winopts); - } - - function url_prefix(url) { - var base_url = url.match(/^[^?/|]+/); - if(base_url) { - base_url = base_url[0]; - if(urls[base_url]) - url = url.replace(/^[^?/|]+\|?/, urls[base_url]); - } - if (url.match(/^\//)) url = urls.remote + url; - if (! url.match(/^(http|https|chrome|oils):\/\//) && ! url.match(/^data:/) ) url = 'http://' + url; - dump('url_prefix = ' + url + '\n'); - return url; - } - - function widget_prompt(node,args) { - // args is an object that may contain the following keys: title, desc, ok_label, ok_accesskey, cancel_label, cancel_accesskey, access, method - // access may contain 'property' or 'attribute' or 'method' for retrieving the value from the node - // if 'method', then the method key will reference a function that returns the value - try { - if (!node) { return false; } - if (!args) { args = {}; } - args[ 'widget' ] = node; - - var url = location.protocol == 'chrome' - ? 'chrome://open_ils_staff_client/content/util/widget_prompt.xul' - : '/xul/server/util/widget_prompt.xul'; - - JSAN.use('util.window'); var win = new util.window(); - var my_xulG = win.open( - url, - args.title || 'widget_prompt', - 'chrome,modal', - args - ); - - if (my_xulG.status == 'incomplete') { - return false; - } else { - return my_xulG.value; - } - } catch(E) { - alert('Error in global_utils.js, widget_prompt(): ' + E); - } - } - - - window.addEventListener( - 'load', - function(ev) { - try { - if (window.oils_autoloaded) { return; } - JSAN.use('addon.autoloader'); - window.oils_autoloaded = new addon.autoloader(); - } catch(E) { - dump('Error in global_util.js with addon.autoloader: ' + E + '\n'); - } - }, - false - ); diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util/fmall.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/util/fmall.js deleted file mode 100644 index a1384ace65..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util/fmall.js +++ /dev/null @@ -1,15 +0,0 @@ -try { - if (typeof JSAN == 'undefined') { - throw(document.getElementById('offlineStrings').getString('common.jsan.missing')); - } - JSAN.errorLevel = "die"; // none, warn, or die - JSAN.addRepository('..'); - JSAN.use('OpenILS.data'); - var data = new OpenILS.data(); data.init({'via':'stash'}); - var url = data.server + urls.fieldmapper; - dump('url = ' + url + '\n'); - var js = JSAN._loadJSFromUrl( url ); - eval( js ); -} catch(E) { - alert('fmall.js: ' + E); -} diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_chrome.xul b/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_chrome.xul deleted file mode 100644 index ce1a778811..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_chrome.xul +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_offline.xul b/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_offline.xul deleted file mode 100644 index 10b0f5a834..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/util_overlay_offline.xul +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - diff --git a/Open-ILS/xul/staff_client/chrome/content/admin/survey.js b/Open-ILS/xul/staff_client/chrome/content/admin/survey.js deleted file mode 100644 index 42b37a5fde..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/admin/survey.js +++ /dev/null @@ -1,284 +0,0 @@ -dump('Loading survey.js\n'); - -var SURVEY = {}; -var last_answer; -var last_button; - -function render_lib_menu() { - try { - JSAN.use('util.functional'); JSAN.use('util.fm_utils'); JSAN.use('util.widgets'); - - var work_ous = g.network.simple_request( - 'PERM_RETRIEVE_WORK_OU', - [ ses(), 'CREATE_SURVEY'] - ); - if (work_ous.length == 0) { - alert(document.getElementById('offlineStrings').getString('menu.cmd_survey_wizard.inadequate_perm')); - window.close(); - return; - } - var my_libs = []; - for (var i = 0; i < work_ous.length; i++ ) { - var perm_depth = g.OpenILS.data.hash.aout[ g.OpenILS.data.hash.aou[ work_ous[i] ].ou_type() ].depth(); - - var my_libs_tree = g.network.simple_request( - 'FM_AOU_DESCENDANTS_RETRIEVE', - [ work_ous[i], perm_depth ] - ); - if (!instanceOf(my_libs_tree,aou)) { /* FIXME - workaround for weird descendants call result */ - my_libs_tree = my_libs_tree[0]; - } - my_libs = my_libs.concat( util.fm_utils.flatten_ou_branch( my_libs_tree ) ); - } - - var x = document.getElementById('placeholder'); - util.widgets.remove_children( x ); - - var default_lib = my_libs[0].id(); - - var ml = util.widgets.make_menulist( - util.functional.map_list( - my_libs, - function(obj) { - return [ - obj.shortname(), - obj.id(), - false, - ( g.OpenILS.data.hash.aout[ obj.ou_type() ].depth() ) - ]; - } - ), - default_lib - ); - ml.setAttribute('id','lib_menulist'); - - x.appendChild( ml ); - } catch(E) { - alert('Error in survey.js, render_lib_menu(): ' + E); - } -} - - -function survey_init() { - dump('survey_init()\n'); - render_lib_menu(); - SURVEY['asv'] = new asv(); SURVEY['asv'].isnew('1'); - SURVEY['num_of_questions'] = 0; - document.getElementById('survey_name').focus(); -} - -function save_survey() { - SURVEY.asv.description( - document.getElementById('survey_description').value - ); - SURVEY.asv.name( - document.getElementById('survey_name').value - ); - SURVEY.asv.owner( - document.getElementById('lib_menulist').value - ); - var survey_start = document.getElementById('survey_start').value; - if (survey_start) { - SURVEY.asv.start_date( - survey_start - ); - } else { - SURVEY.asv.start_date( - null - ); - } - var survey_end = document.getElementById('survey_end').value; - if (survey_end) { - SURVEY.asv.end_date( - survey_end - ); - } else { - SURVEY.asv.end_date( - null - ); - } - if ( document.getElementById('required_checkbox').checked ) { - SURVEY.asv.required('1'); - } else { - SURVEY.asv.required('0'); - } - if ( document.getElementById('opac_checkbox').checked ) { - SURVEY.asv.opac('1'); - } else { - SURVEY.asv.opac('0'); - } - if ( document.getElementById('poll_checkbox').checked ) { - SURVEY.asv.poll('1'); - } else { - SURVEY.asv.poll('0'); - } - - if ( document.getElementById('patron_summary_checkbox').checked ) { - SURVEY.asv.usr_summary('1'); - } else { - SURVEY.asv.usr_summary('0'); - } - g.error.sdump('D_SURVEY', 'before survey = ' + js2JSON( SURVEY.asv ) + '\n'); - try { - var result = g.network.request( - api.FM_ASV_CREATE.app, - api.FM_ASV_CREATE.method, - [ ses(), SURVEY.asv ] - ); - if (! (result instanceof asv) ) { - throw('save_survey: result not an asv'); - } else { - var surveys_list = g.OpenILS.data.list.asv; - var surveys_hash = g.OpenILS.data.hash.asv; - surveys_list.push( result ); - surveys_hash[ result.id() ] = result; - g.OpenILS.data.stash('list','hash'); - } - } catch(E) { - var err = ('Survey failed: ' + js2JSON(E) + '\n'); - g.error.sdump('D_ERROR',err); - alert(err); - throw(err); - } - g.error.sdump('D_SURVEY', 'after survey = ' + js2JSON( SURVEY.asv ) + '\n'); -} - -var original_description; -function setDescription(e,t) { - var page = document.getElementById(e); - var desc = page.getAttribute('description'); - if (!original_description) original_description = desc; - var value = document.getElementById(t).value; - page.setAttribute('description',original_description + ' ' + value); -} - -var new_id = -1; -function add_answer(e, my_asvq_id) { - var row = e.target.parentNode; - var rows = row.parentNode; - var answer = e.target.previousSibling; answer.select(); - - if (! answer.value ) { return; } - - /* XUL */ - var n_row = document.createElement('row'); - rows.insertBefore( n_row, row ); - var label_1 = document.createElement('label'); - n_row.appendChild( label_1 ); - var label_2 = document.createElement('label'); - label_2.setAttribute('value', answer.value ); - n_row.appendChild( label_2 ); - - /* OBJECT */ - - var my_asva = new asva(); my_asva.isnew('1'); my_asva.id( new_id-- ); - my_asva.answer( answer.value ); - - JSAN.use('util.functional'); - var my_asvq = util.functional.find_id_object_in_list( SURVEY.asv.questions(), my_asvq_id ); - if (my_asvq.answers() == null) { - my_asvq.answers( [] ); - } - - my_asvq.answers().push( my_asva ); - - var num_of_answers = my_asvq.answers().length; - var last_number = 96 + num_of_answers; - var next_number = 97 + num_of_answers; - var last_letter = String.fromCharCode( last_number ); - var next_letter = String.fromCharCode( next_number ); - label_1.setAttribute('value', last_letter + ')' ); - row.firstChild.setAttribute('value', next_letter + ')' ); - - if (num_of_answers == 26) { - rows.removeChild(row); - } -} - -function add_question() { - SURVEY.num_of_questions++; - var question = document.getElementById('new_question'); - - if (! question.value ) { return; } - - document.getElementById('survey_add').canAdvance = true; - - var my_asvq = new asvq(); my_asvq.isnew('1'); my_asvq.id( new_id-- ); - my_asvq.question( question.value ); - - if ( SURVEY.asv.questions() == null ) { - SURVEY.asv.questions( [] ); - } - - SURVEY.asv.questions().push( my_asvq ); - - add_question_row(my_asvq); - - document.getElementById('new_question_label').setAttribute('value', '#' + (SURVEY.num_of_questions + 1) ); - //question.select(); - if (last_answer) last_answer.focus(); -} - -function add_question_row(my_asvq) { - var rows = document.getElementById('page2_grid1_rows'); - var row = document.createElement('row'); - rows.insertBefore(row, document.getElementById('page2_grid1_row1')); - - var label_number = document.createElement('label'); - label_number.setAttribute('value','#' + SURVEY['num_of_questions']); - row.appendChild(label_number); - - var grid = document.createElement('grid'); - row.appendChild(grid); - var g_cols = document.createElement('columns'); - grid.appendChild(g_cols); - var g_col_1 = document.createElement('column'); - g_cols.appendChild(g_col_1); - var g_col_2 = document.createElement('column'); - g_col_2.setAttribute('flex','1'); - g_cols.appendChild(g_col_2); - var g_col_3 = document.createElement('column'); - g_cols.appendChild(g_col_3); - var g_rows = document.createElement('rows'); - grid.appendChild(g_rows); - var g_row_1 = document.createElement('row'); - g_rows.appendChild(g_row_1); - var g_label_1 = document.createElement('label'); - g_row_1.appendChild(g_label_1); - var g_label_2 = document.createElement('label'); - g_label_2.setAttribute('value', my_asvq.question() ); - g_row_1.appendChild(g_label_2); - var g_row_2 = document.createElement('row'); - g_rows.appendChild(g_row_2); - var g_label2_1 = document.createElement('label'); - g_label2_1.setAttribute('value', 'a)' ); - g_row_2.appendChild(g_label2_1); - var g_tb = document.createElement('textbox'); - g_tb.setAttribute('flex','1'); - g_row_2.appendChild(g_tb); - if (last_button) last_button.setAttribute('accesskey',''); - var g_b = document.createElement('button'); - var strbundle = document.getElementById("offlineStrings"); - g_b.setAttribute('label', strbundle.getString('staff.admin.survey.save_response.label')); - g_b.setAttribute('accesskey', strbundle.getString('staff.admin.survey.save_response.label')); - g_b.setAttribute('oncommand','add_answer(event,' + my_asvq.id() + ');'); - g_row_2.appendChild(g_b); - - var blank = document.createElement('row'); - rows.insertBefore( blank , document.getElementById('page2_grid1_row1') ); - var blank2 = document.createElement('label'); - blank2.setAttribute('value', ' '); - blank.appendChild( blank2 ); - - last_answer = g_tb; - last_button = g_b; -} - -function page1_check_advance() { - if ( document.getElementById('survey_name').value ) { - document.getElementById('survey_add').canAdvance = true; - } else { - document.getElementById('survey_add').canAdvance = false; - } -} - diff --git a/Open-ILS/xul/staff_client/chrome/content/admin/survey_overlay.xul b/Open-ILS/xul/staff_client/chrome/content/admin/survey_overlay.xul deleted file mode 100644 index 8afa457c54..0000000000 --- a/Open-ILS/xul/staff_client/chrome/content/admin/survey_overlay.xul +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -