4runr-os 2.9.132 → 2.9.134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/gateway/package-lock.json +173 -173
- package/dist/npm-list-version.d.ts +8 -0
- package/dist/npm-list-version.d.ts.map +1 -1
- package/dist/npm-list-version.js +49 -1
- package/dist/npm-list-version.js.map +1 -1
- package/dist/security/package-integrity.d.ts.map +1 -1
- package/dist/security/package-integrity.js +34 -12
- package/dist/security/package-integrity.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +4 -8
- package/dist/version-check.js.map +1 -1
- package/package.json +2 -2
- package/packages/shared/dist/persistence/memory-logger.d.ts +16 -0
- package/packages/shared/dist/persistence/memory-logger.d.ts.map +1 -0
- package/packages/shared/dist/persistence/memory-logger.js +61 -0
- package/packages/shared/dist/persistence/memory-logger.js.map +1 -0
- package/src/npm-list-version.ts +52 -1
- package/src/security/package-integrity.ts +40 -19
|
@@ -2995,16 +2995,16 @@
|
|
|
2995
2995
|
}
|
|
2996
2996
|
},
|
|
2997
2997
|
"node_modules/@smithy/config-resolver": {
|
|
2998
|
-
"version": "4.4.
|
|
2999
|
-
"resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.
|
|
3000
|
-
"integrity": "sha512-
|
|
2998
|
+
"version": "4.4.16",
|
|
2999
|
+
"resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.16.tgz",
|
|
3000
|
+
"integrity": "sha512-GFlGPNLZKrGfqWpqVb31z7hvYCA9ZscfX1buYnvvMGcRYsQQnhH+4uN6mWWflcD5jB4OXP/LBrdpukEdjl41tg==",
|
|
3001
3001
|
"license": "Apache-2.0",
|
|
3002
3002
|
"dependencies": {
|
|
3003
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3004
|
-
"@smithy/types": "^4.14.
|
|
3003
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3004
|
+
"@smithy/types": "^4.14.1",
|
|
3005
3005
|
"@smithy/util-config-provider": "^4.2.2",
|
|
3006
|
-
"@smithy/util-endpoints": "^3.4.
|
|
3007
|
-
"@smithy/util-middleware": "^4.2.
|
|
3006
|
+
"@smithy/util-endpoints": "^3.4.1",
|
|
3007
|
+
"@smithy/util-middleware": "^4.2.14",
|
|
3008
3008
|
"tslib": "^2.6.2"
|
|
3009
3009
|
},
|
|
3010
3010
|
"engines": {
|
|
@@ -3012,18 +3012,18 @@
|
|
|
3012
3012
|
}
|
|
3013
3013
|
},
|
|
3014
3014
|
"node_modules/@smithy/core": {
|
|
3015
|
-
"version": "3.23.
|
|
3016
|
-
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.
|
|
3017
|
-
"integrity": "sha512-
|
|
3015
|
+
"version": "3.23.15",
|
|
3016
|
+
"resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.23.15.tgz",
|
|
3017
|
+
"integrity": "sha512-E7GVCgsQttzfujEZb6Qep005wWf4xiL4x06apFEtzQMWYBPggZh/0cnOxPficw5cuK/YjjkehKoIN4YUaSh0UQ==",
|
|
3018
3018
|
"license": "Apache-2.0",
|
|
3019
3019
|
"dependencies": {
|
|
3020
|
-
"@smithy/protocol-http": "^5.3.
|
|
3021
|
-
"@smithy/types": "^4.14.
|
|
3022
|
-
"@smithy/url-parser": "^4.2.
|
|
3020
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3021
|
+
"@smithy/types": "^4.14.1",
|
|
3022
|
+
"@smithy/url-parser": "^4.2.14",
|
|
3023
3023
|
"@smithy/util-base64": "^4.3.2",
|
|
3024
3024
|
"@smithy/util-body-length-browser": "^4.2.2",
|
|
3025
|
-
"@smithy/util-middleware": "^4.2.
|
|
3026
|
-
"@smithy/util-stream": "^4.5.
|
|
3025
|
+
"@smithy/util-middleware": "^4.2.14",
|
|
3026
|
+
"@smithy/util-stream": "^4.5.23",
|
|
3027
3027
|
"@smithy/util-utf8": "^4.2.2",
|
|
3028
3028
|
"@smithy/uuid": "^1.1.2",
|
|
3029
3029
|
"tslib": "^2.6.2"
|
|
@@ -3033,15 +3033,15 @@
|
|
|
3033
3033
|
}
|
|
3034
3034
|
},
|
|
3035
3035
|
"node_modules/@smithy/credential-provider-imds": {
|
|
3036
|
-
"version": "4.2.
|
|
3037
|
-
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.
|
|
3038
|
-
"integrity": "sha512-
|
|
3036
|
+
"version": "4.2.14",
|
|
3037
|
+
"resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.14.tgz",
|
|
3038
|
+
"integrity": "sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==",
|
|
3039
3039
|
"license": "Apache-2.0",
|
|
3040
3040
|
"dependencies": {
|
|
3041
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3042
|
-
"@smithy/property-provider": "^4.2.
|
|
3043
|
-
"@smithy/types": "^4.14.
|
|
3044
|
-
"@smithy/url-parser": "^4.2.
|
|
3041
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3042
|
+
"@smithy/property-provider": "^4.2.14",
|
|
3043
|
+
"@smithy/types": "^4.14.1",
|
|
3044
|
+
"@smithy/url-parser": "^4.2.14",
|
|
3045
3045
|
"tslib": "^2.6.2"
|
|
3046
3046
|
},
|
|
3047
3047
|
"engines": {
|
|
@@ -3049,14 +3049,14 @@
|
|
|
3049
3049
|
}
|
|
3050
3050
|
},
|
|
3051
3051
|
"node_modules/@smithy/fetch-http-handler": {
|
|
3052
|
-
"version": "5.3.
|
|
3053
|
-
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.
|
|
3054
|
-
"integrity": "sha512-
|
|
3052
|
+
"version": "5.3.17",
|
|
3053
|
+
"resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.17.tgz",
|
|
3054
|
+
"integrity": "sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==",
|
|
3055
3055
|
"license": "Apache-2.0",
|
|
3056
3056
|
"dependencies": {
|
|
3057
|
-
"@smithy/protocol-http": "^5.3.
|
|
3058
|
-
"@smithy/querystring-builder": "^4.2.
|
|
3059
|
-
"@smithy/types": "^4.14.
|
|
3057
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3058
|
+
"@smithy/querystring-builder": "^4.2.14",
|
|
3059
|
+
"@smithy/types": "^4.14.1",
|
|
3060
3060
|
"@smithy/util-base64": "^4.3.2",
|
|
3061
3061
|
"tslib": "^2.6.2"
|
|
3062
3062
|
},
|
|
@@ -3065,12 +3065,12 @@
|
|
|
3065
3065
|
}
|
|
3066
3066
|
},
|
|
3067
3067
|
"node_modules/@smithy/hash-node": {
|
|
3068
|
-
"version": "4.2.
|
|
3069
|
-
"resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.
|
|
3070
|
-
"integrity": "sha512-
|
|
3068
|
+
"version": "4.2.14",
|
|
3069
|
+
"resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.14.tgz",
|
|
3070
|
+
"integrity": "sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==",
|
|
3071
3071
|
"license": "Apache-2.0",
|
|
3072
3072
|
"dependencies": {
|
|
3073
|
-
"@smithy/types": "^4.14.
|
|
3073
|
+
"@smithy/types": "^4.14.1",
|
|
3074
3074
|
"@smithy/util-buffer-from": "^4.2.2",
|
|
3075
3075
|
"@smithy/util-utf8": "^4.2.2",
|
|
3076
3076
|
"tslib": "^2.6.2"
|
|
@@ -3080,12 +3080,12 @@
|
|
|
3080
3080
|
}
|
|
3081
3081
|
},
|
|
3082
3082
|
"node_modules/@smithy/invalid-dependency": {
|
|
3083
|
-
"version": "4.2.
|
|
3084
|
-
"resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.
|
|
3085
|
-
"integrity": "sha512-
|
|
3083
|
+
"version": "4.2.14",
|
|
3084
|
+
"resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.14.tgz",
|
|
3085
|
+
"integrity": "sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==",
|
|
3086
3086
|
"license": "Apache-2.0",
|
|
3087
3087
|
"dependencies": {
|
|
3088
|
-
"@smithy/types": "^4.14.
|
|
3088
|
+
"@smithy/types": "^4.14.1",
|
|
3089
3089
|
"tslib": "^2.6.2"
|
|
3090
3090
|
},
|
|
3091
3091
|
"engines": {
|
|
@@ -3105,13 +3105,13 @@
|
|
|
3105
3105
|
}
|
|
3106
3106
|
},
|
|
3107
3107
|
"node_modules/@smithy/middleware-content-length": {
|
|
3108
|
-
"version": "4.2.
|
|
3109
|
-
"resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.
|
|
3110
|
-
"integrity": "sha512-
|
|
3108
|
+
"version": "4.2.14",
|
|
3109
|
+
"resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.14.tgz",
|
|
3110
|
+
"integrity": "sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==",
|
|
3111
3111
|
"license": "Apache-2.0",
|
|
3112
3112
|
"dependencies": {
|
|
3113
|
-
"@smithy/protocol-http": "^5.3.
|
|
3114
|
-
"@smithy/types": "^4.14.
|
|
3113
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3114
|
+
"@smithy/types": "^4.14.1",
|
|
3115
3115
|
"tslib": "^2.6.2"
|
|
3116
3116
|
},
|
|
3117
3117
|
"engines": {
|
|
@@ -3119,18 +3119,18 @@
|
|
|
3119
3119
|
}
|
|
3120
3120
|
},
|
|
3121
3121
|
"node_modules/@smithy/middleware-endpoint": {
|
|
3122
|
-
"version": "4.4.
|
|
3123
|
-
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.
|
|
3124
|
-
"integrity": "sha512-
|
|
3122
|
+
"version": "4.4.30",
|
|
3123
|
+
"resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.30.tgz",
|
|
3124
|
+
"integrity": "sha512-qS2XqhKeXmdZ4nEQ4cOxIczSP/Y91wPAHYuRwmWDCh975B7/57uxsm5d6sisnUThn2u2FwzMdJNM7AbO1YPsPg==",
|
|
3125
3125
|
"license": "Apache-2.0",
|
|
3126
3126
|
"dependencies": {
|
|
3127
|
-
"@smithy/core": "^3.23.
|
|
3128
|
-
"@smithy/middleware-serde": "^4.2.
|
|
3129
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3130
|
-
"@smithy/shared-ini-file-loader": "^4.4.
|
|
3131
|
-
"@smithy/types": "^4.14.
|
|
3132
|
-
"@smithy/url-parser": "^4.2.
|
|
3133
|
-
"@smithy/util-middleware": "^4.2.
|
|
3127
|
+
"@smithy/core": "^3.23.15",
|
|
3128
|
+
"@smithy/middleware-serde": "^4.2.18",
|
|
3129
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3130
|
+
"@smithy/shared-ini-file-loader": "^4.4.9",
|
|
3131
|
+
"@smithy/types": "^4.14.1",
|
|
3132
|
+
"@smithy/url-parser": "^4.2.14",
|
|
3133
|
+
"@smithy/util-middleware": "^4.2.14",
|
|
3134
3134
|
"tslib": "^2.6.2"
|
|
3135
3135
|
},
|
|
3136
3136
|
"engines": {
|
|
@@ -3138,19 +3138,19 @@
|
|
|
3138
3138
|
}
|
|
3139
3139
|
},
|
|
3140
3140
|
"node_modules/@smithy/middleware-retry": {
|
|
3141
|
-
"version": "4.5.
|
|
3142
|
-
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.5.
|
|
3143
|
-
"integrity": "sha512
|
|
3141
|
+
"version": "4.5.3",
|
|
3142
|
+
"resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.5.3.tgz",
|
|
3143
|
+
"integrity": "sha512-TE8dJNi6JuxzGSxMCVd3i9IEWDndCl3bmluLsBNDWok8olgj65OfkndMhl9SZ7m14c+C5SQn/PcUmrDl57rSFw==",
|
|
3144
3144
|
"license": "Apache-2.0",
|
|
3145
3145
|
"dependencies": {
|
|
3146
|
-
"@smithy/core": "^3.23.
|
|
3147
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3148
|
-
"@smithy/protocol-http": "^5.3.
|
|
3149
|
-
"@smithy/service-error-classification": "^4.2.
|
|
3150
|
-
"@smithy/smithy-client": "^4.12.
|
|
3151
|
-
"@smithy/types": "^4.14.
|
|
3152
|
-
"@smithy/util-middleware": "^4.2.
|
|
3153
|
-
"@smithy/util-retry": "^4.3.
|
|
3146
|
+
"@smithy/core": "^3.23.15",
|
|
3147
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3148
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3149
|
+
"@smithy/service-error-classification": "^4.2.14",
|
|
3150
|
+
"@smithy/smithy-client": "^4.12.11",
|
|
3151
|
+
"@smithy/types": "^4.14.1",
|
|
3152
|
+
"@smithy/util-middleware": "^4.2.14",
|
|
3153
|
+
"@smithy/util-retry": "^4.3.2",
|
|
3154
3154
|
"@smithy/uuid": "^1.1.2",
|
|
3155
3155
|
"tslib": "^2.6.2"
|
|
3156
3156
|
},
|
|
@@ -3159,14 +3159,14 @@
|
|
|
3159
3159
|
}
|
|
3160
3160
|
},
|
|
3161
3161
|
"node_modules/@smithy/middleware-serde": {
|
|
3162
|
-
"version": "4.2.
|
|
3163
|
-
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.
|
|
3164
|
-
"integrity": "sha512-
|
|
3162
|
+
"version": "4.2.18",
|
|
3163
|
+
"resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.18.tgz",
|
|
3164
|
+
"integrity": "sha512-M6CSgnp3v4tYz9ynj2JHbA60woBZcGqEwNjTKjBsNHPV26R1ZX52+0wW8WsZU18q45jD0tw2wL22S17Ze9LpEw==",
|
|
3165
3165
|
"license": "Apache-2.0",
|
|
3166
3166
|
"dependencies": {
|
|
3167
|
-
"@smithy/core": "^3.23.
|
|
3168
|
-
"@smithy/protocol-http": "^5.3.
|
|
3169
|
-
"@smithy/types": "^4.14.
|
|
3167
|
+
"@smithy/core": "^3.23.15",
|
|
3168
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3169
|
+
"@smithy/types": "^4.14.1",
|
|
3170
3170
|
"tslib": "^2.6.2"
|
|
3171
3171
|
},
|
|
3172
3172
|
"engines": {
|
|
@@ -3174,12 +3174,12 @@
|
|
|
3174
3174
|
}
|
|
3175
3175
|
},
|
|
3176
3176
|
"node_modules/@smithy/middleware-stack": {
|
|
3177
|
-
"version": "4.2.
|
|
3178
|
-
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.
|
|
3179
|
-
"integrity": "sha512-
|
|
3177
|
+
"version": "4.2.14",
|
|
3178
|
+
"resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.14.tgz",
|
|
3179
|
+
"integrity": "sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==",
|
|
3180
3180
|
"license": "Apache-2.0",
|
|
3181
3181
|
"dependencies": {
|
|
3182
|
-
"@smithy/types": "^4.14.
|
|
3182
|
+
"@smithy/types": "^4.14.1",
|
|
3183
3183
|
"tslib": "^2.6.2"
|
|
3184
3184
|
},
|
|
3185
3185
|
"engines": {
|
|
@@ -3187,14 +3187,14 @@
|
|
|
3187
3187
|
}
|
|
3188
3188
|
},
|
|
3189
3189
|
"node_modules/@smithy/node-config-provider": {
|
|
3190
|
-
"version": "4.3.
|
|
3191
|
-
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.
|
|
3192
|
-
"integrity": "sha512-
|
|
3190
|
+
"version": "4.3.14",
|
|
3191
|
+
"resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.14.tgz",
|
|
3192
|
+
"integrity": "sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==",
|
|
3193
3193
|
"license": "Apache-2.0",
|
|
3194
3194
|
"dependencies": {
|
|
3195
|
-
"@smithy/property-provider": "^4.2.
|
|
3196
|
-
"@smithy/shared-ini-file-loader": "^4.4.
|
|
3197
|
-
"@smithy/types": "^4.14.
|
|
3195
|
+
"@smithy/property-provider": "^4.2.14",
|
|
3196
|
+
"@smithy/shared-ini-file-loader": "^4.4.9",
|
|
3197
|
+
"@smithy/types": "^4.14.1",
|
|
3198
3198
|
"tslib": "^2.6.2"
|
|
3199
3199
|
},
|
|
3200
3200
|
"engines": {
|
|
@@ -3202,14 +3202,14 @@
|
|
|
3202
3202
|
}
|
|
3203
3203
|
},
|
|
3204
3204
|
"node_modules/@smithy/node-http-handler": {
|
|
3205
|
-
"version": "4.5.
|
|
3206
|
-
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.
|
|
3207
|
-
"integrity": "sha512
|
|
3205
|
+
"version": "4.5.3",
|
|
3206
|
+
"resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.5.3.tgz",
|
|
3207
|
+
"integrity": "sha512-lc5jFL++x17sPhIwMWJ3YOnqmSjw/2Po6VLDlUIXvxVWRuJwRXnJ4jOBBLB0cfI5BB5ehIl02Fxr1PDvk/kxDw==",
|
|
3208
3208
|
"license": "Apache-2.0",
|
|
3209
3209
|
"dependencies": {
|
|
3210
|
-
"@smithy/protocol-http": "^5.3.
|
|
3211
|
-
"@smithy/querystring-builder": "^4.2.
|
|
3212
|
-
"@smithy/types": "^4.14.
|
|
3210
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3211
|
+
"@smithy/querystring-builder": "^4.2.14",
|
|
3212
|
+
"@smithy/types": "^4.14.1",
|
|
3213
3213
|
"tslib": "^2.6.2"
|
|
3214
3214
|
},
|
|
3215
3215
|
"engines": {
|
|
@@ -3217,12 +3217,12 @@
|
|
|
3217
3217
|
}
|
|
3218
3218
|
},
|
|
3219
3219
|
"node_modules/@smithy/property-provider": {
|
|
3220
|
-
"version": "4.2.
|
|
3221
|
-
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.
|
|
3222
|
-
"integrity": "sha512-
|
|
3220
|
+
"version": "4.2.14",
|
|
3221
|
+
"resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.14.tgz",
|
|
3222
|
+
"integrity": "sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==",
|
|
3223
3223
|
"license": "Apache-2.0",
|
|
3224
3224
|
"dependencies": {
|
|
3225
|
-
"@smithy/types": "^4.14.
|
|
3225
|
+
"@smithy/types": "^4.14.1",
|
|
3226
3226
|
"tslib": "^2.6.2"
|
|
3227
3227
|
},
|
|
3228
3228
|
"engines": {
|
|
@@ -3230,12 +3230,12 @@
|
|
|
3230
3230
|
}
|
|
3231
3231
|
},
|
|
3232
3232
|
"node_modules/@smithy/protocol-http": {
|
|
3233
|
-
"version": "5.3.
|
|
3234
|
-
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.
|
|
3235
|
-
"integrity": "sha512
|
|
3233
|
+
"version": "5.3.14",
|
|
3234
|
+
"resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.14.tgz",
|
|
3235
|
+
"integrity": "sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==",
|
|
3236
3236
|
"license": "Apache-2.0",
|
|
3237
3237
|
"dependencies": {
|
|
3238
|
-
"@smithy/types": "^4.14.
|
|
3238
|
+
"@smithy/types": "^4.14.1",
|
|
3239
3239
|
"tslib": "^2.6.2"
|
|
3240
3240
|
},
|
|
3241
3241
|
"engines": {
|
|
@@ -3243,12 +3243,12 @@
|
|
|
3243
3243
|
}
|
|
3244
3244
|
},
|
|
3245
3245
|
"node_modules/@smithy/querystring-builder": {
|
|
3246
|
-
"version": "4.2.
|
|
3247
|
-
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.
|
|
3248
|
-
"integrity": "sha512-
|
|
3246
|
+
"version": "4.2.14",
|
|
3247
|
+
"resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.14.tgz",
|
|
3248
|
+
"integrity": "sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==",
|
|
3249
3249
|
"license": "Apache-2.0",
|
|
3250
3250
|
"dependencies": {
|
|
3251
|
-
"@smithy/types": "^4.14.
|
|
3251
|
+
"@smithy/types": "^4.14.1",
|
|
3252
3252
|
"@smithy/util-uri-escape": "^4.2.2",
|
|
3253
3253
|
"tslib": "^2.6.2"
|
|
3254
3254
|
},
|
|
@@ -3257,12 +3257,12 @@
|
|
|
3257
3257
|
}
|
|
3258
3258
|
},
|
|
3259
3259
|
"node_modules/@smithy/querystring-parser": {
|
|
3260
|
-
"version": "4.2.
|
|
3261
|
-
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.
|
|
3262
|
-
"integrity": "sha512-
|
|
3260
|
+
"version": "4.2.14",
|
|
3261
|
+
"resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.14.tgz",
|
|
3262
|
+
"integrity": "sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==",
|
|
3263
3263
|
"license": "Apache-2.0",
|
|
3264
3264
|
"dependencies": {
|
|
3265
|
-
"@smithy/types": "^4.14.
|
|
3265
|
+
"@smithy/types": "^4.14.1",
|
|
3266
3266
|
"tslib": "^2.6.2"
|
|
3267
3267
|
},
|
|
3268
3268
|
"engines": {
|
|
@@ -3270,24 +3270,24 @@
|
|
|
3270
3270
|
}
|
|
3271
3271
|
},
|
|
3272
3272
|
"node_modules/@smithy/service-error-classification": {
|
|
3273
|
-
"version": "4.2.
|
|
3274
|
-
"resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.
|
|
3275
|
-
"integrity": "sha512-
|
|
3273
|
+
"version": "4.2.14",
|
|
3274
|
+
"resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.14.tgz",
|
|
3275
|
+
"integrity": "sha512-vVimoUnGxlx4eLLQbZImdOZFOe+Zh+5ACntv8VxZuGP72LdWu5GV3oEmCahSEReBgRJoWjypFkrehSj7BWx1HQ==",
|
|
3276
3276
|
"license": "Apache-2.0",
|
|
3277
3277
|
"dependencies": {
|
|
3278
|
-
"@smithy/types": "^4.14.
|
|
3278
|
+
"@smithy/types": "^4.14.1"
|
|
3279
3279
|
},
|
|
3280
3280
|
"engines": {
|
|
3281
3281
|
"node": ">=18.0.0"
|
|
3282
3282
|
}
|
|
3283
3283
|
},
|
|
3284
3284
|
"node_modules/@smithy/shared-ini-file-loader": {
|
|
3285
|
-
"version": "4.4.
|
|
3286
|
-
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.
|
|
3287
|
-
"integrity": "sha512-
|
|
3285
|
+
"version": "4.4.9",
|
|
3286
|
+
"resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.4.9.tgz",
|
|
3287
|
+
"integrity": "sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==",
|
|
3288
3288
|
"license": "Apache-2.0",
|
|
3289
3289
|
"dependencies": {
|
|
3290
|
-
"@smithy/types": "^4.14.
|
|
3290
|
+
"@smithy/types": "^4.14.1",
|
|
3291
3291
|
"tslib": "^2.6.2"
|
|
3292
3292
|
},
|
|
3293
3293
|
"engines": {
|
|
@@ -3295,16 +3295,16 @@
|
|
|
3295
3295
|
}
|
|
3296
3296
|
},
|
|
3297
3297
|
"node_modules/@smithy/signature-v4": {
|
|
3298
|
-
"version": "5.3.
|
|
3299
|
-
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.
|
|
3300
|
-
"integrity": "sha512-
|
|
3298
|
+
"version": "5.3.14",
|
|
3299
|
+
"resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.14.tgz",
|
|
3300
|
+
"integrity": "sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==",
|
|
3301
3301
|
"license": "Apache-2.0",
|
|
3302
3302
|
"dependencies": {
|
|
3303
3303
|
"@smithy/is-array-buffer": "^4.2.2",
|
|
3304
|
-
"@smithy/protocol-http": "^5.3.
|
|
3305
|
-
"@smithy/types": "^4.14.
|
|
3304
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3305
|
+
"@smithy/types": "^4.14.1",
|
|
3306
3306
|
"@smithy/util-hex-encoding": "^4.2.2",
|
|
3307
|
-
"@smithy/util-middleware": "^4.2.
|
|
3307
|
+
"@smithy/util-middleware": "^4.2.14",
|
|
3308
3308
|
"@smithy/util-uri-escape": "^4.2.2",
|
|
3309
3309
|
"@smithy/util-utf8": "^4.2.2",
|
|
3310
3310
|
"tslib": "^2.6.2"
|
|
@@ -3314,17 +3314,17 @@
|
|
|
3314
3314
|
}
|
|
3315
3315
|
},
|
|
3316
3316
|
"node_modules/@smithy/smithy-client": {
|
|
3317
|
-
"version": "4.12.
|
|
3318
|
-
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.
|
|
3319
|
-
"integrity": "sha512-
|
|
3317
|
+
"version": "4.12.11",
|
|
3318
|
+
"resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.12.11.tgz",
|
|
3319
|
+
"integrity": "sha512-wzz/Wa1CH/Tlhxh0s4DQPEcXSxSVfJ59AZcUh9Gu0c6JTlKuwGf4o/3P2TExv0VbtPFt8odIBG+eQGK2+vTECg==",
|
|
3320
3320
|
"license": "Apache-2.0",
|
|
3321
3321
|
"dependencies": {
|
|
3322
|
-
"@smithy/core": "^3.23.
|
|
3323
|
-
"@smithy/middleware-endpoint": "^4.4.
|
|
3324
|
-
"@smithy/middleware-stack": "^4.2.
|
|
3325
|
-
"@smithy/protocol-http": "^5.3.
|
|
3326
|
-
"@smithy/types": "^4.14.
|
|
3327
|
-
"@smithy/util-stream": "^4.5.
|
|
3322
|
+
"@smithy/core": "^3.23.15",
|
|
3323
|
+
"@smithy/middleware-endpoint": "^4.4.30",
|
|
3324
|
+
"@smithy/middleware-stack": "^4.2.14",
|
|
3325
|
+
"@smithy/protocol-http": "^5.3.14",
|
|
3326
|
+
"@smithy/types": "^4.14.1",
|
|
3327
|
+
"@smithy/util-stream": "^4.5.23",
|
|
3328
3328
|
"tslib": "^2.6.2"
|
|
3329
3329
|
},
|
|
3330
3330
|
"engines": {
|
|
@@ -3332,9 +3332,9 @@
|
|
|
3332
3332
|
}
|
|
3333
3333
|
},
|
|
3334
3334
|
"node_modules/@smithy/types": {
|
|
3335
|
-
"version": "4.14.
|
|
3336
|
-
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.14.
|
|
3337
|
-
"integrity": "sha512-
|
|
3335
|
+
"version": "4.14.1",
|
|
3336
|
+
"resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.14.1.tgz",
|
|
3337
|
+
"integrity": "sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==",
|
|
3338
3338
|
"license": "Apache-2.0",
|
|
3339
3339
|
"dependencies": {
|
|
3340
3340
|
"tslib": "^2.6.2"
|
|
@@ -3344,13 +3344,13 @@
|
|
|
3344
3344
|
}
|
|
3345
3345
|
},
|
|
3346
3346
|
"node_modules/@smithy/url-parser": {
|
|
3347
|
-
"version": "4.2.
|
|
3348
|
-
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.
|
|
3349
|
-
"integrity": "sha512-
|
|
3347
|
+
"version": "4.2.14",
|
|
3348
|
+
"resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.14.tgz",
|
|
3349
|
+
"integrity": "sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==",
|
|
3350
3350
|
"license": "Apache-2.0",
|
|
3351
3351
|
"dependencies": {
|
|
3352
|
-
"@smithy/querystring-parser": "^4.2.
|
|
3353
|
-
"@smithy/types": "^4.14.
|
|
3352
|
+
"@smithy/querystring-parser": "^4.2.14",
|
|
3353
|
+
"@smithy/types": "^4.14.1",
|
|
3354
3354
|
"tslib": "^2.6.2"
|
|
3355
3355
|
},
|
|
3356
3356
|
"engines": {
|
|
@@ -3421,14 +3421,14 @@
|
|
|
3421
3421
|
}
|
|
3422
3422
|
},
|
|
3423
3423
|
"node_modules/@smithy/util-defaults-mode-browser": {
|
|
3424
|
-
"version": "4.3.
|
|
3425
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.
|
|
3426
|
-
"integrity": "sha512-
|
|
3424
|
+
"version": "4.3.47",
|
|
3425
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.47.tgz",
|
|
3426
|
+
"integrity": "sha512-zlIuXai3/SHjQUQ8y3g/woLvrH573SK2wNjcDaHu5e9VOcC0JwM1MI0Sq0GZJyN3BwSUneIhpjZ18nsiz5AtQw==",
|
|
3427
3427
|
"license": "Apache-2.0",
|
|
3428
3428
|
"dependencies": {
|
|
3429
|
-
"@smithy/property-provider": "^4.2.
|
|
3430
|
-
"@smithy/smithy-client": "^4.12.
|
|
3431
|
-
"@smithy/types": "^4.14.
|
|
3429
|
+
"@smithy/property-provider": "^4.2.14",
|
|
3430
|
+
"@smithy/smithy-client": "^4.12.11",
|
|
3431
|
+
"@smithy/types": "^4.14.1",
|
|
3432
3432
|
"tslib": "^2.6.2"
|
|
3433
3433
|
},
|
|
3434
3434
|
"engines": {
|
|
@@ -3436,17 +3436,17 @@
|
|
|
3436
3436
|
}
|
|
3437
3437
|
},
|
|
3438
3438
|
"node_modules/@smithy/util-defaults-mode-node": {
|
|
3439
|
-
"version": "4.2.
|
|
3440
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.
|
|
3441
|
-
"integrity": "sha512-
|
|
3439
|
+
"version": "4.2.52",
|
|
3440
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.52.tgz",
|
|
3441
|
+
"integrity": "sha512-cQBz8g68Vnw1W2meXlkb3D/hXJU+Taiyj9P8qLJtjREEV9/Td65xi4A/H1sRQ8EIgX5qbZbvdYPKygKLholZ3w==",
|
|
3442
3442
|
"license": "Apache-2.0",
|
|
3443
3443
|
"dependencies": {
|
|
3444
|
-
"@smithy/config-resolver": "^4.4.
|
|
3445
|
-
"@smithy/credential-provider-imds": "^4.2.
|
|
3446
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3447
|
-
"@smithy/property-provider": "^4.2.
|
|
3448
|
-
"@smithy/smithy-client": "^4.12.
|
|
3449
|
-
"@smithy/types": "^4.14.
|
|
3444
|
+
"@smithy/config-resolver": "^4.4.16",
|
|
3445
|
+
"@smithy/credential-provider-imds": "^4.2.14",
|
|
3446
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3447
|
+
"@smithy/property-provider": "^4.2.14",
|
|
3448
|
+
"@smithy/smithy-client": "^4.12.11",
|
|
3449
|
+
"@smithy/types": "^4.14.1",
|
|
3450
3450
|
"tslib": "^2.6.2"
|
|
3451
3451
|
},
|
|
3452
3452
|
"engines": {
|
|
@@ -3454,13 +3454,13 @@
|
|
|
3454
3454
|
}
|
|
3455
3455
|
},
|
|
3456
3456
|
"node_modules/@smithy/util-endpoints": {
|
|
3457
|
-
"version": "3.4.
|
|
3458
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.4.
|
|
3459
|
-
"integrity": "sha512-
|
|
3457
|
+
"version": "3.4.1",
|
|
3458
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.4.1.tgz",
|
|
3459
|
+
"integrity": "sha512-wMxNDZJrgS5mQV9oxCs4TWl5767VMgOfqfZ3JHyCkMtGC2ykW9iPqMvFur695Otcc5yxLG8OKO/80tsQBxrhXg==",
|
|
3460
3460
|
"license": "Apache-2.0",
|
|
3461
3461
|
"dependencies": {
|
|
3462
|
-
"@smithy/node-config-provider": "^4.3.
|
|
3463
|
-
"@smithy/types": "^4.14.
|
|
3462
|
+
"@smithy/node-config-provider": "^4.3.14",
|
|
3463
|
+
"@smithy/types": "^4.14.1",
|
|
3464
3464
|
"tslib": "^2.6.2"
|
|
3465
3465
|
},
|
|
3466
3466
|
"engines": {
|
|
@@ -3480,12 +3480,12 @@
|
|
|
3480
3480
|
}
|
|
3481
3481
|
},
|
|
3482
3482
|
"node_modules/@smithy/util-middleware": {
|
|
3483
|
-
"version": "4.2.
|
|
3484
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.
|
|
3485
|
-
"integrity": "sha512-
|
|
3483
|
+
"version": "4.2.14",
|
|
3484
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.14.tgz",
|
|
3485
|
+
"integrity": "sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==",
|
|
3486
3486
|
"license": "Apache-2.0",
|
|
3487
3487
|
"dependencies": {
|
|
3488
|
-
"@smithy/types": "^4.14.
|
|
3488
|
+
"@smithy/types": "^4.14.1",
|
|
3489
3489
|
"tslib": "^2.6.2"
|
|
3490
3490
|
},
|
|
3491
3491
|
"engines": {
|
|
@@ -3493,13 +3493,13 @@
|
|
|
3493
3493
|
}
|
|
3494
3494
|
},
|
|
3495
3495
|
"node_modules/@smithy/util-retry": {
|
|
3496
|
-
"version": "4.3.
|
|
3497
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.
|
|
3498
|
-
"integrity": "sha512-
|
|
3496
|
+
"version": "4.3.2",
|
|
3497
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.3.2.tgz",
|
|
3498
|
+
"integrity": "sha512-2+KTsJEwTi63NUv4uR9IQ+IFT1yu6Rf6JuoBK2WKaaJ/TRvOiOVGcXAsEqX/TQN2thR9yII21kPUJq1UV/WI2A==",
|
|
3499
3499
|
"license": "Apache-2.0",
|
|
3500
3500
|
"dependencies": {
|
|
3501
|
-
"@smithy/service-error-classification": "^4.2.
|
|
3502
|
-
"@smithy/types": "^4.14.
|
|
3501
|
+
"@smithy/service-error-classification": "^4.2.14",
|
|
3502
|
+
"@smithy/types": "^4.14.1",
|
|
3503
3503
|
"tslib": "^2.6.2"
|
|
3504
3504
|
},
|
|
3505
3505
|
"engines": {
|
|
@@ -3507,14 +3507,14 @@
|
|
|
3507
3507
|
}
|
|
3508
3508
|
},
|
|
3509
3509
|
"node_modules/@smithy/util-stream": {
|
|
3510
|
-
"version": "4.5.
|
|
3511
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.
|
|
3512
|
-
"integrity": "sha512-
|
|
3510
|
+
"version": "4.5.23",
|
|
3511
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.5.23.tgz",
|
|
3512
|
+
"integrity": "sha512-N6on1+ngJ3RznZOnDWNveIwnTSlqxNnXuNAh7ez889ZZaRdXoNRTXKgmYOLe6dB0gCmAVtuRScE1hymQFl4hpg==",
|
|
3513
3513
|
"license": "Apache-2.0",
|
|
3514
3514
|
"dependencies": {
|
|
3515
|
-
"@smithy/fetch-http-handler": "^5.3.
|
|
3516
|
-
"@smithy/node-http-handler": "^4.5.
|
|
3517
|
-
"@smithy/types": "^4.14.
|
|
3515
|
+
"@smithy/fetch-http-handler": "^5.3.17",
|
|
3516
|
+
"@smithy/node-http-handler": "^4.5.3",
|
|
3517
|
+
"@smithy/types": "^4.14.1",
|
|
3518
3518
|
"@smithy/util-base64": "^4.3.2",
|
|
3519
3519
|
"@smithy/util-buffer-from": "^4.2.2",
|
|
3520
3520
|
"@smithy/util-hex-encoding": "^4.2.2",
|
|
@@ -3551,12 +3551,12 @@
|
|
|
3551
3551
|
}
|
|
3552
3552
|
},
|
|
3553
3553
|
"node_modules/@smithy/util-waiter": {
|
|
3554
|
-
"version": "4.2.
|
|
3555
|
-
"resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.
|
|
3556
|
-
"integrity": "sha512-
|
|
3554
|
+
"version": "4.2.16",
|
|
3555
|
+
"resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.16.tgz",
|
|
3556
|
+
"integrity": "sha512-GtclrKoZ3Lt7jPQ7aTIYKfjY92OgceScftVnkTsG8e1KV8rkvZgN+ny6YSRhd9hxB8rZtwVbmln7NTvE5O3GmQ==",
|
|
3557
3557
|
"license": "Apache-2.0",
|
|
3558
3558
|
"dependencies": {
|
|
3559
|
-
"@smithy/types": "^4.14.
|
|
3559
|
+
"@smithy/types": "^4.14.1",
|
|
3560
3560
|
"tslib": "^2.6.2"
|
|
3561
3561
|
},
|
|
3562
3562
|
"engines": {
|
|
@@ -4884,9 +4884,9 @@
|
|
|
4884
4884
|
}
|
|
4885
4885
|
},
|
|
4886
4886
|
"node_modules/electron-to-chromium": {
|
|
4887
|
-
"version": "1.5.
|
|
4888
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.
|
|
4889
|
-
"integrity": "sha512-
|
|
4887
|
+
"version": "1.5.339",
|
|
4888
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.339.tgz",
|
|
4889
|
+
"integrity": "sha512-Is+0BBHJ4NrdpAYiperrmp53pLywG/yV/6lIMTAnhxvzj/Cmn5Q/ogSHC6AKe7X+8kPLxxFk0cs5oc/3j/fxIg==",
|
|
4890
4890
|
"dev": true,
|
|
4891
4891
|
"license": "ISC"
|
|
4892
4892
|
},
|
|
@@ -3,4 +3,12 @@
|
|
|
3
3
|
* npm may return the queried package as the JSON root (name + version) or nested under dependencies.
|
|
4
4
|
*/
|
|
5
5
|
export declare function parseNpmListGlobalVersion(stdout: string | Buffer, packageName: string): string | null;
|
|
6
|
+
/** Looks like a normal x.y.z (or x.y) semver string from npm. */
|
|
7
|
+
export declare function looksLikeNpmVersion(v: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Read globally installed version from `npm list -g` JSON.
|
|
10
|
+
* Important: `npm list` often exits with code 1 (extraneous/missing peers) even when JSON is valid —
|
|
11
|
+
* do not treat non-zero status as "no install".
|
|
12
|
+
*/
|
|
13
|
+
export declare function getInstalledGlobalPackageVersion(packageName: string): string | null;
|
|
6
14
|
//# sourceMappingURL=npm-list-version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-list-version.d.ts","sourceRoot":"","sources":["../src/npm-list-version.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"npm-list-version.d.ts","sourceRoot":"","sources":["../src/npm-list-version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoCH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8CrG;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWnF"}
|
package/dist/npm-list-version.js
CHANGED
|
@@ -2,10 +2,37 @@
|
|
|
2
2
|
* Parse installed version from `npm list -g <pkg> --depth=0 --json` output.
|
|
3
3
|
* npm may return the queried package as the JSON root (name + version) or nested under dependencies.
|
|
4
4
|
*/
|
|
5
|
+
import { spawnNpmSync } from './npm-spawn.js';
|
|
5
6
|
import { sanitizePackageName } from './security/validation.js';
|
|
6
7
|
function stdoutToString(stdout) {
|
|
7
8
|
return typeof stdout === 'string' ? stdout : stdout.toString('utf-8');
|
|
8
9
|
}
|
|
10
|
+
/** Deep scan (npm global tree shapes vary by npm major). */
|
|
11
|
+
function deepFindPackageVersion(node, targetName) {
|
|
12
|
+
if (node === null || typeof node !== 'object') {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
if (Array.isArray(node)) {
|
|
16
|
+
for (const el of node) {
|
|
17
|
+
const f = deepFindPackageVersion(el, targetName);
|
|
18
|
+
if (f) {
|
|
19
|
+
return f;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const o = node;
|
|
25
|
+
if (o.name === targetName && typeof o.version === 'string') {
|
|
26
|
+
return o.version;
|
|
27
|
+
}
|
|
28
|
+
for (const v of Object.values(o)) {
|
|
29
|
+
const f = deepFindPackageVersion(v, targetName);
|
|
30
|
+
if (f) {
|
|
31
|
+
return f;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
9
36
|
export function parseNpmListGlobalVersion(stdout, packageName) {
|
|
10
37
|
const validation = sanitizePackageName(packageName);
|
|
11
38
|
if (!validation.valid || !validation.sanitized) {
|
|
@@ -47,6 +74,27 @@ export function parseNpmListGlobalVersion(stdout, packageName) {
|
|
|
47
74
|
}
|
|
48
75
|
}
|
|
49
76
|
}
|
|
50
|
-
return
|
|
77
|
+
return deepFindPackageVersion(data, n);
|
|
78
|
+
}
|
|
79
|
+
/** Looks like a normal x.y.z (or x.y) semver string from npm. */
|
|
80
|
+
export function looksLikeNpmVersion(v) {
|
|
81
|
+
return /^\d+\.\d+(\.\d+)?/.test(v.trim());
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Read globally installed version from `npm list -g` JSON.
|
|
85
|
+
* Important: `npm list` often exits with code 1 (extraneous/missing peers) even when JSON is valid —
|
|
86
|
+
* do not treat non-zero status as "no install".
|
|
87
|
+
*/
|
|
88
|
+
export function getInstalledGlobalPackageVersion(packageName) {
|
|
89
|
+
const validation = sanitizePackageName(packageName);
|
|
90
|
+
if (!validation.valid || !validation.sanitized) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const result = spawnNpmSync(['list', '-g', validation.sanitized, '--depth=0', '--json']);
|
|
94
|
+
if (!result.stdout) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const v = parseNpmListGlobalVersion(result.stdout, packageName);
|
|
98
|
+
return v && looksLikeNpmVersion(v) ? v : null;
|
|
51
99
|
}
|
|
52
100
|
//# sourceMappingURL=npm-list-version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-list-version.js","sourceRoot":"","sources":["../src/npm-list-version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,SAAS,cAAc,CAAC,MAAuB;IAC7C,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAuB,EAAE,WAAmB;IACpF,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;IAE/B,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAE1C,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAClD,OAAO,CAAC,CAAC,OAAO,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAI,MAAgC,CAAC,OAAO,CAAC;YACpD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACnD,MAAM,CAAC,GAAI,GAA6B,CAAC,OAAO,CAAC;oBACjD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAC1B,OAAO,CAAC,CAAC;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-list-version.js","sourceRoot":"","sources":["../src/npm-list-version.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-integrity.d.ts","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAkB9F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"package-integrity.d.ts","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAkB9F;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAW5F;AAwCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyFzG"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as crypto from 'crypto';
|
|
6
6
|
import * as fs from 'fs';
|
|
7
|
-
import {
|
|
7
|
+
import { getInstalledGlobalPackageVersion } from '../npm-list-version.js';
|
|
8
8
|
import { spawnNpmSync } from '../npm-spawn.js';
|
|
9
9
|
import { sanitizePackageName } from './validation.js';
|
|
10
10
|
/**
|
|
@@ -58,11 +58,7 @@ export function verifyInstalledVersion(packageName, expectedVersion) {
|
|
|
58
58
|
if (!validation.valid || !validation.sanitized) {
|
|
59
59
|
return false;
|
|
60
60
|
}
|
|
61
|
-
const
|
|
62
|
-
if (result.status !== 0 || !result.stdout) {
|
|
63
|
-
return false;
|
|
64
|
-
}
|
|
65
|
-
const installedVersion = parseNpmListGlobalVersion(result.stdout, packageName);
|
|
61
|
+
const installedVersion = getInstalledGlobalPackageVersion(packageName);
|
|
66
62
|
return installedVersion === expectedVersion;
|
|
67
63
|
}
|
|
68
64
|
catch {
|
|
@@ -128,10 +124,24 @@ export function safeNpmInstall(packageName, version) {
|
|
|
128
124
|
if (result.status !== 0) {
|
|
129
125
|
return { success: false, error: npmErrorResult(result) };
|
|
130
126
|
}
|
|
131
|
-
const
|
|
132
|
-
|
|
127
|
+
const installed = getInstalledGlobalPackageVersion(validation.sanitized);
|
|
128
|
+
// @latest: npm list exit code is often 1 for noisy global trees; registry can move during install.
|
|
129
|
+
// Trust a readable installed semver after a successful npm install, not strict equality to resolveTagVersion.
|
|
130
|
+
const verified = version === 'latest'
|
|
131
|
+
? Boolean(installed)
|
|
132
|
+
: (() => {
|
|
133
|
+
const expected = versionToVerify ?? resolveTagVersion(validation.sanitized, version);
|
|
134
|
+
return expected ? verifyInstalledVersion(validation.sanitized, expected) : true;
|
|
135
|
+
})();
|
|
133
136
|
if (!verified) {
|
|
134
|
-
return {
|
|
137
|
+
return {
|
|
138
|
+
success: false,
|
|
139
|
+
error: installed == null
|
|
140
|
+
? 'Could not read installed version after update (npm list). Run: npm install -g ' +
|
|
141
|
+
validation.sanitized +
|
|
142
|
+
'@latest'
|
|
143
|
+
: 'Installed version does not match expected. Run: npm install -g ' + validation.sanitized + '@latest',
|
|
144
|
+
};
|
|
135
145
|
}
|
|
136
146
|
return { success: true };
|
|
137
147
|
}
|
|
@@ -144,10 +154,22 @@ export function safeNpmInstall(packageName, version) {
|
|
|
144
154
|
if (result.status !== 0) {
|
|
145
155
|
return { success: false, error: npmErrorResult(result) };
|
|
146
156
|
}
|
|
147
|
-
const
|
|
148
|
-
const verified =
|
|
157
|
+
const installed = getInstalledGlobalPackageVersion(validation.sanitized);
|
|
158
|
+
const verified = version === 'latest'
|
|
159
|
+
? Boolean(installed)
|
|
160
|
+
: (() => {
|
|
161
|
+
const expected = versionToVerify ?? resolveTagVersion(validation.sanitized, version);
|
|
162
|
+
return expected ? verifyInstalledVersion(validation.sanitized, expected) : true;
|
|
163
|
+
})();
|
|
149
164
|
if (!verified) {
|
|
150
|
-
return {
|
|
165
|
+
return {
|
|
166
|
+
success: false,
|
|
167
|
+
error: installed == null
|
|
168
|
+
? 'Could not read installed version after update (npm list). Run: npm install -g ' +
|
|
169
|
+
validation.sanitized +
|
|
170
|
+
'@latest'
|
|
171
|
+
: 'Installed version does not match expected. Run: npm install -g ' + validation.sanitized + '@latest',
|
|
172
|
+
};
|
|
151
173
|
}
|
|
152
174
|
return { success: true };
|
|
153
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-integrity.js","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"package-integrity.js","sourceRoot":"","sources":["../../src/security/package-integrity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAsFD;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,GAAE,MAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAM5F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAmB,GAAG,IAAI,CAGpG;AAgGD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,GAAE,MAAmB,GAAG,OAAO,CAAC,KAAK,CAAC,CA2EjF;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,WAAW,GAAE,MAAmB,EAAE,iBAAiB,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvH"}
|
package/dist/version-check.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as fs from 'fs';
|
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
9
9
|
import { dirname } from 'path';
|
|
10
|
-
import {
|
|
10
|
+
import { getInstalledGlobalPackageVersion } from './npm-list-version.js';
|
|
11
11
|
import { spawnNpmSync } from './npm-spawn.js';
|
|
12
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
13
|
const __dirname = dirname(__filename);
|
|
@@ -16,13 +16,9 @@ const __dirname = dirname(__filename);
|
|
|
16
16
|
*/
|
|
17
17
|
function getCurrentVersion() {
|
|
18
18
|
try {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const installedVersion = parseNpmListGlobalVersion(result.stdout, '4runr-os');
|
|
23
|
-
if (installedVersion) {
|
|
24
|
-
return installedVersion;
|
|
25
|
-
}
|
|
19
|
+
const installedVersion = getInstalledGlobalPackageVersion('4runr-os');
|
|
20
|
+
if (installedVersion) {
|
|
21
|
+
return installedVersion;
|
|
26
22
|
}
|
|
27
23
|
}
|
|
28
24
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../src/version-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "4runr-os",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.134",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.
|
|
5
|
+
"description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.134: CRITICAL — copy-gateway no longer drops memory-logger.js (bad *.log regex). Gateway @4runr/shared bundle complete. Prior: 2.9.133 auto-update verify, TUI stderr logs. ⚠️ Pre-MVP / Development Phase",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"4runr": "dist/index.js",
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface LogEntry {
|
|
2
|
+
timestamp: number;
|
|
3
|
+
level: 'error' | 'warn' | 'info' | 'debug';
|
|
4
|
+
message: string;
|
|
5
|
+
data?: any;
|
|
6
|
+
}
|
|
7
|
+
export declare const memoryLogger: {
|
|
8
|
+
error: (message: string, data?: any) => void;
|
|
9
|
+
warn: (message: string, data?: any) => void;
|
|
10
|
+
info: (message: string, data?: any) => void;
|
|
11
|
+
debug: (message: string, data?: any) => void;
|
|
12
|
+
getLogs(limit?: number): LogEntry[];
|
|
13
|
+
clear(): void;
|
|
14
|
+
size(): number;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=memory-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-logger.d.ts","sourceRoot":"","sources":["../../src/persistence/memory-logger.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AA8CD,eAAO,MAAM,YAAY;qBACN,MAAM,SAAS,GAAG,KAAG,IAAI;oBAI1B,MAAM,SAAS,GAAG,KAAG,IAAI;oBAIzB,MAAM,SAAS,GAAG,KAAG,IAAI;qBAIxB,MAAM,SAAS,GAAG,KAAG,IAAI;oBAO1B,MAAM,GAAG,QAAQ,EAAE;aAW1B,IAAI;YAOL,MAAM;CAGf,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.memoryLogger = void 0;
|
|
4
|
+
const MAX_LOG_BUFFER = 200;
|
|
5
|
+
const logBuffer = [];
|
|
6
|
+
function addLogEntry(level, message, data) {
|
|
7
|
+
const entry = {
|
|
8
|
+
timestamp: Date.now(),
|
|
9
|
+
level,
|
|
10
|
+
message,
|
|
11
|
+
data
|
|
12
|
+
};
|
|
13
|
+
logBuffer.push(entry);
|
|
14
|
+
if (logBuffer.length > MAX_LOG_BUFFER) {
|
|
15
|
+
logBuffer.shift();
|
|
16
|
+
}
|
|
17
|
+
const timestamp = new Date(entry.timestamp).toISOString();
|
|
18
|
+
const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
|
|
19
|
+
switch (level) {
|
|
20
|
+
case 'error':
|
|
21
|
+
console.error(`${prefix} ${message}`, data || '');
|
|
22
|
+
break;
|
|
23
|
+
case 'warn':
|
|
24
|
+
console.warn(`${prefix} ${message}`, data || '');
|
|
25
|
+
break;
|
|
26
|
+
case 'info':
|
|
27
|
+
console.log(`${prefix} ${message}`, data || '');
|
|
28
|
+
break;
|
|
29
|
+
case 'debug':
|
|
30
|
+
console.debug(`${prefix} ${message}`, data || '');
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.memoryLogger = {
|
|
35
|
+
error: (message, data) => {
|
|
36
|
+
addLogEntry('error', message, data);
|
|
37
|
+
},
|
|
38
|
+
warn: (message, data) => {
|
|
39
|
+
addLogEntry('warn', message, data);
|
|
40
|
+
},
|
|
41
|
+
info: (message, data) => {
|
|
42
|
+
addLogEntry('info', message, data);
|
|
43
|
+
},
|
|
44
|
+
debug: (message, data) => {
|
|
45
|
+
addLogEntry('debug', message, data);
|
|
46
|
+
},
|
|
47
|
+
getLogs(limit) {
|
|
48
|
+
const logs = [...logBuffer];
|
|
49
|
+
if (limit && limit > 0) {
|
|
50
|
+
return logs.slice(-limit);
|
|
51
|
+
}
|
|
52
|
+
return logs;
|
|
53
|
+
},
|
|
54
|
+
clear() {
|
|
55
|
+
logBuffer.length = 0;
|
|
56
|
+
},
|
|
57
|
+
size() {
|
|
58
|
+
return logBuffer.length;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=memory-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-logger.js","sourceRoot":"","sources":["../../src/persistence/memory-logger.ts"],"names":[],"mappings":";;;AAcA,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,SAAS,GAAe,EAAE,CAAC;AAKjC,SAAS,WAAW,CAAC,KAAwB,EAAE,OAAe,EAAE,IAAU;IACxE,MAAM,KAAK,GAAa;QACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK;QACL,OAAO;QACP,IAAI;KACL,CAAC;IAEF,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAGtB,IAAI,SAAS,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACtC,SAAS,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAGD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;IAEzD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM;QACR,KAAK,MAAM;YACT,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM;QACR,KAAK,OAAO;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAClD,MAAM;IACV,CAAC;AACH,CAAC;AAKY,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAQ,EAAE;QAC3C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAQ,EAAE;QAC1C,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE,CAAC,OAAe,EAAE,IAAU,EAAQ,EAAE;QAC1C,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,EAAE,CAAC,OAAe,EAAE,IAAU,EAAQ,EAAE;QAC3C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAKD,OAAO,CAAC,KAAc;QACpB,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5B,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK;QACH,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC;IAKD,IAAI;QACF,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;CACF,CAAC"}
|
package/src/npm-list-version.ts
CHANGED
|
@@ -3,12 +3,40 @@
|
|
|
3
3
|
* npm may return the queried package as the JSON root (name + version) or nested under dependencies.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { spawnNpmSync } from './npm-spawn.js';
|
|
6
7
|
import { sanitizePackageName } from './security/validation.js';
|
|
7
8
|
|
|
8
9
|
function stdoutToString(stdout: string | Buffer): string {
|
|
9
10
|
return typeof stdout === 'string' ? stdout : stdout.toString('utf-8');
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
/** Deep scan (npm global tree shapes vary by npm major). */
|
|
14
|
+
function deepFindPackageVersion(node: unknown, targetName: string): string | null {
|
|
15
|
+
if (node === null || typeof node !== 'object') {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(node)) {
|
|
19
|
+
for (const el of node) {
|
|
20
|
+
const f = deepFindPackageVersion(el, targetName);
|
|
21
|
+
if (f) {
|
|
22
|
+
return f;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const o = node as Record<string, unknown>;
|
|
28
|
+
if (o.name === targetName && typeof o.version === 'string') {
|
|
29
|
+
return o.version;
|
|
30
|
+
}
|
|
31
|
+
for (const v of Object.values(o)) {
|
|
32
|
+
const f = deepFindPackageVersion(v, targetName);
|
|
33
|
+
if (f) {
|
|
34
|
+
return f;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
|
|
12
40
|
export function parseNpmListGlobalVersion(stdout: string | Buffer, packageName: string): string | null {
|
|
13
41
|
const validation = sanitizePackageName(packageName);
|
|
14
42
|
if (!validation.valid || !validation.sanitized) {
|
|
@@ -54,5 +82,28 @@ export function parseNpmListGlobalVersion(stdout: string | Buffer, packageName:
|
|
|
54
82
|
}
|
|
55
83
|
}
|
|
56
84
|
|
|
57
|
-
return
|
|
85
|
+
return deepFindPackageVersion(data, n);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Looks like a normal x.y.z (or x.y) semver string from npm. */
|
|
89
|
+
export function looksLikeNpmVersion(v: string): boolean {
|
|
90
|
+
return /^\d+\.\d+(\.\d+)?/.test(v.trim());
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Read globally installed version from `npm list -g` JSON.
|
|
95
|
+
* Important: `npm list` often exits with code 1 (extraneous/missing peers) even when JSON is valid —
|
|
96
|
+
* do not treat non-zero status as "no install".
|
|
97
|
+
*/
|
|
98
|
+
export function getInstalledGlobalPackageVersion(packageName: string): string | null {
|
|
99
|
+
const validation = sanitizePackageName(packageName);
|
|
100
|
+
if (!validation.valid || !validation.sanitized) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
const result = spawnNpmSync(['list', '-g', validation.sanitized, '--depth=0', '--json']);
|
|
104
|
+
if (!result.stdout) {
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
const v = parseNpmListGlobalVersion(result.stdout, packageName);
|
|
108
|
+
return v && looksLikeNpmVersion(v) ? v : null;
|
|
58
109
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import * as crypto from 'crypto';
|
|
7
7
|
import * as fs from 'fs';
|
|
8
|
-
import {
|
|
8
|
+
import { getInstalledGlobalPackageVersion } from '../npm-list-version.js';
|
|
9
9
|
import { spawnNpmSync } from '../npm-spawn.js';
|
|
10
10
|
import { sanitizePackageName } from './validation.js';
|
|
11
11
|
|
|
@@ -64,19 +64,10 @@ export function verifyPackageIntegrity(tarballPath: string, expectedIntegrity: s
|
|
|
64
64
|
export function verifyInstalledVersion(packageName: string, expectedVersion: string): boolean {
|
|
65
65
|
try {
|
|
66
66
|
const validation = sanitizePackageName(packageName);
|
|
67
|
-
|
|
68
67
|
if (!validation.valid || !validation.sanitized) {
|
|
69
68
|
return false;
|
|
70
69
|
}
|
|
71
|
-
|
|
72
|
-
const result = spawnNpmSync(['list', '-g', validation.sanitized, '--depth=0', '--json']);
|
|
73
|
-
|
|
74
|
-
if (result.status !== 0 || !result.stdout) {
|
|
75
|
-
return false;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const installedVersion = parseNpmListGlobalVersion(result.stdout, packageName);
|
|
79
|
-
|
|
70
|
+
const installedVersion = getInstalledGlobalPackageVersion(packageName);
|
|
80
71
|
return installedVersion === expectedVersion;
|
|
81
72
|
} catch {
|
|
82
73
|
return false;
|
|
@@ -155,12 +146,28 @@ export function safeNpmInstall(packageName: string, version: string): { success:
|
|
|
155
146
|
return { success: false, error: npmErrorResult(result) };
|
|
156
147
|
}
|
|
157
148
|
|
|
158
|
-
const
|
|
159
|
-
|
|
149
|
+
const installed = getInstalledGlobalPackageVersion(validation.sanitized);
|
|
150
|
+
// @latest: npm list exit code is often 1 for noisy global trees; registry can move during install.
|
|
151
|
+
// Trust a readable installed semver after a successful npm install, not strict equality to resolveTagVersion.
|
|
152
|
+
const verified =
|
|
153
|
+
version === 'latest'
|
|
154
|
+
? Boolean(installed)
|
|
155
|
+
: (() => {
|
|
156
|
+
const expected = versionToVerify ?? resolveTagVersion(validation.sanitized, version);
|
|
157
|
+
return expected ? verifyInstalledVersion(validation.sanitized, expected) : true;
|
|
158
|
+
})();
|
|
160
159
|
if (!verified) {
|
|
161
|
-
return {
|
|
160
|
+
return {
|
|
161
|
+
success: false,
|
|
162
|
+
error:
|
|
163
|
+
installed == null
|
|
164
|
+
? 'Could not read installed version after update (npm list). Run: npm install -g ' +
|
|
165
|
+
validation.sanitized +
|
|
166
|
+
'@latest'
|
|
167
|
+
: 'Installed version does not match expected. Run: npm install -g ' + validation.sanitized + '@latest',
|
|
168
|
+
};
|
|
162
169
|
}
|
|
163
|
-
|
|
170
|
+
|
|
164
171
|
return { success: true };
|
|
165
172
|
}
|
|
166
173
|
|
|
@@ -175,12 +182,26 @@ export function safeNpmInstall(packageName: string, version: string): { success:
|
|
|
175
182
|
return { success: false, error: npmErrorResult(result) };
|
|
176
183
|
}
|
|
177
184
|
|
|
178
|
-
const
|
|
179
|
-
const verified =
|
|
185
|
+
const installed = getInstalledGlobalPackageVersion(validation.sanitized);
|
|
186
|
+
const verified =
|
|
187
|
+
version === 'latest'
|
|
188
|
+
? Boolean(installed)
|
|
189
|
+
: (() => {
|
|
190
|
+
const expected = versionToVerify ?? resolveTagVersion(validation.sanitized, version);
|
|
191
|
+
return expected ? verifyInstalledVersion(validation.sanitized, expected) : true;
|
|
192
|
+
})();
|
|
180
193
|
if (!verified) {
|
|
181
|
-
return {
|
|
194
|
+
return {
|
|
195
|
+
success: false,
|
|
196
|
+
error:
|
|
197
|
+
installed == null
|
|
198
|
+
? 'Could not read installed version after update (npm list). Run: npm install -g ' +
|
|
199
|
+
validation.sanitized +
|
|
200
|
+
'@latest'
|
|
201
|
+
: 'Installed version does not match expected. Run: npm install -g ' + validation.sanitized + '@latest',
|
|
202
|
+
};
|
|
182
203
|
}
|
|
183
|
-
|
|
204
|
+
|
|
184
205
|
return { success: true };
|
|
185
206
|
} catch (error: any) {
|
|
186
207
|
return { success: false, error: error?.message || String(error) };
|