@openleash/core 0.3.0 → 0.5.3

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.
Files changed (57) hide show
  1. package/dist/audit.d.ts +45 -0
  2. package/dist/audit.d.ts.map +1 -1
  3. package/dist/audit.js +232 -5
  4. package/dist/audit.js.map +1 -1
  5. package/dist/file-store.d.ts +19 -0
  6. package/dist/file-store.d.ts.map +1 -0
  7. package/dist/file-store.js +233 -0
  8. package/dist/file-store.js.map +1 -0
  9. package/dist/identity-validators.d.ts +26 -0
  10. package/dist/identity-validators.d.ts.map +1 -0
  11. package/dist/identity-validators.js +664 -0
  12. package/dist/identity-validators.js.map +1 -0
  13. package/dist/identity.d.ts +250 -0
  14. package/dist/identity.d.ts.map +1 -0
  15. package/dist/identity.js +244 -0
  16. package/dist/identity.js.map +1 -0
  17. package/dist/index.d.ts +8 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +8 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/keys.d.ts +2 -0
  22. package/dist/keys.d.ts.map +1 -1
  23. package/dist/keys.js +2 -0
  24. package/dist/keys.js.map +1 -1
  25. package/dist/passphrase.d.ts +6 -0
  26. package/dist/passphrase.d.ts.map +1 -0
  27. package/dist/passphrase.js +61 -0
  28. package/dist/passphrase.js.map +1 -0
  29. package/dist/plugin-loader.d.ts +6 -0
  30. package/dist/plugin-loader.d.ts.map +1 -0
  31. package/dist/plugin-loader.js +24 -0
  32. package/dist/plugin-loader.js.map +1 -0
  33. package/dist/state.d.ts +47 -1
  34. package/dist/state.d.ts.map +1 -1
  35. package/dist/state.js +142 -0
  36. package/dist/state.js.map +1 -1
  37. package/dist/store.d.ts +61 -0
  38. package/dist/store.d.ts.map +1 -0
  39. package/dist/store.js +3 -0
  40. package/dist/store.js.map +1 -0
  41. package/dist/tokens.d.ts +35 -1
  42. package/dist/tokens.d.ts.map +1 -1
  43. package/dist/tokens.js +82 -0
  44. package/dist/tokens.js.map +1 -1
  45. package/dist/totp.d.ts +15 -0
  46. package/dist/totp.d.ts.map +1 -0
  47. package/dist/totp.js +149 -0
  48. package/dist/totp.js.map +1 -0
  49. package/dist/types.d.ts +240 -75
  50. package/dist/types.d.ts.map +1 -1
  51. package/dist/types.js +38 -3
  52. package/dist/types.js.map +1 -1
  53. package/dist/webhook.d.ts +25 -0
  54. package/dist/webhook.d.ts.map +1 -0
  55. package/dist/webhook.js +114 -0
  56. package/dist/webhook.js.map +1 -0
  57. package/package.json +8 -4
package/dist/keys.js CHANGED
@@ -55,12 +55,14 @@ function generateSigningKey() {
55
55
  revoked_at: null,
56
56
  };
57
57
  }
58
+ /** @deprecated Use `store.keys.write()` instead. */
58
59
  function writeKeyFile(dataDir, key) {
59
60
  const keysDir = path.join(dataDir, 'keys');
60
61
  fs.mkdirSync(keysDir, { recursive: true });
61
62
  const filePath = path.join(keysDir, `${key.kid}.json`);
62
63
  fs.writeFileSync(filePath, JSON.stringify(key, null, 2), 'utf-8');
63
64
  }
