@framers/sql-storage-adapter 0.5.2 → 0.6.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/README.md +99 -1
- package/dist/adapters/betterSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/betterSqliteAdapter.js +1 -1
- package/dist/adapters/betterSqliteAdapter.js.map +1 -1
- package/dist/adapters/capacitorSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/electron/preload.d.ts.map +1 -1
- package/dist/adapters/indexedDbAdapter.js.map +1 -1
- package/dist/adapters/sqlJsAdapter.d.ts.map +1 -1
- package/dist/codecs/BrowserBlobCodec.d.ts +14 -0
- package/dist/codecs/BrowserBlobCodec.d.ts.map +1 -0
- package/dist/codecs/BrowserBlobCodec.js +30 -0
- package/dist/codecs/BrowserBlobCodec.js.map +1 -0
- package/dist/codecs/NodeBlobCodec.d.ts +14 -0
- package/dist/codecs/NodeBlobCodec.d.ts.map +1 -0
- package/dist/codecs/NodeBlobCodec.js +31 -0
- package/dist/codecs/NodeBlobCodec.js.map +1 -0
- package/dist/core/contracts/blobCodec.d.ts +15 -0
- package/dist/core/contracts/blobCodec.d.ts.map +1 -0
- package/dist/core/contracts/blobCodec.js +2 -0
- package/dist/core/contracts/blobCodec.js.map +1 -0
- package/dist/core/contracts/dialect.d.ts +55 -0
- package/dist/core/contracts/dialect.d.ts.map +1 -0
- package/dist/core/contracts/dialect.js +2 -0
- package/dist/core/contracts/dialect.js.map +1 -0
- package/dist/core/contracts/exporter.d.ts +13 -0
- package/dist/core/contracts/exporter.d.ts.map +1 -0
- package/dist/core/contracts/exporter.js +2 -0
- package/dist/core/contracts/exporter.js.map +1 -0
- package/dist/core/contracts/features.d.ts +25 -0
- package/dist/core/contracts/features.d.ts.map +1 -0
- package/dist/core/contracts/features.js +25 -0
- package/dist/core/contracts/features.js.map +1 -0
- package/dist/core/contracts/fts.d.ts +66 -0
- package/dist/core/contracts/fts.d.ts.map +1 -0
- package/dist/core/contracts/fts.js +2 -0
- package/dist/core/contracts/fts.js.map +1 -0
- package/dist/core/contracts/index.d.ts +6 -0
- package/dist/core/contracts/index.d.ts.map +1 -1
- package/dist/core/contracts/index.js +1 -0
- package/dist/core/contracts/index.js.map +1 -1
- package/dist/core/resolver.d.ts +2 -0
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +7 -2
- package/dist/core/resolver.js.map +1 -1
- package/dist/dialects/PostgresDialect.d.ts +19 -0
- package/dist/dialects/PostgresDialect.d.ts.map +1 -0
- package/dist/dialects/PostgresDialect.js +45 -0
- package/dist/dialects/PostgresDialect.js.map +1 -0
- package/dist/dialects/SqliteDialect.d.ts +19 -0
- package/dist/dialects/SqliteDialect.d.ts.map +1 -0
- package/dist/dialects/SqliteDialect.js +34 -0
- package/dist/dialects/SqliteDialect.js.map +1 -0
- package/dist/exporters/PostgresExporter.d.ts +14 -0
- package/dist/exporters/PostgresExporter.d.ts.map +1 -0
- package/dist/exporters/PostgresExporter.js +32 -0
- package/dist/exporters/PostgresExporter.js.map +1 -0
- package/dist/exporters/SqliteFileExporter.d.ts +16 -0
- package/dist/exporters/SqliteFileExporter.d.ts.map +1 -0
- package/dist/exporters/SqliteFileExporter.js +26 -0
- package/dist/exporters/SqliteFileExporter.js.map +1 -0
- package/dist/features/sync/conflicts/conflictResolver.d.ts.map +1 -1
- package/dist/features/sync/crossPlatformSync.d.ts.map +1 -1
- package/dist/features/sync/devices/deviceManager.d.ts.map +1 -1
- package/dist/features/sync/transport/httpTransport.d.ts.map +1 -1
- package/dist/features/sync/transport/websocketTransport.d.ts.map +1 -1
- package/dist/fts/PostgresFts.d.ts +28 -0
- package/dist/fts/PostgresFts.d.ts.map +1 -0
- package/dist/fts/PostgresFts.js +58 -0
- package/dist/fts/PostgresFts.js.map +1 -0
- package/dist/fts/SqliteFts5.d.ts +22 -0
- package/dist/fts/SqliteFts5.d.ts.map +1 -0
- package/dist/fts/SqliteFts5.js +44 -0
- package/dist/fts/SqliteFts5.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/parameterUtils.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Postgres full-text search using tsvector columns and GIN indexes.
|
|
3
|
+
*
|
|
4
|
+
* Unlike FTS5 (separate virtual table), Postgres stores the tsvector
|
|
5
|
+
* as a column `_tsv` on the content table itself. The `createIndex()`
|
|
6
|
+
* call adds the column, creates the GIN index, and backfills existing rows.
|
|
7
|
+
*/
|
|
8
|
+
export class PostgresFts {
|
|
9
|
+
constructor() {
|
|
10
|
+
/** The content table is stored during createIndex for use by other methods. */
|
|
11
|
+
this._contentTable = '';
|
|
12
|
+
this._columns = [];
|
|
13
|
+
}
|
|
14
|
+
createIndex(config) {
|
|
15
|
+
const ct = config.contentTable ?? config.table;
|
|
16
|
+
this._contentTable = ct;
|
|
17
|
+
this._columns = config.columns;
|
|
18
|
+
const colConcat = config.columns.map((c) => `COALESCE(${c}, '')`).join(" || ' ' || ");
|
|
19
|
+
const lang = this._tokenizerToLang(config.tokenizer);
|
|
20
|
+
return [
|
|
21
|
+
`ALTER TABLE ${ct} ADD COLUMN IF NOT EXISTS _tsv tsvector`,
|
|
22
|
+
`CREATE INDEX IF NOT EXISTS idx_${config.table}_tsv ON ${ct} USING GIN(_tsv)`,
|
|
23
|
+
`UPDATE ${ct} SET _tsv = to_tsvector('${lang}', ${colConcat}) WHERE _tsv IS NULL`,
|
|
24
|
+
].join(';\n');
|
|
25
|
+
}
|
|
26
|
+
matchClause(_indexName, queryPlaceholder) {
|
|
27
|
+
return `_tsv @@ plainto_tsquery('english', ${queryPlaceholder})`;
|
|
28
|
+
}
|
|
29
|
+
rankExpression(_indexName, queryPlaceholder) {
|
|
30
|
+
const qp = queryPlaceholder ?? '$1';
|
|
31
|
+
return `ts_rank(_tsv, plainto_tsquery('english', ${qp}))`;
|
|
32
|
+
}
|
|
33
|
+
rebuildCommand(_indexName) {
|
|
34
|
+
const ct = this._contentTable;
|
|
35
|
+
const colConcat = this._columns.map((c) => `COALESCE(${c}, '')`).join(" || ' ' || ");
|
|
36
|
+
return `UPDATE ${ct} SET _tsv = to_tsvector('english', ${colConcat})`;
|
|
37
|
+
}
|
|
38
|
+
syncInsert(_indexName, rowIdExpr, columns) {
|
|
39
|
+
const ct = this._contentTable;
|
|
40
|
+
const colConcat = columns.map((c) => `COALESCE(${c}, '')`).join(" || ' ' || ");
|
|
41
|
+
return `UPDATE ${ct} SET _tsv = to_tsvector('english', ${colConcat}) WHERE rowid = ${rowIdExpr}`;
|
|
42
|
+
}
|
|
43
|
+
sanitizeQuery(input) {
|
|
44
|
+
return input;
|
|
45
|
+
}
|
|
46
|
+
joinClause(contentTable, contentAlias, _ftsAlias, _indexName) {
|
|
47
|
+
return `${contentTable} ${contentAlias}`;
|
|
48
|
+
}
|
|
49
|
+
/** Map FTS5-style tokenizer strings to Postgres text search configurations. */
|
|
50
|
+
_tokenizerToLang(tokenizer) {
|
|
51
|
+
if (!tokenizer)
|
|
52
|
+
return 'english';
|
|
53
|
+
if (tokenizer.includes('porter'))
|
|
54
|
+
return 'english';
|
|
55
|
+
return 'simple';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=PostgresFts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PostgresFts.js","sourceRoot":"","sources":["../../src/fts/PostgresFts.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IAAxB;QACE,+EAA+E;QACvE,kBAAa,GAAG,EAAE,CAAC;QACnB,aAAQ,GAAa,EAAE,CAAC;IAmDlC,CAAC;IAjDC,WAAW,CAAC,MAAuF;QACjG,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAErD,OAAO;YACL,eAAe,EAAE,yCAAyC;YAC1D,kCAAkC,MAAM,CAAC,KAAK,WAAW,EAAE,kBAAkB;YAC7E,UAAU,EAAE,4BAA4B,IAAI,MAAM,SAAS,sBAAsB;SAClF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,UAAkB,EAAE,gBAAwB;QACtD,OAAO,sCAAsC,gBAAgB,GAAG,CAAC;IACnE,CAAC;IAED,cAAc,CAAC,UAAkB,EAAE,gBAAyB;QAC1D,MAAM,EAAE,GAAG,gBAAgB,IAAI,IAAI,CAAC;QACpC,OAAO,4CAA4C,EAAE,IAAI,CAAC;IAC5D,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrF,OAAO,UAAU,EAAE,sCAAsC,SAAS,GAAG,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,UAAkB,EAAE,SAAiB,EAAE,OAAiB;QACjE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/E,OAAO,UAAU,EAAE,sCAAsC,SAAS,mBAAmB,SAAS,EAAE,CAAC;IACnG,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,YAAoB,EAAE,SAAiB,EAAE,UAAkB;QAC1F,OAAO,GAAG,YAAY,IAAI,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED,+EAA+E;IACvE,gBAAgB,CAAC,SAAkB;QACzC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IFullTextSearch } from '../core/contracts/fts.js';
|
|
2
|
+
/**
|
|
3
|
+
* SQLite FTS5 full-text search implementation.
|
|
4
|
+
*
|
|
5
|
+
* Uses FTS5 virtual tables with external-content support, porter/ascii
|
|
6
|
+
* tokenizers, and rowid-based joins to the content table.
|
|
7
|
+
*/
|
|
8
|
+
export declare class SqliteFts5 implements IFullTextSearch {
|
|
9
|
+
createIndex(config: {
|
|
10
|
+
table: string;
|
|
11
|
+
columns: string[];
|
|
12
|
+
contentTable?: string;
|
|
13
|
+
tokenizer?: string;
|
|
14
|
+
}): string;
|
|
15
|
+
matchClause(indexName: string, queryPlaceholder: string): string;
|
|
16
|
+
rankExpression(indexName: string, _queryPlaceholder?: string): string;
|
|
17
|
+
rebuildCommand(indexName: string): string;
|
|
18
|
+
syncInsert(indexName: string, rowIdExpr: string, columns: string[]): string;
|
|
19
|
+
sanitizeQuery(input: string): string;
|
|
20
|
+
joinClause(contentTable: string, contentAlias: string, ftsAlias: string, indexName: string): string;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=SqliteFts5.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteFts5.d.ts","sourceRoot":"","sources":["../../src/fts/SqliteFts5.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,eAAe;IAChD,WAAW,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAY5G,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM;IAIhE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM;IAIrE,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIzC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAK3E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASpC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;CAGpG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite FTS5 full-text search implementation.
|
|
3
|
+
*
|
|
4
|
+
* Uses FTS5 virtual tables with external-content support, porter/ascii
|
|
5
|
+
* tokenizers, and rowid-based joins to the content table.
|
|
6
|
+
*/
|
|
7
|
+
export class SqliteFts5 {
|
|
8
|
+
createIndex(config) {
|
|
9
|
+
const parts = [...config.columns];
|
|
10
|
+
if (config.contentTable) {
|
|
11
|
+
parts.push(`content='${config.contentTable}'`);
|
|
12
|
+
parts.push(`content_rowid='rowid'`);
|
|
13
|
+
}
|
|
14
|
+
if (config.tokenizer) {
|
|
15
|
+
parts.push(`tokenize='${config.tokenizer}'`);
|
|
16
|
+
}
|
|
17
|
+
return `CREATE VIRTUAL TABLE IF NOT EXISTS ${config.table} USING fts5(${parts.join(', ')})`;
|
|
18
|
+
}
|
|
19
|
+
matchClause(indexName, queryPlaceholder) {
|
|
20
|
+
return `${indexName} MATCH ${queryPlaceholder}`;
|
|
21
|
+
}
|
|
22
|
+
rankExpression(indexName, _queryPlaceholder) {
|
|
23
|
+
return `${indexName}.rank`;
|
|
24
|
+
}
|
|
25
|
+
rebuildCommand(indexName) {
|
|
26
|
+
return `INSERT INTO ${indexName}(${indexName}) VALUES('rebuild')`;
|
|
27
|
+
}
|
|
28
|
+
syncInsert(indexName, rowIdExpr, columns) {
|
|
29
|
+
const placeholders = columns.map(() => '?').join(', ');
|
|
30
|
+
return `INSERT INTO ${indexName} (rowid, ${columns.join(', ')}) VALUES (${rowIdExpr}, ${placeholders})`;
|
|
31
|
+
}
|
|
32
|
+
sanitizeQuery(input) {
|
|
33
|
+
return input
|
|
34
|
+
.replace(/[*()":^~{}[\]\\]/g, '')
|
|
35
|
+
.split(/\s+/)
|
|
36
|
+
.filter((w) => w.length > 0)
|
|
37
|
+
.map((w) => `"${w}"`)
|
|
38
|
+
.join(' OR ');
|
|
39
|
+
}
|
|
40
|
+
joinClause(contentTable, contentAlias, ftsAlias, indexName) {
|
|
41
|
+
return `${indexName} ${ftsAlias} JOIN ${contentTable} ${contentAlias} ON ${contentAlias}.rowid = ${ftsAlias}.rowid`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=SqliteFts5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteFts5.js","sourceRoot":"","sources":["../../src/fts/SqliteFts5.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IACrB,WAAW,CAAC,MAAuF;QACjG,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,sCAAsC,MAAM,CAAC,KAAK,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9F,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,gBAAwB;QACrD,OAAO,GAAG,SAAS,UAAU,gBAAgB,EAAE,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,iBAA0B;QAC1D,OAAO,GAAG,SAAS,OAAO,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,OAAO,eAAe,SAAS,IAAI,SAAS,qBAAqB,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,SAAiB,EAAE,SAAiB,EAAE,OAAiB;QAChE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,eAAe,SAAS,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,SAAS,KAAK,YAAY,GAAG,CAAC;IAC1G,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,OAAO,KAAK;aACT,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;aAChC,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,YAAoB,EAAE,YAAoB,EAAE,QAAgB,EAAE,SAAiB;QACxF,OAAO,GAAG,SAAS,IAAI,QAAQ,SAAS,YAAY,IAAI,YAAY,OAAO,YAAY,YAAY,QAAQ,QAAQ,CAAC;IACtH,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,4 +14,13 @@ export * from './features/migrations/dataImport';
|
|
|
14
14
|
export * from './features/migrations/migration';
|
|
15
15
|
export * from './features/sync/syncManager';
|
|
16
16
|
export * from './shared/parameterUtils';
|
|
17
|
+
export { SqliteDialect } from './dialects/SqliteDialect';
|
|
18
|
+
export { PostgresDialect } from './dialects/PostgresDialect';
|
|
19
|
+
export { SqliteFts5 } from './fts/SqliteFts5';
|
|
20
|
+
export { PostgresFts } from './fts/PostgresFts';
|
|
21
|
+
export { NodeBlobCodec } from './codecs/NodeBlobCodec';
|
|
22
|
+
export { BrowserBlobCodec } from './codecs/BrowserBlobCodec';
|
|
23
|
+
export { SqliteFileExporter } from './exporters/SqliteFileExporter';
|
|
24
|
+
export { PostgresExporter } from './exporters/PostgresExporter';
|
|
25
|
+
export { createStorageFeatures } from './core/contracts/features';
|
|
17
26
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,4 +25,14 @@ export * from './features/sync/syncManager.js';
|
|
|
25
25
|
// Usage: import { createCrossPlatformSync } from '@framers/sql-storage-adapter/sync';
|
|
26
26
|
// Shared utilities -----------------------------------------------------------
|
|
27
27
|
export * from './shared/parameterUtils.js';
|
|
28
|
+
// Dialect & feature abstractions -----------------------------------------------
|
|
29
|
+
export { SqliteDialect } from './dialects/SqliteDialect.js';
|
|
30
|
+
export { PostgresDialect } from './dialects/PostgresDialect.js';
|
|
31
|
+
export { SqliteFts5 } from './fts/SqliteFts5.js';
|
|
32
|
+
export { PostgresFts } from './fts/PostgresFts.js';
|
|
33
|
+
export { NodeBlobCodec } from './codecs/NodeBlobCodec.js';
|
|
34
|
+
export { BrowserBlobCodec } from './codecs/BrowserBlobCodec.js';
|
|
35
|
+
export { SqliteFileExporter } from './exporters/SqliteFileExporter.js';
|
|
36
|
+
export { PostgresExporter } from './exporters/PostgresExporter.js';
|
|
37
|
+
export { createStorageFeatures } from './core/contracts/features.js';
|
|
28
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC;AAExC,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameterUtils.d.ts","sourceRoot":"","sources":["../../src/shared/parameterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"parameterUtils.d.ts","sourceRoot":"","sources":["../../src/shared/parameterUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,iBAAiB,KAC7B;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CAehE,CAAC"}
|
package/package.json
CHANGED