@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.
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +23 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/sql.test.d.ts +2 -0
- package/dist/__tests__/sql.test.d.ts.map +1 -0
- package/dist/__tests__/sql.test.js +39 -0
- package/dist/__tests__/sql.test.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/sql.d.ts +3 -0
- package/dist/sql.d.ts.map +1 -0
- package/dist/sql.js +14 -0
- package/dist/sql.js.map +1 -0
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +37 -0
|
@@ -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 @@
|
|
|
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"}
|
package/dist/config.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|
package/dist/sql.js.map
ADDED
|
@@ -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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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
|
+
}
|