Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package local-npm-registry for 
openSUSE:Factory checked in at 2024-01-31 23:53:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/local-npm-registry (Old)
 and      /work/SRC/openSUSE:Factory/.local-npm-registry.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "local-npm-registry"

Wed Jan 31 23:53:22 2024 rev:5 rq:1142809 version:1.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/local-npm-registry/local-npm-registry.changes    
2024-01-04 15:57:20.948412916 +0100
+++ 
/work/SRC/openSUSE:Factory/.local-npm-registry.new.1815/local-npm-registry.changes
  2024-01-31 23:53:30.048449553 +0100
@@ -1,0 +2,8 @@
+Tue Jan 30 14:43:02 UTC 2024 - Adam Majer <adam.ma...@suse.de>
+
+- update to 1.0.2
+  * --help invocation fixes
+  * cleanup npm's config.registry on exit
+  * adds support for non-standard alternative versions
+
+-------------------------------------------------------------------

Old:
----
  local_npm_registry-v1.0.1.tar.gz

New:
----
  local_npm_registry-v1.0.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ local-npm-registry.spec ++++++
--- /var/tmp/diff_new_pack.kG2YfV/_old  2024-01-31 23:53:30.956482313 +0100
+++ /var/tmp/diff_new_pack.kG2YfV/_new  2024-01-31 23:53:30.956482313 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package local-npm-registry
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           local-npm-registry
-Version:        1.0.1
+Version:        1.0.2
 Release:        0
 Summary:        Localhost-only version of NPM registry
 License:        GPL-3.0-or-later

++++++ local_npm_registry-v1.0.1.tar.gz -> local_npm_registry-v1.0.2.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.d.ts 
new/local_npm_registry-v1.0.2/dist/index.d.ts
--- old/local_npm_registry-v1.0.1/dist/index.d.ts       2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/index.d.ts       2024-01-30 
15:38:06.289031984 +0100
@@ -16,5 +16,5 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
-declare function mainEntryFunction(): void;
+declare function mainEntryFunction(): Promise<void>;
 export { mainEntryFunction };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.js 
