@athree/helpers 4.0.0-wip.1 → 4.0.0-wip.11

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.
@@ -0,0 +1,5 @@
1
+ export interface DebounceOptions {
2
+ leading?: boolean;
3
+ trailing?: boolean;
4
+ }
5
+ export declare function debounce(delay: number, options?: DebounceOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -0,0 +1,28 @@
1
+ export function debounce(delay, options = {}) {
2
+ const { leading = false, trailing = true } = options;
3
+ return (target, propertyKey, descriptor) => {
4
+ let timer = null;
5
+ let waiting = false;
6
+ let called = false;
7
+ const originalMethod = descriptor.value;
8
+ descriptor.value = function debounced(...args) {
9
+ if (leading && !waiting) {
10
+ originalMethod.apply(this, args);
11
+ called = true;
12
+ }
13
+ else {
14
+ called = false;
15
+ }
16
+ waiting = true;
17
+ clearTimeout(timer);
18
+ timer = setTimeout(() => {
19
+ waiting = false;
20
+ if (trailing && !called) {
21
+ originalMethod.apply(this, args);
22
+ called = true;
23
+ }
24
+ }, delay);
25
+ };
26
+ };
27
+ }
28
+ //# sourceMappingURL=debounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.js","sourceRoot":"","sources":["../../src/main/debounce.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,QAAQ,CAAC,KAAa,EAAE,UAA2B,EAAE;IACjE,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACrD,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAE,EAAE;QACxE,IAAI,KAAK,GAAQ,IAAI,CAAC;QACtB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,SAAS,SAAS,CAAC,GAAG,IAAW;YAChD,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpB,OAAO,GAAG,KAAK,CAAC;gBAChB,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;oBACtB,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACjC,MAAM,GAAG,IAAI,CAAC;gBAClB,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,CAAC;QACd,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -1,7 +1,45 @@
1
+ import { StageInfo } from '@athree/runner-proto';
1
2
  export declare function errorToJson(error: any): {
2
3
  name: any;
3
- message: any;
4
- stack: any;
4
+ message: string;
5
+ stack: string;
5
6
  code: any;
6
7
  details: any;
7
8
  };
9
+ export declare class BaseError extends Error {
10
+ name: string;
11
+ }
12
+ export declare class NoStagesMatchError extends BaseError {
13
+ code: string;
14
+ constructor();
15
+ }
16
+ export declare class MultipleStagesMatchError extends BaseError {
17
+ code: string;
18
+ constructor();
19
+ }
20
+ export declare class PlaybackAlreadyRunnningError extends BaseError {
21
+ code: string;
22
+ constructor();
23
+ }
24
+ export declare class CostLimitExceededError extends BaseError {
25
+ code: string;
26
+ constructor(currentCost: number);
27
+ }
28
+ export declare class StageVerificationFailedError extends BaseError {
29
+ code: string;
30
+ details: {};
31
+ constructor(stageInfo: StageInfo);
32
+ }
33
+ export declare class WorkflowFailError extends BaseError {
34
+ code: string;
35
+ details: {};
36
+ constructor(code: string, message: string);
37
+ }
38
+ export declare class NotFoundError extends BaseError {
39
+ code: string;
40
+ details: {};
41
+ constructor(message: string);
42
+ }
43
+ export declare class UserQuestionRejectedError extends Error {
44
+ constructor(questionId: string);
45
+ }
package/out/main/error.js CHANGED
@@ -1,10 +1,70 @@
1
+ import { stripColors } from './string.js';
1
2
  export function errorToJson(error) {
2
3
  return {
3
4
  name: error?.name ?? 'Error',
4
- message: error?.message ?? 'Unknown error',
5
- stack: error?.stack ?? '',
5
+ message: stripColors(error?.message ?? 'Unknown error'),
6
+ stack: stripColors(error?.stack ?? ''),
6
7
  code: error?.code,
7
8
  details: error?.details,
8
9
  };
9
10
  }
11
+ export class BaseError extends Error {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.name = this.constructor.name;
15
+ }
16
+ }
17
+ export class NoStagesMatchError extends BaseError {
18
+ constructor() {
19
+ super('No stages match');
20
+ this.code = 'NO_STAGES_MATCH';
21
+ }
22
+ }
23
+ export class MultipleStagesMatchError extends BaseError {
24
+ constructor() {
25
+ super('Multiple stages match');
26
+ this.code = 'MULTIPLE_STAGES_MATCH';
27
+ }
28
+ }
29
+ export class PlaybackAlreadyRunnningError extends BaseError {
30
+ constructor() {
31
+ super('Already running');
32
+ this.code = 'PLAYBACK_ALREADY_RUNNING';
33
+ }
34
+ }
35
+ export class CostLimitExceededError extends BaseError {
36
+ constructor(currentCost) {
37
+ super(`Cost limit exceeded: ${currentCost}`);
38
+ this.code = 'COST_LIMIT_EXCEEDED';
39
+ }
40
+ }
41
+ export class StageVerificationFailedError extends BaseError {
42
+ constructor(stageInfo) {
43
+ super(`Stage verification failed: ${stageInfo.title}`);
44
+ this.code = 'STAGE_VERIFICATION_FAILED';
45
+ this.details = {};
46
+ this.details = stageInfo;
47
+ }
48
+ }
49
+ export class WorkflowFailError extends BaseError {
50
+ constructor(code, message) {
51
+ super(message);
52
+ this.code = 'WORKFLOW_FAIL';
53
+ this.details = {};
54
+ this.details = { code };
55
+ }
56
+ }
57
+ export class NotFoundError extends BaseError {
58
+ constructor(message) {
59
+ super(message);
60
+ this.code = 'NOT_FOUND';
61
+ this.details = {};
62
+ }
63
+ }
64
+ export class UserQuestionRejectedError extends Error {
65
+ constructor(questionId) {
66
+ super(`User rejected answering question: ${questionId}`);
67
+ this.name = 'UserQuestionRejectedError';
68
+ }
69
+ }
10
70
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/main/error.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,KAAU;IAClC,OAAO;QACH,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO;QAC5B,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,eAAe;QAC1C,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;QACzB,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,OAAO,EAAE,KAAK,EAAE,OAAO;KAC1B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/main/error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,KAAU;IAClC,OAAO;QACH,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,OAAO;QAC5B,OAAO,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC;QACvD,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;QACtC,IAAI,EAAE,KAAK,EAAE,IAAI;QACjB,OAAO,EAAE,KAAK,EAAE,OAAO;KAC1B,CAAC;AACN,CAAC;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAApC;;QAEa,SAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAE1C,CAAC;CAAA;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAI7C;QACI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAH7B,SAAI,GAAG,iBAAiB,CAAC;IAIzB,CAAC;CAEJ;AAED,MAAM,OAAO,wBAAyB,SAAQ,SAAS;IAInD;QACI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAHnC,SAAI,GAAG,uBAAuB,CAAC;IAI/B,CAAC;CAEJ;AAED,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAIvD;QACI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAH7B,SAAI,GAAG,0BAA0B,CAAC;IAIlC,CAAC;CAEJ;AAED,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IAIjD,YAAY,WAAmB;QAC3B,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;QAHjD,SAAI,GAAG,qBAAqB,CAAC;IAI7B,CAAC;CAEJ;AAED,MAAM,OAAO,4BAA6B,SAAQ,SAAS;IAKvD,YAAY,SAAoB;QAC5B,KAAK,CAAC,8BAA8B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QAJ3D,SAAI,GAAG,2BAA2B,CAAC;QACnC,YAAO,GAAG,EAAE,CAAC;QAIT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7B,CAAC;CAEJ;AAED,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAK5C,YAAY,IAAY,EAAE,OAAe;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,SAAI,GAAG,eAAe,CAAC;QACvB,YAAO,GAAG,EAAE,CAAC;QAIT,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;CAEJ;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAKxC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,SAAI,GAAG,WAAW,CAAC;QACnB,YAAO,GAAG,EAAE,CAAC;IAIb,CAAC;CAEJ;AAED,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAEhD,YAAY,UAAkB;QAC1B,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC5C,CAAC;CAEJ"}
@@ -1,5 +1,6 @@
1
1
  export * from './clone.js';
