@visactor/vquery 0.2.5 → 0.2.6

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.
Files changed (127) hide show
  1. package/dist/node/esm/adapters/index.d.ts +1 -0
  2. package/dist/node/esm/adapters/query-adapter/duckdbNodeAdapter.d.ts +14 -0
  3. package/dist/node/esm/adapters/query-adapter/duckdbWebAdapter.d.ts +14 -0
  4. package/dist/node/esm/adapters/storage-adapter/index.d.ts +2 -0
  5. package/dist/node/esm/adapters/storage-adapter/indexeddbAdapter.d.ts +21 -0
  6. package/dist/node/esm/adapters/storage-adapter/inmemoryAdapter.d.ts +22 -0
  7. package/dist/node/esm/browser.d.ts +5 -0
  8. package/dist/node/esm/data-source-builder/dataSourceBuilder.d.ts +16 -0
  9. package/dist/node/esm/data-source-builder/index.d.ts +1 -0
  10. package/dist/node/esm/dataset/dataset.d.ts +30 -0
  11. package/dist/node/esm/dataset/index.d.ts +2 -0
  12. package/dist/node/esm/node.d.ts +5 -0
  13. package/dist/node/esm/node.js +476 -0
  14. package/dist/node/esm/sql-builder/builders/groupBy.d.ts +2 -0
  15. package/dist/node/esm/sql-builder/builders/index.d.ts +3 -0
  16. package/dist/node/esm/sql-builder/builders/limit.d.ts +2 -0
  17. package/dist/node/esm/sql-builder/builders/where.d.ts +3 -0
  18. package/dist/node/esm/sql-builder/compile/index.d.ts +1 -0
  19. package/dist/node/esm/sql-builder/compile/inlineParameters.d.ts +1 -0
  20. package/dist/node/esm/sql-builder/dialect/index.d.ts +1 -0
  21. package/dist/node/esm/sql-builder/dialect/postgresDialect.d.ts +11 -0
  22. package/dist/node/esm/sql-builder/dslToSQL.d.ts +2 -0
  23. package/dist/node/esm/sql-builder/index.d.ts +1 -0
  24. package/dist/node/esm/sql-builder/utils.d.ts +8 -0
  25. package/dist/node/esm/types/DataSet.d.ts +11 -0
  26. package/dist/node/esm/types/DataSource.d.ts +11 -0
  27. package/dist/node/esm/types/QueryResult.d.ts +1 -0
  28. package/dist/node/esm/types/adapters/QueryAdapter.d.ts +11 -0
  29. package/dist/node/esm/types/adapters/StorageAdapter.d.ts +17 -0
  30. package/dist/node/esm/types/adapters/index.d.ts +2 -0
  31. package/dist/node/esm/types/dsl/GroupBy.d.ts +1 -0
  32. package/dist/node/esm/types/dsl/OrderBy.d.ts +4 -0
  33. package/dist/node/esm/types/dsl/QueryDSL.d.ts +12 -0
  34. package/dist/node/esm/types/dsl/Select.d.ts +7 -0
  35. package/dist/node/esm/types/dsl/Where.d.ts +24 -0
  36. package/dist/node/esm/types/dsl/demo.d.ts +1 -0
  37. package/dist/node/esm/types/dsl/index.d.ts +5 -0
  38. package/dist/node/esm/types/index.d.ts +5 -0
  39. package/dist/node/esm/utils/index.d.ts +1 -0
  40. package/dist/node/esm/utils/url.d.ts +3 -0
  41. package/dist/node/esm/vquery-browser.d.ts +21 -0
  42. package/dist/node/esm/vquery-node.d.ts +21 -0
  43. package/package.json +14 -9
  44. /package/dist/{cjs → browser/esm}/adapters/index.d.ts +0 -0
  45. /package/dist/{cjs → browser/esm}/adapters/query-adapter/duckdbNodeAdapter.d.ts +0 -0
  46. /package/dist/{cjs → browser/esm}/adapters/query-adapter/duckdbWebAdapter.d.ts +0 -0
  47. /package/dist/{cjs → browser/esm}/adapters/storage-adapter/index.d.ts +0 -0
  48. /package/dist/{cjs → browser/esm}/adapters/storage-adapter/indexeddbAdapter.d.ts +0 -0
  49. /package/dist/{cjs → browser/esm}/adapters/storage-adapter/inmemoryAdapter.d.ts +0 -0
  50. /package/dist/{cjs → browser/esm}/browser.d.ts +0 -0
  51. /package/dist/{esm → browser/esm}/browser.js +0 -0
  52. /package/dist/{cjs → browser/esm}/data-source-builder/dataSourceBuilder.d.ts +0 -0
  53. /package/dist/{cjs → browser/esm}/data-source-builder/index.d.ts +0 -0
  54. /package/dist/{cjs → browser/esm}/dataset/dataset.d.ts +0 -0
  55. /package/dist/{cjs → browser/esm}/dataset/index.d.ts +0 -0
  56. /package/dist/{cjs → browser/esm}/node.d.ts +0 -0
  57. /package/dist/{cjs → browser/esm}/sql-builder/builders/groupBy.d.ts +0 -0
  58. /package/dist/{cjs → browser/esm}/sql-builder/builders/index.d.ts +0 -0
  59. /package/dist/{cjs → browser/esm}/sql-builder/builders/limit.d.ts +0 -0
  60. /package/dist/{cjs → browser/esm}/sql-builder/builders/where.d.ts +0 -0
  61. /package/dist/{cjs → browser/esm}/sql-builder/compile/index.d.ts +0 -0
  62. /package/dist/{cjs → browser/esm}/sql-builder/compile/inlineParameters.d.ts +0 -0
  63. /package/dist/{cjs → browser/esm}/sql-builder/dialect/index.d.ts +0 -0
  64. /package/dist/{cjs → browser/esm}/sql-builder/dialect/postgresDialect.d.ts +0 -0
  65. /package/dist/{cjs → browser/esm}/sql-builder/dslToSQL.d.ts +0 -0
  66. /package/dist/{cjs → browser/esm}/sql-builder/index.d.ts +0 -0
  67. /package/dist/{cjs → browser/esm}/sql-builder/utils.d.ts +0 -0
  68. /package/dist/{cjs → browser/esm}/types/DataSet.d.ts +0 -0
  69. /package/dist/{cjs → browser/esm}/types/DataSource.d.ts +0 -0
  70. /package/dist/{cjs → browser/esm}/types/QueryResult.d.ts +0 -0
  71. /package/dist/{cjs → browser/esm}/types/adapters/QueryAdapter.d.ts +0 -0
  72. /package/dist/{cjs → browser/esm}/types/adapters/StorageAdapter.d.ts +0 -0
  73. /package/dist/{cjs → browser/esm}/types/adapters/index.d.ts +0 -0
  74. /package/dist/{cjs → browser/esm}/types/dsl/GroupBy.d.ts +0 -0
  75. /package/dist/{cjs → browser/esm}/types/dsl/OrderBy.d.ts +0 -0
  76. /package/dist/{cjs → browser/esm}/types/dsl/QueryDSL.d.ts +0 -0
  77. /package/dist/{cjs → browser/esm}/types/dsl/Select.d.ts +0 -0
  78. /package/dist/{cjs → browser/esm}/types/dsl/Where.d.ts +0 -0
  79. /package/dist/{cjs → browser/esm}/types/dsl/demo.d.ts +0 -0
  80. /package/dist/{cjs → browser/esm}/types/dsl/index.d.ts +0 -0
  81. /package/dist/{cjs → browser/esm}/types/index.d.ts +0 -0
  82. /package/dist/{cjs → browser/esm}/utils/index.d.ts +0 -0
  83. /package/dist/{cjs → browser/esm}/utils/url.d.ts +0 -0
  84. /package/dist/{cjs → browser/esm}/vquery-browser.d.ts +0 -0
  85. /package/dist/{cjs → browser/esm}/vquery-node.d.ts +0 -0
  86. /package/dist/{esm → node/cjs}/adapters/index.d.ts +0 -0
  87. /package/dist/{esm → node/cjs}/adapters/query-adapter/duckdbNodeAdapter.d.ts +0 -0
  88. /package/dist/{esm → node/cjs}/adapters/query-adapter/duckdbWebAdapter.d.ts +0 -0
  89. /package/dist/{esm → node/cjs}/adapters/storage-adapter/index.d.ts +0 -0
  90. /package/dist/{esm → node/cjs}/adapters/storage-adapter/indexeddbAdapter.d.ts +0 -0
  91. /package/dist/{esm → node/cjs}/adapters/storage-adapter/inmemoryAdapter.d.ts +0 -0
  92. /package/dist/{esm → node/cjs}/browser.d.ts +0 -0
  93. /package/dist/{esm → node/cjs}/data-source-builder/dataSourceBuilder.d.ts +0 -0
  94. /package/dist/{esm → node/cjs}/data-source-builder/index.d.ts +0 -0
  95. /package/dist/{esm → node/cjs}/dataset/dataset.d.ts +0 -0
  96. /package/dist/{esm → node/cjs}/dataset/index.d.ts +0 -0
  97. /package/dist/{cjs → node/cjs}/node.cjs +0 -0
  98. /package/dist/{esm → node/cjs}/node.d.ts +0 -0
  99. /package/dist/{esm → node/cjs}/sql-builder/builders/groupBy.d.ts +0 -0
  100. /package/dist/{esm → node/cjs}/sql-builder/builders/index.d.ts +0 -0
  101. /package/dist/{esm → node/cjs}/sql-builder/builders/limit.d.ts +0 -0
  102. /package/dist/{esm → node/cjs}/sql-builder/builders/where.d.ts +0 -0
  103. /package/dist/{esm → node/cjs}/sql-builder/compile/index.d.ts +0 -0
  104. /package/dist/{esm → node/cjs}/sql-builder/compile/inlineParameters.d.ts +0 -0
  105. /package/dist/{esm → node/cjs}/sql-builder/dialect/index.d.ts +0 -0
  106. /package/dist/{esm → node/cjs}/sql-builder/dialect/postgresDialect.d.ts +0 -0
  107. /package/dist/{esm → node/cjs}/sql-builder/dslToSQL.d.ts +0 -0
  108. /package/dist/{esm → node/cjs}/sql-builder/index.d.ts +0 -0
  109. /package/dist/{esm → node/cjs}/sql-builder/utils.d.ts +0 -0
  110. /package/dist/{esm → node/cjs}/types/DataSet.d.ts +0 -0
  111. /package/dist/{esm → node/cjs}/types/DataSource.d.ts +0 -0
  112. /package/dist/{esm → node/cjs}/types/QueryResult.d.ts +0 -0
  113. /package/dist/{esm → node/cjs}/types/adapters/QueryAdapter.d.ts +0 -0
  114. /package/dist/{esm → node/cjs}/types/adapters/StorageAdapter.d.ts +0 -0
  115. /package/dist/{esm → node/cjs}/types/adapters/index.d.ts +0 -0
  116. /package/dist/{esm → node/cjs}/types/dsl/GroupBy.d.ts +0 -0
  117. /package/dist/{esm → node/cjs}/types/dsl/OrderBy.d.ts +0 -0
  118. /package/dist/{esm → node/cjs}/types/dsl/QueryDSL.d.ts +0 -0
  119. /package/dist/{esm → node/cjs}/types/dsl/Select.d.ts +0 -0
  120. /package/dist/{esm → node/cjs}/types/dsl/Where.d.ts +0 -0
  121. /package/dist/{esm → node/cjs}/types/dsl/demo.d.ts +0 -0
  122. /package/dist/{esm → node/cjs}/types/dsl/index.d.ts +0 -0
  123. /package/dist/{esm → node/cjs}/types/index.d.ts +0 -0
  124. /package/dist/{esm → node/cjs}/utils/index.d.ts +0 -0
  125. /package/dist/{esm → node/cjs}/utils/url.d.ts +0 -0
  126. /package/dist/{esm → node/cjs}/vquery-browser.d.ts +0 -0
  127. /package/dist/{esm → node/cjs}/vquery-node.d.ts +0 -0
