@crela/license 1.0.0 → 1.0.2

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/dist/index.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  /**
2
- * Crela License SDK v3 - Node.js / Electron
2
+ * Crela License SDK - Node.js / Electron
3
3
  *
4
- * Pflicht-Integration fuer Tools auf dem Crela-Marktplatz (paid + free).
5
- * Die SDK liest ein vom Crela-Launcher signiertes JWT entweder aus der
6
- * Umgebungsvariable `CRELA_LICENSE_JWT` oder aus einer gemeinsamen
7
- * Cache-Datei und verifiziert es offline gegen einen einkompilierten
8
- * Ed25519-Public-Key. Es findet kein Netzwerk-Aufruf statt.
4
+ * Required integration for tools on the Crela marketplace (paid and free).
5
+ * The SDK reads a JWT signed by the Crela launcher, either from the
6
+ * environment variable `CRELA_LICENSE_JWT` or from a shared cache file, and
7
+ * verifies it offline against a compiled-in Ed25519 public key. No network
8
+ * call happens.
9
9
  *
10
- * Typische Nutzung in Electron-`main.ts`:
10
+ * Typical use in an Electron `main.ts`:
11
11
  *
12
12
  * import { verifyOrExit, CRELA_SDK_MARKER } from '@crela/license'
13
- * verifyOrExit('mein-tool', CRELA_SDK_MARKER)
13
+ * verifyOrExit('my-tool', CRELA_SDK_MARKER)
14
14
  *
15
- * Marker und Public-Key werden ueblicherweise via Bundler-Define beim
16
- * Build injiziert oder aus einer build-time-generierten Datei gelesen.
15
+ * Marker and public key are usually injected through a bundler define at
16
+ * build time, or read from a file generated during the build.
17
17
  */
18
- /** Prefix des v2-Markers; der vollstaendige Token kommt vom Creator-Dashboard. */
18
+ /** Prefix of the v2 marker; the full token comes from the creator dashboard. */
19
19
  export declare const CRELA_SDK_MARKER_PREFIX: "CRELA_SDKv2_";
20
20
  export declare const CRELA_SDK_MARKER_CONST: string | undefined;
