@hardkas/toolkit 0.11.1-alpha → 0.11.4-alpha

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 (67) hide show
  1. package/dist/fee-estimator.d.ts +9 -0
  2. package/dist/fee-estimator.d.ts.map +1 -0
  3. package/dist/fee-estimator.js +32 -0
  4. package/dist/fee-estimator.js.map +1 -0
  5. package/dist/index.d.ts +4 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/indexer.d.ts +3 -1
  10. package/dist/indexer.d.ts.map +1 -1
  11. package/dist/indexer.js +13 -2
  12. package/dist/indexer.js.map +1 -1
  13. package/dist/jobs.d.ts +3 -0
  14. package/dist/jobs.d.ts.map +1 -1
  15. package/dist/jobs.js +16 -1
  16. package/dist/jobs.js.map +1 -1
  17. package/dist/payment.d.ts +4 -2
  18. package/dist/payment.d.ts.map +1 -1
  19. package/dist/payment.js +30 -12
  20. package/dist/payment.js.map +1 -1
  21. package/dist/query-api.d.ts +22 -0
  22. package/dist/query-api.d.ts.map +1 -0
  23. package/dist/query-api.js +116 -0
  24. package/dist/query-api.js.map +1 -0
  25. package/dist/snapshot/serialization.d.ts +0 -9
  26. package/dist/snapshot/serialization.d.ts.map +1 -1
  27. package/dist/snapshot/serialization.js +0 -12
  28. package/dist/snapshot/serialization.js.map +1 -1
  29. package/dist/stores/invoice-store.d.ts +15 -1
  30. package/dist/stores/invoice-store.d.ts.map +1 -1
  31. package/dist/stores/invoice-store.js.map +1 -1
  32. package/dist/subscriptions.d.ts +22 -0
  33. package/dist/subscriptions.d.ts.map +1 -0
  34. package/dist/subscriptions.js +91 -0
  35. package/dist/subscriptions.js.map +1 -0
  36. package/dist/wallet.d.ts +81 -2
  37. package/dist/wallet.d.ts.map +1 -1
  38. package/dist/wallet.js +328 -13
  39. package/dist/wallet.js.map +1 -1
  40. package/package.json +27 -11
  41. package/.turbo/turbo-build.log +0 -4
  42. package/src/dag/consensus.ts +0 -150
  43. package/src/dag/index.ts +0 -73
  44. package/src/dag/store.ts +0 -40
  45. package/src/dag/topology.ts +0 -108
  46. package/src/dag/types.ts +0 -20
  47. package/src/index.ts +0 -9
  48. package/src/indexer.ts +0 -128
  49. package/src/jobs.ts +0 -46
  50. package/src/payment.ts +0 -81
  51. package/src/silver/index.ts +0 -102
  52. package/src/silver/templates.ts +0 -27
  53. package/src/silver/types.ts +0 -37
  54. package/src/snapshot/backends/FsSnapshotBackend.ts +0 -100
  55. package/src/snapshot/backends/MemorySnapshotBackend.ts +0 -65
  56. package/src/snapshot/index.ts +0 -102
  57. package/src/snapshot/serialization.ts +0 -35
  58. package/src/snapshot/types.ts +0 -45
  59. package/src/stores/invoice-store.ts +0 -53
  60. package/src/stores/utxo-control-store.ts +0 -78
  61. package/src/utxos.ts +0 -451
  62. package/src/wallet.ts +0 -93
  63. package/test/silver.test.ts +0 -59
  64. package/test/snapshot.test.ts +0 -99
  65. package/test/toolkit.test.ts +0 -109
  66. package/tsconfig.json +0 -9
  67. package/vitest.config.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,25 +1,41 @@
1
1
  {
2
2
  "name": "@hardkas/toolkit",
3
- "version": "0.11.1-alpha",
3
+ "version": "0.11.4-alpha",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.js",
16
+ "default": "./dist/index.js"
17
+ }
18
+ },
8
19
  "dependencies": {
20
+ "@hardkas/observability": "0.11.4-alpha",
9
21
  "fs-extra": "^11.2.0",
10
- "@hardkas/tx-builder": "0.11.1-alpha",
11
- "@hardkas/core": "0.11.1-alpha",
12
- "@hardkas/jobs": "0.11.1-alpha",
13
- "@hardkas/accounts": "0.11.1-alpha",
14
- "@hardkas/query-store": "0.11.1-alpha",
15
- "@hardkas/artifacts": "0.11.1-alpha",
16
- "@hardkas/query": "0.11.1-alpha"
22
+ "@hardkas/accounts": "0.11.4-alpha",
23
+ "@hardkas/jobs": "0.11.4-alpha",
24
+ "@hardkas/query": "0.11.4-alpha",
25
+ "@hardkas/kaspa-rpc": "0.11.4-alpha",
26
+ "@hardkas/query-store": "0.11.4-alpha",
27
+ "@hardkas/core": "0.11.4-alpha",
28
+ "@hardkas/artifacts": "0.11.4-alpha",
29
+ "@hardkas/tx-builder": "0.11.4-alpha"
17
30
  },
