@risingwave/wavelet 0.1.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const config_js_1 = require("../config.js");
5
+ (0, vitest_1.describe)('defineConfig', () => {
6
+ (0, vitest_1.it)('returns the config object unchanged', () => {
7
+ const config = {
8
+ database: 'postgres://root@localhost:4566/dev',
9
+ streams: {
10
+ events: {
11
+ columns: { user_id: 'string', score: 'int' },
12
+ },
13
+ },
14
+ views: {},
15
+ };
16
+ (0, vitest_1.expect)((0, config_js_1.defineConfig)(config)).toBe(config);
17
+ });
18
+ (0, vitest_1.it)('accepts minimal config with only database', () => {
19
+ const config = { database: 'postgres://localhost/test' };
20
+ (0, vitest_1.expect)((0, config_js_1.defineConfig)(config)).toEqual({ database: 'postgres://localhost/test' });
21
+ });
22
+ });
23
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAC7C,4CAA2C;AAE3C,IAAA,iBAAQ,EAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,oCAAoC;YAC9C,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE,OAAO,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAc,EAAE;iBAC/D;aACF;YACD,KAAK,EAAE,EAAE;SACV,CAAA;QACD,IAAA,eAAM,EAAC,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAA;QACxD,IAAA,eAAM,EAAC,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sql.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/sql.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const sql_js_1 = require("../sql.js");
5
+ (0, vitest_1.describe)('sql template tag', () => {
6
+ (0, vitest_1.it)('produces a SqlFragment with _tag and text', () => {
7
+ const frag = (0, sql_js_1.sql) `SELECT 1`;
8
+ (0, vitest_1.expect)(frag._tag).toBe('sql');
9
+ (0, vitest_1.expect)(frag.text).toBe('SELECT 1');
10
+ });
11
+ (0, vitest_1.it)('interpolates values', () => {
12
+ const table = 'users';
13
+ const frag = (0, sql_js_1.sql) `SELECT * FROM ${table}`;
14
+ (0, vitest_1.expect)(frag.text).toBe('SELECT * FROM users');
15
+ });
16
+ (0, vitest_1.it)('trims whitespace', () => {
17
+ const frag = (0, sql_js_1.sql) `
18
+ SELECT player_id, SUM(score) AS total_score
19
+ FROM game_events
20
+ GROUP BY player_id
21
+ `;
22
+ (0, vitest_1.expect)(frag.text).toMatch(/^SELECT/);
23
+ (0, vitest_1.expect)(frag.text).toMatch(/player_id$/);
24
+ (0, vitest_1.expect)(frag.text).not.toMatch(/^\s/);
25
+ (0, vitest_1.expect)(frag.text).not.toMatch(/\s$/);
26
+ });
27
+ (0, vitest_1.it)('handles empty template', () => {
28
+ const frag = (0, sql_js_1.sql) ``;
29
+ (0, vitest_1.expect)(frag._tag).toBe('sql');
30
+ (0, vitest_1.expect)(frag.text).toBe('');
31
+ });
32
+ (0, vitest_1.it)('handles multiple interpolations', () => {
33
+ const col = 'score';
34
+ const limit = 100;
35
+ const frag = (0, sql_js_1.sql) `SELECT ${col} FROM events LIMIT ${limit}`;
36
+ (0, vitest_1.expect)(frag.text).toBe('SELECT score FROM events LIMIT 100');
37
+ });
38
+ });
39
+ //# sourceMappingURL=sql.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.test.js","sourceRoot":"","sources":["../../src/__tests__/sql.test.ts"],"names":[],"mappings":";;AAAA,mCAA6C;AAC7C,sCAA+B;AAE/B,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,IAAA,YAAG,EAAA,UAAU,CAAA;QAC1B,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAA;QACrB,MAAM,IAAI,GAAG,IAAA,YAAG,EAAA,iBAAiB,KAAK,EAAE,CAAA;QACxC,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAA,YAAG,EAAA;;;;KAIf,CAAA;QACD,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACpC,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACvC,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACpC,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAA,EAAE,CAAA;QAClB,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,OAAO,CAAA;QACnB,MAAM,KAAK,GAAG,GAAG,CAAA;QACjB,MAAM,IAAI,GAAG,IAAA,YAAG,EAAA,UAAU,GAAG,sBAAsB,KAAK,EAAE,CAAA;QAC1D,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { WaveletConfig } from './types.js';
2
+ export declare function defineConfig(config: WaveletConfig): WaveletConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAEjE"}
package/dist/config.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineConfig = defineConfig;
4
+ function defineConfig(config) {
5
+ return config;
6
+ }
7
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAEA,oCAEC;AAFD,SAAgB,YAAY,CAAC,MAAqB;IAChD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { defineConfig } from './config.js';
2
+ export { sql } from './sql.js';
3
+ export type { WaveletConfig, StreamDef, ViewDef, ColumnType, SqlFragment } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sql = exports.defineConfig = void 0;
4
+ var config_js_1 = require("./config.js");
5
+ Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return config_js_1.defineConfig; } });
6
+ var sql_js_1 = require("./sql.js");
7
+ Object.defineProperty(exports, "sql", { enumerable: true, get: function () { return sql_js_1.sql; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAAjC,yGAAA,YAAY,OAAA;AACrB,mCAA8B;AAArB,6FAAA,GAAG,OAAA"}
package/dist/sql.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { SqlFragment } from './types.js';
2
+ export declare function sql(strings: TemplateStringsArray, ...values: unknown[]): SqlFragment;
3
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,wBAAgB,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CASpF"}
package/dist/sql.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sql = sql;
4
+ function sql(strings, ...values) {
5
+ let text = '';
6
+ for (let i = 0; i < strings.length; i++) {
7
+ text += strings[i];
8
+ if (i < values.length) {
9
+ text += String(values[i]);
10
+ }
11
+ }
12
+ return { _tag: 'sql', text: text.trim() };
13
+ }
14
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":";;AAEA,kBASC;AATD,SAAgB,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAiB;IACrE,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAc,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;AACpD,CAAC"}
@@ -0,0 +1,28 @@
1
+ export type ColumnType = 'string' | 'int' | 'float' | 'boolean' | 'timestamp' | 'json';
2
+ export interface StreamDef {
3
+ columns: Record<string, ColumnType>;
4
+ }
5
+ export interface ViewDef {
6
+ query: SqlFragment;
7
+ filterBy?: string;
8
+ }
9
+ export interface SqlFragment {
10
+ readonly _tag: 'sql';
11
+ readonly text: string;
12
+ }
13
+ export interface WaveletConfig {
14
+ database: string;
15
+ streams?: Record<string, StreamDef>;
16
+ views?: Record<string, ViewDef | SqlFragment>;
17
+ jwt?: {
18
+ secret?: string;
19
+ jwksUrl?: string;
20
+ issuer?: string;
21
+ audience?: string;
22
+ };
23
+ server?: {
24
+ port?: number;
25
+ host?: string;
26
+ };
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAA;AAEtF,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAA;IAC7C,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@risingwave/wavelet",
3
+ "version": "0.1.0",
4
+ "description": "Subscribe to computed results, not raw rows",
5
+ "homepage": "https://github.com/risingwavelabs/wavelet",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/risingwavelabs/wavelet.git",
9
+ "directory": "packages/config"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/risingwavelabs/wavelet/issues"
13
+ },
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js",
20
+ "require": "./dist/index.js",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./config": {
24
+ "types": "./dist/config.d.ts",
25
+ "import": "./dist/config.js",
26
+ "require": "./dist/config.js",
27
+ "default": "./dist/config.js"
28
+ }
29
+ },
30
+ "files": ["dist"],
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "dev": "tsc --watch"
34
+ },
35
+ "keywords": ["wavelet", "realtime", "risingwave", "websocket", "streaming"],
36
+ "license": "Apache-2.0"
37
+ }