65
+ /** @deprecated Use `store.keys.read()` instead. */
64
66
  function readKeyFile(dataDir, kid) {
65
67
  const filePath = path.join(dataDir, 'keys', `${kid}.json`);
66
68
  return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
package/dist/keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gDAcC;AAED,oCAKC;AAED,kCAGC;AAED,kDAGC;AAED,gDAGC;AAED,8DAGC;AA9CD,oDAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAGlC,SAAgB,kBAAkB;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAElF,OAAO;QACL,GAAG;QACH,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,OAAe,EAAE,GAAkB;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,SAAgB,WAAW,CAAC,OAAe,EAAE,GAAW;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAkB;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAkB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,yBAAyB,CAAC,YAAoB;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gDAcC;AAGD,oCAKC;AAGD,kCAGC;AAED,kDAGC;AAED,gDAGC;AAED,8DAGC;AAhDD,oDAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAGlC,SAAgB,kBAAkB;IAChC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAElF,OAAO;QACL,GAAG;QACH,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC/C,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACjD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,IAAI;KACjB,CAAC;AACJ,CAAC;AAED,oDAAoD;AACpD,SAAgB,YAAY,CAAC,OAAe,EAAE,GAAkB;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,mDAAmD;AACnD,SAAgB,WAAW,CAAC,OAAe,EAAE,GAAW;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAkB;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAkB;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAgB,yBAAyB,CAAC,YAAoB;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function hashPassphrase(passphrase: string, salt?: string): {
2
+ hash: string;
3
+ salt: string;
4
+ };
5
+ export declare function verifyPassphrase(passphrase: string, hash: string, salt: string): boolean;
6
+ //# sourceMappingURL=passphrase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passphrase.d.ts","sourceRoot":"","sources":["../src/passphrase.ts"],"names":[],"mappings":"AAOA,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQhC;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAQT"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.hashPassphrase = hashPassphrase;
37
+ exports.verifyPassphrase = verifyPassphrase;
38
+ const crypto = __importStar(require("node:crypto"));
39
+ const SCRYPT_N = 16384;
40
+ const SCRYPT_R = 8;
41
+ const SCRYPT_P = 1;
42
+ const KEY_LEN = 64;
43
+ function hashPassphrase(passphrase, salt) {
44
+ const usedSalt = salt ?? crypto.randomBytes(32).toString('base64');
45
+ const derived = crypto.scryptSync(passphrase, usedSalt, KEY_LEN, {
46
+ N: SCRYPT_N,
47
+ r: SCRYPT_R,
48
+ p: SCRYPT_P,
49
+ });
50
+ return { hash: derived.toString('base64'), salt: usedSalt };
51
+ }
52
+ function verifyPassphrase(passphrase, hash, salt) {
53
+ const derived = crypto.scryptSync(passphrase, salt, KEY_LEN, {
54
+ N: SCRYPT_N,
55
+ r: SCRYPT_R,
56
+ p: SCRYPT_P,
57
+ });
58
+ const expected = Buffer.from(hash, 'base64');
59
+ return crypto.timingSafeEqual(derived, expected);
60
+ }
61
+ //# sourceMappingURL=passphrase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passphrase.js","sourceRoot":"","sources":["../src/passphrase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wCAWC;AAED,4CAYC;AAhCD,oDAAsC;AAEtC,MAAM,QAAQ,GAAG,KAAK,CAAC;AACvB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,SAAgB,cAAc,CAC5B,UAAkB,EAClB,IAAa;IAEb,MAAM,QAAQ,GAAG,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE;QAC/D,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;KACZ,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB,CAC9B,UAAkB,EAClB,IAAY,EACZ,IAAY;IAEZ,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3D,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;QACX,CAAC,EAAE,QAAQ;KACZ,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { DataStore } from './store.js';
2
+ export declare function loadDataStore(storeConfig: {
3
+ type: string;
4
+ options?: Record<string, unknown>;
5
+ } | undefined, dataDir: string): Promise<DataStore>;
6
+ //# sourceMappingURL=plugin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.d.ts","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AAE7D,wBAAsB,aAAa,CACjC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAAS,EAC5E,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,SAAS,CAAC,CAyBpB"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadDataStore = loadDataStore;
4
+ const file_store_js_1 = require("./file-store.js");
5
+ async function loadDataStore(storeConfig, dataDir) {
6
+ if (!storeConfig || storeConfig.type === 'file') {
7
+ return (0, file_store_js_1.createFileDataStore)(dataDir);
8
+ }
9
+ const packageName = storeConfig.type;
10
+ let mod;
11
+ try {
12
+ mod = await import(packageName);
13
+ }
14
+ catch (err) {
15
+ throw new Error(`Failed to load store plugin "${packageName}". Is it installed?\n` +
16
+ ` npm install ${packageName}`, { cause: err });
17
+ }
18
+ const factory = (mod.default ?? mod.createDataStore);
19
+ if (typeof factory !== 'function') {
20
+ throw new Error(`Store plugin "${packageName}" must export a default function or named "createDataStore" function.`);
21
+ }
22
+ return factory(storeConfig.options);
23
+ }
24
+ //# sourceMappingURL=plugin-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../src/plugin-loader.ts"],"names":[],"mappings":";;AAGA,sCA4BC;AA/BD,mDAAsD;AAG/C,KAAK,UAAU,aAAa,CACjC,WAA4E,EAC5E,OAAe;IAEf,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChD,OAAO,IAAA,mCAAmB,EAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;IACrC,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,uBAAuB;YAClE,iBAAiB,WAAW,EAAE,EAC9B,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,CAAgC,CAAC;IACpF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,iBAAiB,WAAW,uEAAuE,CACpG,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
package/dist/state.d.ts CHANGED
@@ -1,12 +1,58 @@
1
- import type { AgentFrontmatter, OwnerFrontmatter, StateData } from './types.js';
1
+ import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter, OwnerFrontmatter, PolicyDraftFrontmatter, SetupInvite, StateApprovalRequestEntry, StateData } from './types.js';
2
+ /** @deprecated Use `store.state.getState()` instead. */
2
3
  export declare function readState(dataDir: string): StateData;
