@hasna/cloud 0.1.39 → 0.1.40
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/cli/index.js +20 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/mcp/bin.js +10 -3
- package/dist/mcp/index.js +20 -6
- package/dist/scheduled-sync.js +10 -3
- package/package.json +2 -3
package/dist/cli/index.js
CHANGED
|
@@ -11849,8 +11849,15 @@ function getConnectionString(dbName) {
|
|
|
11849
11849
|
if (password === undefined || password === "") {
|
|
11850
11850
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
11851
11851
|
}
|
|
11852
|
-
const
|
|
11853
|
-
|
|
11852
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
11853
|
+
url.hostname = host;
|
|
11854
|
+
url.port = String(port);
|
|
11855
|
+
url.username = username;
|
|
11856
|
+
url.password = password;
|
|
11857
|
+
url.pathname = `/${dbName}`;
|
|
11858
|
+
if (ssl)
|
|
11859
|
+
url.searchParams.set("sslmode", "require");
|
|
11860
|
+
return url.toString();
|
|
11854
11861
|
}
|
|
11855
11862
|
function createDatabase(options) {
|
|
11856
11863
|
const config = getCloudConfig();
|
|
@@ -11891,7 +11898,7 @@ var init_config = __esm(() => {
|
|
|
11891
11898
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
11892
11899
|
ssl: exports_external.boolean().default(true)
|
|
11893
11900
|
}).default({}),
|
|
11894
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
11901
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
11895
11902
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
11896
11903
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
11897
11904
|
sync: exports_external.object({
|
|
@@ -15242,7 +15249,7 @@ var CloudConfigSchema2 = exports_external.object({
|
|
|
15242
15249
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
15243
15250
|
ssl: exports_external.boolean().default(true)
|
|
15244
15251
|
}).default({}),
|
|
15245
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
15252
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
15246
15253
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
15247
15254
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
15248
15255
|
sync: exports_external.object({
|
|
@@ -15273,8 +15280,15 @@ function getConnectionString2(dbName) {
|
|
|
15273
15280
|
if (password === undefined || password === "") {
|
|
15274
15281
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
15275
15282
|
}
|
|
15276
|
-
const
|
|
15277
|
-
|
|
15283
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
15284
|
+
url.hostname = host;
|
|
15285
|
+
url.port = String(port);
|
|
15286
|
+
url.username = username;
|
|
15287
|
+
url.password = password;
|
|
15288
|
+
url.pathname = `/${dbName}`;
|
|
15289
|
+
if (ssl)
|
|
15290
|
+
url.searchParams.set("sslmode", "require");
|
|
15291
|
+
return url.toString();
|
|
15278
15292
|
}
|
|
15279
15293
|
|
|
15280
15294
|
// src/adapter.ts
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwBV,CAAC;AAMf,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AASnE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD,wBAAgB,cAAc,IAAI,WAAW,CAU5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAGzD;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwBV,CAAC;AAMf,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AASnE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD,wBAAgB,cAAc,IAAI,WAAW,CAU5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAGzD;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0B1D;AAQD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,qBAAqB,CAavB"}
|
package/dist/index.js
CHANGED
|
@@ -9827,8 +9827,15 @@ function getConnectionString(dbName) {
|
|
|
9827
9827
|
if (password === undefined || password === "") {
|
|
9828
9828
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
9829
9829
|
}
|
|
9830
|
-
const
|
|
9831
|
-
|
|
9830
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
9831
|
+
url.hostname = host;
|
|
9832
|
+
url.port = String(port);
|
|
9833
|
+
url.username = username;
|
|
9834
|
+
url.password = password;
|
|
9835
|
+
url.pathname = `/${dbName}`;
|
|
9836
|
+
if (ssl)
|
|
9837
|
+
url.searchParams.set("sslmode", "require");
|
|
9838
|
+
return url.toString();
|
|
9832
9839
|
}
|
|
9833
9840
|
function createDatabase(options) {
|
|
9834
9841
|
const config = getCloudConfig();
|
|
@@ -9869,7 +9876,7 @@ var init_config = __esm(() => {
|
|
|
9869
9876
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
9870
9877
|
ssl: exports_external.boolean().default(true)
|
|
9871
9878
|
}).default({}),
|
|
9872
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
9879
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
9873
9880
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
9874
9881
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
9875
9882
|
sync: exports_external.object({
|
package/dist/mcp/bin.js
CHANGED
|
@@ -16257,8 +16257,15 @@ function getConnectionString(dbName) {
|
|
|
16257
16257
|
if (password === undefined || password === "") {
|
|
16258
16258
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
16259
16259
|
}
|
|
16260
|
-
const
|
|
16261
|
-
|
|
16260
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
16261
|
+
url.hostname = host;
|
|
16262
|
+
url.port = String(port);
|
|
16263
|
+
url.username = username;
|
|
16264
|
+
url.password = password;
|
|
16265
|
+
url.pathname = `/${dbName}`;
|
|
16266
|
+
if (ssl)
|
|
16267
|
+
url.searchParams.set("sslmode", "require");
|
|
16268
|
+
return url.toString();
|
|
16262
16269
|
}
|
|
16263
16270
|
function createDatabase(options) {
|
|
16264
16271
|
const config2 = getCloudConfig();
|
|
@@ -16299,7 +16306,7 @@ var init_config = __esm(() => {
|
|
|
16299
16306
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
16300
16307
|
ssl: exports_external.boolean().default(true)
|
|
16301
16308
|
}).default({}),
|
|
16302
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
16309
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
16303
16310
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
16304
16311
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
16305
16312
|
sync: exports_external.object({
|
package/dist/mcp/index.js
CHANGED
|
@@ -16257,8 +16257,15 @@ function getConnectionString2(dbName) {
|
|
|
16257
16257
|
if (password === undefined || password === "") {
|
|
16258
16258
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
16259
16259
|
}
|
|
16260
|
-
const
|
|
16261
|
-
|
|
16260
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
16261
|
+
url.hostname = host;
|
|
16262
|
+
url.port = String(port);
|
|
16263
|
+
url.username = username;
|
|
16264
|
+
url.password = password;
|
|
16265
|
+
url.pathname = `/${dbName}`;
|
|
16266
|
+
if (ssl)
|
|
16267
|
+
url.searchParams.set("sslmode", "require");
|
|
16268
|
+
return url.toString();
|
|
16262
16269
|
}
|
|
16263
16270
|
function createDatabase2(options) {
|
|
16264
16271
|
const config2 = getCloudConfig2();
|
|
@@ -16299,7 +16306,7 @@ var init_config = __esm(() => {
|
|
|
16299
16306
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
16300
16307
|
ssl: exports_external.boolean().default(true)
|
|
16301
16308
|
}).default({}),
|
|
16302
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
16309
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
16303
16310
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
16304
16311
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
16305
16312
|
sync: exports_external.object({
|
|
@@ -25584,7 +25591,7 @@ var CloudConfigSchema = exports_external.object({
|
|
|
25584
25591
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
25585
25592
|
ssl: exports_external.boolean().default(true)
|
|
25586
25593
|
}).default({}),
|
|
25587
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
25594
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
25588
25595
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
25589
25596
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
25590
25597
|
sync: exports_external.object({
|
|
@@ -25615,8 +25622,15 @@ function getConnectionString(dbName) {
|
|
|
25615
25622
|
if (password === undefined || password === "") {
|
|
25616
25623
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
25617
25624
|
}
|
|
25618
|
-
const
|
|
25619
|
-
|
|
25625
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
25626
|
+
url.hostname = host;
|
|
25627
|
+
url.port = String(port);
|
|
25628
|
+
url.username = username;
|
|
25629
|
+
url.password = password;
|
|
25630
|
+
url.pathname = `/${dbName}`;
|
|
25631
|
+
if (ssl)
|
|
25632
|
+
url.searchParams.set("sslmode", "require");
|
|
25633
|
+
return url.toString();
|
|
25620
25634
|
}
|
|
25621
25635
|
function createDatabase(options) {
|
|
25622
25636
|
const config2 = getCloudConfig();
|
package/dist/scheduled-sync.js
CHANGED
|
@@ -9252,7 +9252,7 @@ var CloudConfigSchema = exports_external.object({
|
|
|
9252
9252
|
password_env: exports_external.string().default("HASNA_RDS_PASSWORD"),
|
|
9253
9253
|
ssl: exports_external.boolean().default(true)
|
|
9254
9254
|
}).default({}),
|
|
9255
|
-
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("
|
|
9255
|
+
mode: exports_external.enum(["local", "cloud", "hybrid"]).default("local"),
|
|
9256
9256
|
auto_sync_interval_minutes: exports_external.number().default(0),
|
|
9257
9257
|
feedback_endpoint: exports_external.string().default("https://feedback.hasna.com/api/v1/feedback"),
|
|
9258
9258
|
sync: exports_external.object({
|
|
@@ -9283,8 +9283,15 @@ function getConnectionString(dbName) {
|
|
|
9283
9283
|
if (password === undefined || password === "") {
|
|
9284
9284
|
throw new Error(`RDS password not set. Export ${password_env} in your shell or add it to ~/.secrets/hasna/rds/live.env`);
|
|
9285
9285
|
}
|
|
9286
|
-
const
|
|
9287
|
-
|
|
9286
|
+
const url = new URL("postgres:" + "//placeholder");
|
|
9287
|
+
url.hostname = host;
|
|
9288
|
+
url.port = String(port);
|
|
9289
|
+
url.username = username;
|
|
9290
|
+
url.password = password;
|
|
9291
|
+
url.pathname = `/${dbName}`;
|
|
9292
|
+
if (ssl)
|
|
9293
|
+
url.searchParams.set("sslmode", "require");
|
|
9294
|
+
return url.toString();
|
|
9288
9295
|
}
|
|
9289
9296
|
|
|
9290
9297
|
// src/sync-incremental.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/cloud",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.40",
|
|
4
4
|
"description": "Shared cloud infrastructure — database adapter (SQLite + PostgreSQL), sync engine, feedback system, unified dotfile config",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
"build": "bun build src/index.ts --outdir dist --target node && bun build src/cli/index.ts --outdir dist/cli --target node && bun build src/mcp/index.ts --outdir dist/mcp --target node && bun build src/mcp/bin.ts --outfile dist/mcp/bin.js --target node && chmod +x dist/mcp/bin.js && bun build src/scheduled-sync.ts --outdir dist --target node && bun run build:types",
|
|
25
25
|
"build:types": "tsc --emitDeclarationOnly --declaration --outDir dist",
|
|
26
26
|
"test": "bun test",
|
|
27
|
-
"prepublishOnly": "bun run build"
|
|
28
|
-
"postinstall": "mkdir -p $HOME/.hasna/cloud 2>/dev/null || true; test -f $HOME/.hasna/cloud/config.json || printf '{\"rds\":{\"host\":\"hasnaxyz-prod-opensource.c4limg0qgqvk.us-east-1.rds.amazonaws.com\",\"port\":5432,\"username\":\"\",\"password_env\":\"HASNA_RDS_PASSWORD\",\"ssl\":true},\"mode\":\"local\",\"feedback_endpoint\":\"https://feedback.hasna.com/api/v1/feedback\",\"auto_sync_interval_minutes\":0,\"sync\":{\"schedule_minutes\":0}}\\n' > $HOME/.hasna/cloud/config.json 2>/dev/null || true"
|
|
27
|
+
"prepublishOnly": "bun run build"
|
|
29
28
|
},
|
|
30
29
|
"publishConfig": {
|
|
31
30
|
"registry": "https://registry.npmjs.org",
|