@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 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.1.0] — Unreleased
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
@@ -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.1.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>",