@@ -0,0 +1,8 @@
1
+ import { Where, WhereClause, WhereGroup, WhereLeaf } from '../types';
2
+ import { SelectItem } from '../types/dsl/Select';
3
+ export declare const isSelectItem: <T>(item: keyof T | SelectItem<T>) => item is SelectItem<T>;
4
+ export declare const isWhereLeaf: <T>(where: Where<T> | WhereClause<T>) => where is WhereLeaf<T>;
5
+ export declare const isWhereGroup: <T>(where: Where<T> | WhereClause<T>) => where is WhereGroup<T>;
6
+ export declare const isStringOrNumber: (value: unknown) => value is string | number;
7
+ export declare const escapeLiteral: <T>(value: T[keyof T]) => T[keyof T];
8
+ export declare const escapeValue: (value: unknown) => string;
@@ -0,0 +1,11 @@
1
+ export type { QueryResult } from './QueryResult';
2
+ export type DataType = 'number' | 'string' | 'date' | 'datetime' | 'timestamp';
3
+ export interface DatasetColumn {
4
+ type: DataType;
5
+ name: string;
6
+ }
7
+ export interface DatasetSchema {
8
+ datasetId: string;
9
+ datasetAlias: string;
10
+ columns: DatasetColumn[];
11
+ }
@@ -0,0 +1,11 @@
1
+ export type TidyDatum = Record<string, number | string | null | boolean | undefined>;
2
+ export type DatasetSourceType = 'csv' | 'json' | 'xlsx' | 'parquet';
3
+ export type DatasetSourceValue = string | ArrayBuffer | Blob | TidyDatum[];
4
+ export interface DatasetSource {
5
+ type: DatasetSourceType;
6
+ blob: Blob;
7
+ }
8
+ export interface RawDatasetSource {
9
+ type: DatasetSourceType;
10
+ rawDataset: DatasetSourceValue;
11
+ }
@@ -0,0 +1 @@
1
+ export type QueryResult = any;
@@ -0,0 +1,11 @@
1
+ import { QueryResult } from '../QueryResult';
2
+ export interface QueryAdapter {
3
+ open: () => Promise<void>;
4
+ close: () => Promise<void>;
5
+ writeFile: <T extends Blob>(fileName: string, source: T) => Promise<void>;
6
+ getSchema: (fileName: string) => Promise<QueryResult>;
7
+ query: (sql: string) => Promise<{
8
+ dataset: any[];
9
+ table: any;
10
+ }>;
11
+ }
@@ -0,0 +1,17 @@
1
+ import { DatasetSchema } from '../DataSet';
2
+ import { DatasetSource } from '../DataSource';
3
+ export interface StorageAdapter {
4
+ open: () => Promise<void>;
5
+ close: () => Promise<void>;
6
+ writeDataset: (datasetId: string, datasetSchema: DatasetSchema, datasetSource?: DatasetSource) => Promise<void>;
7
+ readDataset: (datasetId: string) => Promise<{
8
+ datasetSchema: DatasetSchema;
9
+ datasetSource?: DatasetSource;
10
+ } | null>;
11
+ deleteDataset: (datasetId: string) => Promise<void>;
12
+ listDatasets: () => Promise<{
13
+ datasetId: string;
14
+ datasetSchema: DatasetSchema;
15
+ datasetSource?: DatasetSource;
16
+ }[]>;
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from './QueryAdapter';
2
+ export * from './StorageAdapter';
@@ -0,0 +1 @@
1
+ export type GroupBy<T> = Array<keyof T>;
@@ -0,0 +1,4 @@
1
+ export type OrderBy<T> = Array<{
2
+ field: string | keyof T;
3
+ order?: 'asc' | 'desc';
4
+ }>;
@@ -0,0 +1,12 @@
1
+ import { GroupBy } from './GroupBy';
2
+ import { OrderBy } from './OrderBy';
3
+ import { Select } from './Select';
4
+ import { Where } from './Where';
5
+ export interface QueryDSL<Table> {
6
+ select: Select<Table>;
7
+ where?: Where<Table>;
8
+ groupBy?: GroupBy<Table>;
9
+ orderBy?: OrderBy<Table>;
10
+ limit?: number;
11
+ }
12
+ export type VQueryDSL<Table = Record<string, unknown>> = QueryDSL<Table>;
@@ -0,0 +1,7 @@
1
+ export type AggregateFunction = 'count' | 'sum' | 'avg' | 'min' | 'max' | 'quantile';
2
+ export type SelectItem<T> = {
3
+ field: keyof T;
4
+ alias?: string;
5
+ func?: AggregateFunction;
6
+ };
7
+ export type Select<T> = Array<keyof T | SelectItem<T>>;
@@ -0,0 +1,24 @@
1
+ export type Where<T> = WhereGroup<T>;
2
+ export type WhereGroup<T> = {
3
+ op: 'and' | 'or';
4
+ conditions: Array<WhereClause<T>>;
5
+ };
6
+ export type WhereClause<T> = WhereLeaf<T> | WhereGroup<T>;
7
+ export type WhereLeaf<T> = {
8
+ [K in keyof T]: {
9
+ [O in Operator]: {
10
+ field: K;
11
+ op: O;
12
+ } & (O extends 'is null' | 'is not null' ? {
13
+ value?: never;
14
+ } : O extends 'in' | 'not in' ? {
15
+ value: T[K] | T[K][];
16
+ } : O extends 'between' | 'not between' ? {
17
+ value: [T[K], T[K]];
18
+ } : {
19
+ value: T[K];
20
+ });
21
+ }[Operator];
22
+ }[keyof T];
23
+ type Operator = '=' | '!=' | '>' | '>=' | '<' | '<=' | 'like' | 'not like' | 'ilike' | 'not ilike' | 'in' | 'not in' | 'between' | 'not between' | 'is null' | 'is not null';
24
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export type { QueryDSL, VQueryDSL } from './QueryDSL';
2
+ export type { GroupBy } from './GroupBy';
3
+ export type { OrderBy } from './OrderBy';
4
+ export type { Select } from './Select';
5
+ export type { Where, WhereClause, WhereLeaf, WhereGroup } from './Where';
@@ -0,0 +1,5 @@
1
+ export * from './DataSet';
2
+ export * from './DataSource';
3
+ export * from './QueryResult';
4
+ export * from './dsl';
5
+ export * from './adapters';
@@ -0,0 +1 @@
1
+ export { isUrl, isHttpUrl, isBase64Url } from './url';
@@ -0,0 +1,3 @@
1
+ export declare const isUrl: (url: string) => boolean;
2
+ export declare const isHttpUrl: (url: string) => boolean;
3
+ export declare const isBase64Url: (url: string) => boolean;
@@ -0,0 +1,21 @@
1
+ import { Dataset } from './dataset/dataset';
2
+ import { RawDatasetSource, DatasetColumn } from './types';
3
+ export declare class VQuery {
4
+ private queryAdapter;
5
+ private storageAdapter;
6
+ private isInitialized;
7
+ constructor();
8
+ private checkInitialized;
9
+ private checkDatasetExists;
10
+ createDataset(datasetId: string, columns?: DatasetColumn[], rawDatasetSource?: RawDatasetSource): Promise<void>;
11
+ updateDatasetSource(datasetId: string, columns?: DatasetColumn[], rawDatasetSource?: RawDatasetSource): Promise<void>;
12
+ dropDataset(datasetId: string): Promise<void>;
13
+ connectDataset(datasetId: string, temporaryColumns?: DatasetColumn[], temporaryRawDatasetSource?: RawDatasetSource): Promise<Dataset>;
14
+ hasDataset(datasetId: string): Promise<boolean>;
15
+ listDatasets(): Promise<{
16
+ datasetId: string;
17
+ datasetSchema: import("./types").DatasetSchema;
18
+ datasetSource?: import("./types").DatasetSource;
19
+ }[]>;
20
+ close(): Promise<void>;
21
+ }
@@ -0,0 +1,21 @@
1
+ import { Dataset } from './dataset/dataset';
2
+ import { RawDatasetSource, DatasetColumn } from './types';
3
+ export declare class VQuery {
4
+ private queryAdapter;
5
+ private storageAdapter;
6
+ private isInitialized;
7
+ constructor();
8
+ private checkInitialized;
9
+ private checkDatasetExists;
10
+ createDataset(datasetId: string, columns?: DatasetColumn[], rawDatasetSource?: RawDatasetSource): Promise<void>;
11
+ updateDatasetSource(datasetId: string, columns?: DatasetColumn[], rawDatasetSource?: RawDatasetSource): Promise<void>;
12
+ dropDataset(datasetId: string): Promise<void>;
13
+ connectDataset(datasetId: string, temporaryColumns?: DatasetColumn[], temporaryRawDatasetSource?: RawDatasetSource): Promise<Dataset>;
14
+ hasDataset(datasetId: string): Promise<boolean>;
15
+ listDatasets(): Promise<{
16
+ datasetId: string;
17
+ datasetSchema: import("./types").DatasetSchema;
18
+ datasetSource?: import("./types").DatasetSource;
19
+ }[]>;
20
+ close(): Promise<void>;
21
+ }
package/package.json CHANGED
@@ -1,21 +1,26 @@
1
1
  {
2
2
  "name": "@visactor/vquery",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
7
- "require": {
8
- "types": "./dist/cjs/node.d.ts",
9
- "default": "./dist/cjs/node.cjs"
7
+ "node": {
8
+ "types": "./dist/node/esm/node.d.ts",
9
+ "import": "./dist/node/esm/node.js",
10
+ "require": "./dist/node/cjs/node.cjs"
10
11
  },
11
- "import": {
12
- "types": "./dist/esm/browser.d.js",
13
- "default": "./dist/esm/browser.js"
12
+ "browser": {
13
+ "types": "./dist/browser/esm/browser.d.ts",
14
+ "import": "./dist/browser/esm/browser.js"
15
+ },
16
+ "default": {
17
+ "types": "./dist/browser/esm/browser.d.ts",
18
+ "import": "./dist/browser/esm/browser.js"
14
19
  }
15
20
  }
16
21
  },
17
- "main": "./dist/cjs/node.cjs",
18
- "types": "./dist/cjs/node.d.ts",
22
+ "main": "./dist/node/cjs/node.cjs",
23
+ "types": "./dist/node/esm/node.d.ts",
19
24
  "files": [
20
25
  "dist"
21
26
  ],
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes