@liquidmetal-ai/drizzle 0.1.1 → 0.1.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.
@@ -0,0 +1,6 @@
1
+ ---
2
+ '@liquidmetal-ai/raindrop': patch
3
+ '@liquidmetal-ai/drizzle': patch
4
+ ---
5
+
6
+ Correct vector_index dimension to dimensions.
@@ -1,6 +1,30 @@
1
1
 
2
2
  
3
- > @liquidmetal-ai/drizzle@0.0.4 build
3
+ > @liquidmetal-ai/drizzle@0.1.2 prebuild
4
+ > npm install --ignore-scripts
5
+
6
+ ⠙⠹⠸⠼⠴⠦⠧⠇⠏⠋⠙
7
+ > @liquidmetal-ai/drizzle@0.1.2 prepare
8
+ > npm run build
9
+
10
+ ⠙
11
+ > @liquidmetal-ai/drizzle@0.1.2 build
12
+ > shx rm -rf dist && tsc -b
13
+
14
+ ⠙⠙⠹⠸⠼⠴⠦⠧⠇⠏⠋
15
+ up to date, audited 2474 packages in 6s
16
+ ⠋
17
+ ⠋402 packages are looking for funding
18
+ ⠋ run `npm fund` for details
19
+ ⠋
20
+ 6 vulnerabilities (1 low, 1 moderate, 4 high)
21
+
22
+ To address all issues, run:
23
+ npm audit fix
24
+
25
+ Run `npm audit` for details.
26
+ ⠋⠙
27
+ > @liquidmetal-ai/drizzle@0.1.2 build
4
28
  > shx rm -rf dist && tsc -b
5
29
 