18
31
  "devDependencies": {
19
- "typescript": "^5.6.3",
20
- "vitest": "^2.1.2",
32
+ "@types/fs-extra": "^11.0.4",
21
33
  "@types/node": "^20.12.7",
22
- "@types/fs-extra": "^11.0.4"
34
+ "typescript": "^5.6.3",
35
+ "vitest": "^2.1.2"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
23
39
  },
24
40
  "scripts": {
25
41
  "build": "tsc",
@@ -1,4 +0,0 @@
1
-
2
- > @hardkas/toolkit@0.11.0-alpha build C:\Users\jrodr\Documents\kaslabdevs\GitHub\HardKas-repo\packages\toolkit
3
- > tsc
4
-
@@ -1,150 +0,0 @@
1
- import { LocalDagStore } from './store.js';
2
- import { DAGTopology } from './topology.js';
3
- import { DagBlock, DagStatistics } from './types.js';
4
-
5
- export class ConsensusView {
6
- // Memoize calculated blue scores to prevent exponential recursion
7
- private blueScoreCache = new Map<string, number>();
8
-
9
- public constructor(
10
- private readonly store: LocalDagStore,
11
- private readonly topology: DAGTopology
12
- ) {}
13
-
14
- public clearCache(): void {
15
- this.blueScoreCache.clear();
16
- }
17
-
18
- public async blueScore(hash: string): Promise<number> {
19
- // If provided explicitly in the payload, use it
20
- const b = await this.topology.block(hash);
21
- if (b.blueScore !== undefined) {
22
- return b.blueScore;
23
- }
24
-
25
- if (this.blueScoreCache.has(hash)) {
26
- return this.blueScoreCache.get(hash)!;
27
- }
28
-
29
- if (b.parents.length === 0) {
30
- this.blueScoreCache.set(hash, 0);
31
- return 0;
32
- }
33
-
34
- let maxScore = 0;
35
- for (const p of b.parents) {
36
- try {
37
- const score = await this.blueScore(p);
38
- if (score > maxScore) maxScore = score;
39
- } catch (e) {
40
- // Ignore missing parents (orphans)
41
- }
42
- }
43
-
44
- const calculatedScore = maxScore + 1;
45
- this.blueScoreCache.set(hash, calculatedScore);
46
- return calculatedScore;
47
- }
48
-
49
- public async confirmations(hash: string): Promise<number> {
50
- const isOrphan = await this.isOrphan(hash);
51
- if (isOrphan) return 0;
52
-
53
- const allBlocks = this.store.getAllBlocks();
54
- const tips = allBlocks.filter(b => this.store.getChildrenHashes(b.hash).length === 0);
55
-
56
- if (tips.length === 0) return 0;
57
-
58
- let maxScore = -1;
59
- let heaviestTip: DagBlock | null = null;
60
-
61
- for (const tip of tips) {
62
- const score = await this.blueScore(tip.hash);
63
- if (score > maxScore) {
64
- maxScore = score;
65
- heaviestTip = tip;
66
- }
67
- }
68
-
69
- if (!heaviestTip) return 0;
70
-
71
- // Verify reachability: does the heaviest tip actually include this block in its past?
72
- const reachable = await this.topology.reachability(hash, heaviestTip.hash);
73
- if (!reachable) return 0;
74
-
75
- const blockScore = await this.blueScore(hash);
76
- return Math.max(0, maxScore - blockScore);
77
- }
78
-
79
- private async isOrphan(hash: string): Promise<boolean> {
80
- const b = this.store.getBlock(hash);
81
- if (!b) return false;
82
- if (b.parents.length === 0) return false;
83
-
84
- for (const p of b.parents) {
85
- if (!this.store.getBlock(p)) return true;
86
- }
87
- return false;
88
- }
89
-
90
- public async trace(txid: string): Promise<{ txid: string, status: string, foundIn: string[] }> {
91
- const allBlocks = this.store.getAllBlocks();
92
- const foundInBlocks: string[] = [];
93
-
94
- for (const block of allBlocks) {
95
- if (block.transactions && block.transactions.some(tx => tx.id === txid)) {
96
- foundInBlocks.push(block.hash);
97
- }
98
- }
99
-
100
- if (foundInBlocks.length === 0) {
101
- return { txid, status: "not_found", foundIn: [] };
102
- }
103
-
104
- if (foundInBlocks.length === 1) {
105
- const blockHash = foundInBlocks[0]!;
106
- const isOrphan = await this.isOrphan(blockHash);
107
- return { txid, status: isOrphan ? "orphan" : "accepted", foundIn: foundInBlocks };
108
- }
109
-
110
- // Parallel branch conflict detection
111
- let isConflict = false;
112
- for (let i = 0; i < foundInBlocks.length; i++) {
113
- for (let j = i + 1; j < foundInBlocks.length; j++) {
114
- const b1 = foundInBlocks[i]!;
115
- const b2 = foundInBlocks[j]!;
116
-
117
- const reach1 = await this.topology.reachability(b1, b2);
118
- const reach2 = await this.topology.reachability(b2, b1);
119
-
120
- if (!reach1 && !reach2) {
121
- isConflict = true;
122
- break;
123
- }
124
- }
125
- }
126
-
127
- return {
128
- txid,
129
- status: isConflict ? "conflict" : "merged",
130
- foundIn: foundInBlocks
131
- };
132
- }
133
-
134
- public async statistics(): Promise<DagStatistics> {
135
- const allBlocks = this.store.getAllBlocks();
136
- const tips = allBlocks.filter(b => this.store.getChildrenHashes(b.hash).length === 0);
137
-
138
- let highestBlueScore = 0;
139
- for (const b of allBlocks) {
140
- const score = await this.blueScore(b.hash);
141
- if (score > highestBlueScore) highestBlueScore = score;
142
- }
143
-
144
- return {
145
- totalBlocks: allBlocks.length,
146
- totalTips: tips.length,
147
- highestBlueScore
148
- };
149
- }
150
- }
package/src/dag/index.ts DELETED
@@ -1,73 +0,0 @@
1
- import { LocalDagStore } from './store.js';
2
- import { DAGTopology } from './topology.js';
3
- import { ConsensusView } from './consensus.js';
4
- import { DagBlock, DagNeighborhood, DagStatistics } from './types.js';
5
-
6
- export * from './types.js';
7
-
8
- export class DagApi {
9
- private store: LocalDagStore;
10
- private topology: DAGTopology;
11
- private consensus: ConsensusView;
12
-
13
- constructor() {
14
- this.store = new LocalDagStore();
15
- this.topology = new DAGTopology(this.store);
16
- this.consensus = new ConsensusView(this.store, this.topology);
17
- }
18
-
19
- public async ingestBlocks(blocks: DagBlock[]): Promise<void> {
20
- this.store.ingest(blocks);
21
- }
22
-
23
- public async snapshot(): Promise<DagBlock[]> {
24
- return this.store.getAllBlocks();
25
- }
26
-
27
- public async restore(blocks: DagBlock[]): Promise<void> {
28
- this.store.clear();
29
- this.store.ingest(blocks);
30
- }
31
-
32
- public async reload(): Promise<void> {
33
- this.consensus.clearCache();
34
- }
35
-
36
- // Topology
37
- public async block(hash: string): Promise<DagBlock> {
38
- return this.topology.block(hash);
39
- }
40
-
41
- public async parents(hash: string): Promise<DagBlock[]> {
42
- return this.topology.parents(hash);
43
- }
44
-
45
- public async children(hash: string): Promise<DagBlock[]> {
46
- return this.topology.children(hash);
47
- }
48
-
49
- public async reachability(fromHash: string, toHash: string): Promise<boolean> {
50
- return this.topology.reachability(fromHash, toHash);
51
- }
52
-
53
- public async neighborhood(hash: string, opts: { depth?: number } = {}): Promise<DagNeighborhood> {
54
- return this.topology.neighborhood(hash, opts);
55
- }
56
-
57
- // Consensus
58
- public async blueScore(hash: string): Promise<number> {
59
- return this.consensus.blueScore(hash);
60
- }
61
-
62
- public async confirmations(hash: string): Promise<number> {
63
- return this.consensus.confirmations(hash);
64
- }
65
-
66
- public async trace(txid: string): Promise<{ txid: string, status: string, foundIn: string[] }> {
67
- return this.consensus.trace(txid);
68
- }
69
-
70
- public async statistics(): Promise<DagStatistics> {
71
- return this.consensus.statistics();
72
- }
73
- }
package/src/dag/store.ts DELETED
@@ -1,40 +0,0 @@
1
- import { DagBlock } from './types.js';
2
-
3
- export class LocalDagStore {
4
- private blocks = new Map<string, DagBlock>();
5
-
6
- // Reverse index to avoid O(N) children scans
7
- private childrenIndex = new Map<string, Set<string>>();
8
-
9
- public ingest(blocksToIngest: DagBlock[]): void {
10
- for (const block of blocksToIngest) {
11
- this.blocks.set(block.hash, block);
12
-
13
- // Update children index
14
- for (const parent of block.parents) {
15
- if (!this.childrenIndex.has(parent)) {
16
- this.childrenIndex.set(parent, new Set());
17
- }
18
- this.childrenIndex.get(parent)!.add(block.hash);
19
- }
20
- }
21
- }
22
-
23
- public getBlock(hash: string): DagBlock | undefined {
24
- return this.blocks.get(hash);
25
- }
26
-
27
- public getChildrenHashes(hash: string): string[] {
28
- const children = this.childrenIndex.get(hash);
29
- return children ? Array.from(children) : [];
30
- }
31
-
32
- public getAllBlocks(): DagBlock[] {
33
- return Array.from(this.blocks.values());
34
- }
35
-
36
- public clear(): void {
37
- this.blocks.clear();
38
- this.childrenIndex.clear();
39
- }
40
- }
@@ -1,108 +0,0 @@
1
- import { LocalDagStore } from './store.js';
2
- import { DagBlock, DagNeighborhood } from './types.js';
3
-
4
- export class DAGTopology {
5
- constructor(private store: LocalDagStore) {}
6
-
7
- public async block(hash: string): Promise<DagBlock> {
8
- const b = this.store.getBlock(hash);
9
- if (!b) throw new Error(`Block not found: ${hash}`);
10
- return b;
11
- }
12
-
13
- public async parents(hash: string): Promise<DagBlock[]> {
14
- const b = await this.block(hash);
15
- return b.parents.map(p => this.store.getBlock(p)).filter(Boolean) as DagBlock[];
16
- }
17
-
18
- public async children(hash: string): Promise<DagBlock[]> {
19
- // Fast lookup via index instead of O(N) scan
20
- const childrenHashes = this.store.getChildrenHashes(hash);
21
- return childrenHashes.map(c => this.store.getBlock(c)).filter(Boolean) as DagBlock[];
22
- }
23
-
24
- public async reachability(fromHash: string, toHash: string): Promise<boolean> {
25
- if (fromHash === toHash) return true;
26
-
27
- const toBlock = this.store.getBlock(toHash);
28
- if (!toBlock) return false;
29
-
30
- // DFS for reachability
31
- const visited = new Set<string>();
32
- const stack = [toHash];
33
-
34
- while (stack.length > 0) {
35
- const current = stack.pop()!;
36
- if (current === fromHash) return true;
37
- if (visited.has(current)) continue;
38
- visited.add(current);
39
-
40
- const b = this.store.getBlock(current);
41
- if (b) {
42
- for (const p of b.parents) {
43
- stack.push(p);
44
- }
45
- }
46
- }
47
-
48
- return false;
49
- }
50
-
51
- public async neighborhood(hash: string, opts: { depth?: number } = {}): Promise<DagNeighborhood> {
52
- const maxDepth = opts.depth || 1;
53
- const baseBlock = await this.block(hash);
54
-
55
- const ancestors = new Map<string, DagBlock>();
56
- const descendants = new Map<string, DagBlock>();
57
-
58
- // BFS for Ancestors
59
- let aQueue = [{ hash, currentDepth: 0 }];
60
- let aVisited = new Set<string>([hash]);
61
-
62
- while (aQueue.length > 0) {
63
- const { hash: curr, currentDepth } = aQueue.shift()!;
64
- if (currentDepth >= maxDepth) continue;
65
-
66
- const b = this.store.getBlock(curr);
67
- if (!b) continue;
68
-
69
- for (const p of b.parents) {
70
- if (!aVisited.has(p)) {
71
- aVisited.add(p);
72
- const parentBlock = this.store.getBlock(p);
73
- if (parentBlock) {
74
- ancestors.set(p, parentBlock);
75
- aQueue.push({ hash: p, currentDepth: currentDepth + 1 });
76
- }
77
- }
78
- }
79
- }
80
-
81
- // BFS for Descendants
82
- let dQueue = [{ hash, currentDepth: 0 }];
83
- let dVisited = new Set<string>([hash]);
84
-
85
- while (dQueue.length > 0) {
86
- const { hash: curr, currentDepth } = dQueue.shift()!;
87
- if (currentDepth >= maxDepth) continue;
88
-
89
- const children = this.store.getChildrenHashes(curr);
90
- for (const c of children) {
91
- if (!dVisited.has(c)) {
92
- dVisited.add(c);
93
- const childBlock = this.store.getBlock(c);
94
- if (childBlock) {
95
- descendants.set(c, childBlock);
96
- dQueue.push({ hash: c, currentDepth: currentDepth + 1 });
97
- }
98
- }
99
- }
100
- }
101
-
102
- return {
103
- hash,
104
- ancestors: Array.from(ancestors.values()),
105
- descendants: Array.from(descendants.values())
106
- };
107
- }
108
- }
package/src/dag/types.ts DELETED
@@ -1,20 +0,0 @@
1
- export interface DagBlock {
2
- hash: string;
3
- parents: string[];
4
- blueScore?: number;
5
- transactions?: { id: string, payload?: any }[];
6
- // Other fields can be appended as needed by the consumer
7
- [key: string]: any;
8
- }
9
-
10
- export interface DagNeighborhood {
11
- hash: string;
12
- ancestors: DagBlock[];
13
- descendants: DagBlock[];
14
- }
15
-
16
- export interface DagStatistics {
17
- totalBlocks: number;
18
- totalTips: number;
19
- highestBlueScore: number;
20
- }
package/src/index.ts DELETED
@@ -1,9 +0,0 @@
1
- export * from './wallet.js';
2
- export * from './payment.js';
3
- export * from './indexer.js';
4
- export * from './jobs.js';
5
- export * from './utxos.js';
6
- export * from './dag/index.js';
7
- export * from './snapshot/index.js';
8
- export * from './silver/index.js';
9
- export * from './silver/types.js';
package/src/indexer.ts DELETED
@@ -1,128 +0,0 @@
1
- import { EventSubscriber, BackendPlugin } from '@hardkas/core';
2
- import { ProjectionStoreJson } from '@hardkas/query-store';
3
- import { ArtifactIndexStoreJson } from '@hardkas/artifacts';
4
- import { DagApi } from './dag/index.js';
5
- import { SnapshotParticipant } from './snapshot/types.js';
6
-
7
- export interface IndexerBackendPlugin extends BackendPlugin {
8
- balance?(address: string): Promise<bigint>;
9
- history?(address: string): Promise<unknown[]>;
10
- utxos?(address: string): Promise<unknown[]>;
11
- }
12
-
13
- export interface IndexerToolkitOptions {
14
- dataDir?: string;
15
- backend?: IndexerBackendPlugin;
16
- }
17
-
18
- export class IndexerToolkit implements SnapshotParticipant {
19
- private subscriber: EventSubscriber;
20
- private projection?: ProjectionStoreJson;
21
- private artifactIndex?: ArtifactIndexStoreJson;
22
- public readonly dag: DagApi;
23
- public readonly backend?: IndexerBackendPlugin | undefined;
24
-
25
- private constructor(private readonly options: IndexerToolkitOptions) {
26
- this.subscriber = new EventSubscriber();
27
- this.backend = options.backend;
28
-
29
- if (!this.backend || !this.backend.capabilities.externalState) {
30
- this.projection = new ProjectionStoreJson({
31
- dirPath: options.dataDir ? `${options.dataDir}/projections` : '.hardkas/indexer/projections',
32
- namespace: 'indexer'
33
- });
34
- this.artifactIndex = new ArtifactIndexStoreJson({
35
- filePath: options.dataDir ? `${options.dataDir}/artifacts.json` : '.hardkas/indexer/artifacts.json'
36
- });
37
- }
38
-
39
- this.dag = new DagApi();
40
- }
41
-
42
- public static open(options: IndexerToolkitOptions = {}): IndexerToolkit {
43
- return new IndexerToolkit(options);
44
- }
45
-
46
- public async connect(): Promise<void> {
47
- if (this.backend?.connect) {
48
- await this.backend.connect();
49
- }
50
- }
51
-
52
- public async watch(address: string): Promise<void> {
53
- // Polling wrapper as per V1 rules.
54
- this.subscriber.subscribe({
55
- source: {}, // mock source for facade
56
- type: "payment",
57
- intervalMs: 1000,
58
- watchedAddresses: [address],
59
- handler: async (evt) => {
60
- // Internally updates projections if address is involved
61
- }
62
- });
63
- }
64
-
65
- public async balance(address: string): Promise<bigint> {
66
- if (this.backend?.balance) {
67
- return this.backend.balance(address);
68
- }
69
- const balances = this.projection?.get('balances') || {};
70
- return BigInt(balances[address] || 0);
71
- }
72
-
73
- public async history(address: string): Promise<any[]> {
74
- if (this.backend?.history) {
75
- return this.backend.history(address);
76
- }
77
- const history = this.projection?.get('history') || {};
78
- return history[address] || [];
79
- }
80
-
81
- public async findReceipts(opts: { tags: string[] }): Promise<any[]> {
82
- if (!this.artifactIndex) return [];
83
- return this.artifactIndex.find(opts);
84
- }
85
-
86
- public async ingestArtifact(artifact: any): Promise<void> {
87
- if (!this.artifactIndex) return;
88
- this.artifactIndex.index({
89
- hash: artifact.id || 'mock_hash',
90
- schema: artifact.schema || 'unknown.v1',
91
- timestamp: new Date().toISOString(),
92
- filePath: `/mock/path/${artifact.id}.json`,
93
- tags: artifact.tags || []
94
- });
95
- }
96
-
97
- public async snapshot(): Promise<any> {
98
- if (this.backend && !this.backend.capabilities.snapshots && this.backend.capabilities.externalState) {
99
- return {
100
- backend: this.backend.name,
101
- externalState: true,
102
- snapshots: false,
103
- dag: await this.dag.snapshot()
104
- };
105
- }
106
- return {
107
- projection: this.projection?.getAll() || {},
108
- artifactIndex: this.artifactIndex?.getAll() || [],
109
- dag: await this.dag.snapshot()
110
- };
111
- }
112
-
113
- public async restore(state: any): Promise<void> {
114
- if (state.externalState) {
115
- // Cannot restore local state over an external backend. Just restore DAG.
116
- if (state.dag) await this.dag.restore(state.dag);
117
- return;
118
- }
119
- if (state.projection && this.projection) this.projection.setAll(state.projection);
120
- if (state.artifactIndex && this.artifactIndex) this.artifactIndex.setAll(state.artifactIndex);
121
- if (state.dag) await this.dag.restore(state.dag);
122
- }
123
-
124
- public async reload(): Promise<void> {
125
- await this.dag.reload();
126
- // Projection and artifactIndex read synchronously from memory in this version
127
- }
128
- }
package/src/jobs.ts DELETED
@@ -1,46 +0,0 @@
1
- import { JobRunner, JobStoreJson, JobHandler, JobRecord } from '@hardkas/jobs';
2
- import { SnapshotParticipant, SnapshotState } from './snapshot/types.js';
3
-
4
- export interface JobsToolkitOptions {
5
- storePath?: string;
6
- }
7
-
8
- export class JobsToolkit implements SnapshotParticipant {
9
- private runner: JobRunner;
10
- private store: JobStoreJson;
11
-
12
- private constructor(options: JobsToolkitOptions) {
13
- this.store = new JobStoreJson({ filePath: options.storePath || '.hardkas-data/jobs.json' });
14
- this.runner = new JobRunner({ store: this.store });
15
- }
16
-
17
- public static open(options: JobsToolkitOptions = {}): JobsToolkit {
18
- return new JobsToolkit(options);
19
- }
20
-
21
- public registerHandler(type: string, handler: JobHandler): void {
22
- this.runner.registerHandler(type, handler);
23
- }
24
-
25
- public async enqueue(type: string, args?: any): Promise<string> {
26
- return this.runner.enqueue(type, args);
27
- }
28
-
29
- public async getJob(id: string): Promise<JobRecord | undefined> {
30
- return this.runner.getJob(id);
31
- }
32
-
33
- public async snapshot(): Promise<SnapshotState> {
34
- return this.store.getAll();
35
- }
36
-
37
- public async restore(state: SnapshotState): Promise<void> {
38
- this.store.setAll(state as Record<string, JobRecord>);
39
- }
40
-
41
- public async reload(): Promise<void> {
42
- // Runner reads from store on each operation natively in current design,
43
- // but if it had internal queues/caches, we'd clear them here.
44
- // E.g., this.runner.clearCache();
45
- }
46
- }