21
21
  export declare class LicenseError extends Error {
@@ -24,40 +24,41 @@ export declare class LicenseError extends Error {
24
24
  }
25
25
  export type LicenseErrorCode = 'NOT_LAUNCHED_FROM_CRELA' | 'INVALID_JWT_FORMAT' | 'INVALID_SIGNATURE' | 'EXPIRED' | 'WRONG_TOOL' | 'WRONG_DEVICE' | 'MISSING_CLAIM' | 'INVALID_PUBKEY' | 'INVALID_MARKER';
26
26
  export interface LicenseClaims {
27
- /** License-ID (UUID) */
27
+ /** Licence id (UUID) */
28
28
  sub: string;
29
29
  /** Tool-Slug */
30
30
  tool: string;
31
31
  /** Device-Fingerprint */
32
32
  fp: string;
33
- /** Unix-Timestamp Ausstellung */
33
+ /** Unix timestamp, issued at */
34
34
  iat: number;
35
- /** Unix-Timestamp Ablauf */
35
+ /** Unix timestamp, expires at */
36
36
  exp: number;
37
- /** Grace-Period in Sekunden */
37
+ /** Grace period in seconds */
38
38
  grace: number;
39
- /** True wenn CRELA_DEV_MODE=1 (Verifikation uebersprungen) */
39
+ /** True when CRELA_DEV_MODE=1 (verification skipped) */
40
40
  isDev: boolean;
41
41
  }
42
42
  export interface VerifierOptions {
43
- /** Tool-Slug, muss mit JWT-Claim `tool` matchen */
43
+ /** Tool slug; must match the `tool` claim in the licence */
44
44
  toolSlug: string;
45
- /** Marker-Token aus dem Creator-Dashboard. Muss mit CRELA_SDKv2_ beginnen. */
45
+ /** Marker token from the creator dashboard. Must start with CRELA_SDKv2_. */
46
46
  markerToken: string;
47
- /** Ed25519-Public-Key (32 Bytes hex). Default: BUILD_TIME_PUBKEY_HEX-Konstante. */
47
+ /** Ed25519 public key (32 bytes hex). Defaults to the BUILD_TIME_PUBKEY_HEX constant. */
48
48
  pubkeyHex?: string;
49
- /** Cache-Pfad ueberschreiben (Default: <DATA_LOCAL>/crela/licenses/<slug>.jwt). */
49
+ /** Override the cache path (default: <DATA_LOCAL>/crela/licenses/<slug>.jwt). */
50
50
  cachePath?: string;
51
51
  /**
52
- * Dev-Mode (`CRELA_DEV_MODE=1`) zulassen. Default: FALSE. Muss fuer lokale
53
- * Entwicklung explizit aktiviert werden; ausgelieferte Tools lassen es aus,
54
- * damit Endnutzer die Lizenzpruefung nicht per Umgebungsvariable umgehen.
52
+ * Allow dev mode (`CRELA_DEV_MODE=1`). Defaults to FALSE and has to be
53
+ * enabled explicitly for local development. Shipped tools leave it off, so
54
+ * that end users cannot bypass the licence check with an environment
55
+ * variable.
55
56
  */
56
57
  allowDevMode?: boolean;
57
58
  /**
58
- * Lokalen Geraete-Fingerprint ueberschreiben (nur fuer Tests). Production
59
- * nutzt die machine-id (node-machine-id, original) - dieselbe Quelle wie der
60
- * Launcher.
59
+ * Override the local device fingerprint (tests only). Production uses the
60
+ * machine id (node-machine-id, original) - the same source the launcher
61
+ * uses.
61
62
  */
62
63
  deviceFp?: string;
63
64
  }
@@ -69,14 +70,14 @@ export declare class LicenseVerifier {
69
70
  private readonly deviceFp;
70
71
  constructor(opts: VerifierOptions);
71
72
  /**
72
- * Lokaler Geraete-Fingerprint. Quelle ist node-machine-id (original) - die
73
- * MachineGuid/IOPlatformUUID/machine-id, exakt das, was der Launcher
74
- * (machine-uid 0.5) ins JWT schreibt. Ein gesetztes Override hat Vorrang
75
- * (Tests). Liefert null, wenn die ID nicht ermittelbar ist.
73
+ * Local device fingerprint. The source is node-machine-id (original) - the
74
+ * MachineGuid / IOPlatformUUID / machine-id, exactly what the launcher
75
+ * (machine-uid 0.5) writes into the licence. An override wins if set
76
+ * (tests). Returns null when the id cannot be determined.
76
77
  */
77
78
  private resolveDeviceFp;
78
79
  verify(): LicenseClaims;
79
- /** Bei Fehler: stderr-Meldung + process.exit(0xC1). */
80
+ /** On failure: message on stderr + process.exit(0xC1). */
80
81
  verifyOrExit(): LicenseClaims;
81
82
  private resolveToken;
82
83
  private resolveCachePath;
@@ -86,6 +87,6 @@ export declare class LicenseVerifier {
86
87
  }
87
88
  /** Convenience: verifiziert und exitet bei Fehler. */
88
89
  export declare function verifyOrExit(toolSlug: string, markerToken: string, pubkeyHex?: string): LicenseClaims;
89
- /** Fingerprint-Helfer (oeffentlich fuer Apps die ihn loggen). */
90
+ /** Fingerprint helper, public for apps that want to log it. */
90
91
  export declare function deviceFingerprint(): string;
91
92
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,EAAG,cAAuB,CAAA;AAY9D,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG,SAC0B,CAAA;AAIxE,qBAAa,YAAa,SAAQ,KAAK;IAClB,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAI3D;AAED,MAAM,MAAM,gBAAgB,GACxB,yBAAyB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,GACT,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,gBAAgB,CAAA;AAEpB,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAiBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,IAAI,EAAE,eAAe;IAYjC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB,MAAM,IAAI,aAAa;IAoCvB,uDAAuD;IACvD,YAAY,IAAI,aAAa;IAW7B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;CAgDlB;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAErG;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,EAAG,cAAuB,CAAA;AAY9D,eAAO,MAAM,sBAAsB,EAAE,MAAM,GAAG,SAC0B,CAAA;AAIxE,qBAAa,YAAa,SAAQ,KAAK;IAClB,IAAI,EAAE,gBAAgB;gBAAtB,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;CAI3D;AAED,MAAM,MAAM,gBAAgB,GACxB,yBAAyB,GACzB,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,GACT,YAAY,GACZ,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,gBAAgB,CAAA;AAEpB,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,wDAAwD;IACxD,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAA;IACnB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAiBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,IAAI,EAAE,eAAe;IAYjC;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAavB,MAAM,IAAI,aAAa;IAoCvB,0DAA0D;IAC1D,YAAY,IAAI,aAAa;IAW7B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,SAAS;CAgDlB;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAErG;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C"}
package/dist/index.js CHANGED
@@ -1,19 +1,19 @@
1
1
  /**
2
- * Crela License SDK v3 - Node.js / Electron
2
+ * Crela License SDK - Node.js / Electron
3
3
  *
4
- * Pflicht-Integration fuer Tools auf dem Crela-Marktplatz (paid + free).
5
- * Die SDK liest ein vom Crela-Launcher signiertes JWT entweder aus der
6
- * Umgebungsvariable `CRELA_LICENSE_JWT` oder aus einer gemeinsamen
7
- * Cache-Datei und verifiziert es offline gegen einen einkompilierten
8
- * Ed25519-Public-Key. Es findet kein Netzwerk-Aufruf statt.
4
+ * Required integration for tools on the Crela marketplace (paid and free).
5
+ * The SDK reads a JWT signed by the Crela launcher, either from the
6
+ * environment variable `CRELA_LICENSE_JWT` or from a shared cache file, and
7
+ * verifies it offline against a compiled-in Ed25519 public key. No network
8
+ * call happens.
9
9
  *
10
- * Typische Nutzung in Electron-`main.ts`:
10
+ * Typical use in an Electron `main.ts`:
11
11
  *
12
12
  * import { verifyOrExit, CRELA_SDK_MARKER } from '@crela/license'
13
- * verifyOrExit('mein-tool', CRELA_SDK_MARKER)
13
+ * verifyOrExit('my-tool', CRELA_SDK_MARKER)
14
14
  *
15
- * Marker und Public-Key werden ueblicherweise via Bundler-Define beim
16
- * Build injiziert oder aus einer build-time-generierten Datei gelesen.
15
+ * Marker and public key are usually injected through a bundler define at
16
+ * build time, or read from a file generated during the build.
17
17
  */
18
18
  import { readFileSync } from 'node:fs';
19
19
  import { existsSync } from 'node:fs';
@@ -21,7 +21,7 @@ import { join } from 'node:path';
21
21
  import { homedir, hostname, platform } from 'node:os';
22
22
  import { createRequire } from 'node:module';
23
23
  import { createHash, createPublicKey, verify as cryptoVerify } from 'node:crypto';
24
- /** Prefix des v2-Markers; der vollstaendige Token kommt vom Creator-Dashboard. */
24
+ /** Prefix of the v2 marker; the full token comes from the creator dashboard. */
25
25
  export const CRELA_SDK_MARKER_PREFIX = 'CRELA_SDKv2_';
26
26
  export const CRELA_SDK_MARKER_CONST = typeof CRELA_SDK_MARKER !== 'undefined' ? CRELA_SDK_MARKER : undefined;
27
27
  const SKEW_SECONDS = 300; // 5 Minuten Clock-Skew-Toleranz
@@ -34,11 +34,11 @@ export class LicenseError extends Error {
34
34
  }
35
35
  }
36
36
  /**
37
- * Production-Public-Key fuer Ed25519-JWT-Verifikation gegen crela.io.
38
- * Pubkey aus dem `x`-Feld der Production CRELA_LICENSE_SIGNING_JWK,
39
- * base64url-decoded und als 32-Byte-Hex. Wird als Default genutzt, kann
40
- * via Bundler-Define (CRELA_LICENSE_PUBKEY_HEX) ueberschrieben werden
41
- * (z.B. fuer Self-Hosted-Crela-Instanzen).
37
+ * Production public key for Ed25519 JWT verification against crela.io.
38
+ * Taken from the `x` field of the production CRELA_LICENSE_SIGNING_JWK,
39
+ * base64url-decoded, as 32-byte hex. Used as the default and overridable
40
+ * through a bundler define (CRELA_LICENSE_PUBKEY_HEX), e.g. for self-hosted
41
+ * Crela instances.
42
42
  */
43
43
  const PRODUCTION_PUBKEY_HEX = 'c6c37639c659cb9168d6af510d9696d141d980c5145212232f800b21a8210231';
44
44
  const BUILD_TIME_PUBKEY_HEX = typeof CRELA_LICENSE_PUBKEY_HEX !== 'undefined' && CRELA_LICENSE_PUBKEY_HEX.length === 64
@@ -52,9 +52,9 @@ export class LicenseVerifier {
52
52
  deviceFp;
53
53
  constructor(opts) {
54
54
  if (!opts.toolSlug)
55
- throw new LicenseError('MISSING_CLAIM', 'toolSlug ist erforderlich');
55
+ throw new LicenseError('MISSING_CLAIM', 'toolSlug is required');
56
56
  if (!opts.markerToken || !opts.markerToken.startsWith(CRELA_SDK_MARKER_PREFIX)) {
57
- throw new LicenseError('INVALID_MARKER', `markerToken muss mit "${CRELA_SDK_MARKER_PREFIX}" beginnen`);
57
+ throw new LicenseError('INVALID_MARKER', `markerToken must start with "${CRELA_SDK_MARKER_PREFIX}"`);
58
58
  }
59
59
  this.toolSlug = opts.toolSlug;
60
60
  this.pubkeyHex = opts.pubkeyHex ?? BUILD_TIME_PUBKEY_HEX;
@@ -63,10 +63,10 @@ export class LicenseVerifier {
63
63
  this.deviceFp = opts.deviceFp;
64
64
  }
65
65
  /**
66
- * Lokaler Geraete-Fingerprint. Quelle ist node-machine-id (original) - die
67
- * MachineGuid/IOPlatformUUID/machine-id, exakt das, was der Launcher
68
- * (machine-uid 0.5) ins JWT schreibt. Ein gesetztes Override hat Vorrang
69
- * (Tests). Liefert null, wenn die ID nicht ermittelbar ist.
66
+ * Local device fingerprint. The source is node-machine-id (original) - the
67
+ * MachineGuid / IOPlatformUUID / machine-id, exactly what the launcher
68
+ * (machine-uid 0.5) writes into the licence. An override wins if set
69
+ * (tests). Returns null when the id cannot be determined.
70
70
  */
71
71
  resolveDeviceFp() {
72
72
  if (this.deviceFp !== undefined)
@@ -87,11 +87,11 @@ export class LicenseVerifier {
87
87
  const token = this.resolveToken();
88
88
  const claims = this.verifyJwt(token);
89
89
  if (claims.tool !== this.toolSlug) {
90
- throw new LicenseError('WRONG_TOOL', `JWT ist fuer "${claims.tool}" ausgestellt, erwartet "${this.toolSlug}"`);
90
+ throw new LicenseError('WRONG_TOOL', `Licence was issued for "${claims.tool}", expected "${this.toolSlug}"`);
91
91
  }
92
92
  const now = nowSeconds();
93
93
  if (claims.exp + SKEW_SECONDS < now) {
94
- throw new LicenseError('EXPIRED', 'JWT ist abgelaufen');
94
+ throw new LicenseError('EXPIRED', 'Licence has expired');
95
95
  }
96
96
  // Geraetebindung: der fp-Claim muss zur lokalen Maschine passen, sonst
97
97
  // laesst sich ein gueltiges Token einfach auf beliebig viele Rechner
@@ -100,11 +100,11 @@ export class LicenseVerifier {
100
100
  // ermittelbar ist (ein vom Launcher gestartetes Tool hat immer eine).
101
101
  const localFp = this.resolveDeviceFp();
102
102
  if (localFp === null || localFp.toLowerCase() !== claims.fp.toLowerCase()) {
103
- throw new LicenseError('WRONG_DEVICE', 'JWT ist an ein anderes Geraet gebunden (Lizenz wurde auf eine fremde Maschine kopiert)');
103
+ throw new LicenseError('WRONG_DEVICE', 'Licence is bound to a different device (it was copied from another machine)');
104
104
  }
105
105
  return claims;
106
106
  }
107
- /** Bei Fehler: stderr-Meldung + process.exit(0xC1). */
107
+ /** On failure: message on stderr + process.exit(0xC1). */
108
108
  verifyOrExit() {
109
109
  try {
110
110
  return this.verify();
@@ -112,7 +112,7 @@ export class LicenseVerifier {
112
112
  catch (e) {
113
113
  const msg = e instanceof Error ? e.message : String(e);
114
114
  process.stderr.write(`crela-license: ${msg}\n`);
115
- process.stderr.write('Bitte starte diese App ueber den Crela Launcher.\n');
115
+ process.stderr.write('Please start this app through the Crela launcher.\n');
116
116
  process.exit(0xc1);
117
117
  }
118
118
  }
@@ -123,7 +123,7 @@ export class LicenseVerifier {
123
123
  const cached = this.readCacheFile();
124
124
  if (cached)
125
125
  return cached;
126
- throw new LicenseError('NOT_LAUNCHED_FROM_CRELA', 'Kein Lizenz-Token gefunden (weder env-var noch Cache-File). Bitte starte diese App ueber den Crela Launcher.');
126
+ throw new LicenseError('NOT_LAUNCHED_FROM_CRELA', 'No licence token found (neither env var nor cache file). Please start this app through the Crela launcher.');
127
127
  }
128
128
  resolveCachePath() {
129
129
  if (this.cachePath)
@@ -156,11 +156,11 @@ export class LicenseVerifier {
156
156
  }
157
157
  verifyJwt(token) {
158
158
  if (!this.pubkeyHex || this.pubkeyHex.length !== 64) {
159
- throw new LicenseError('INVALID_PUBKEY', 'Ed25519-Public-Key fehlt oder ist ungueltig');
159
+ throw new LicenseError('INVALID_PUBKEY', 'Ed25519 public key is missing or malformed');
160
160
  }
161
161
  const parts = token.split('.');
162
162
  if (parts.length !== 3) {
163
- throw new LicenseError('INVALID_JWT_FORMAT', 'JWT-Format ungueltig');
163
+ throw new LicenseError('INVALID_JWT_FORMAT', 'Malformed licence token');
164
164
  }
165
165
  let payloadBytes;
166
166
  let sigBytes;
@@ -169,23 +169,23 @@ export class LicenseVerifier {
169
169
  sigBytes = base64UrlDecode(parts[2]);
170
170
  }
171
171
  catch {
172
- throw new LicenseError('INVALID_JWT_FORMAT', 'JWT-Base64-Decode fehlgeschlagen');
172
+ throw new LicenseError('INVALID_JWT_FORMAT', 'Licence token is not valid base64');
173
173
  }
174
174
  if (sigBytes.length !== 64) {
175
- throw new LicenseError('INVALID_JWT_FORMAT', `JWT-Signatur falsche Laenge: ${sigBytes.length}`);
175
+ throw new LicenseError('INVALID_JWT_FORMAT', `Licence signature has wrong length: ${sigBytes.length}`);
176
176
  }
177
177
  const signingInput = Buffer.from(`${parts[0]}.${parts[1]}`);
178
178
  const pubkey = ed25519PublicKey(this.pubkeyHex);
179
179
  const ok = cryptoVerify(null, signingInput, pubkey, sigBytes);
180
180
  if (!ok) {
181
- throw new LicenseError('INVALID_SIGNATURE', 'JWT-Signatur konnte nicht verifiziert werden');
181
+ throw new LicenseError('INVALID_SIGNATURE', 'Licence signature could not be verified');
182
182
  }
183
183
  let raw;
184
184
  try {
185
185
  raw = JSON.parse(payloadBytes.toString('utf-8'));
186
186
  }
187
187
  catch {
188
- throw new LicenseError('INVALID_JWT_FORMAT', 'JWT-Payload ist kein gueltiges JSON');
188
+ throw new LicenseError('INVALID_JWT_FORMAT', 'Licence payload is not valid JSON');
189
189
  }
190
190
  return {
191
191
  sub: requireString(raw, 'sub'),
@@ -202,7 +202,7 @@ export class LicenseVerifier {
202
202
  export function verifyOrExit(toolSlug, markerToken, pubkeyHex) {
203
203
  return new LicenseVerifier({ toolSlug, markerToken, pubkeyHex }).verifyOrExit();
204
204
  }
205
- /** Fingerprint-Helfer (oeffentlich fuer Apps die ihn loggen). */
205
+ /** Fingerprint helper, public for apps that want to log it. */
206
206
  export function deviceFingerprint() {
207
207
  const h = createHash('sha256');
208
208
  try {
@@ -240,14 +240,14 @@ function nowSeconds() {
240
240
  function requireString(o, key) {
241
241
  const v = o[key];
242
242
  if (typeof v !== 'string' || v.length === 0) {
243
- throw new LicenseError('MISSING_CLAIM', `JWT-Claim "${key}" fehlt oder ist kein String`);
243
+ throw new LicenseError('MISSING_CLAIM', `Licence claim "${key}" is missing or not a string`);
244
244
  }
245
245
  return v;
246
246
  }
247
247
  function requireNumber(o, key) {
248
248
  const v = o[key];
249
249
  if (typeof v !== 'number') {
250
- throw new LicenseError('MISSING_CLAIM', `JWT-Claim "${key}" fehlt oder ist keine Number`);
250
+ throw new LicenseError('MISSING_CLAIM', `Licence claim "${key}" is missing or not a number`);
251
251
  }
252
252
  return v;
253
253
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crela/license",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "License verification SDK for Crela marketplace tools (Node.js / Electron). Reads JWT from launcher-injected env var or cache file, verifies offline via Ed25519.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -39,7 +39,7 @@
39
39
  "homepage": "https://crela.io/docs#sdk-marker",
40
40
  "repository": {
41
41
  "type": "git",
42
- "url": "https://github.com/Boniihhh/Crela",
42
+ "url": "git+https://github.com/Boniihhh/Crela.git",
43
43
  "directory": "packages/sdk-node"
44
44
  },
45
45
  "devDependencies": {