6
- ⠙
30
+ ⠙⠙
@@ -114,7 +114,7 @@ export declare class Queue {
114
114
  export declare class VectorIndex {
115
115
  name: TokenString;
116
116
  visibility?: TokenString;
117
- dimension?: TokenNumber;
117
+ dimensions?: TokenNumber;
118
118
  metric?: TokenString;
119
119
  obj: ConfigObject;
120
120
  constructor(name: TokenString, obj: ConfigObject);
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/appify/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/appify/build.ts"],"names":[],"mappings":"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"}
@@ -271,8 +271,8 @@ function buildVectorIndex(stanza) {
271
271
  case 'visibility':
272
272
  buildAssignment(bucket, 'visibility', 'string', child, errors);
273
273
  break;
274
- case 'dimension':
275
- buildAssignment(bucket, 'dimension', 'number', child, errors);
274
+ case 'dimensions':
275
+ buildAssignment(bucket, 'dimensions', 'number', child, errors);
276
276
  break;
277
277
  case 'metric':
278
278
  buildAssignment(bucket, 'metric', 'string', child, errors);
@@ -683,7 +683,7 @@ export class Queue {
683
683
  export class VectorIndex {
684
684
  name;
685
685
  visibility;
686
- dimension;
686
+ dimensions;
687
687
  metric;
688
688
  obj;
689
689
  constructor(name, obj) {
@@ -304,7 +304,7 @@ const nameValidator = {
304
304
  const vectorIndexValidator = {
305
305
  onVectorIndex: async (app, vectorIndex) => {
306
306
  const errors = [];
307
- if (vectorIndex.dimension === undefined) {
307
+ if (vectorIndex.dimensions === undefined) {
308
308
  errors.push({
309
309
  message: 'vector index must have a dimension',
310
310
  severity: 'error',
@@ -323,23 +323,23 @@ const vectorIndexValidator = {
323
323
  return errors;
324
324
  }
325
325
  // We have to re-check because the above is too complex for TS.
326
- if (vectorIndex.dimension === undefined) {
326
+ if (vectorIndex.dimensions === undefined) {
327
327
  return errors;
328
328
  }
329
- const dimension = valueOf(vectorIndex.dimension);
329
+ const dimension = valueOf(vectorIndex.dimensions);
330
330
  if (!Number.isInteger(dimension)) {
331
331
  errors.push({
332
- message: 'vector index dimension must be an integer',
332
+ message: 'vector index dimensions must be an integer',
333
333
  severity: 'error',
334
- ...vectorIndex.dimension,
334
+ ...vectorIndex.dimensions,
335
335
  });
336
336
  return errors;
337
337
  }
338
338
  if (dimension < 1 || dimension > 1536) {
339
339
  errors.push({
340
- message: 'vector index dimension must be between 1 and 1536',
340
+ message: 'vector index dimensions must be between 1 and 1536',
341
341
  severity: 'error',
342
- ...vectorIndex.dimension,
342
+ ...vectorIndex.dimensions,
343
343
  });
344
344
  }
345
345
  return errors;
@@ -0,0 +1,38 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = "DEBUG",
3
+ INFO = "INFO",
4
+ WARN = "WARN",
5
+ ERROR = "ERROR"
6
+ }
7
+ export interface Fields {
8
+ [key: string]: number | string | boolean | object | undefined | null | Error | Fields;
9
+ }
10
+ export interface Error {
11
+ cause?: string;
12
+ stack?: string;
13
+ message: string;
14
+ }
15
+ export interface Message {
16
+ level: LogLevel;
17
+ message: string;
18
+ fields: Fields;
19
+ }
20
+ interface LogSink {
21
+ (m: Message): void;
22
+ }
23
+ export declare class Logger {
24
+ #private;
25
+ constructor(sink: LogSink, fields?: Fields, defaultLogLevel?: LogLevel);
26
+ with(fields?: Fields): Logger;
27
+ log(message: string, fields?: Fields): void;
28
+ logAtLevel(level: LogLevel, message: string, fields?: Fields): void;
29
+ message(message: string, fields?: Fields): Message;
30
+ messageAtLevel(level: LogLevel, message: string, fields?: Fields): Message;
31
+ debug(message: string, fields?: Fields): void;
32
+ info(message: string, fields?: Fields): void;
33
+ warn(message: string, fields?: Fields): void;
34
+ withError(error: unknown, fields?: Fields): Logger;
35
+ error(message: string, fields?: Fields): void;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;CACvF;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,OAAO;IACf,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACpB;AAED,qBAAa,MAAM;;gBAKL,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,QAAQ;IAMtE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAI7B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAIlD,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAQ1E,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI7C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5C,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAgBlD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAG9C"}
@@ -0,0 +1,63 @@
1
+ export var LogLevel;
2
+ (function (LogLevel) {
3
+ LogLevel["DEBUG"] = "DEBUG";
4
+ LogLevel["INFO"] = "INFO";
5
+ LogLevel["WARN"] = "WARN";
6
+ LogLevel["ERROR"] = "ERROR";
7
+ })(LogLevel || (LogLevel = {}));
8
+ export class Logger {
9
+ #sink;
10
+ #fields;
11
+ #defaultLogLevel;
12
+ constructor(sink, fields, defaultLogLevel) {
13
+ this.#sink = sink;
14
+ this.#fields = fields || {};
15
+ this.#defaultLogLevel = defaultLogLevel || LogLevel.INFO;
16
+ }
17
+ with(fields) {
18
+ return new Logger(this.#sink, { ...this.#fields, ...fields });
19
+ }
20
+ log(message, fields) {
21
+ this.logAtLevel(this.#defaultLogLevel, message, fields);
22
+ }
23
+ logAtLevel(level, message, fields) {
24
+ this.#sink(this.messageAtLevel(level, message, fields));
25
+ }
26
+ message(message, fields) {
27
+ return this.messageAtLevel(this.#defaultLogLevel, message, fields);
28
+ }
29
+ messageAtLevel(level, message, fields) {
30
+ return {
31
+ level,
32
+ message,
33
+ fields: { ...this.#fields, ...fields },
34
+ };
35
+ }
36
+ debug(message, fields) {
37
+ this.logAtLevel(LogLevel.DEBUG, message, fields);
38
+ }
39
+ info(message, fields) {
40
+ this.logAtLevel(LogLevel.INFO, message, fields);
41
+ }
42
+ warn(message, fields) {
43
+ this.logAtLevel(LogLevel.WARN, message, fields);
44
+ }
45
+ withError(error, fields) {
46
+ let err;
47
+ if (typeof error === 'object' && error !== null) {
48
+ err = error;
49
+ }
50
+ else {
51
+ err = {};
52
+ }
53
+ const errFields = {
54
+ message: 'message' in err && typeof err.message === 'string' ? err.message : 'Unknown error',
55
+ stack: 'stack' in err && typeof err.stack === 'string' ? err.stack : undefined,
56
+ cause: 'cause' in err && typeof err.cause === 'string' ? err.cause : undefined,
57
+ };
58
+ return this.with({ error: errFields, ...fields, logLevel: LogLevel.ERROR });
59
+ }
60
+ error(message, fields) {
61
+ this.logAtLevel(LogLevel.ERROR, message, fields);
62
+ }
63
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=logging.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.test.d.ts","sourceRoot":"","sources":["../src/logging.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import { afterAll, describe, expect, it, vi } from 'vitest';
2
+ import { Logger, LogLevel } from './logging.js';
3
+ describe('Logger', () => {
4
+ const consoleSpy = vi.spyOn(console, 'log');
5
+ afterAll(() => {
6
+ consoleSpy.mockReset();
7
+ });
8
+ it('can be created with default fields and log level', () => {
9
+ const logger = new Logger(console.log, { foo: 'bar' });
10
+ const message = logger.message('just a test message');
11
+ expect(message).toEqual({
12
+ level: LogLevel.INFO,
13
+ message: 'just a test message',
14
+ fields: { foo: 'bar' },
15
+ });
16
+ });
17
+ it('can be composed with additional fields', () => {
18
+ const logger1 = new Logger(console.log, { foo: 'bar' });
19
+ const logger2 = logger1.with({ baz: 'qux' });
20
+ const message1 = logger1.message('just a test message');
21
+ const message2 = logger2.message('just another test message');
22
+ expect(message1).toEqual({
23
+ level: LogLevel.INFO,
24
+ message: 'just a test message',
25
+ fields: { foo: 'bar' },
26
+ });
27
+ expect(message2).toEqual({
28
+ level: LogLevel.INFO,
29
+ message: 'just another test message',
30
+ fields: { foo: 'bar', baz: 'qux' },
31
+ });
32
+ });
33
+ it('can log messages at a debug level', () => {
34
+ const logger = new Logger(console.log);
35
+ logger.debug('debug message');
36
+ expect(consoleSpy).toHaveBeenCalledWith({
37
+ fields: {},
38
+ level: 'DEBUG',
39
+ message: 'debug message',
40
+ });
41
+ });
42
+ it('can log messages at a info level', () => {
43
+ const logger = new Logger(console.log);
44
+ logger.info('info message');
45
+ expect(consoleSpy).toHaveBeenCalledWith({
46
+ fields: {},
47
+ level: 'INFO',
48
+ message: 'info message',
49
+ });
50
+ });
51
+ it('can log messages at a warn level', () => {
52
+ const logger = new Logger(console.log);
53
+ logger.warn('warn message');
54
+ expect(consoleSpy).toHaveBeenCalledWith({
55
+ fields: {},
56
+ level: 'WARN',
57
+ message: 'warn message',
58
+ });
59
+ });
60
+ it('can log messages at an error level', () => {
61
+ const logger = new Logger(console.log);
62
+ logger.error('error message');
63
+ expect(consoleSpy).toHaveBeenCalledWith({
64
+ fields: {},
65
+ level: 'ERROR',
66
+ message: 'error message',
67
+ });
68
+ });
69
+ it('can log Error objects', () => {
70
+ const logger = new Logger(console.log);
71
+ const error = new Error('test error');
72
+ const message = logger.withError(error).messageAtLevel(LogLevel.ERROR, 'error message');
73
+ expect(message).toMatchObject({
74
+ level: LogLevel.ERROR,
75
+ message: 'error message',
76
+ fields: {
77
+ error: {
78
+ message: 'test error',
79
+ cause: undefined,
80
+ },
81
+ },
82
+ });
83
+ });
84
+ });
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@liquidmetal-ai/drizzle",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Raindrop core operational libraries",
5
+ "main": "dist/index.js",
5
6
  "type": "module",
6
7
  "scripts": {
8
+ "prebuild": "npm install --ignore-scripts",
9
+ "prepare": "npm run build",
7
10
  "build": "shx rm -rf dist && tsc -b",
8
11
  "format": "prettier --write \"**/*.{ts,tsx,md}\"",
9
12
  "lint": "eslint . --max-warnings=0",
10
- "prepare": "npm run build",
11
13
  "posttest": "npm run lint",
12
14
  "test": "vitest run",
13
15
  "test:watch": "vitest"
@@ -29,6 +31,9 @@
29
31
  "typescript-eslint": "^8.7.0",
30
32
  "vitest": "^2.1.1"
31
33
  },
34
+ "dependencies": {
35
+ "jszip": "^3.10.1"
36
+ },
32
37
  "exports": {
33
38
  ".": {
34
39
  "import": "./dist/index.js",
@@ -38,8 +43,5 @@
38
43
  "import": "./dist/*.js",
39
44
  "types": "./dist/*.d.ts"
40
45
  }
41
- },
42
- "dependencies": {
43
- "jszip": "^3.10.1"
44
46
  }
45
47
  }
@@ -310,8 +310,8 @@ function buildVectorIndex(stanza: StanzaNode): [Bucket, ConfigError[]] {
310
310
  case 'visibility':
311
311
  buildAssignment(bucket, 'visibility', 'string', child, errors);
312
312
  break;
313
- case 'dimension':
314
- buildAssignment(bucket, 'dimension', 'number', child, errors);
313
+ case 'dimensions':
314
+ buildAssignment(bucket, 'dimensions', 'number', child, errors);
315
315
  break;
316
316
  case 'metric':
317
317
  buildAssignment(bucket, 'metric', 'string', child, errors);
@@ -758,7 +758,7 @@ export class Queue {
758
758
  export class VectorIndex {
759
759
  name: TokenString;
760
760
  visibility?: TokenString;
761
- dimension?: TokenNumber;
761
+ dimensions?: TokenNumber;
762
762
  metric?: TokenString;
763
763
  obj: ConfigObject;
764
764
 
@@ -395,7 +395,7 @@ const nameValidator: Validator = {
395
395
  const vectorIndexValidator: Validator = {
396
396
  onVectorIndex: async (app: Application, vectorIndex: VectorIndex): Promise<ValidationError[]> => {
397
397
  const errors: ValidationError[] = [];
398
- if (vectorIndex.dimension === undefined) {
398
+ if (vectorIndex.dimensions === undefined) {
399
399
  errors.push({
400
400
  message: 'vector index must have a dimension',
401
401
  severity: 'error',
@@ -416,23 +416,23 @@ const vectorIndexValidator: Validator = {
416
416
  return errors;
417
417
  }
418
418
  // We have to re-check because the above is too complex for TS.
419
- if (vectorIndex.dimension === undefined) {
419
+ if (vectorIndex.dimensions === undefined) {
420
420
  return errors;
421
421
  }
422
- const dimension = valueOf(vectorIndex.dimension);
422
+ const dimension = valueOf(vectorIndex.dimensions);
423
423
  if (!Number.isInteger(dimension)) {
424
424
  errors.push({
425
- message: 'vector index dimension must be an integer',
425
+ message: 'vector index dimensions must be an integer',
426
426
  severity: 'error',
427
- ...vectorIndex.dimension,
427
+ ...vectorIndex.dimensions,
428
428
  });
429
429
  return errors;
430
430
  }
431
431
  if (dimension < 1 || dimension > 1536) {
432
432
  errors.push({
433
- message: 'vector index dimension must be between 1 and 1536',
433
+ message: 'vector index dimensions must be between 1 and 1536',
434
434
  severity: 'error',
435
- ...vectorIndex.dimension,
435
+ ...vectorIndex.dimensions,
436
436
  });
437
437
  }
438
438
  return errors;
@@ -0,0 +1,95 @@
1
+ import { afterAll, describe, expect, it, vi } from 'vitest';
2
+ import { Logger, LogLevel } from './logging.js';
3
+
4
+ describe('Logger', () => {
5
+ const consoleSpy = vi.spyOn(console, 'log');
6
+
7
+ afterAll(() => {
8
+ consoleSpy.mockReset();
9
+ });
10
+
11
+ it('can be created with default fields and log level', () => {
12
+ const logger = new Logger(console.log, { foo: 'bar' });
13
+ const message = logger.message('just a test message');
14
+ expect(message).toEqual({
15
+ level: LogLevel.INFO,
16
+ message: 'just a test message',
17
+ fields: { foo: 'bar' },
18
+ });
19
+ });
20
+
21
+ it('can be composed with additional fields', () => {
22
+ const logger1 = new Logger(console.log, { foo: 'bar' });
23
+ const logger2 = logger1.with({ baz: 'qux' });
24
+ const message1 = logger1.message('just a test message');
25
+ const message2 = logger2.message('just another test message');
26
+
27
+ expect(message1).toEqual({
28
+ level: LogLevel.INFO,
29
+ message: 'just a test message',
30
+ fields: { foo: 'bar' },
31
+ });
32
+ expect(message2).toEqual({
33
+ level: LogLevel.INFO,
34
+ message: 'just another test message',
35
+ fields: { foo: 'bar', baz: 'qux' },
36
+ });
37
+ });
38
+
39
+ it('can log messages at a debug level', () => {
40
+ const logger = new Logger(console.log);
41
+ logger.debug('debug message');
42
+ expect(consoleSpy).toHaveBeenCalledWith({
43
+ fields: {},
44
+ level: 'DEBUG',
45
+ message: 'debug message',
46
+ });
47
+ });
48
+
49
+ it('can log messages at a info level', () => {
50
+ const logger = new Logger(console.log);
51
+ logger.info('info message');
52
+ expect(consoleSpy).toHaveBeenCalledWith({
53
+ fields: {},
54
+ level: 'INFO',
55
+ message: 'info message',
56
+ });
57
+ });
58
+
59
+ it('can log messages at a warn level', () => {
60
+ const logger = new Logger(console.log);
61
+ logger.warn('warn message');
62
+ expect(consoleSpy).toHaveBeenCalledWith({
63
+ fields: {},
64
+ level: 'WARN',
65
+ message: 'warn message',
66
+ });
67
+ });
68
+
69
+ it('can log messages at an error level', () => {
70
+ const logger = new Logger(console.log);
71
+ logger.error('error message');
72
+ expect(consoleSpy).toHaveBeenCalledWith({
73
+ fields: {},
74
+ level: 'ERROR',
75
+ message: 'error message',
76
+ });
77
+ });
78
+
79
+ it('can log Error objects', () => {
80
+ const logger = new Logger(console.log);
81
+ const error = new Error('test error');
82
+ const message = logger.withError(error).messageAtLevel(LogLevel.ERROR, 'error message');
83
+
84
+ expect(message).toMatchObject({
85
+ level: LogLevel.ERROR,
86
+ message: 'error message',
87
+ fields: {
88
+ error: {
89
+ message: 'test error',
90
+ cause: undefined,
91
+ },
92
+ },
93
+ });
94
+ });
95
+ });
package/src/logging.ts ADDED
@@ -0,0 +1,94 @@
1
+ export enum LogLevel {
2
+ DEBUG = 'DEBUG',
3
+ INFO = 'INFO',
4
+ WARN = 'WARN',
5
+ ERROR = 'ERROR',
6
+ }
7
+
8
+ export interface Fields {
9
+ [key: string]: number | string | boolean | object | undefined | null | Error | Fields;
10
+ }
11
+
12
+ export interface Error {
13
+ cause?: string;
14
+ stack?: string;
15
+ message: string;
16
+ }
17
+
18
+ export interface Message {
19
+ level: LogLevel;
20
+ message: string;
21
+ fields: Fields;
22
+ }
23
+
24
+ interface LogSink {
25
+ (m: Message): void;
26
+ }
27
+
28
+ export class Logger {
29
+ #sink: (m: Message) => void;
30
+ #fields: Fields;
31
+ #defaultLogLevel: LogLevel;
32
+
33
+ constructor(sink: LogSink, fields?: Fields, defaultLogLevel?: LogLevel) {
34
+ this.#sink = sink;
35
+ this.#fields = fields || {};
36
+ this.#defaultLogLevel = defaultLogLevel || LogLevel.INFO;
37
+ }
38
+
39
+ with(fields?: Fields): Logger {
40
+ return new Logger(this.#sink, { ...this.#fields, ...fields });
41
+ }
42
+
43
+ log(message: string, fields?: Fields): void {
44
+ this.logAtLevel(this.#defaultLogLevel, message, fields);
45
+ }
46
+
47
+ logAtLevel(level: LogLevel, message: string, fields?: Fields): void {
48
+ this.#sink(this.messageAtLevel(level, message, fields));
49
+ }
50
+
51
+ message(message: string, fields?: Fields): Message {
52
+ return this.messageAtLevel(this.#defaultLogLevel, message, fields);
53
+ }
54
+
55
+ messageAtLevel(level: LogLevel, message: string, fields?: Fields): Message {
56
+ return {
57
+ level,
58
+ message,
59
+ fields: { ...this.#fields, ...fields },
60
+ };
61
+ }
62
+
63
+ debug(message: string, fields?: Fields): void {
64
+ this.logAtLevel(LogLevel.DEBUG, message, fields);
65
+ }
66
+
67
+ info(message: string, fields?: Fields): void {
68
+ this.logAtLevel(LogLevel.INFO, message, fields);
69
+ }
70
+
71
+ warn(message: string, fields?: Fields): void {
72
+ this.logAtLevel(LogLevel.WARN, message, fields);
73
+ }
74
+
75
+ withError(error: unknown, fields?: Fields): Logger {
76
+ let err: object;
77
+ if (typeof error === 'object' && error !== null) {
78
+ err = error;
79
+ } else {
80
+ err = {};
81
+ }
82
+
83
+ const errFields = {
84
+ message: 'message' in err && typeof err.message === 'string' ? err.message : 'Unknown error',
85
+ stack: 'stack' in err && typeof err.stack === 'string' ? err.stack : undefined,
86
+ cause: 'cause' in err && typeof err.cause === 'string' ? err.cause : undefined,
87
+ };
88
+ return this.with({ error: errFields, ...fields, logLevel: LogLevel.ERROR });
89
+ }
90
+
91
+ error(message: string, fields?: Fields): void {
92
+ this.logAtLevel(LogLevel.ERROR, message, fields);
93
+ }
94
+ }
package/tsconfig.json CHANGED
@@ -6,7 +6,6 @@
6
6
  "esModuleInterop": true,
7
7
  "incremental": false,
8
8
  "isolatedModules": true,
9
- "lib": ["es2022", "DOM", "DOM.Iterable"],
10
9
  "lib": ["ESNext"],
11
10
  "module": "ESNext",
12
11
  "moduleDetection": "force",
@@ -1 +1 @@
1
- {"root":["./src/codestore.test.ts","./src/codestore.ts","./src/appify/build.test.ts","./src/appify/build.ts","./src/appify/index.test.ts","./src/appify/index.ts","./src/appify/parse.test.ts","./src/appify/parse.ts","./src/appify/validate.test.ts","./src/appify/validate.ts","./src/liquidmetal/v1alpha1/catalog_connect.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_connect.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/rainbow_public_connect.ts","./src/liquidmetal/v1alpha1/rainbow_public_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/raindrop/index.test.ts","./src/raindrop/index.ts","./src/unsafe/codestore.test.ts","./src/unsafe/codestore.ts","./src/unsafe/framework.test.ts","./src/unsafe/framework.ts"],"version":"5.6.3"}
1
+ {"root":["./src/codestore.test.ts","./src/codestore.ts","./src/logging.test.ts","./src/logging.ts","./src/appify/build.test.ts","./src/appify/build.ts","./src/appify/index.test.ts","./src/appify/index.ts","./src/appify/parse.test.ts","./src/appify/parse.ts","./src/appify/validate.test.ts","./src/appify/validate.ts","./src/liquidmetal/v1alpha1/catalog_connect.ts","./src/liquidmetal/v1alpha1/catalog_pb.ts","./src/liquidmetal/v1alpha1/rainbow_auth_connect.ts","./src/liquidmetal/v1alpha1/rainbow_auth_pb.ts","./src/liquidmetal/v1alpha1/rainbow_public_connect.ts","./src/liquidmetal/v1alpha1/rainbow_public_pb.ts","./src/liquidmetal/v1alpha1/raindrop_pb.ts","./src/raindrop/index.test.ts","./src/raindrop/index.ts","./src/unsafe/codestore.test.ts","./src/unsafe/codestore.ts","./src/unsafe/framework.test.ts","./src/unsafe/framework.ts"],"version":"5.6.3"}
@@ -1,6 +0,0 @@
1
-
2
- 
3
- > @liquidmetal-ai/drizzle@0.0.4 lint
4
- > eslint . --max-warnings=0
5
-
6
- ⠙
@@ -1,211 +0,0 @@
1
-
2
- 
3
- > @liquidmetal-ai/drizzle@0.0.4 test
4
- > vitest run
5
-
6
- 
7
-  RUN  v2.1.1 /Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle
8
-
9
- [?25l · src/appify/parse.test.ts (15)
10
- · src/appify/build.test.ts (2)
11
- [?25l · src/appify/parse.test.ts (15)
12
- ✓ src/appify/build.test.ts (2)
13
- [?25l ✓ src/appify/parse.test.ts (15)
14
- ✓ src/appify/build.test.ts (2)
15
- [?25l[?25l[?25l[?25l[?25l[?25l[?25l · src/appify/validate.test.ts (14)
16
- ✓ src/appify/parse.test.ts (15)
17
- ✓ src/appify/build.test.ts (2)
18
- [?25l · src/appify/validate.test.ts (14)
19
- · src/unsafe/framework.test.ts (7)
20
- ✓ src/appify/parse.test.ts (15)
21
- ✓ src/appify/build.test.ts (2)
22
- [?25l[?25l[?25l · src/appify/validate.test.ts (14)
23
- ❯ src/unsafe/framework.test.ts (7)
24
- ❯ getPackageVersion (7)
25
- ⠙ should detect npm package version
26
- · should detect yarn package version
27
- · should detect pnpm package version
28
- · should handle nested dependencies
29
- · should return null when package is not found
30
- · should search parent directories for package manager files
31
- · should handle command execution errors
32
- ✓ src/appify/parse.test.ts (15)
33
- · src/codestore.test.ts (9)
34
- ✓ src/appify/build.test.ts (2)
35
- · src/unsafe/codestore.test.ts (1)
36
- [?25l · src/appify/validate.test.ts (14)
37
- ❯ src/unsafe/framework.test.ts (7)
38
- ❯ getPackageVersion (7)
39
- ⠹ should detect npm package version
40
- · should detect yarn package version
41
- · should detect pnpm package version
42
- · should handle nested dependencies
43
- · should return null when package is not found
44
- · should search parent directories for package manager files
45
- · should handle command execution errors
46
- ✓ src/appify/parse.test.ts (15)
47
- ❯ src/codestore.test.ts (9)
48
- ⠙ archive and unarchive
49
- · list bundle with files
50
- · read file from bundle
51
- · read missing file from bundle
52
- · delete file from bundle
53
- · for await of bundle
54
- · stat file from bundle
55
- · stat missing file from bundle
56
- · hash bundle
57
- ✓ src/appify/build.test.ts (2)
58
- ❯ src/unsafe/codestore.test.ts (1)
59
- ⠙ FileSystemBundle maps to local files and their contents
60
- stderr | src/unsafe/framework.test.ts > getPackageVersion > should return null when package is not found
61
- Error reading package version: Error: Package version not found
62
- at Module.getPackageVersion (/Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.ts:108:11)
63
- at /Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.test.ts:151:21
64
- at file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:529:5
65
- at runTest (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:982:11)
66
- at runSuite (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1131:15)
67
- at runSuite (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1131:15)
68
- at runFiles (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1188:5)
69
- at startTests (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1197:3)
70
- at file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/vitest/dist/chunks/runBaseTests.9YDrdSI4.js:130:11
71
- at withEnv (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/vitest/dist/chunks/runBaseTests.9YDrdSI4.js:94:5)
72
-
73
- [?25l ✓ src/appify/validate.test.ts (14)
74
- ❯ src/unsafe/framework.test.ts (7)
75
- ❯ getPackageVersion (7)
76
- ⠸ should detect npm package version
77
- · should detect yarn package version
78
- · should detect pnpm package version
79
- · should handle nested dependencies
80
- · should return null when package is not found
81
- · should search parent directories for package manager files
82
- · should handle command execution errors
83
- ✓ src/appify/parse.test.ts (15)
84
- ❯ src/codestore.test.ts (9)
85
- ⠹ archive and unarchive
86
- · list bundle with files
87
- · read file from bundle
88
- · read missing file from bundle
89
- · delete file from bundle
90
- · for await of bundle
91
- · stat file from bundle
92
- · stat missing file from bundle
93
- · hash bundle
94
- ✓ src/appify/build.test.ts (2)
95
- ❯ src/unsafe/codestore.test.ts (1)
96
- ⠹ FileSystemBundle maps to local files and their contents
97
- stderr | src/unsafe/framework.test.ts > getPackageVersion > should handle command execution errors
98
- Error executing npm list command: Error: Command failed
99
- at /Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.test.ts:192:9
100
- at mockCall (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:61:17)
101
- at spy (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/tinyspy/dist/index.js:45:80)
102
-  at node:internal/util:447:21
103
- at new Promise (<anonymous>)
104
-  at spy (node:internal/util:433:12)
105
- at getVersionFromCommand (/Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.ts:69:30)
106
- at Module.getPackageVersion (/Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.ts:102:31)
107
- at /Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.test.ts:202:21
108
- at file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:529:5
109
-
110
- [?25l ✓ src/appify/validate.test.ts (14)
111
- ❯ src/unsafe/framework.test.ts (7)
112
- ❯ getPackageVersion (7)
113
- ✓ should detect npm package version
114
- ✓ should detect yarn package version
115
- ✓ should detect pnpm package version
116
- ✓ should handle nested dependencies
117
- ✓ should return null when package is not found
118
- ⠙ should search parent directories for package manager files
119
- · should handle command execution errors
120
- ✓ src/appify/parse.test.ts (15)
121
- ❯ src/codestore.test.ts (9)
122
- ⠸ archive and unarchive
123
- · list bundle with files
124
- · read file from bundle
125
- · read missing file from bundle
126
- · delete file from bundle
127
- · for await of bundle
128
- · stat file from bundle
129
- · stat missing file from bundle
130
- · hash bundle
131
- ✓ src/appify/build.test.ts (2)
132
- ✓ src/unsafe/codestore.test.ts (1)
133
- stderr | src/unsafe/framework.test.ts > getPackageVersion > should handle command execution errors
134
- Error reading package version: Error: Package version not found
135
- at Module.getPackageVersion (/Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.ts:108:11)
136
- at /Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/packages/drizzle/src/unsafe/framework.test.ts:202:21
137
- at file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:529:5
138
- at runTest (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:982:11)
139
- at runSuite (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1131:15)
140
- at runSuite (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1131:15)
141
- at runFiles (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1188:5)
142
- at startTests (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/@vitest/runner/dist/index.js:1197:3)
143
- at file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/vitest/dist/chunks/runBaseTests.9YDrdSI4.js:130:11
144
- at withEnv (file:///Users/bosgood/dev/src/github.com/LiquidMetal-AI/liquidmetal/node_modules/vitest/dist/chunks/runBaseTests.9YDrdSI4.js:94:5)
145
-
146
- [?25l ✓ src/appify/validate.test.ts (14)
147
- ✓ src/unsafe/framework.test.ts (7)
148
- ✓ src/appify/parse.test.ts (15)
149
- ❯ src/codestore.test.ts (9)
150
- ⠼ archive and unarchive
151
- · list bundle with files
152
- · read file from bundle
153
- · read missing file from bundle
154
- · delete file from bundle
155
- · for await of bundle
156
- · stat file from bundle
157
- · stat missing file from bundle
158
- · hash bundle
159
- ✓ src/appify/build.test.ts (2)
160
- ✓ src/unsafe/codestore.test.ts (1)
161
- [?25l ✓ src/appify/validate.test.ts (14)
162
- ✓ src/unsafe/framework.test.ts (7)
163
- ✓ src/appify/parse.test.ts (15)
164
- ✓ src/codestore.test.ts (9)
165
- ✓ src/appify/build.test.ts (2)
166
- ✓ src/unsafe/codestore.test.ts (1)
167
- [?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l ✓ src/appify/validate.test.ts (14)
168
- ✓ src/unsafe/framework.test.ts (7)
169
- ✓ src/appify/parse.test.ts (15)
170
- ✓ src/codestore.test.ts (9)
171
- ✓ src/appify/build.test.ts (2)
172
- · src/appify/index.test.ts (3)
173
- ✓ src/unsafe/codestore.test.ts (1)
174
- [?25l ✓ src/appify/validate.test.ts (14)
175
- ✓ src/unsafe/framework.test.ts (7)
176
- ✓ src/appify/parse.test.ts (15)
177
- ✓ src/codestore.test.ts (9)
178
- ✓ src/appify/build.test.ts (2)
179
- ✓ src/appify/index.test.ts (3)
180
- ✓ src/unsafe/codestore.test.ts (1)
181
- [?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l[?25l ✓ src/appify/validate.test.ts (14)
182
- ✓ src/unsafe/framework.test.ts (7)
183
- ✓ src/appify/parse.test.ts (15)
184
- ✓ src/codestore.test.ts (9)
185
- ✓ src/appify/build.test.ts (2)
186
- ✓ src/appify/index.test.ts (3)
187
- ✓ src/unsafe/codestore.test.ts (1)
188
- ✓ src/raindrop/index.test.ts (1)
189
-  ✓ src/codestore.test.ts (9)
190
- ✓ src/appify/build.test.ts (2)
191
- ✓ src/appify/index.test.ts (3)
192
- ✓ src/appify/parse.test.ts (15)
193
- ✓ src/appify/validate.test.ts (14)
194
- ✓ src/raindrop/index.test.ts (1)
195
- ✓ src/unsafe/codestore.test.ts (1)
196
- ✓ src/unsafe/framework.test.ts (7)
197
-
198
-  Test Files  8 passed (8)
199
-  Tests  52 passed (52)
200
-  Start at  18:26:33
201
-  Duration  5.88s (transform 3.35s, setup 0ms, collect 7.85s, tests 702ms, environment 1ms, prepare 6.03s)
202
-
203
- [?25h[?25h⠙
204
- > @liquidmetal-ai/drizzle@0.0.4 posttest
205
- > npm run lint
206
-
207
- ⠙
208
- > @liquidmetal-ai/drizzle@0.0.4 lint
209
- > eslint . --max-warnings=0
210
-
211
- ⠙⠙