4
+ /** @deprecated Use `store.state.updateState()` instead. */
3
5
  export declare function writeState(dataDir: string, state: StateData): void;
4
6
  export declare function parseStateMd(content: string): StateData;
7
+ /** @deprecated Use `store.owners.write()` instead. */
5
8
  export declare function writeOwnerFile(dataDir: string, owner: OwnerFrontmatter, body?: string): void;
9
+ /** @deprecated Use `store.owners.read()` instead. */
6
10
  export declare function readOwnerFile(dataDir: string, ownerPrincipalId: string): OwnerFrontmatter;
11
+ /** @deprecated Use `store.agents.write()` instead. */
7
12
  export declare function writeAgentFile(dataDir: string, agent: AgentFrontmatter, body?: string): void;
13
+ /** @deprecated Use `store.agents.read()` instead. */
8
14
  export declare function readAgentFile(dataDir: string, agentPrincipalId: string): AgentFrontmatter;
15
+ /** @deprecated Use `store.policies.write()` instead. */
9
16
  export declare function writePolicyFile(dataDir: string, policyId: string, yamlContent: string): void;
17
+ /** @deprecated Use `store.policies.read()` instead. */
10
18
  export declare function readPolicyFile(dataDir: string, policyId: string): string;
19
+ /** @deprecated Use `store.policies.delete()` instead. */
11
20
  export declare function deletePolicyFile(dataDir: string, policyId: string): void;
21
+ /** @deprecated Use `store.approvalRequests.write()` instead. */
22
+ export declare function writeApprovalRequestFile(dataDir: string, req: ApprovalRequestFrontmatter): void;
23
+ /** @deprecated Use `store.approvalRequests.read()` instead. */
24
+ export declare function readApprovalRequestFile(dataDir: string, approvalRequestId: string): ApprovalRequestFrontmatter;
25
+ /** @deprecated Use `store.policyDrafts.write()` instead. */
26
+ export declare function writePolicyDraftFile(dataDir: string, draft: PolicyDraftFrontmatter): void;
27
+ /** @deprecated Use `store.policyDrafts.read()` instead. */
28
+ export declare function readPolicyDraftFile(dataDir: string, policyDraftId: string): PolicyDraftFrontmatter;
29
+ /** @deprecated Use `store.setupInvites.write()` instead. */
30
+ export declare function writeSetupInviteFile(dataDir: string, invite: SetupInvite): void;
31
+ /** @deprecated Use `store.setupInvites.read()` instead. */
32
+ export declare function readSetupInviteFile(dataDir: string, inviteId: string): SetupInvite;
33
+ /** @deprecated Use `store.setupInvites.delete()` instead. */
34
+ export declare function deleteSetupInviteFile(dataDir: string, inviteId: string): void;
35
+ /** @deprecated Use `store.agentInvites.write()` instead. */
36
+ export declare function writeAgentInviteFile(dataDir: string, invite: AgentInvite): void;
37
+ /** @deprecated Use `store.agentInvites.read()` instead. */
38
+ export declare function readAgentInviteFile(dataDir: string, inviteId: string): AgentInvite;
39
+ export declare class StateIndex {
40
+ private readonly dataDir;
41
+ private readonly statePath;
42
+ private cachedState;
43
+ private cachedMtimeMs;
44
+ private cachedSize;
45
+ /** owner_principal_id → resolved entries (non-PENDING) */
46
+ private resolvedByOwner;
47
+ constructor(dataDir: string);
48
+ /** Return the cached (and possibly refreshed) state. */
49
+ getState(): StateData;
50
+ /** Paginated resolved approval entries for a given owner. */
51
+ getResolvedApprovals(ownerId: string, limit: number, offset: number): {
52
+ items: StateApprovalRequestEntry[];
53
+ total: number;
54
+ };
55
+ private ensureFresh;
56
+ private rebuildApprovalIndex;
57
+ }
12
58
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,SAAS,EACV,MAAM,YAAY,CAAC;AAKpB,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAIpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAKlE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAMvD;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAON;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAIzF;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,MAAM,GACZ,IAAI,CAON;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAIzF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAK5F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxE;AAUD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAKxE"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/dist/state.js CHANGED
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.StateIndex = void 0;
36
37
  exports.readState = readState;
