@inlang/sdk 2.1.2 → 2.1.3

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.
@@ -0,0 +1,14 @@
1
+ import { Kysely } from "kysely";
2
+ import { type SqliteDatabase } from "sqlite-wasm-kysely";
3
+ import type { Lix } from "@lix-js/sdk";
4
+ import type { InlangDatabaseSchema } from "../database/schema.js";
5
+ /**
6
+ * Saves updates of the database (file) to lix.
7
+ */
8
+ export declare function initHandleSaveToLixOnChange(args: {
9
+ sqlite: SqliteDatabase;
10
+ db: Kysely<InlangDatabaseSchema>;
11
+ lix: Lix;
12
+ pendingPromises: Promise<unknown>[];
13
+ }): Promise<void>;
14
+ //# sourceMappingURL=initHandleSaveToLixOnChange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initHandleSaveToLixOnChange.d.ts","sourceRoot":"/","sources":["project/initHandleSaveToLixOnChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE;;GAEG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE;IACvD,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACjC,GAAG,EAAE,GAAG,CAAC;IACT,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CACpC,iBA+EA"}
@@ -0,0 +1,87 @@
1
+
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1a4c93a4-17e3-5a38-bc7d-2850d39d1528")}catch(e){}}();
3
+ import { Kysely, sql } from "kysely";
4
+ import { contentFromDatabase } from "sqlite-wasm-kysely";
5
+ /**
6
+ * Saves updates of the database (file) to lix.
7
+ */
8
+ export async function initHandleSaveToLixOnChange(args) {
9
+ args.sqlite.createFunction({
10
+ name: "save_db_file_to_lix",
11
+ arity: 0,
12
+ // @ts-expect-error - dynamic function
13
+ xFunc: () => {
14
+ // TODO handle in cancellable queue. only the last entry
15
+ // in the queue needs to be pushed to the file table
16
+ // because all previous entries are overwritten anyways
17
+ args.pendingPromises.push((async () => {
18
+ try {
19
+ // We have to await the database operations to be finished and the database to eb in a consistent state, otherwise contentFromDatabase will crash! 100 ms is too short for current test cases, but we need a proper solution for this
20
+ await new Promise((resolve) => setTimeout(resolve, 400));
21
+ const data = contentFromDatabase(args.sqlite);
22
+ await args.lix.db
23
+ .updateTable("file")
24
+ .set("data", data)
25
+ .where("path", "=", "/db.sqlite")
26
+ .execute();
27
+ }
28
+ catch {
29
+ // database has likely been closed.
30
+ // TODO needs better handling
31
+ }
32
+ })());
33
+ return;
34
+ },
35
+ });
36
+ // better way to write to lix on updates?
37
+ await sql `
38
+ CREATE TEMP TRIGGER bundle_insert AFTER INSERT ON bundle
39
+ BEGIN
40
+ SELECT save_db_file_to_lix();
41
+ END;
42
+
43
+ CREATE TEMP TRIGGER bundle_update AFTER UPDATE ON bundle
44
+ BEGIN
45
+ SELECT save_db_file_to_lix();
46
+ END;
47
+
48
+ CREATE TEMP TRIGGER bundle_delete AFTER DELETE ON bundle
49
+ BEGIN
50
+ SELECT save_db_file_to_lix();
51
+ END;
52
+
53
+ CREATE TEMP TRIGGER message_insert AFTER INSERT ON message
54
+ BEGIN
55
+ SELECT save_db_file_to_lix();
56
+ END;
57
+
58
+ CREATE TEMP TRIGGER message_update AFTER UPDATE ON message
59
+ BEGIN
60
+ SELECT save_db_file_to_lix();
61
+ END;
62
+
63
+ CREATE TEMP TRIGGER message_delete AFTER DELETE ON message
64
+ BEGIN
65
+ SELECT save_db_file_to_lix();
66
+ END;
67
+
68
+ CREATE TEMP TRIGGER variant_insert AFTER INSERT ON variant
69
+ BEGIN
70
+ SELECT save_db_file_to_lix();
71
+ END;
72
+
73
+ CREATE TEMP TRIGGER variant_update AFTER UPDATE ON variant
74
+ BEGIN
75
+ SELECT save_db_file_to_lix();
76
+ END;
77
+
78
+ CREATE TEMP TRIGGER variant_delete AFTER DELETE ON variant
79
+ BEGIN
80
+ SELECT save_db_file_to_lix();
81
+ END;
82
+
83
+
84
+ `.execute(args.db);
85
+ }
86
+ //# sourceMappingURL=initHandleSaveToLixOnChange.js.map
87
+ //# debugId=1a4c93a4-17e3-5a38-bc7d-2850d39d1528
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initHandleSaveToLixOnChange.js","sources":["project/initHandleSaveToLixOnChange.ts"],"sourceRoot":"/","sourcesContent":["import { Kysely, sql } from \"kysely\";\nimport { contentFromDatabase, type SqliteDatabase } from \"sqlite-wasm-kysely\";\nimport type { Lix } from \"@lix-js/sdk\";\nimport type { InlangDatabaseSchema } from \"../database/schema.js\";\n\n/**\n * Saves updates of the database (file) to lix.\n */\nexport async function initHandleSaveToLixOnChange(args: {\n\tsqlite: SqliteDatabase;\n\tdb: Kysely<InlangDatabaseSchema>;\n\tlix: Lix;\n\tpendingPromises: Promise<unknown>[];\n}) {\n\targs.sqlite.createFunction({\n\t\tname: \"save_db_file_to_lix\",\n\t\tarity: 0,\n\t\t// @ts-expect-error - dynamic function\n\t\txFunc: () => {\n\t\t\t// TODO handle in cancellable queue. only the last entry\n\t\t\t// in the queue needs to be pushed to the file table\n\t\t\t// because all previous entries are overwritten anyways\n\t\t\targs.pendingPromises.push(\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// We have to await the database operations to be finished and the database to eb in a consistent state, otherwise contentFromDatabase will crash! 100 ms is too short for current test cases, but we need a proper solution for this\n\t\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 400));\n\t\t\t\t\t\tconst data = contentFromDatabase(args.sqlite);\n\t\t\t\t\t\tawait args.lix.db\n\t\t\t\t\t\t\t.updateTable(\"file\")\n\t\t\t\t\t\t\t.set(\"data\", data)\n\t\t\t\t\t\t\t.where(\"path\", \"=\", \"/db.sqlite\")\n\t\t\t\t\t\t\t.execute();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// database has likely been closed.\n\t\t\t\t\t\t// TODO needs better handling\n\t\t\t\t\t}\n\t\t\t\t})()\n\t\t\t);\n\t\t\treturn;\n\t\t},\n\t});\n\n\t// better way to write to lix on updates?\n\tawait sql`\n\tCREATE TEMP TRIGGER bundle_insert AFTER INSERT ON bundle\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER bundle_update AFTER UPDATE ON bundle\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER bundle_delete AFTER DELETE ON bundle\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\t\tCREATE TEMP TRIGGER message_insert AFTER INSERT ON message\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER message_update AFTER UPDATE ON message\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER message_delete AFTER DELETE ON message\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER variant_insert AFTER INSERT ON variant\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER variant_update AFTER UPDATE ON variant\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\tCREATE TEMP TRIGGER variant_delete AFTER DELETE ON variant\n\tBEGIN\n\t SELECT save_db_file_to_lix();\n\tEND;\n\n\n\t`.execute(args.db);\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,oBAAoB,CAAC;AAI9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAKjD;IACA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAC1B,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,CAAC;QACR,sCAAsC;QACtC,KAAK,EAAE,GAAG,EAAE;YACX,wDAAwD;YACxD,oDAAoD;YACpD,uDAAuD;YACvD,IAAI,CAAC,eAAe,CAAC,IAAI,CACxB,CAAC,KAAK,IAAI,EAAE;gBACX,IAAI,CAAC;oBACJ,qOAAqO;oBACrO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBACzD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;yBACf,WAAW,CAAC,MAAM,CAAC;yBACnB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;yBACjB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC;yBAChC,OAAO,EAAE,CAAC;gBACb,CAAC;gBAAC,MAAM,CAAC;oBACR,mCAAmC;oBACnC,6BAA6B;gBAC9B,CAAC;YACF,CAAC,CAAC,EAAE,CACJ,CAAC;YACF,OAAO;QACR,CAAC;KACD,CAAC,CAAC;IAEH,yCAAyC;IACzC,MAAM,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CR,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC","debug_id":"1a4c93a4-17e3-5a38-bc7d-2850d39d1528"}
@@ -1,9 +1,9 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="653f0f90-c3af-5107-9290-8ba2d71d10af")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="799e7ff6-764a-5b13-80d1-632e9723e900")}catch(e){}}();
3
3
  export const ENV_VARIABLES = {
4
4
  PUBLIC_POSTHOG_TOKEN: "phc_m5yJZCxjOGxF8CJvP5sQ3H0d76xpnLrsmiZHduT4jDz",
5
5
  PUBLIC_INLANG_SDK_SENTRY_DSN: "https://c3d92d5d011122e525e9f9b368e0905d@o4504345873285120.ingest.us.sentry.io/4507903389335553",
6
- SDK_VERSION: "2.1.2",
6
+ SDK_VERSION: "2.1.3",
7
7
  };
