@blockspool/core 0.3.0 → 0.3.1

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 (145) hide show
  1. package/package.json +1 -1
  2. package/dist/db/adapter.d.ts +0 -191
  3. package/dist/db/adapter.d.ts.map +0 -1
  4. package/dist/db/adapter.js +0 -40
  5. package/dist/db/adapter.js.map +0 -1
  6. package/dist/db/contract.d.ts +0 -47
  7. package/dist/db/contract.d.ts.map +0 -1
  8. package/dist/db/contract.js +0 -258
  9. package/dist/db/contract.js.map +0 -1
  10. package/dist/db/index.d.ts +0 -6
  11. package/dist/db/index.d.ts.map +0 -1
  12. package/dist/db/index.js +0 -7
  13. package/dist/db/index.js.map +0 -1
  14. package/dist/exec/index.d.ts +0 -5
  15. package/dist/exec/index.d.ts.map +0 -1
  16. package/dist/exec/index.js +0 -5
  17. package/dist/exec/index.js.map +0 -1
  18. package/dist/exec/types.d.ts +0 -64
  19. package/dist/exec/types.d.ts.map +0 -1
  20. package/dist/exec/types.js +0 -8
  21. package/dist/exec/types.js.map +0 -1
  22. package/dist/index.d.ts +0 -23
  23. package/dist/index.d.ts.map +0 -1
  24. package/dist/index.js +0 -27
  25. package/dist/index.js.map +0 -1
  26. package/dist/repos/index.d.ts +0 -15
  27. package/dist/repos/index.d.ts.map +0 -1
  28. package/dist/repos/index.js +0 -11
  29. package/dist/repos/index.js.map +0 -1
  30. package/dist/repos/projects.d.ts +0 -41
  31. package/dist/repos/projects.d.ts.map +0 -1
  32. package/dist/repos/projects.js +0 -74
  33. package/dist/repos/projects.js.map +0 -1
  34. package/dist/repos/run_steps.d.ts +0 -152
  35. package/dist/repos/run_steps.d.ts.map +0 -1
  36. package/dist/repos/run_steps.js +0 -321
  37. package/dist/repos/run_steps.js.map +0 -1
  38. package/dist/repos/runs.d.ts +0 -92
  39. package/dist/repos/runs.d.ts.map +0 -1
  40. package/dist/repos/runs.js +0 -177
  41. package/dist/repos/runs.js.map +0 -1
  42. package/dist/repos/tickets.d.ts +0 -71
  43. package/dist/repos/tickets.d.ts.map +0 -1
  44. package/dist/repos/tickets.js +0 -128
  45. package/dist/repos/tickets.js.map +0 -1
  46. package/dist/scout/index.d.ts +0 -15
  47. package/dist/scout/index.d.ts.map +0 -1
  48. package/dist/scout/index.js +0 -382
  49. package/dist/scout/index.js.map +0 -1
  50. package/dist/scout/prompt.d.ts +0 -30
  51. package/dist/scout/prompt.d.ts.map +0 -1
  52. package/dist/scout/prompt.js +0 -101
  53. package/dist/scout/prompt.js.map +0 -1
  54. package/dist/scout/runner.d.ts +0 -68
  55. package/dist/scout/runner.d.ts.map +0 -1
  56. package/dist/scout/runner.js +0 -241
  57. package/dist/scout/runner.js.map +0 -1
  58. package/dist/scout/scanner.d.ts +0 -35
  59. package/dist/scout/scanner.d.ts.map +0 -1
  60. package/dist/scout/scanner.js +0 -164
  61. package/dist/scout/scanner.js.map +0 -1
  62. package/dist/scout/types.d.ts +0 -177
  63. package/dist/scout/types.d.ts.map +0 -1
  64. package/dist/scout/types.js +0 -44
  65. package/dist/scout/types.js.map +0 -1
  66. package/dist/services/index.d.ts +0 -10
  67. package/dist/services/index.d.ts.map +0 -1
  68. package/dist/services/index.js +0 -9
  69. package/dist/services/index.js.map +0 -1
  70. package/dist/services/qa.d.ts +0 -76
  71. package/dist/services/qa.d.ts.map +0 -1
  72. package/dist/services/qa.js +0 -239
  73. package/dist/services/qa.js.map +0 -1
  74. package/dist/services/scout.d.ts +0 -118
  75. package/dist/services/scout.d.ts.map +0 -1
  76. package/dist/services/scout.js +0 -204
  77. package/dist/services/scout.js.map +0 -1
  78. package/dist/test/db-contract-sqlite.test.d.ts +0 -2
  79. package/dist/test/db-contract-sqlite.test.d.ts.map +0 -1
  80. package/dist/test/db-contract-sqlite.test.js +0 -176
  81. package/dist/test/db-contract-sqlite.test.js.map +0 -1
  82. package/dist/test/learnings-format.test.d.ts +0 -9
  83. package/dist/test/learnings-format.test.d.ts.map +0 -1
  84. package/dist/test/learnings-format.test.js +0 -174
  85. package/dist/test/learnings-format.test.js.map +0 -1
  86. package/dist/test/repos-integration.test.d.ts +0 -2
  87. package/dist/test/repos-integration.test.d.ts.map +0 -1
  88. package/dist/test/repos-integration.test.js +0 -565
  89. package/dist/test/repos-integration.test.js.map +0 -1
  90. package/dist/test/scout-full-pure.test.d.ts +0 -2
  91. package/dist/test/scout-full-pure.test.d.ts.map +0 -1
  92. package/dist/test/scout-full-pure.test.js +0 -122
  93. package/dist/test/scout-full-pure.test.js.map +0 -1
  94. package/dist/test/scout-integration.test.d.ts +0 -13
  95. package/dist/test/scout-integration.test.d.ts.map +0 -1
  96. package/dist/test/scout-integration.test.js +0 -229
  97. package/dist/test/scout-integration.test.js.map +0 -1
  98. package/dist/test/scout-prompt.test.d.ts +0 -2
  99. package/dist/test/scout-prompt.test.d.ts.map +0 -1
  100. package/dist/test/scout-prompt.test.js +0 -79
  101. package/dist/test/scout-prompt.test.js.map +0 -1
  102. package/dist/test/scout-runner-parse.test.d.ts +0 -2
  103. package/dist/test/scout-runner-parse.test.d.ts.map +0 -1
  104. package/dist/test/scout-runner-parse.test.js +0 -44
  105. package/dist/test/scout-runner-parse.test.js.map +0 -1
  106. package/dist/test/scout-runner-spawn.test.d.ts +0 -11
  107. package/dist/test/scout-runner-spawn.test.d.ts.map +0 -1
  108. package/dist/test/scout-runner-spawn.test.js +0 -359
  109. package/dist/test/scout-runner-spawn.test.js.map +0 -1
  110. package/dist/test/scout-scanner-fs.test.d.ts +0 -2
  111. package/dist/test/scout-scanner-fs.test.d.ts.map +0 -1
  112. package/dist/test/scout-scanner-fs.test.js +0 -188
  113. package/dist/test/scout-scanner-fs.test.js.map +0 -1
  114. package/dist/test/scout-scanner-pure.test.d.ts +0 -2
  115. package/dist/test/scout-scanner-pure.test.d.ts.map +0 -1
  116. package/dist/test/scout-scanner-pure.test.js +0 -131
  117. package/dist/test/scout-scanner-pure.test.js.map +0 -1
  118. package/dist/test/services-integration.test.d.ts +0 -2
  119. package/dist/test/services-integration.test.d.ts.map +0 -1
  120. package/dist/test/services-integration.test.js +0 -327
  121. package/dist/test/services-integration.test.js.map +0 -1
  122. package/dist/test/services-qa.test.d.ts +0 -2
  123. package/dist/test/services-qa.test.d.ts.map +0 -1
  124. package/dist/test/services-qa.test.js +0 -255
  125. package/dist/test/services-qa.test.js.map +0 -1
  126. package/dist/test/services-scout.test.d.ts +0 -2
  127. package/dist/test/services-scout.test.d.ts.map +0 -1
  128. package/dist/test/services-scout.test.js +0 -269
  129. package/dist/test/services-scout.test.js.map +0 -1
  130. package/dist/utils/id.d.ts +0 -12
  131. package/dist/utils/id.d.ts.map +0 -1
  132. package/dist/utils/id.js +0 -24
  133. package/dist/utils/id.js.map +0 -1
  134. package/dist/utils/id.test.d.ts +0 -5
  135. package/dist/utils/id.test.d.ts.map +0 -1
  136. package/dist/utils/id.test.js +0 -173
  137. package/dist/utils/id.test.js.map +0 -1
  138. package/dist/utils/index.d.ts +0 -6
  139. package/dist/utils/index.d.ts.map +0 -1
  140. package/dist/utils/index.js +0 -6
  141. package/dist/utils/index.js.map +0 -1
  142. package/dist/utils/json.d.ts +0 -9
  143. package/dist/utils/json.d.ts.map +0 -1
  144. package/dist/utils/json.js +0 -19
  145. package/dist/utils/json.js.map +0 -1
