@huloglobal/vendure-licence-sdk 0.1.0 → 0.2.0
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/CHANGELOG.md +12 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/update-check.d.ts +40 -0
- package/dist/update-check.d.ts.map +1 -0
- package/dist/update-check.js +139 -0
- package/dist/update-check.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,18 @@ All notable changes to `@huloglobal/vendure-licence-sdk` are documented here. Th
|
|
|
4
4
|
format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and
|
|
5
5
|
this project adheres to [semantic versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
-
## [0.
|
|
7
|
+
## [0.2.0]
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`UpdateChecker`** — polls the public npm registry every 24h for the
|
|
11
|
+
package's latest version. Exposes `current`, `latest`, `updateAvailable`,
|
|
12
|
+
`isMajor`, `lastCheckedAt`, `lastError`. Soft-fails on network errors
|
|
13
|
+
(keeps the previous cached value in memory). Each consuming plugin
|
|
14
|
+
surfaces its status via a `/status` endpoint so the admin dashboard
|
|
15
|
+
can render an "update available" banner.
|
|
16
|
+
- `UpdateStatus` exported type.
|
|
17
|
+
|
|
18
|
+
## [0.1.0]
|
|
8
19
|
|
|
9
20
|
### Added
|
|
10
21
|
- Offline RSA-SHA256 JWT licence verification (`verifyLicence`).
|
package/dist/index.d.ts
CHANGED
|
@@ -21,4 +21,5 @@
|
|
|
21
21
|
export { verifyLicence } from './verify';
|
|
22
22
|
export { LicenceStatus, LicencePayload, VerifyLicenceOptions } from './types';
|
|
23
23
|
export { RevocationChecker } from './revocation';
|
|
24
|
+
export { UpdateChecker, UpdateStatus } from './update-check';
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,9 +20,11 @@
|
|
|
20
20
|
* tier. The end-user can always upgrade by supplying a valid key.
|
|
21
21
|
*/
|
|
22
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
-
exports.RevocationChecker = exports.verifyLicence = void 0;
|
|
23
|
+
exports.UpdateChecker = exports.RevocationChecker = exports.verifyLicence = void 0;
|
|
24
24
|
var verify_1 = require("./verify");
|
|
25
25
|
Object.defineProperty(exports, "verifyLicence", { enumerable: true, get: function () { return verify_1.verifyLicence; } });
|
|
26
26
|
var revocation_1 = require("./revocation");
|
|
27
27
|
Object.defineProperty(exports, "RevocationChecker", { enumerable: true, get: function () { return revocation_1.RevocationChecker; } });
|
|
28
|
+
var update_check_1 = require("./update-check");
|
|
29
|
+
Object.defineProperty(exports, "UpdateChecker", { enumerable: true, get: function () { return update_check_1.UpdateChecker; } });
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AAEtB,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AAEtB,2CAAiD;AAAxC,+GAAA,iBAAiB,OAAA;AAC1B,+CAA6D;AAApD,6GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface UpdateStatus {
|
|
2
|
+
packageName: string;
|
|
3
|
+
current: string;
|
|
4
|
+
latest: string | null;
|
|
5
|
+
updateAvailable: boolean;
|
|
6
|
+
/** A "major"-level update is one where the first non-zero version
|
|
7
|
+
* component changes (semver-friendly for 0.x packages). */
|
|
8
|
+
isMajor: boolean;
|
|
9
|
+
lastCheckedAt: Date | null;
|
|
10
|
+
lastError: string | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Polls the public npm registry for the latest version of a plugin's
|
|
14
|
+
* package and exposes a small status object. Each plugin instantiates
|
|
15
|
+
* one UpdateChecker at boot and surfaces its status via its `/status`
|
|
16
|
+
* endpoint — the admin UI then shows an "update available" banner.
|
|
17
|
+
*
|
|
18
|
+
* Failures (network, 404) keep the previous cached `latest` value in
|
|
19
|
+
* memory so a brief npm outage doesn't make the dashboard misreport.
|
|
20
|
+
* The cache is wiped only when a fresh value arrives.
|
|
21
|
+
*/
|
|
22
|
+
export declare class UpdateChecker {
|
|
23
|
+
private readonly packageName;
|
|
24
|
+
private readonly currentVersion;
|
|
25
|
+
private readonly pollMs;
|
|
26
|
+
private readonly registryUrl;
|
|
27
|
+
private latest;
|
|
28
|
+
private timer;
|
|
29
|
+
private lastCheckedAt;
|
|
30
|
+
private lastError;
|
|
31
|
+
constructor(packageName: string, currentVersion: string, pollMs?: number, // 24h
|
|
32
|
+
registryUrl?: string);
|
|
33
|
+
/** Start the background poll. Idempotent. */
|
|
34
|
+
start(): void;
|
|
35
|
+
stop(): void;
|
|
36
|
+
/** Force a fresh check. Returns the new status. */
|
|
37
|
+
refresh(): Promise<UpdateStatus>;
|
|
38
|
+
getStatus(): UpdateStatus;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=update-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB;gEAC4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAa;IAOlB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAThC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,SAAS,CAAuB;gBAGnB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,MAAM,GAAE,MAA4B,EAAE,MAAM;IAC5C,WAAW,GAAE,MAAqC;IAGvE,6CAA6C;IAC7C,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ,mDAAmD;IAC7C,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAkCtC,SAAS,IAAI,YAAY;CAe5B"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateChecker = void 0;
|
|
4
|
+
const core_1 = require("@vendure/core");
|
|
5
|
+
const loggerCtx = 'LicenceSdk:UpdateCheck';
|
|
6
|
+
/**
|
|
7
|
+
* Polls the public npm registry for the latest version of a plugin's
|
|
8
|
+
* package and exposes a small status object. Each plugin instantiates
|
|
9
|
+
* one UpdateChecker at boot and surfaces its status via its `/status`
|
|
10
|
+
* endpoint — the admin UI then shows an "update available" banner.
|
|
11
|
+
*
|
|
12
|
+
* Failures (network, 404) keep the previous cached `latest` value in
|
|
13
|
+
* memory so a brief npm outage doesn't make the dashboard misreport.
|
|
14
|
+
* The cache is wiped only when a fresh value arrives.
|
|
15
|
+
*/
|
|
16
|
+
class UpdateChecker {
|
|
17
|
+
constructor(packageName, currentVersion, pollMs = 24 * 60 * 60 * 1000, // 24h
|
|
18
|
+
registryUrl = 'https://registry.npmjs.org') {
|
|
19
|
+
this.packageName = packageName;
|
|
20
|
+
this.currentVersion = currentVersion;
|
|
21
|
+
this.pollMs = pollMs;
|
|
22
|
+
this.registryUrl = registryUrl;
|
|
23
|
+
this.latest = null;
|
|
24
|
+
this.timer = null;
|
|
25
|
+
this.lastCheckedAt = null;
|
|
26
|
+
this.lastError = null;
|
|
27
|
+
}
|
|
28
|
+
/** Start the background poll. Idempotent. */
|
|
29
|
+
start() {
|
|
30
|
+
if (this.timer)
|
|
31
|
+
return;
|
|
32
|
+
// First check runs 30s after boot so we don't slow down startup.
|
|
33
|
+
setTimeout(() => this.refresh().catch(() => undefined), 30000);
|
|
34
|
+
this.timer = setInterval(() => this.refresh().catch(() => undefined), this.pollMs);
|
|
35
|
+
if (typeof this.timer.unref === 'function')
|
|
36
|
+
this.timer.unref();
|
|
37
|
+
}
|
|
38
|
+
stop() {
|
|
39
|
+
if (this.timer) {
|
|
40
|
+
clearInterval(this.timer);
|
|
41
|
+
this.timer = null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Force a fresh check. Returns the new status. */
|
|
45
|
+
async refresh() {
|
|
46
|
+
const controller = new AbortController();
|
|
47
|
+
const t = setTimeout(() => controller.abort(), 8000);
|
|
48
|
+
try {
|
|
49
|
+
// The `latest` endpoint is small (a few hundred bytes) and
|
|
50
|
+
// cache-friendly — the registry returns a fresh dist-tags
|
|
51
|
+
// entry without the full package metadata payload.
|
|
52
|
+
const res = await fetch(`${this.registryUrl}/${encodeURIComponent(this.packageName)}/latest`, { signal: controller.signal, headers: { accept: 'application/json' } });
|
|
53
|
+
if (!res.ok) {
|
|
54
|
+
this.lastError = `npm registry ${res.status}`;
|
|
55
|
+
core_1.Logger.warn(`Update check for ${this.packageName} failed: ${this.lastError}`, loggerCtx);
|
|
56
|
+
return this.getStatus();
|
|
57
|
+
}
|
|
58
|
+
const body = await res.json();
|
|
59
|
+
const next = String((body === null || body === void 0 ? void 0 : body.version) || '').trim();
|
|
60
|
+
if (!next) {
|
|
61
|
+
this.lastError = 'no version in response';
|
|
62
|
+
return this.getStatus();
|
|
63
|
+
}
|
|
64
|
+
this.latest = next;
|
|
65
|
+
this.lastCheckedAt = new Date();
|
|
66
|
+
this.lastError = null;
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
this.lastError = (e === null || e === void 0 ? void 0 : e.message) || 'fetch failed';
|
|
70
|
+
core_1.Logger.warn(`Update check for ${this.packageName} failed: ${this.lastError}`, loggerCtx);
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
clearTimeout(t);
|
|
74
|
+
}
|
|
75
|
+
return this.getStatus();
|
|
76
|
+
}
|
|
77
|
+
getStatus() {
|
|
78
|
+
const updateAvailable = !!this.latest && compareVersions(this.latest, this.currentVersion) > 0;
|
|
79
|
+
const isMajor = updateAvailable
|
|
80
|
+
? isMajorBump(this.currentVersion, this.latest)
|
|
81
|
+
: false;
|
|
82
|
+
return {
|
|
83
|
+
packageName: this.packageName,
|
|
84
|
+
current: this.currentVersion,
|
|
85
|
+
latest: this.latest,
|
|
86
|
+
updateAvailable,
|
|
87
|
+
isMajor,
|
|
88
|
+
lastCheckedAt: this.lastCheckedAt,
|
|
89
|
+
lastError: this.lastError,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.UpdateChecker = UpdateChecker;
|
|
94
|
+
/**
|
|
95
|
+
* Tiny semver-ish compare. Treats versions as dot-separated number
|
|
96
|
+
* components; suffix tags (`-rc.1`, `-beta`) sort before the release.
|
|
97
|
+
* Sufficient for our case — both sides come from npm dist-tags.
|
|
98
|
+
*/
|
|
99
|
+
function compareVersions(a, b) {
|
|
100
|
+
const [ah, at] = splitTag(a);
|
|
101
|
+
const [bh, bt] = splitTag(b);
|
|
102
|
+
const ap = ah.split('.').map(n => parseInt(n, 10) || 0);
|
|
103
|
+
const bp = bh.split('.').map(n => parseInt(n, 10) || 0);
|
|
104
|
+
const len = Math.max(ap.length, bp.length);
|
|
105
|
+
for (let i = 0; i < len; i++) {
|
|
106
|
+
const av = ap[i] || 0;
|
|
107
|
+
const bv = bp[i] || 0;
|
|
108
|
+
if (av !== bv)
|
|
109
|
+
return av - bv;
|
|
110
|
+
}
|
|
111
|
+
// Pre-release sorts BEFORE release (0.2.0-rc.1 < 0.2.0).
|
|
112
|
+
if (at && !bt)
|
|
113
|
+
return -1;
|
|
114
|
+
if (!at && bt)
|
|
115
|
+
return 1;
|
|
116
|
+
if (at && bt)
|
|
117
|
+
return at.localeCompare(bt);
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
function splitTag(v) {
|
|
121
|
+
const dash = v.indexOf('-');
|
|
122
|
+
return dash === -1 ? [v, ''] : [v.slice(0, dash), v.slice(dash + 1)];
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* "Major bump" for the dashboard banner — uses the first non-zero
|
|
126
|
+
* version component as the major identifier (so 0.2.x → 0.3.x is major
|
|
127
|
+
* for 0.x packages, where the user expects breaking changes in 0.y
|
|
128
|
+
* bumps).
|
|
129
|
+
*/
|
|
130
|
+
function isMajorBump(current, next) {
|
|
131
|
+
const cp = current.split('.').map(n => parseInt(n, 10) || 0);
|
|
132
|
+
const np = next.split('.').map(n => parseInt(n, 10) || 0);
|
|
133
|
+
// Find the first non-zero index of current.
|
|
134
|
+
let i = 0;
|
|
135
|
+
while (i < cp.length && cp[i] === 0)
|
|
136
|
+
i++;
|
|
137
|
+
return (cp[i] || 0) !== (np[i] || 0);
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=update-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../src/update-check.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@huloglobal/vendure-licence-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Licence validation helpers for HULO Vendure plugins. JWT verification, revocation polling and an admin status check used by paid HULO plugins to confirm the host installation is licensed.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Wayne Garrison <wayne@garrison.me.uk>",
|