37
38
  exports.writeState = writeState;
38
39
  exports.parseStateMd = parseStateMd;
@@ -43,16 +44,27 @@ exports.readAgentFile = readAgentFile;
43
44
  exports.writePolicyFile = writePolicyFile;
44
45
  exports.readPolicyFile = readPolicyFile;
45
46
  exports.deletePolicyFile = deletePolicyFile;
47
+ exports.writeApprovalRequestFile = writeApprovalRequestFile;
48
+ exports.readApprovalRequestFile = readApprovalRequestFile;
49
+ exports.writePolicyDraftFile = writePolicyDraftFile;
50
+ exports.readPolicyDraftFile = readPolicyDraftFile;
51
+ exports.writeSetupInviteFile = writeSetupInviteFile;
52
+ exports.readSetupInviteFile = readSetupInviteFile;
53
+ exports.deleteSetupInviteFile = deleteSetupInviteFile;
54
+ exports.writeAgentInviteFile = writeAgentInviteFile;
55
+ exports.readAgentInviteFile = readAgentInviteFile;
46
56
  const fs = __importStar(require("node:fs"));
47
57
  const path = __importStar(require("node:path"));
48
58
  const yaml_1 = require("yaml");
49
59
  const STATE_HEADER = '# openleash state\n\n```yaml\n';
50
60
  const STATE_FOOTER = '```\n';
61
+ /** @deprecated Use `store.state.getState()` instead. */
51
62
  function readState(dataDir) {
52
63
  const filePath = path.join(dataDir, 'state.md');
53
64
  const content = fs.readFileSync(filePath, 'utf-8');
54
65
  return parseStateMd(content);
55
66
  }
67
+ /** @deprecated Use `store.state.updateState()` instead. */
56
68
  function writeState(dataDir, state) {
57
69
  const filePath = path.join(dataDir, 'state.md');
58
70
  const yamlStr = (0, yaml_1.stringify)(state, { lineWidth: 0 });
@@ -66,6 +78,7 @@ function parseStateMd(content) {
66
78
  }
67
79
  return (0, yaml_1.parse)(yamlMatch[1]);
68
80
  }