@@ -1,173 +0,0 @@
1
- /**
2
- * Tests for ID generation utilities
3
- */
4
- import { describe, it, expect } from 'vitest';
5
- import { nanoid, prefixedId } from './id.js';
6
- const ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz';
7
- describe('nanoid', () => {
8
- describe('length', () => {
9
- it('generates string of default length (21)', () => {
10
- const id = nanoid();
11
- expect(id).toHaveLength(21);
12
- });
13
- it('generates string of specified length', () => {
14
- expect(nanoid(10)).toHaveLength(10);
15
- expect(nanoid(32)).toHaveLength(32);
16
- expect(nanoid(100)).toHaveLength(100);
17
- });
18
- it('handles size=0', () => {
19
- const id = nanoid(0);
20
- expect(id).toBe('');
21
- expect(id).toHaveLength(0);
22
- });
23
- it('handles size=1', () => {
24
- const id = nanoid(1);
25
- expect(id).toHaveLength(1);
26
- expect(ALPHABET).toContain(id);
27
- });
28
- });
29
- describe('character set', () => {
30
- it('only uses characters from ALPHABET', () => {
31
- // Generate multiple IDs to increase coverage
32
- for (let i = 0; i < 100; i++) {
33
- const id = nanoid(50);
34
- for (const char of id) {
35
- expect(ALPHABET).toContain(char);
36
- }
37
- }
38
- });
39
- it('produces lowercase alphanumeric characters only', () => {
40
- const id = nanoid(100);
41
- expect(id).toMatch(/^[0-9a-z]+$/);
42
- });
43
- });
44
- describe('uniqueness', () => {
45
- it('generates unique IDs across multiple calls', () => {
46
- const ids = new Set();
47
- const count = 1000;
48
- for (let i = 0; i < count; i++) {
49
- ids.add(nanoid());
50
- }
51
- expect(ids.size).toBe(count);
52
- });
53
- it('generates unique IDs even with small size', () => {
54
- // With size=8 and 36-char alphabet, we have 36^8 = 2.8 trillion possibilities
55
- // 100 samples should still be unique
56
- const ids = new Set();
57
- const count = 100;
58
- for (let i = 0; i < count; i++) {
59
- ids.add(nanoid(8));
60
- }
61
- expect(ids.size).toBe(count);
62
- });
63
- });
64
- describe('randomness', () => {
65
- it('produces different IDs on consecutive calls', () => {
66
- const id1 = nanoid();
67
- const id2 = nanoid();
68
- const id3 = nanoid();
69
- expect(id1).not.toBe(id2);
70
- expect(id2).not.toBe(id3);
71
- expect(id1).not.toBe(id3);
72
- });
73
- });
74
- describe('edge cases', () => {
75
- it('handles large sizes', () => {
76
- const id = nanoid(1000);
77
- expect(id).toHaveLength(1000);
78
- expect(id).toMatch(/^[0-9a-z]+$/);
79
- });
80
- });
81
- });
82
- describe('prefixedId', () => {
83
- describe('format', () => {
84
- it('returns prefix_id format', () => {
85
- const id = prefixedId('tkt');
86
- expect(id).toMatch(/^tkt_[0-9a-z]+$/);
87
- });
88
- it('uses underscore as separator', () => {
89
- const id = prefixedId('usr');
90
- const parts = id.split('_');
91
- expect(parts).toHaveLength(2);
92
- expect(parts[0]).toBe('usr');
93
- });
94
- it('preserves prefix exactly', () => {
95
- const prefixes = ['tkt', 'run', 'step', 'ABC', '123'];
96
- for (const prefix of prefixes) {
97
- const id = prefixedId(prefix);
98
- expect(id.startsWith(`${prefix}_`)).toBe(true);
99
- }
100
- });
101
- });
102
- describe('default size', () => {
103
- it('uses default size of 12 for random part', () => {
104
- const id = prefixedId('tkt');
105
- const randomPart = id.split('_')[1];
106
- expect(randomPart).toHaveLength(12);
107
- });
108
- });
109
- describe('custom size', () => {
110
- it('respects custom size parameter', () => {
111
- const id = prefixedId('tkt', 8);
112
- const randomPart = id.split('_')[1];
113
- expect(randomPart).toHaveLength(8);
114
- });
115
- it('handles size=0', () => {
116
- const id = prefixedId('tkt', 0);
117
- expect(id).toBe('tkt_');
118
- });
119
- it('handles size=1', () => {
120
- const id = prefixedId('tkt', 1);
121
- const randomPart = id.split('_')[1];
122
- expect(randomPart).toHaveLength(1);
123
- expect(ALPHABET).toContain(randomPart);
124
- });
125
- it('handles large sizes', () => {
126
- const id = prefixedId('tkt', 100);
127
- const randomPart = id.split('_')[1];
128
- expect(randomPart).toHaveLength(100);
129
- });
130
- });
131
- describe('uniqueness', () => {
132
- it('generates unique IDs with same prefix', () => {
133
- const ids = new Set();
134
- const count = 100;
135
- for (let i = 0; i < count; i++) {
136
- ids.add(prefixedId('tkt'));
137
- }
138
- expect(ids.size).toBe(count);
139
- });
140
- });
141
- describe('character set', () => {
142
- it('random part only uses characters from ALPHABET', () => {
143
- for (let i = 0; i < 50; i++) {
144
- const id = prefixedId('test', 20);
145
- const randomPart = id.split('_')[1];
146
- for (const char of randomPart) {
147
- expect(ALPHABET).toContain(char);
148
- }
149
- }
150
- });
151
- });
152
- describe('edge cases', () => {
153
- it('handles empty prefix', () => {
154
- const id = prefixedId('');
155
- expect(id).toMatch(/^_[0-9a-z]+$/);
156
- });
157
- it('handles prefix with special characters', () => {
158
- const id = prefixedId('test-prefix');
159
- expect(id.startsWith('test-prefix_')).toBe(true);
160
- });
161
- it('handles prefix with underscore', () => {
162
- const id = prefixedId('my_prefix');
163
- expect(id.startsWith('my_prefix_')).toBe(true);
164
- // Verify format still works (split produces 3 parts now)
165
- const parts = id.split('_');
166
- expect(parts[0]).toBe('my');
167
- expect(parts[1]).toBe('prefix');
168
- // Random part is the third element
169
- expect(parts[2]).toHaveLength(12);
170
- });
171
- });
172
- });
173
- //# sourceMappingURL=id.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"id.test.js","sourceRoot":"","sources":["../../src/utils/id.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Utility exports
3
- */
4
- export { nanoid, prefixedId } from './id.js';
5
- export { parseJsonArray } from './json.js';
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Utility exports
3
- */
4
- export { nanoid, prefixedId } from './id.js';
5
- export { parseJsonArray } from './json.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC"}
@@ -1,9 +0,0 @@
1
- /**
2
- * JSON parsing utilities
3
- */
4
- /**
5
- * Parse a JSON string that should contain an array.
6
- * Returns an empty array if the value is null, empty, or invalid JSON.
7
- */
8
- export declare function parseJsonArray(value: string | null): string[];
9
- //# sourceMappingURL=json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,EAAE,CAQ7D"}
@@ -1,19 +0,0 @@
1
- /**
2
- * JSON parsing utilities
3
- */
4
- /**
5
- * Parse a JSON string that should contain an array.
6
- * Returns an empty array if the value is null, empty, or invalid JSON.
7
- */
8
- export function parseJsonArray(value) {
9
- if (!value)
10
- return [];
11
- try {
12
- const parsed = JSON.parse(value);
13
- return Array.isArray(parsed) ? parsed : [];
14
- }
15
- catch {
16
- return [];
17
- }
18
- }
19
- //# sourceMappingURL=json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/utils/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAoB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}