2
2
  export * from './compare.js';
3
+ export * from './debounce.js';
3
4
  export * from './error.js';
4
5
  export * from './extract.js';
5
6
  export * from './id.js';
@@ -7,5 +8,6 @@ export * from './json.js';
7
8
  export * from './llm.js';
8
9
  export * from './markdown.js';
9
10
  export * from './math.js';
11
+ export * from './string.js';
10
12
  export * from './throttle.js';
11
13
  export * from './time.js';
package/out/main/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './clone.js';
2
2
  export * from './compare.js';
3
+ export * from './debounce.js';
3
4
  export * from './error.js';
4
5
  export * from './extract.js';
5
6
  export * from './id.js';
@@ -7,6 +8,7 @@ export * from './json.js';
7
8
  export * from './llm.js';
8
9
  export * from './markdown.js';
9
10
  export * from './math.js';
11
+ export * from './string.js';
10
12
  export * from './throttle.js';
11
13
  export * from './time.js';
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/main/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function slugify(text: string): string;
2
+ export declare function stripColors(str: string): string;
@@ -0,0 +1,15 @@
1
+ export function slugify(text) {
2
+ return (text ?? '')
3
+ .trim()
4
+ .replace(/([A-Z])/g, '-$1')
5
+ .replace(/[^a-zA-Z0-9-]/g, '-')
6
+ .replace(/-+/g, '-')
7
+ .replace(/^-+/g, '')
8
+ .replace(/-+$/g, '')
9
+ .toLowerCase();
10
+ }
11
+ export function stripColors(str) {
12
+ // eslint-disable-next-line no-control-regex
13
+ return str.replace(/\x1B\[[0-9;]*m/g, '');
14
+ }
15
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/main/string.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,IAAY;IAChC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;SACd,IAAI,EAAE;SACN,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,WAAW,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAW;IACnC,4CAA4C;IAC5C,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athree/helpers",
3
- "version": "4.0.0-wip.1",
3
+ "version": "4.0.0-wip.11",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -13,6 +13,7 @@
13
13
  "clean": "rm -rf out/ *.tsbuildinfo"
14
14
  },
15
15
  "dependencies": {
16
+ "@athree/runner-proto": "4.0.0-wip.11",
16
17
  "@types/markdown-it": "^14.1.2",
17
18
  "markdown-it": "^14.1.0",
18
19
  "nanoid": "^5.1.3"