@aurum-grid/license 0.0.0-stage → 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/LICENSE.md +24 -0
- package/README.md +6 -2
- package/dist/index.d.ts +52 -0
- package/dist/index.js +154 -0
- package/dist/index.js.map +1 -0
- package/dist/public-key.d.ts +1 -0
- package/dist/public-key.js +3 -0
- package/dist/public-key.js.map +1 -0
- package/package.json +36 -3
package/LICENSE.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Aurum Grid Commercial License (draft template)
|
|
2
|
+
|
|
3
|
+
> This is a starting-point template, not legal advice. Have a lawyer review it before you sell licences.
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026 the Aurum Grid authors. All rights reserved.
|
|
6
|
+
|
|
7
|
+
## 1. Evaluation
|
|
8
|
+
You may install and use Aurum Grid ("the Software") free of charge for **30 days** to evaluate it. During and after
|
|
9
|
+
evaluation the Software runs unmodified; after 30 days without a valid licence key it displays an
|
|
10
|
+
"unlicensed" watermark and console notice.
|
|
11
|
+
|
|
12
|
+
## 2. Annual developer licence
|
|
13
|
+
A licence costs **USD 50 per developer per year**. Each licensed developer may use the Software to build an
|
|
14
|
+
unlimited number of applications and deploy them to an unlimited number of end users. The licence key must be
|
|
15
|
+
renewed every year to keep receiving updates and to keep the watermark removed in newly built versions.
|
|
16
|
+
|
|
17
|
+
## 3. Restrictions
|
|
18
|
+
You may not: (a) redistribute the Software as a standalone component library or competing product;
|
|
19
|
+
(b) remove, alter or circumvent the licence checks or watermark; (c) share licence keys between developers
|
|
20
|
+
beyond the purchased seat count.
|
|
21
|
+
|
|
22
|
+
## 4. No warranty
|
|
23
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
|
|
24
|
+
ANY CLAIM, DAMAGES OR OTHER LIABILITY ARISING FROM THE USE OF THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @aurum-grid/license
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Aurum Grid licensing: 30-day trial and signed annual license keys.
|
|
4
|
+
|
|
5
|
+
Part of **Aurum Grid** — the enterprise data grid. See the main documentation: https://github.com/YOUR_ORG/aurum-grid#readme
|
|
6
|
+
|
|
7
|
+
Licensing: 30-day evaluation, then $50 per developer per year. See LICENSE.md.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare const TRIAL_DAYS = 30;
|
|
2
|
+
export interface LicensePayload {
|
|
3
|
+
v: 1;
|
|
4
|
+
product: 'aurum-grid-enterprise';
|
|
5
|
+
licensee: string;
|
|
6
|
+
/** ISO date (YYYY-MM-DD) */
|
|
7
|
+
issued: string;
|
|
8
|
+
/** ISO date (YYYY-MM-DD) — renewal date */
|
|
9
|
+
expires: string;
|
|
10
|
+
seats?: number;
|
|
11
|
+
id: string;
|
|
12
|
+
}
|
|
13
|
+
export type LicenseState = 'valid' | 'trial' | 'trial-expired' | 'expired' | 'invalid' | 'checking';
|
|
14
|
+
export interface LicenseStatus {
|
|
15
|
+
state: LicenseState;
|
|
16
|
+
licensee?: string;
|
|
17
|
+
expires?: string;
|
|
18
|
+
daysLeft?: number;
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
type Listener = (status: LicenseStatus) => void;
|
|
22
|
+
export declare function base64UrlToBytes(s: string): Uint8Array<ArrayBuffer>;
|
|
23
|
+
export declare function bytesToBase64Url(bytes: Uint8Array): string;
|
|
24
|
+
export declare function parseLicenseKey(key: string): {
|
|
25
|
+
payload: LicensePayload;
|
|
26
|
+
body: string;
|
|
27
|
+
sig: Uint8Array<ArrayBuffer>;
|
|
28
|
+
} | null;
|
|
29
|
+
/** Verify signature with WebCrypto Ed25519. Resolves false if unsupported or invalid. */
|
|
30
|
+
export declare function verifyLicenseSignature(key: string, publicKeyB64?: string): Promise<LicensePayload | null>;
|
|
31
|
+
/** Day count left in an evaluation that started at `startMs`. */
|
|
32
|
+
export declare function trialDaysLeft(startMs: number, nowMs?: number): number;
|
|
33
|
+
declare class LicenseManagerImpl {
|
|
34
|
+
private status;
|
|
35
|
+
private listeners;
|
|
36
|
+
private key;
|
|
37
|
+
private now;
|
|
38
|
+
private pending;
|
|
39
|
+
/** Call once at app start-up, before creating grids. */
|
|
40
|
+
setLicenseKey(key: string | null | undefined): Promise<LicenseStatus>;
|
|
41
|
+
/** Testing hook — override the clock. */
|
|
42
|
+
setClock(now: () => number): void;
|
|
43
|
+
getStatus(): LicenseStatus;
|
|
44
|
+
ready(): Promise<LicenseStatus>;
|
|
45
|
+
subscribe(fn: Listener): () => void;
|
|
46
|
+
private trialStart;
|
|
47
|
+
evaluate(): Promise<LicenseStatus>;
|
|
48
|
+
}
|
|
49
|
+
export declare const LicenseManager: LicenseManagerImpl;
|
|
50
|
+
/** Whether the grid should paint the evaluation watermark. */
|
|
51
|
+
export declare function needsWatermark(status: LicenseStatus): boolean;
|
|
52
|
+
export {};
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aurum Grid licensing.
|
|
3
|
+
*
|
|
4
|
+
* Model: every install gets a 30-day evaluation trial. After that a signed
|
|
5
|
+
* annual license key ($50/year) removes the watermark and console notices.
|
|
6
|
+
*
|
|
7
|
+
* Keys are `AGRID1.<base64url payload>.<base64url Ed25519 signature>`.
|
|
8
|
+
* Only the holder of the private signing key (kept OUT of the repo) can mint
|
|
9
|
+
* keys; the library ships just the public key, so keys cannot be forged.
|
|
10
|
+
*
|
|
11
|
+
* Like other commercial JS grids, an expired/missing license never breaks the
|
|
12
|
+
* host application — it shows a watermark and a console notice instead.
|
|
13
|
+
*/
|
|
14
|
+
import { PUBLIC_KEY_B64 } from './public-key.js';
|
|
15
|
+
export const TRIAL_DAYS = 30;
|
|
16
|
+
const DAY = 86_400_000;
|
|
17
|
+
const TRIAL_STORAGE_KEY = 'aurum-grid.trial-start';
|
|
18
|
+
export function base64UrlToBytes(s) {
|
|
19
|
+
const b64 = s.replace(/-/g, '+').replace(/_/g, '/') + '==='.slice((s.length + 3) % 4);
|
|
20
|
+
const bin = atob(b64);
|
|
21
|
+
const out = new Uint8Array(new ArrayBuffer(bin.length));
|
|
22
|
+
for (let i = 0; i < bin.length; i++)
|
|
23
|
+
out[i] = bin.charCodeAt(i);
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
export function bytesToBase64Url(bytes) {
|
|
27
|
+
let bin = '';
|
|
28
|
+
for (const b of bytes)
|
|
29
|
+
bin += String.fromCharCode(b);
|
|
30
|
+
return btoa(bin).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
31
|
+
}
|
|
32
|
+
export function parseLicenseKey(key) {
|
|
33
|
+
const parts = key.trim().split('.');
|
|
34
|
+
if (parts.length !== 3 || parts[0] !== 'AGRID1')
|
|
35
|
+
return null;
|
|
36
|
+
try {
|
|
37
|
+
const json = new TextDecoder().decode(base64UrlToBytes(parts[1]));
|
|
38
|
+
const payload = JSON.parse(json);
|
|
39
|
+
if (payload.v !== 1 || payload.product !== 'aurum-grid-enterprise' || !payload.expires)
|
|
40
|
+
return null;
|
|
41
|
+
return { payload, body: `${parts[0]}.${parts[1]}`, sig: base64UrlToBytes(parts[2]) };
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/** Verify signature with WebCrypto Ed25519. Resolves false if unsupported or invalid. */
|
|
48
|
+
export async function verifyLicenseSignature(key, publicKeyB64 = PUBLIC_KEY_B64) {
|
|
49
|
+
const parsed = parseLicenseKey(key);
|
|
50
|
+
if (!parsed)
|
|
51
|
+
return null;
|
|
52
|
+
const subtle = globalThis.crypto?.subtle;
|
|
53
|
+
if (!subtle)
|
|
54
|
+
return null;
|
|
55
|
+
try {
|
|
56
|
+
const pub = await subtle.importKey('raw', base64UrlToBytes(publicKeyB64), { name: 'Ed25519' }, false, ['verify']);
|
|
57
|
+
const ok = await subtle.verify({ name: 'Ed25519' }, pub, parsed.sig, new TextEncoder().encode(parsed.body));
|
|
58
|
+
return ok ? parsed.payload : null;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function safeStorage() {
|
|
65
|
+
try {
|
|
66
|
+
return globalThis.localStorage ?? null;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** Day count left in an evaluation that started at `startMs`. */
|
|
73
|
+
export function trialDaysLeft(startMs, nowMs = Date.now()) {
|
|
74
|
+
return Math.max(0, TRIAL_DAYS - Math.floor((nowMs - startMs) / DAY));
|
|
75
|
+
}
|
|
76
|
+
class LicenseManagerImpl {
|
|
77
|
+
status = { state: 'checking', message: 'Checking license…' };
|
|
78
|
+
listeners = new Set();
|
|
79
|
+
key = null;
|
|
80
|
+
now = () => Date.now();
|
|
81
|
+
pending = null;
|
|
82
|
+
/** Call once at app start-up, before creating grids. */
|
|
83
|
+
setLicenseKey(key) {
|
|
84
|
+
this.key = key?.trim() || null;
|
|
85
|
+
return this.evaluate();
|
|
86
|
+
}
|
|
87
|
+
/** Testing hook — override the clock. */
|
|
88
|
+
setClock(now) {
|
|
89
|
+
this.now = now;
|
|
90
|
+
}
|
|
91
|
+
getStatus() {
|
|
92
|
+
if (this.status.state === 'checking' && !this.pending)
|
|
93
|
+
void this.evaluate();
|
|
94
|
+
return this.status;
|
|
95
|
+
}
|
|
96
|
+
ready() {
|
|
97
|
+
return this.pending ?? this.evaluate();
|
|
98
|
+
}
|
|
99
|
+
subscribe(fn) {
|
|
100
|
+
this.listeners.add(fn);
|
|
101
|
+
return () => this.listeners.delete(fn);
|
|
102
|
+
}
|
|
103
|
+
trialStart() {
|
|
104
|
+
const store = safeStorage();
|
|
105
|
+
const raw = store?.getItem(TRIAL_STORAGE_KEY);
|
|
106
|
+
const parsed = raw ? Number(raw) : NaN;
|
|
107
|
+
if (Number.isFinite(parsed) && parsed > 0 && parsed <= this.now())
|
|
108
|
+
return parsed;
|
|
109
|
+
const start = this.now();
|
|
110
|
+
store?.setItem(TRIAL_STORAGE_KEY, String(start));
|
|
111
|
+
return start;
|
|
112
|
+
}
|
|
113
|
+
evaluate() {
|
|
114
|
+
const run = async () => {
|
|
115
|
+
let next;
|
|
116
|
+
if (this.key) {
|
|
117
|
+
const payload = await verifyLicenseSignature(this.key);
|
|
118
|
+
if (!payload) {
|
|
119
|
+
next = { state: 'invalid', message: 'Aurum Grid: the license key is not valid. Showing evaluation watermark.' };
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const expMs = Date.parse(payload.expires + 'T23:59:59Z');
|
|
123
|
+
const daysLeft = Math.ceil((expMs - this.now()) / DAY);
|
|
124
|
+
next =
|
|
125
|
+
daysLeft > 0
|
|
126
|
+
? { state: 'valid', licensee: payload.licensee, expires: payload.expires, daysLeft, message: `Licensed to ${payload.licensee} until ${payload.expires}` }
|
|
127
|
+
: { state: 'expired', licensee: payload.licensee, expires: payload.expires, daysLeft: 0, message: `Aurum Grid: the license for ${payload.licensee} expired on ${payload.expires}. Renew at $50/year.` };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const left = trialDaysLeft(this.trialStart(), this.now());
|
|
132
|
+
next =
|
|
133
|
+
left > 0
|
|
134
|
+
? { state: 'trial', daysLeft: left, message: `Aurum Grid evaluation: ${left} day${left === 1 ? '' : 's'} left` }
|
|
135
|
+
: { state: 'trial-expired', daysLeft: 0, message: 'Aurum Grid: the 30-day evaluation has ended. Purchase a $50/year license to remove the watermark.' };
|
|
136
|
+
}
|
|
137
|
+
this.status = next;
|
|
138
|
+
if (next.state !== 'valid' && next.state !== 'trial' && typeof console !== 'undefined') {
|
|
139
|
+
console.warn(next.message);
|
|
140
|
+
}
|
|
141
|
+
for (const l of this.listeners)
|
|
142
|
+
l(next);
|
|
143
|
+
return next;
|
|
144
|
+
};
|
|
145
|
+
this.pending = run();
|
|
146
|
+
return this.pending;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export const LicenseManager = new LicenseManagerImpl();
|
|
150
|
+
/** Whether the grid should paint the evaluation watermark. */
|
|
151
|
+
export function needsWatermark(status) {
|
|
152
|
+
return status.state === 'trial-expired' || status.state === 'expired' || status.state === 'invalid';
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const PUBLIC_KEY_B64 = "IQC4ON8bImkEcr3hUlED3YcfxlY7p2CR8ECEtBmcJV0";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-key.js","sourceRoot":"","sources":["../src/public-key.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG,6CAA6C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aurum-grid/license",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Aurum Grid licensing: 30-day trial and signed annual license keys.",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"LICENSE.md",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"sideEffects": [
|
|
21
|
+
"*.css"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"data grid",
|
|
29
|
+
"datagrid",
|
|
30
|
+
"table",
|
|
31
|
+
"enterprise",
|
|
32
|
+
"pivot",
|
|
33
|
+
"ag-grid alternative"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc -p tsconfig.json",
|
|
37
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
38
|
+
}
|
|
6
39
|
}
|