81
+ /** @deprecated Use `store.owners.write()` instead. */
69
82
  function writeOwnerFile(dataDir, owner, body) {
70
83
  const ownersDir = path.join(dataDir, 'owners');
71
84
  fs.mkdirSync(ownersDir, { recursive: true });
@@ -74,11 +87,13 @@ function writeOwnerFile(dataDir, owner, body) {
74
87
  const content = `---\n${frontmatter}\n---\n\n${body ?? `Owner: ${owner.display_name}`}\n`;
75
88
  fs.writeFileSync(filePath, content, 'utf-8');
76
89
  }
90
+ /** @deprecated Use `store.owners.read()` instead. */
77
91
  function readOwnerFile(dataDir, ownerPrincipalId) {
78
92
  const filePath = path.join(dataDir, 'owners', `${ownerPrincipalId}.md`);
79
93
  const content = fs.readFileSync(filePath, 'utf-8');
80
94
  return parseFrontmatter(content);
81
95
  }
96
+ /** @deprecated Use `store.agents.write()` instead. */
82
97
  function writeAgentFile(dataDir, agent, body) {
83
98
  const agentsDir = path.join(dataDir, 'agents');
84
99
  fs.mkdirSync(agentsDir, { recursive: true });
@@ -87,17 +102,20 @@ function writeAgentFile(dataDir, agent, body) {
87
102
  const content = `---\n${frontmatter}\n---\n\n${body ?? `Agent: ${agent.agent_id}`}\n`;
88
103
  fs.writeFileSync(filePath, content, 'utf-8');
89
104
  }
105
+ /** @deprecated Use `store.agents.read()` instead. */
90
106
  function readAgentFile(dataDir, agentPrincipalId) {
91
107
  const filePath = path.join(dataDir, 'agents', `${agentPrincipalId}.md`);
92
108
  const content = fs.readFileSync(filePath, 'utf-8');
93
109
  return parseFrontmatter(content);
94
110
  }
111
+ /** @deprecated Use `store.policies.write()` instead. */
95
112
  function writePolicyFile(dataDir, policyId, yamlContent) {
96
113
  const policiesDir = path.join(dataDir, 'policies');
97
114
  fs.mkdirSync(policiesDir, { recursive: true });
98
115
  const filePath = path.join(policiesDir, `${policyId}.yaml`);
99
116
  fs.writeFileSync(filePath, yamlContent, 'utf-8');
100
117
  }
118
+ /** @deprecated Use `store.policies.read()` instead. */
101
119
  function readPolicyFile(dataDir, policyId) {
102
120
  const filePath = path.join(dataDir, 'policies', `${policyId}.yaml`);
103
121
  return fs.readFileSync(filePath, 'utf-8');
@@ -109,10 +127,134 @@ function parseFrontmatter(content) {
109
127
  }
110
128
  return (0, yaml_1.parse)(match[1]);
111
129
  }
130
+ /** @deprecated Use `store.policies.delete()` instead. */
112
131
  function deletePolicyFile(dataDir, policyId) {
113
132
  const filePath = path.join(dataDir, "policies", `${policyId}.yaml`);
114
133
  if (fs.existsSync(filePath)) {
115
134
  fs.unlinkSync(filePath);
116
135
  }
117
136
  }
137
+ // ─── Approval request files ─────────────────────────────────────────
138
+ /** @deprecated Use `store.approvalRequests.write()` instead. */
139
+ function writeApprovalRequestFile(dataDir, req) {
140
+ const dir = path.join(dataDir, 'approval-requests');
141
+ fs.mkdirSync(dir, { recursive: true });
142
+ const filePath = path.join(dir, `${req.approval_request_id}.md`);
143
+ const frontmatter = (0, yaml_1.stringify)(req, { lineWidth: 0 }).trim();
144
+ const content = `---\n${frontmatter}\n---\n\nApproval request for action: ${req.action_type}\n`;
145
+ fs.writeFileSync(filePath, content, 'utf-8');
146
+ }
147
+ /** @deprecated Use `store.approvalRequests.read()` instead. */
148
+ function readApprovalRequestFile(dataDir, approvalRequestId) {
149
+ const filePath = path.join(dataDir, 'approval-requests', `${approvalRequestId}.md`);
150
+ const content = fs.readFileSync(filePath, 'utf-8');
151
+ return parseFrontmatter(content);
152
+ }
153
+ // ─── Policy draft files ─────────────────────────────────────────────
154
+ /** @deprecated Use `store.policyDrafts.write()` instead. */
155
+ function writePolicyDraftFile(dataDir, draft) {
156
+ const dir = path.join(dataDir, 'policy-drafts');
157
+ fs.mkdirSync(dir, { recursive: true });
158
+ const filePath = path.join(dir, `${draft.policy_draft_id}.md`);
159
+ const frontmatter = (0, yaml_1.stringify)(draft, { lineWidth: 0 }).trim();
160
+ const content = `---\n${frontmatter}\n---\n\nPolicy draft from agent: ${draft.agent_id}\n`;
161
+ fs.writeFileSync(filePath, content, 'utf-8');
162
+ }
163
+ /** @deprecated Use `store.policyDrafts.read()` instead. */
164
+ function readPolicyDraftFile(dataDir, policyDraftId) {
165
+ const filePath = path.join(dataDir, 'policy-drafts', `${policyDraftId}.md`);
166
+ const content = fs.readFileSync(filePath, 'utf-8');
167
+ return parseFrontmatter(content);
168
+ }
169
+ // ─── Setup invite files ─────────────────────────────────────────────
170
+ /** @deprecated Use `store.setupInvites.write()` instead. */
171
+ function writeSetupInviteFile(dataDir, invite) {
172
+ const dir = path.join(dataDir, 'invites');
173
+ fs.mkdirSync(dir, { recursive: true });
174
+ const filePath = path.join(dir, `${invite.invite_id}.json`);
175
+ fs.writeFileSync(filePath, JSON.stringify(invite, null, 2), 'utf-8');
176
+ }
177
+ /** @deprecated Use `store.setupInvites.read()` instead. */
178
+ function readSetupInviteFile(dataDir, inviteId) {
179
+ const filePath = path.join(dataDir, 'invites', `${inviteId}.json`);
180
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
181
+ }
182
+ /** @deprecated Use `store.setupInvites.delete()` instead. */
183
+ function deleteSetupInviteFile(dataDir, inviteId) {
184
+ const filePath = path.join(dataDir, 'invites', `${inviteId}.json`);
185
+ if (fs.existsSync(filePath)) {
186
+ fs.unlinkSync(filePath);
187
+ }
188
+ }
189
+ // ─── Agent invite files ────────────────────────────────────────────
190
+ /** @deprecated Use `store.agentInvites.write()` instead. */
191
+ function writeAgentInviteFile(dataDir, invite) {
192
+ const dir = path.join(dataDir, 'agent-invites');
193
+ fs.mkdirSync(dir, { recursive: true });
194
+ const filePath = path.join(dir, `${invite.invite_id}.json`);
195
+ fs.writeFileSync(filePath, JSON.stringify(invite, null, 2), 'utf-8');
196
+ }
197
+ /** @deprecated Use `store.agentInvites.read()` instead. */
198
+ function readAgentInviteFile(dataDir, inviteId) {
199
+ const filePath = path.join(dataDir, 'agent-invites', `${inviteId}.json`);
200
+ return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
201
+ }
202
+ // ─── StateIndex ─────────────────────────────────────────────────────
203
+ class StateIndex {
204
+ dataDir;
205
+ statePath;
206
+ cachedState = null;
207
+ cachedMtimeMs = 0;
208
+ cachedSize = 0;
209
+ /** owner_principal_id → resolved entries (non-PENDING) */
210
+ resolvedByOwner = new Map();
211
+ constructor(dataDir) {
212
+ this.dataDir = dataDir;
213
+ this.statePath = path.join(dataDir, 'state.md');
214
+ }
215
+ /** Return the cached (and possibly refreshed) state. */
216
+ getState() {
217
+ this.ensureFresh();
218
+ return this.cachedState;
219
+ }
220
+ /** Paginated resolved approval entries for a given owner. */
221
+ getResolvedApprovals(ownerId, limit, offset) {
222
+ this.ensureFresh();
223
+ const entries = this.resolvedByOwner.get(ownerId) ?? [];
224
+ return { items: entries.slice(offset, offset + limit), total: entries.length };
225
+ }
226
+ ensureFresh() {
227
+ let stat;
228
+ try {
229
+ stat = fs.statSync(this.statePath);
230
+ }
231
+ catch {
232
+ this.cachedState = null;
233
+ this.resolvedByOwner.clear();
234
+ return;
235
+ }
236
+ if (this.cachedState && stat.mtimeMs === this.cachedMtimeMs && stat.size === this.cachedSize) {
237
+ return; // unchanged
238
+ }
239
+ this.cachedState = readState(this.dataDir);
240
+ this.cachedMtimeMs = stat.mtimeMs;
241
+ this.cachedSize = stat.size;
242
+ this.rebuildApprovalIndex();
243
+ }
244
+ rebuildApprovalIndex() {
245
+ this.resolvedByOwner.clear();
246
+ const entries = this.cachedState?.approval_requests ?? [];
247
+ for (const entry of entries) {
248
+ if (entry.status === 'PENDING')
249
+ continue;
250
+ let list = this.resolvedByOwner.get(entry.owner_principal_id);
251
+ if (!list) {
252
+ list = [];
253
+ this.resolvedByOwner.set(entry.owner_principal_id, list);
254
+ }
255
+ list.push(entry);
256
+ }
257
+ }
258
+ }
259
+ exports.StateIndex = StateIndex;
118
260
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { AgentFrontmatter, AgentInvite, ApprovalRequestFrontmatter, OwnerFrontmatter, PolicyDraftFrontmatter, ServerKeyFile, SetupInvite, StateApprovalRequestEntry, StateData } from './types.js';
2
+ import type { AuditStore } from './audit.js';
3
+ export interface OwnerRepository {
4
+ read(ownerPrincipalId: string): OwnerFrontmatter;
5
+ write(owner: OwnerFrontmatter, body?: string): void;
6
+ }
7
+ export interface AgentRepository {
8
+ read(agentPrincipalId: string): AgentFrontmatter;
9
+ write(agent: AgentFrontmatter, body?: string): void;
10
+ }
11
+ export interface PolicyRepository {
12
+ read(policyId: string): string;
13
+ write(policyId: string, yamlContent: string): void;
14
+ delete(policyId: string): void;
15
+ }
16
+ export interface ApprovalRequestRepository {
17
+ read(approvalRequestId: string): ApprovalRequestFrontmatter;
18
+ write(req: ApprovalRequestFrontmatter): void;
19
+ }
20
+ export interface PolicyDraftRepository {
21
+ read(policyDraftId: string): PolicyDraftFrontmatter;
22
+ write(draft: PolicyDraftFrontmatter): void;
23
+ }
24
+ export interface SetupInviteRepository {
25
+ read(inviteId: string): SetupInvite;
26
+ write(invite: SetupInvite): void;
27
+ delete(inviteId: string): void;
28
+ }
29
+ export interface AgentInviteRepository {
30
+ read(inviteId: string): AgentInvite;
31
+ write(invite: AgentInvite): void;
32
+ }
33
+ export interface KeyRepository {
34
+ read(kid: string): ServerKeyFile;
35
+ write(key: ServerKeyFile): void;
36
+ generate(): ServerKeyFile;
37
+ }
38
+ export interface StateRepository {
39
+ getState(): StateData;
40
+ updateState(mutator: (state: StateData) => void): void;
41
+ getResolvedApprovals(ownerId: string, limit: number, offset: number): {
42
+ items: StateApprovalRequestEntry[];
43
+ total: number;
44
+ };
45
+ }
46
+ export interface DataStore {
47
+ owners: OwnerRepository;
48
+ agents: AgentRepository;
49
+ policies: PolicyRepository;
50
+ approvalRequests: ApprovalRequestRepository;
51
+ policyDrafts: PolicyDraftRepository;
52
+ setupInvites: SetupInviteRepository;
53
+ agentInvites: AgentInviteRepository;
54
+ keys: KeyRepository;
55
+ state: StateRepository;
56
+ audit: AuditStore;
57
+ initialize(): void;
58
+ }
59
+ /** Factory function type that store plugins must export. */
60
+ export type CreateDataStore = (options?: Record<string, unknown>) => DataStore | Promise<DataStore>;
61
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":""}
package/dist/tokens.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ServerKeyFile } from './types.js';
1
+ import type { ServerKeyFile, SessionClaims, ApprovalTokenClaims } from './types.js';
2
2
  export interface ProofClaims {
3
3
  iss: string;
4
4
  kid: string;
@@ -35,4 +35,38 @@ export declare function verifyProofToken(token: string, keys: ServerKeyFile[]):
35
35
  claims?: ProofClaims;
36
36
  reason?: string;
37
37
  }>;
38
+ export interface IssueSessionParams {
39
+ key: ServerKeyFile;
40
+ ownerPrincipalId: string;
41
+ ttlSeconds: number;
42
+ }
43
+ export declare function issueSessionToken(params: IssueSessionParams): Promise<{
44
+ token: string;
45
+ expiresAt: string;
46
+ claims: SessionClaims;
47
+ }>;
48
+ export declare function verifySessionToken(token: string, keys: ServerKeyFile[]): Promise<{
49
+ valid: boolean;
50
+ claims?: SessionClaims;
51
+ reason?: string;
52
+ }>;
53
+ export interface IssueApprovalTokenParams {
54
+ key: ServerKeyFile;
55
+ approvalRequestId: string;
56
+ ownerPrincipalId: string;
57
+ agentId: string;
58
+ actionType: string;
59
+ actionHash: string;
60
+ ttlSeconds: number;
61
+ }
62
+ export declare function issueApprovalToken(params: IssueApprovalTokenParams): Promise<{
63
+ token: string;
64
+ expiresAt: string;
65
+ claims: ApprovalTokenClaims;
66
+ }>;
67
+ export declare function verifyApprovalToken(token: string, keys: ServerKeyFile[]): Promise<{
68
+ valid: boolean;
69
+ claims?: ApprovalTokenClaims;
70
+ reason?: string;
71
+ }>;
38
72
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;CACrB,CAAC,CA8BD;AAED,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,EAAE,GACpB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuBpE"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}