@sixb/ducklake 0.0.1
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/LICENSE +21 -0
- package/README.md +490 -0
- package/dist/ducklake-storage.d.ts +42 -0
- package/dist/ducklake-storage.d.ts.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3112 -0
- package/dist/index.js.map +34 -0
- package/dist/internal/catalog-key.d.ts +11 -0
- package/dist/internal/catalog-key.d.ts.map +1 -0
- package/dist/internal/dataset-row-commit.d.ts +26 -0
- package/dist/internal/dataset-row-commit.d.ts.map +1 -0
- package/dist/internal/duckdb-column-types.d.ts +45 -0
- package/dist/internal/duckdb-column-types.d.ts.map +1 -0
- package/dist/internal/duckdb-decimal.d.ts +6 -0
- package/dist/internal/duckdb-decimal.d.ts.map +1 -0
- package/dist/internal/duckdb-row.d.ts +8 -0
- package/dist/internal/duckdb-row.d.ts.map +1 -0
- package/dist/internal/duckdb-runtime.d.ts +63 -0
- package/dist/internal/duckdb-runtime.d.ts.map +1 -0
- package/dist/internal/duckdb-value-converter.d.ts +7 -0
- package/dist/internal/duckdb-value-converter.d.ts.map +1 -0
- package/dist/internal/ducklake-catalog-schema.d.ts +12 -0
- package/dist/internal/ducklake-catalog-schema.d.ts.map +1 -0
- package/dist/internal/ducklake-connection-manager.d.ts +67 -0
- package/dist/internal/ducklake-connection-manager.d.ts.map +1 -0
- package/dist/internal/ducklake-current-dataset-definitions.d.ts +10 -0
- package/dist/internal/ducklake-current-dataset-definitions.d.ts.map +1 -0
- package/dist/internal/ducklake-dataset-catalog.d.ts +33 -0
- package/dist/internal/ducklake-dataset-catalog.d.ts.map +1 -0
- package/dist/internal/ducklake-dataset-table-ref.d.ts +9 -0
- package/dist/internal/ducklake-dataset-table-ref.d.ts.map +1 -0
- package/dist/internal/ducklake-maintenance.d.ts +9 -0
- package/dist/internal/ducklake-maintenance.d.ts.map +1 -0
- package/dist/internal/ducklake-row-reader.d.ts +24 -0
- package/dist/internal/ducklake-row-reader.d.ts.map +1 -0
- package/dist/internal/ducklake-snapshot-reader.d.ts +73 -0
- package/dist/internal/ducklake-snapshot-reader.d.ts.map +1 -0
- package/dist/internal/ducklake-sql-executor.d.ts +33 -0
- package/dist/internal/ducklake-sql-executor.d.ts.map +1 -0
- package/dist/internal/ducklake-write-coordinator.d.ts +53 -0
- package/dist/internal/ducklake-write-coordinator.d.ts.map +1 -0
- package/dist/internal/ducklake-write-session.d.ts +17 -0
- package/dist/internal/ducklake-write-session.d.ts.map +1 -0
- package/dist/internal/names.d.ts +13 -0
- package/dist/internal/names.d.ts.map +1 -0
- package/dist/internal/row-appender.d.ts +7 -0
- package/dist/internal/row-appender.d.ts.map +1 -0
- package/dist/internal/schema.d.ts +35 -0
- package/dist/internal/schema.d.ts.map +1 -0
- package/dist/internal/sql-transform-relations.d.ts +13 -0
- package/dist/internal/sql-transform-relations.d.ts.map +1 -0
- package/dist/internal/sql.d.ts +62 -0
- package/dist/internal/sql.d.ts.map +1 -0
- package/dist/internal/versions.d.ts +22 -0
- package/dist/internal/versions.d.ts.map +1 -0
- package/dist/tsconfig.json +5 -0
- package/dist/types.d.ts +147 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +64 -0
- package/src/ducklake-storage.ts +130 -0
- package/src/index.ts +14 -0
- package/src/internal/catalog-key.ts +28 -0
- package/src/internal/dataset-row-commit.ts +128 -0
- package/src/internal/duckdb-column-types.ts +68 -0
- package/src/internal/duckdb-decimal.ts +36 -0
- package/src/internal/duckdb-row.ts +83 -0
- package/src/internal/duckdb-runtime.ts +347 -0
- package/src/internal/duckdb-value-converter.ts +27 -0
- package/src/internal/ducklake-catalog-schema.ts +116 -0
- package/src/internal/ducklake-connection-manager.ts +510 -0
- package/src/internal/ducklake-current-dataset-definitions.ts +228 -0
- package/src/internal/ducklake-dataset-catalog.ts +363 -0
- package/src/internal/ducklake-dataset-table-ref.ts +35 -0
- package/src/internal/ducklake-maintenance.ts +116 -0
- package/src/internal/ducklake-row-reader.ts +143 -0
- package/src/internal/ducklake-snapshot-reader.ts +826 -0
- package/src/internal/ducklake-sql-executor.ts +334 -0
- package/src/internal/ducklake-write-coordinator.ts +532 -0
- package/src/internal/ducklake-write-session.ts +170 -0
- package/src/internal/names.ts +111 -0
- package/src/internal/row-appender.ts +73 -0
- package/src/internal/schema.ts +149 -0
- package/src/internal/sql-transform-relations.ts +99 -0
- package/src/internal/sql.ts +440 -0
- package/src/internal/versions.ts +140 -0
- package/src/types.ts +159 -0
package/src/types.ts
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuckLake catalog connection settings.
|
|
3
|
+
*
|
|
4
|
+
* The catalog stores DuckLake metadata. Physical table data still lives under
|
|
5
|
+
* `dataPath` and is managed by DuckLake, not by Sixb sidecar tables.
|
|
6
|
+
*/
|
|
7
|
+
export type DuckLakeCatalogOptions =
|
|
8
|
+
| { readonly type: "duckdb"; readonly path: string }
|
|
9
|
+
| { readonly type: "sqlite"; readonly path: string }
|
|
10
|
+
| PostgresDuckLakeCatalogOptions
|
|
11
|
+
/** Escape hatch for DuckLake catalog URI forms Sixb does not model yet. */
|
|
12
|
+
| {
|
|
13
|
+
readonly type: "custom"
|
|
14
|
+
readonly uri: string
|
|
15
|
+
readonly extensions?: readonly string[]
|
|
16
|
+
readonly metadataParameters?: Readonly<Record<string, string>>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Friendly PostgreSQL catalog settings.
|
|
21
|
+
*
|
|
22
|
+
* The provider renders these to the libpq string required by DuckLake. Use
|
|
23
|
+
* `custom` for raw DuckLake catalog URIs that need unsupported options.
|
|
24
|
+
*/
|
|
25
|
+
export interface PostgresDuckLakeCatalogOptions {
|
|
26
|
+
readonly type: "postgres"
|
|
27
|
+
readonly host: string
|
|
28
|
+
readonly database: string
|
|
29
|
+
readonly port?: number
|
|
30
|
+
readonly user?: string
|
|
31
|
+
readonly password?: string
|
|
32
|
+
readonly sslMode?: "disable" | "allow" | "prefer" | "require" | "verify-ca" | "verify-full"
|
|
33
|
+
readonly applicationName?: string
|
|
34
|
+
readonly connectTimeoutSeconds?: number
|
|
35
|
+
readonly metadataSchema?: string
|
|
36
|
+
readonly parameters?: Readonly<Record<string, string | number | boolean>>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Runtime settings for the embedded DuckDB process that loads DuckLake.
|
|
41
|
+
*/
|
|
42
|
+
export interface DuckDbRuntimeOptions {
|
|
43
|
+
readonly path?: string
|
|
44
|
+
readonly config?: Readonly<Record<string, string>>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* DuckDB PostgreSQL extension pool settings for a Postgres-backed DuckLake
|
|
49
|
+
* metadata catalog.
|
|
50
|
+
*/
|
|
51
|
+
export interface DuckLakePostgresPoolOptions {
|
|
52
|
+
readonly maxConnections?: number
|
|
53
|
+
readonly waitTimeoutMillis?: number
|
|
54
|
+
readonly maxLifetimeMillis?: number
|
|
55
|
+
readonly idleTimeoutMillis?: number
|
|
56
|
+
readonly enableThreadLocalCache?: boolean
|
|
57
|
+
readonly enableReaperThread?: boolean
|
|
58
|
+
readonly healthCheckQuery?: string
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Common CREATE SECRET options shared by DuckDB object-store integrations.
|
|
63
|
+
*/
|
|
64
|
+
interface BaseSecretOptions {
|
|
65
|
+
readonly name?: string
|
|
66
|
+
readonly persistent?: boolean
|
|
67
|
+
readonly scope?: string
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Shared options for DuckDB secrets that use the S3-compatible HTTPFS layer.
|
|
72
|
+
*
|
|
73
|
+
* R2 and GCS are modeled as first-class DuckDB secret types, but they still use
|
|
74
|
+
* the same S3 API client under the hood.
|
|
75
|
+
*/
|
|
76
|
+
interface S3ApiSecretOptions extends BaseSecretOptions {
|
|
77
|
+
readonly provider?: "config" | "credential_chain"
|
|
78
|
+
readonly keyId?: string
|
|
79
|
+
readonly secret?: string
|
|
80
|
+
readonly sessionToken?: string
|
|
81
|
+
readonly region?: string
|
|
82
|
+
readonly endpoint?: string
|
|
83
|
+
readonly urlStyle?: "path" | "vhost"
|
|
84
|
+
readonly useSsl?: boolean
|
|
85
|
+
readonly verifySsl?: boolean
|
|
86
|
+
readonly chain?: string
|
|
87
|
+
readonly profile?: string
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface S3SecretOptions extends S3ApiSecretOptions {
|
|
91
|
+
readonly type: "s3"
|
|
92
|
+
readonly kmsKeyId?: string
|
|
93
|
+
readonly requesterPays?: boolean
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export interface R2SecretOptions extends S3ApiSecretOptions {
|
|
97
|
+
readonly type: "r2"
|
|
98
|
+
readonly accountId?: string
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface GcsSecretOptions extends S3ApiSecretOptions {
|
|
102
|
+
readonly type: "gcs"
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export interface AzureSecretOptions extends BaseSecretOptions {
|
|
106
|
+
readonly type: "azure"
|
|
107
|
+
readonly connectionString?: string
|
|
108
|
+
readonly accountName?: string
|
|
109
|
+
readonly accountKey?: string
|
|
110
|
+
readonly tenantId?: string
|
|
111
|
+
readonly clientId?: string
|
|
112
|
+
readonly clientSecret?: string
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export type DuckDbSecretOptions =
|
|
116
|
+
| S3SecretOptions
|
|
117
|
+
| R2SecretOptions
|
|
118
|
+
| GcsSecretOptions
|
|
119
|
+
| AzureSecretOptions
|
|
120
|
+
|
|
121
|
+
export interface DuckLakeMaintenanceOptions {
|
|
122
|
+
/** How long to keep snapshots before they can expire. Default: "7 days". */
|
|
123
|
+
readonly expireOlderThan?: string
|
|
124
|
+
/** How long to keep deleted/orphaned files before reclaim. Default: expireOlderThan. */
|
|
125
|
+
readonly deleteOlderThan?: string
|
|
126
|
+
/** Report what would be expired/deleted without changing the lake. Default: false. */
|
|
127
|
+
readonly dryRun?: boolean
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface DuckLakeMaintenanceReport {
|
|
131
|
+
readonly dryRun: boolean
|
|
132
|
+
readonly expireOlderThan: string
|
|
133
|
+
readonly deleteOlderThan: string
|
|
134
|
+
readonly snapshots: number
|
|
135
|
+
readonly oldFiles: number
|
|
136
|
+
readonly orphanedFiles: number
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Public provider configuration for `new DuckLakeStorage(...)`.
|
|
141
|
+
*
|
|
142
|
+
* Defaults:
|
|
143
|
+
* - `alias`: "sixb_lake"
|
|
144
|
+
* - `createIfNotExists`: true
|
|
145
|
+
* - `readOnly`: false
|
|
146
|
+
* - `duckdb.path`: ":memory:"
|
|
147
|
+
*/
|
|
148
|
+
export interface DuckLakeStorageOptions {
|
|
149
|
+
readonly catalog: DuckLakeCatalogOptions
|
|
150
|
+
readonly dataPath?: string
|
|
151
|
+
readonly alias?: string
|
|
152
|
+
readonly duckdb?: DuckDbRuntimeOptions
|
|
153
|
+
readonly postgresPool?: DuckLakePostgresPoolOptions
|
|
154
|
+
readonly secrets?: readonly DuckDbSecretOptions[]
|
|
155
|
+
/** Runs after DuckLake/catalog extensions load and before ATTACH. */
|
|
156
|
+
readonly setupSql?: readonly string[]
|
|
157
|
+
readonly createIfNotExists?: boolean
|
|
158
|
+
readonly readOnly?: boolean
|
|
159
|
+
}
|