@stackone/olap 0.1.0 → 0.3.0
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.
- package/dist/index.d.mts +33 -12
- package/dist/index.d.ts +33 -12
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +6 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
2
|
+
import { Kafka } from "kafkajs";
|
|
3
|
+
|
|
1
4
|
//#region ../logger/src/types.d.ts
|
|
2
5
|
interface ILogger {
|
|
3
6
|
debug({
|
|
@@ -61,19 +64,33 @@ type LogError = Error & {
|
|
|
61
64
|
url?: string;
|
|
62
65
|
};
|
|
63
66
|
//#endregion
|
|
67
|
+
//#region src/advanced/types.d.ts
|
|
68
|
+
interface S3ClientConfig {
|
|
69
|
+
region?: string;
|
|
70
|
+
}
|
|
71
|
+
type S3ClientBuilder = (config?: S3ClientConfig, logger?: ILogger) => S3Client | undefined;
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/logs/types.d.ts
|
|
74
|
+
interface KafkaClientConfig {
|
|
75
|
+
brokers: string[];
|
|
76
|
+
}
|
|
77
|
+
type KafkaClientBuilder = (config?: KafkaClientConfig, logger?: ILogger) => Kafka | undefined;
|
|
78
|
+
//#endregion
|
|
64
79
|
//#region src/olap/olapOptions.d.ts
|
|
65
80
|
type OlapOptions = {
|
|
66
|
-
|
|
67
|
-
advanced?:
|
|
81
|
+
logs?: LogsOptions;
|
|
82
|
+
advanced?: AdvancedOptions;
|
|
83
|
+
};
|
|
84
|
+
type LogsOptions = {
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
};
|
|
87
|
+
type AdvancedOptions = {
|
|
88
|
+
enabled?: boolean;
|
|
89
|
+
ttl?: number;
|
|
90
|
+
errorsOnly?: boolean;
|
|
68
91
|
};
|
|
69
92
|
//#endregion
|
|
70
93
|
//#region src/types.d.ts
|
|
71
|
-
interface IKafkaSink {
|
|
72
|
-
send(topic: string, payload: unknown): Promise<void>;
|
|
73
|
-
}
|
|
74
|
-
interface IS3Sink {
|
|
75
|
-
send(bucket: string, payload: unknown): Promise<void>;
|
|
76
|
-
}
|
|
77
94
|
interface IOlapClient {
|
|
78
95
|
recordAction(ActionResult: ActionResult, options?: OlapOptions): void;
|
|
79
96
|
recordStep(stepResult: StepResult, options?: OlapOptions): void;
|
|
@@ -93,12 +110,16 @@ declare class OlapClient implements IOlapClient {
|
|
|
93
110
|
#private;
|
|
94
111
|
name: string;
|
|
95
112
|
constructor({
|
|
96
|
-
|
|
97
|
-
|
|
113
|
+
getKafkaClient,
|
|
114
|
+
getS3Client,
|
|
115
|
+
kafkaClientConfig,
|
|
116
|
+
s3ClientConfig,
|
|
98
117
|
logger
|
|
99
118
|
}?: {
|
|
100
|
-
|
|
101
|
-
|
|
119
|
+
getKafkaClient?: KafkaClientBuilder;
|
|
120
|
+
getS3Client?: S3ClientBuilder;
|
|
121
|
+
kafkaClientConfig?: KafkaClientConfig;
|
|
122
|
+
s3ClientConfig?: S3ClientConfig;
|
|
102
123
|
logger?: ILogger;
|
|
103
124
|
});
|
|
104
125
|
recordAction(actionResult: ActionResult, options?: OlapOptions): Promise<void>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
2
|
+
import { Kafka } from "kafkajs";
|
|
3
|
+
|
|
1
4
|
//#region ../logger/src/types.d.ts
|
|
2
5
|
interface ILogger {
|
|
3
6
|
debug({
|
|
@@ -61,19 +64,33 @@ type LogError = Error & {
|
|
|
61
64
|
url?: string;
|
|
62
65
|
};
|
|
63
66
|
//#endregion
|
|
67
|
+
//#region src/advanced/types.d.ts
|
|
68
|
+
interface S3ClientConfig {
|
|
69
|
+
region?: string;
|
|
70
|
+
}
|
|
71
|
+
type S3ClientBuilder = (config?: S3ClientConfig, logger?: ILogger) => S3Client | undefined;
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/logs/types.d.ts
|
|
74
|
+
interface KafkaClientConfig {
|
|
75
|
+
brokers: string[];
|
|
76
|
+
}
|
|
77
|
+
type KafkaClientBuilder = (config?: KafkaClientConfig, logger?: ILogger) => Kafka | undefined;
|
|
78
|
+
//#endregion
|
|
64
79
|
//#region src/olap/olapOptions.d.ts
|
|
65
80
|
type OlapOptions = {
|
|
66
|
-
|
|
67
|
-
advanced?:
|
|
81
|
+
logs?: LogsOptions;
|
|
82
|
+
advanced?: AdvancedOptions;
|
|
83
|
+
};
|
|
84
|
+
type LogsOptions = {
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
};
|
|
87
|
+
type AdvancedOptions = {
|
|
88
|
+
enabled?: boolean;
|
|
89
|
+
ttl?: number;
|
|
90
|
+
errorsOnly?: boolean;
|
|
68
91
|
};
|
|
69
92
|
//#endregion
|
|
70
93
|
//#region src/types.d.ts
|
|
71
|
-
interface IKafkaSink {
|
|
72
|
-
send(topic: string, payload: unknown): Promise<void>;
|
|
73
|
-
}
|
|
74
|
-
interface IS3Sink {
|
|
75
|
-
send(bucket: string, payload: unknown): Promise<void>;
|
|
76
|
-
}
|
|
77
94
|
interface IOlapClient {
|
|
78
95
|
recordAction(ActionResult: ActionResult, options?: OlapOptions): void;
|
|
79
96
|
recordStep(stepResult: StepResult, options?: OlapOptions): void;
|
|
@@ -93,12 +110,16 @@ declare class OlapClient implements IOlapClient {
|
|
|
93
110
|
#private;
|
|
94
111
|
name: string;
|
|
95
112
|
constructor({
|
|
96
|
-
|
|
97
|
-
|
|
113
|
+
getKafkaClient,
|
|
114
|
+
getS3Client,
|
|
115
|
+
kafkaClientConfig,
|
|
116
|
+
s3ClientConfig,
|
|
98
117
|
logger
|
|
99
118
|
}?: {
|
|
100
|
-
|
|
101
|
-
|
|
119
|
+
getKafkaClient?: KafkaClientBuilder;
|
|
120
|
+
getS3Client?: S3ClientBuilder;
|
|
121
|
+
kafkaClientConfig?: KafkaClientConfig;
|
|
122
|
+
s3ClientConfig?: S3ClientConfig;
|
|
102
123
|
logger?: ILogger;
|
|
103
124
|
});
|
|
104
125
|
recordAction(actionResult: ActionResult, options?: OlapOptions): Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));const c=s(require(`@aws-sdk/client-s3`)),l=s(require(`kafkajs`));var u=class{#s3Client;#logger;constructor(e,t){this.#s3Client=e,this.#logger=t,this.#s3Client||this.#logger?.warning({message:`No s3 client provided, advanced sink will not function`,category:`AdvancedSink`})}async send(e,t,n){let r=(()=>{try{return JSON.stringify(t)}catch{return`[Unserializable payload]`}})();this.#logger?.info({message:`[S3] Sent to bucket ${e}: ${r}`,context:{bucket:e,payload:t},category:`S3Sink`}),await Promise.resolve()}};const d=(e,t)=>{try{let t=new c.S3Client(e);return t??void 0}catch(e){let n=e;t?.error({message:`Error building s3 client: ${n.message}`,error:n,code:`BuildS3ClientError`,category:`buildS3Client`});return}},f=(e,t)=>{try{let t=new l.Kafka(e);return t??void 0}catch(e){let n=e;t?.error({message:`Error building kafka client: ${n.message}`,error:n,code:`BuildKafkaClientError`,category:`buildKafkaClient`});return}};var p=class{#kafka;#logger;constructor(e,t){this.#kafka=e,this.#logger=t,this.#kafka||this.#logger?.warning({message:`No kafka client provided, logs sink will not function`,category:`LogsSink`})}async send(e,t,n){let r=(()=>{try{return JSON.stringify(t)}catch{return`[Unserializable payload]`}})();this.#logger?.info({message:`[Kafka] Sent to topic ${e}: ${r}`,context:{topic:e,payload:t},category:`KafkaSink`}),await Promise.resolve()}};const m={logs:{enabled:!0},advanced:{enabled:!1,ttl:7,errorsOnly:!1}};function h(e){return{...m,...e}}var g=class{#kafkaClient;#s3Client;#logger;#logsSink;#advancedSink;name=`OlapClient`;constructor({getKafkaClient:e=f,getS3Client:t=d,kafkaClientConfig:n,s3ClientConfig:r,logger:i}={}){this.#kafkaClient=e(n,i),this.#s3Client=t(r,i),this.#logger=i,this.#logsSink=new p(this.#kafkaClient,this.#logger),this.#advancedSink=new u(this.#s3Client,this.#logger)}async recordAction(e,t){let{logs:n,advanced:r}=h(t);if(n?.enabled)try{await this.#logsSink?.send(`actions`,e,n)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to kafka: ${e.message}`,category:`OlapClient`,error:e})}if(r?.enabled)try{await this.#advancedSink?.send(`actions`,e,r)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to s3: ${e.message}`,category:`OlapClient`,error:e})}}async recordStep(e,t){let{logs:n,advanced:r}=h(t);if(n?.enabled)try{await this.#logsSink?.send(`steps`,e,n)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to kafka: ${e.message}`,category:`OlapClient`,error:e})}if(r?.enabled)try{await this.#advancedSink?.send(`steps`,e,r)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to s3: ${e.message}`,category:`OlapClient`,error:e})}}};exports.OlapClient=g;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{S3Client as e}from"@aws-sdk/client-s3";import{Kafka as t}from"kafkajs";var n=class{#s3Client;#logger;constructor(e,t){this.#s3Client=e,this.#logger=t,this.#s3Client||this.#logger?.warning({message:`No s3 client provided, advanced sink will not function`,category:`AdvancedSink`})}async send(e,t,n){let r=(()=>{try{return JSON.stringify(t)}catch{return`[Unserializable payload]`}})();this.#logger?.info({message:`[S3] Sent to bucket ${e}: ${r}`,context:{bucket:e,payload:t},category:`S3Sink`}),await Promise.resolve()}};const r=(t,n)=>{try{let n=new e(t);return n??void 0}catch(e){let t=e;n?.error({message:`Error building s3 client: ${t.message}`,error:t,code:`BuildS3ClientError`,category:`buildS3Client`});return}},i=(e,n)=>{try{let n=new t(e);return n??void 0}catch(e){let t=e;n?.error({message:`Error building kafka client: ${t.message}`,error:t,code:`BuildKafkaClientError`,category:`buildKafkaClient`});return}};var a=class{#kafka;#logger;constructor(e,t){this.#kafka=e,this.#logger=t,this.#kafka||this.#logger?.warning({message:`No kafka client provided, logs sink will not function`,category:`LogsSink`})}async send(e,t,n){let r=(()=>{try{return JSON.stringify(t)}catch{return`[Unserializable payload]`}})();this.#logger?.info({message:`[Kafka] Sent to topic ${e}: ${r}`,context:{topic:e,payload:t},category:`KafkaSink`}),await Promise.resolve()}};const o={logs:{enabled:!0},advanced:{enabled:!1,ttl:7,errorsOnly:!1}};function s(e){return{...o,...e}}var c=class{#kafkaClient;#s3Client;#logger;#logsSink;#advancedSink;name=`OlapClient`;constructor({getKafkaClient:e=i,getS3Client:t=r,kafkaClientConfig:o,s3ClientConfig:s,logger:c}={}){this.#kafkaClient=e(o,c),this.#s3Client=t(s,c),this.#logger=c,this.#logsSink=new a(this.#kafkaClient,this.#logger),this.#advancedSink=new n(this.#s3Client,this.#logger)}async recordAction(e,t){let{logs:n,advanced:r}=s(t);if(n?.enabled)try{await this.#logsSink?.send(`actions`,e,n)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to kafka: ${e.message}`,category:`OlapClient`,error:e})}if(r?.enabled)try{await this.#advancedSink?.send(`actions`,e,r)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to s3: ${e.message}`,category:`OlapClient`,error:e})}}async recordStep(e,t){let{logs:n,advanced:r}=s(t);if(n?.enabled)try{await this.#logsSink?.send(`steps`,e,n)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to kafka: ${e.message}`,category:`OlapClient`,error:e})}if(r?.enabled)try{await this.#advancedSink?.send(`steps`,e,r)}catch(e){this.#logger?.warning({message:`[OlapClient] Error sending to s3: ${e.message}`,category:`OlapClient`,error:e})}}};export{c as OlapClient};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackone/olap",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -40,9 +40,12 @@
|
|
|
40
40
|
"keywords": [],
|
|
41
41
|
"author": "StackOne",
|
|
42
42
|
"license": "ISC",
|
|
43
|
-
"dependencies": {
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@aws-sdk/client-s3": "3.913.0",
|
|
45
|
+
"kafkajs": "2.2.4"
|
|
46
|
+
},
|
|
44
47
|
"devDependencies": {
|
|
45
|
-
"tsdown": "
|
|
48
|
+
"tsdown": "0.12.9"
|
|
46
49
|
},
|
|
47
50
|
"tsdown": {
|
|
48
51
|
"dts": true,
|