8
8
  //# sourceMappingURL=index.js.map
9
- //# debugId=653f0f90-c3af-5107-9290-8ba2d71d10af
9
+ //# debugId=799e7ff6-764a-5b13-80d1-632e9723e900
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["services/env-variables/index.ts"],"sourceRoot":"/","sourcesContent":["\nexport const ENV_VARIABLES = {\n PUBLIC_POSTHOG_TOKEN: \"phc_m5yJZCxjOGxF8CJvP5sQ3H0d76xpnLrsmiZHduT4jDz\",\n\tPUBLIC_INLANG_SDK_SENTRY_DSN: \"https://c3d92d5d011122e525e9f9b368e0905d@o4504345873285120.ingest.us.sentry.io/4507903389335553\",\n\tSDK_VERSION: \"2.1.2\",\n}\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB,EAAE,iDAAiD;IACxE,4BAA4B,EAAE,iGAAiG;IAC/H,WAAW,EAAE,OAAO;CACpB,CAAA","debug_id":"653f0f90-c3af-5107-9290-8ba2d71d10af"}
1
+ {"version":3,"file":"index.js","sources":["services/env-variables/index.ts"],"sourceRoot":"/","sourcesContent":["\nexport const ENV_VARIABLES = {\n PUBLIC_POSTHOG_TOKEN: \"phc_m5yJZCxjOGxF8CJvP5sQ3H0d76xpnLrsmiZHduT4jDz\",\n\tPUBLIC_INLANG_SDK_SENTRY_DSN: \"https://c3d92d5d011122e525e9f9b368e0905d@o4504345873285120.ingest.us.sentry.io/4507903389335553\",\n\tSDK_VERSION: \"2.1.3\",\n}\n"],"names":[],"mappings":";;AACA,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB,EAAE,iDAAiD;IACxE,4BAA4B,EAAE,iGAAiG;IAC/H,WAAW,EAAE,OAAO;CACpB,CAAA","debug_id":"799e7ff6-764a-5b13-80d1-632e9723e900"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inlang/sdk",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -30,8 +30,8 @@
30
30
  "@sinclair/typebox": "^0.31.17",
31
31
  "kysely": "^0.27.4",
32
32
  "uuid": "^10.0.0",
33
- "sqlite-wasm-kysely": "0.3.0",
34
- "@lix-js/sdk": "0.3.5"
33
+ "@lix-js/sdk": "0.4.0",
34
+ "sqlite-wasm-kysely": "0.3.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@eslint/js": "^9.12.0",
@@ -44,7 +44,7 @@
44
44
  "memfs": "4.6.0",
45
45
  "typescript": "^5.5.2",
46
46
  "vitest": "^2.0.5",
47
- "@opral/tsconfig": "1.0.0"
47
+ "@opral/tsconfig": "1.1.0"
48
48
  },
49
49
  "scripts": {
50
50
  "prepublish": "npm run sentry:sourcemaps",