new/local_npm_registry-v1.0.2/dist/index.js
--- old/local_npm_registry-v1.0.1/dist/index.js 2023-07-21 15:45:01.492368395 
+0200
+++ new/local_npm_registry-v1.0.2/dist/index.js 2024-01-30 15:38:06.289031984 
+0100
@@ -33,7 +33,8 @@
     for (let i = 0; i < concurrent_processes; i++)
         processes.push(Promise.resolve(0));
     for (let i = 2; i < process_1.argv.length; ++i) {
-        processes[i % concurrent_processes] = processes[i % 
concurrent_processes].then((processed) => 
registry.register(process_1.argv[i]).then(n => {
+        const fn = process_1.argv[i];
+        processes[i % concurrent_processes] = processes[i % 
concurrent_processes].then((processed) => registry.register(fn).then(n => {
             if (n == 0)
                 install_options.push(process_1.argv[i]);
             return processed + n;
@@ -65,6 +66,14 @@
         });
     });
 }
+function cleanupNpmLocalhostConfig() {
+    return new Promise((accept, reject) => {
+        (0, child_process_1.spawn)("npm", ['config', 'delete', 'registry'])
+            .on("exit", (code) => {
+            code === 0 ? accept() : reject();
+        });
+    });
+}
 function runNpmInstall() {
     if (install_options.length === 0) {
         console.log("npm install skipped");
@@ -84,23 +93,26 @@
 function mainEntryFunction() {
     if (process_1.argv.includes("--help")) {
         printHelpInformation();
+        return;
     }
     const registry = new registry_1.Registry();
     registry.addBackend(new fs_registry_1.TarballRegistryBackend);
     registry.addBackend(new dir_registry_1.DirRegistryBackend);
     const service = new service_1.Service({ url: new 
url_1.URL("http://localhost";) });
     registry.serviceProvider = service;
-    registerTarballsFromCommandline(registry)
+    return registerTarballsFromCommandline(registry)
         .then(() => setupServerAndGetPort(service, registry))
         .then(port => configureNpmToSpecificLocalhostPort(service, port))
         .then(() => runNpmInstall())
         .then(() => {
         console.log("npm done. Shutting down proxy");
-        return service.stop();
     })
         .catch(msg => {
         console.log("An error occurred: " + msg);
-        process.exit(1);
+    })
+        .finally(() => {
+        return service.stop()
+            .then(cleanupNpmLocalhostConfig);
     });
 }
 exports.mainEntryFunction = mainEntryFunction;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/index.js.map 
new/local_npm_registry-v1.0.2/dist/index.js.map
--- old/local_npm_registry-v1.0.1/dist/index.js.map     2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/index.js.map     2024-01-30 
15:38:06.289031984 +0100
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/registry.js 
new/local_npm_registry-v1.0.2/dist/registry.js
--- old/local_npm_registry-v1.0.1/dist/registry.js      2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/registry.js      2024-01-30 
15:38:06.289031984 +0100
@@ -68,9 +68,16 @@
         return obj;
     }
     fetchPkgVersion(pkg_name, version) {
-        let obj = this.fetchVersions(pkg_name);
-        if (!Object.keys(obj['versions']).includes(version))
-            throw new Error("not found");
+        const obj = this.fetchVersions(pkg_name);
+        const versions = Object.keys(obj['versions']).sort();
+        if (!versions.includes(version)) {
+            const non_standard_version = version.match(/[^\d\.]/);
+            if (non_standard_version == null)
+                throw new Error("not found");
+            const new_version = versions[versions.length - 1];
+            console.warn("pkg: %s is asking for non-standard version '%s'. 
Fallback to version %s", pkg_name, version, new_version);
+            return obj['versions'][new_version];
+        }
         return obj['versions'][version];
     }
     static verifyPkgJsonType(pkg_json) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/registry.js.map 
new/local_npm_registry-v1.0.2/dist/registry.js.map
--- old/local_npm_registry-v1.0.1/dist/registry.js.map  2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/registry.js.map  2024-01-30 
15:38:06.285698651 +0100
@@ -1 +1 @@
-{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/service.js 
new/local_npm_registry-v1.0.2/dist/service.js
--- old/local_npm_registry-v1.0.1/dist/service.js       2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/service.js       2024-01-30 
15:38:06.289031984 +0100
@@ -134,10 +134,8 @@
             this.server.close(err => {
                 if (err)
                     rejected(err);
-                else
-                    resolved();
+                resolved();
             });
-            return null;
         });
     }
     constructor(requestHandler) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/dist/service.js.map 
new/local_npm_registry-v1.0.2/dist/service.js.map
--- old/local_npm_registry-v1.0.1/dist/service.js.map   2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/dist/service.js.map   2024-01-30 
15:38:06.289031984 +0100
@@ -1 +1 @@
-{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/local_npm_registry-v1.0.1/node_modules/.package-lock.json 
new/local_npm_registry-v1.0.2/node_modules/.package-lock.json
--- old/local_npm_registry-v1.0.1/node_modules/.package-lock.json       
2023-07-21 15:45:02.608369356 +0200
+++ new/local_npm_registry-v1.0.2/node_modules/.package-lock.json       
2024-01-30 15:38:07.272365464 +0100
@@ -1,6 +1,6 @@
 {
   "name": "local_npm_registry",
-  "version": "1.0.1",
+  "version": "1.0.2",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/npm-shrinkwrap.json 
new/local_npm_registry-v1.0.2/npm-shrinkwrap.json
--- old/local_npm_registry-v1.0.1/npm-shrinkwrap.json   2023-07-21 
15:45:03.244369905 +0200
+++ new/local_npm_registry-v1.0.2/npm-shrinkwrap.json   2024-01-30 
15:38:08.179032266 +0100
@@ -1,12 +1,12 @@
 {
   "name": "local_npm_registry",
-  "version": "1.0.1",
+  "version": "1.0.2",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "local_npm_registry",
-      "version": "1.0.1",
+      "version": "1.0.2",
       "license": "GPL-3.0-or-later",
       "dependencies": {
         "ssri": "^10.0.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/package.json 
new/local_npm_registry-v1.0.2/package.json
--- old/local_npm_registry-v1.0.1/package.json  2023-07-21 15:45:01.848368702 
+0200
+++ new/local_npm_registry-v1.0.2/package.json  2024-01-30 15:38:06.639032036 
+0100
@@ -1,6 +1,6 @@
 {
   "name": "local_npm_registry",
-  "version": "1.0.1",
+  "version": "1.0.2",
   "description": "proxies NPM packages over localhost allowing non-network run 
of `npm install`",
   "private": "true",
   "directories": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/index.ts 
new/local_npm_registry-v1.0.2/src/index.ts
--- old/local_npm_registry-v1.0.1/src/index.ts  2023-07-21 15:45:01.492368395 
+0200
+++ new/local_npm_registry-v1.0.2/src/index.ts  2024-01-30 15:38:06.289031984 
+0100
@@ -34,7 +34,9 @@
        for (let i=0; i<concurrent_processes; i++)
                processes.push(Promise.resolve(0));
        for (let i=2; i<argv.length; ++i) {
-               processes[i%concurrent_processes] = 
processes[i%concurrent_processes].then((processed) => 
registry.register(argv[i]).then(n => {
+               const fn = argv[i];
+
+               processes[i%concurrent_processes] = 
processes[i%concurrent_processes].then((processed) => 
registry.register(fn).then(n => {
                        if (n == 0)
                                install_options.push(argv[i]);
 
@@ -72,6 +74,15 @@
        });
 }
 
+function cleanupNpmLocalhostConfig(): Promise<void> {
+       return new Promise((accept, reject) => {
+               spawn("npm", ['config', 'delete', 'registry'])
+               .on("exit", (code) => {
+                       code === 0 ? accept() : reject();
+               });
+       });
+}
+
 function runNpmInstall(): Promise<void> {
        if (install_options.length === 0) {
                console.log("npm install skipped");
@@ -91,9 +102,10 @@
        console.log("--help    prints this help message");
 }
 
-function mainEntryFunction(): void {
+function mainEntryFunction(): Promise<void> {
        if (argv.includes("--help")) {
                printHelpInformation();
+               return;
        }
 
        const registry = new Registry();
@@ -102,18 +114,20 @@
        const service = new Service({url: new URL("http://localhost";)});
        registry.serviceProvider = service;
 
-       registerTarballsFromCommandline(registry)
+       return registerTarballsFromCommandline(registry)
        .then(() => setupServerAndGetPort(service, registry))
        .then(port => configureNpmToSpecificLocalhostPort(service, port))
        .then(() => runNpmInstall())
        .then(() => {
                console.log("npm done. Shutting down proxy");
-               return service.stop()
        })
        .catch(msg => {
                console.log("An error occurred: " + msg);
-               process.exit(1);
-       });
+       })
+       .finally(() => {
+               return service.stop()
+               .then(cleanupNpmLocalhostConfig);
+       })
 }
 
 if (require.main === module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/registry.ts 
new/local_npm_registry-v1.0.2/src/registry.ts
--- old/local_npm_registry-v1.0.1/src/registry.ts       2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/src/registry.ts       2024-01-30 
15:38:06.289031984 +0100
@@ -96,9 +96,17 @@
        }
 
        public fetchPkgVersion(pkg_name: string, version: string): Object {
-               let obj = this.fetchVersions(pkg_name);
-               if (!Object.keys(obj['versions']).includes(version))
-                       throw new Error("not found");
+               const obj = this.fetchVersions(pkg_name);
+               const versions = Object.keys(obj['versions']).sort()
+               if (!versions.includes(version)) {
+                       const non_standard_version = version.match(/[^\d\.]/)
+                       if (non_standard_version == null)
+                               throw new Error("not found");
+
+                       const new_version = versions[versions.length - 1]
+                       console.warn("pkg: %s is asking for non-standard 
version '%s'. Fallback to version %s", pkg_name, version, new_version);
+                       return obj['versions'][new_version];
+               }
 
                return obj['versions'][version];
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/local_npm_registry-v1.0.1/src/service.ts 
new/local_npm_registry-v1.0.2/src/service.ts
--- old/local_npm_registry-v1.0.1/src/service.ts        2023-07-21 
15:45:01.492368395 +0200
+++ new/local_npm_registry-v1.0.2/src/service.ts        2024-01-30 
15:38:06.289031984 +0100
@@ -155,16 +155,13 @@
        }
 
        public stop(): Promise<void> {
-               return new Promise((resolved, rejected) => {
+               return new Promise<void>((resolved, rejected) => {
                        this.server.close(err => {
                                if (err)
                                        rejected(err);
-                               else
-                                       resolved();
-                       });
-
-                       return null;
-               });
+                               resolved();
+                       })
+               })
        }
 
        constructor(requestHandler: registry.RequestHandler) {

Reply via email to