botnote 0.1.56 → 0.2.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/dist/cli.js +21 -8
- package/dist/cli.js.map +1 -1
- package/dist/db/client.d.ts +4 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/migrations/0029_drop_global_uniques.sql +38 -0
- package/dist/db/schema.d.ts +4 -4
- package/dist/db/schema.js +6 -6
- package/dist/db/schema.js.map +1 -1
- package/dist/rest/routes.js +58 -58
- package/dist/rest/routes.js.map +1 -1
- package/dist/rest/server.d.ts +11 -1
- package/dist/rest/server.js +19 -3
- package/dist/rest/server.js.map +1 -1
- package/dist/service/embedding.d.ts +5 -0
- package/dist/service/embedding.js +6 -1
- package/dist/service/embedding.js.map +1 -1
- package/dist/service/embedding_settings.d.ts +4 -3
- package/dist/service/embedding_settings.js +13 -16
- package/dist/service/embedding_settings.js.map +1 -1
- package/dist/service/entities.d.ts +29 -20
- package/dist/service/entities.js +101 -60
- package/dist/service/entities.js.map +1 -1
- package/dist/service/feedback.d.ts +3 -2
- package/dist/service/feedback.js +8 -4
- package/dist/service/feedback.js.map +1 -1
- package/dist/service/locks.d.ts +25 -0
- package/dist/service/locks.js +34 -0
- package/dist/service/locks.js.map +1 -0
- package/dist/service/opening_brief.d.ts +2 -1
- package/dist/service/opening_brief.js +6 -7
- package/dist/service/opening_brief.js.map +1 -1
- package/dist/service/projects.d.ts +6 -5
- package/dist/service/projects.js +25 -13
- package/dist/service/projects.js.map +1 -1
- package/dist/service/recurrence.d.ts +16 -6
- package/dist/service/recurrence.js +102 -53
- package/dist/service/recurrence.js.map +1 -1
- package/dist/service/scope.d.ts +14 -0
- package/dist/service/scope.js +19 -0
- package/dist/service/scope.js.map +1 -0
- package/dist/service/search.d.ts +3 -2
- package/dist/service/search.js +12 -9
- package/dist/service/search.js.map +1 -1
- package/dist/service/sessions.d.ts +7 -8
- package/dist/service/sessions.js +8 -8
- package/dist/service/sessions.js.map +1 -1
- package/dist/service/tasks.d.ts +5 -1
- package/dist/service/tasks.js +17 -22
- package/dist/service/tasks.js.map +1 -1
- package/dist/service/tokens.d.ts +7 -6
- package/dist/service/tokens.js +17 -10
- package/dist/service/tokens.js.map +1 -1
- package/dist/service/workspace_settings.d.ts +3 -2
- package/dist/service/workspace_settings.js +11 -15
- package/dist/service/workspace_settings.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { eq } from "drizzle-orm";
|
|
1
|
+
import { and, eq } from "drizzle-orm";
|
|
2
2
|
import { workspaceSettings } from "../db/schema.js";
|
|
3
3
|
export const WORKSPACE_SETTINGS_ID = "default";
|
|
4
4
|
export const DEFAULT_WORKSPACE_TIMEZONE = "UTC";
|
|
@@ -11,32 +11,28 @@ export function isValidTimezone(tz) {
|
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.limit(1);
|
|
14
|
+
function rowFilter(scope) {
|
|
15
|
+
return and(eq(workspaceSettings.id, WORKSPACE_SETTINGS_ID), eq(workspaceSettings.workspaceId, scope.workspaceId));
|
|
16
|
+
}
|
|
17
|
+
export async function getWorkspaceSettings(scope, db) {
|
|
18
|
+
const [existing] = await db.select().from(workspaceSettings).where(rowFilter(scope)).limit(1);
|
|
20
19
|
if (existing)
|
|
21
20
|
return existing;
|
|
22
21
|
await db
|
|
23
22
|
.insert(workspaceSettings)
|
|
24
23
|
.values({
|
|
25
24
|
id: WORKSPACE_SETTINGS_ID,
|
|
25
|
+
workspaceId: scope.workspaceId,
|
|
26
26
|
timezone: DEFAULT_WORKSPACE_TIMEZONE
|
|
27
27
|
})
|
|
28
28
|
.onConflictDoNothing();
|
|
29
|
-
const [created] = await db
|
|
30
|
-
.select()
|
|
31
|
-
.from(workspaceSettings)
|
|
32
|
-
.where(eq(workspaceSettings.id, WORKSPACE_SETTINGS_ID))
|
|
33
|
-
.limit(1);
|
|
29
|
+
const [created] = await db.select().from(workspaceSettings).where(rowFilter(scope)).limit(1);
|
|
34
30
|
if (!created)
|
|
35
31
|
throw new Error("workspace settings row missing after insert");
|
|
36
32
|
return created;
|
|
37
33
|
}
|
|
38
|
-
export async function updateWorkspaceSettings(db, input) {
|
|
39
|
-
const current = await getWorkspaceSettings(db);
|
|
34
|
+
export async function updateWorkspaceSettings(scope, db, input) {
|
|
35
|
+
const current = await getWorkspaceSettings(scope, db);
|
|
40
36
|
const timezone = input.timezone ?? current.timezone;
|
|
41
37
|
if (input.timezone !== undefined && !isValidTimezone(input.timezone)) {
|
|
42
38
|
throw new Error(`Invalid IANA timezone: "${input.timezone}"`);
|
|
@@ -44,7 +40,7 @@ export async function updateWorkspaceSettings(db, input) {
|
|
|
44
40
|
const [updated] = await db
|
|
45
41
|
.update(workspaceSettings)
|
|
46
42
|
.set({ timezone })
|
|
47
|
-
.where(
|
|
43
|
+
.where(rowFilter(scope))
|
|
48
44
|
.returning();
|
|
49
45
|
if (!updated)
|
|
50
46
|
throw new Error("workspace settings update returned no row");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace_settings.js","sourceRoot":"","sources":["../../src/service/workspace_settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace_settings.js","sourceRoot":"","sources":["../../src/service/workspace_settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,iBAAiB,EAA0B,MAAM,iBAAiB,CAAC;AAI5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAC/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAY;IAC7B,OAAO,GAAG,CACR,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,qBAAqB,CAAC,EAC/C,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CACrD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,KAAY,EACZ,EAAkB;IAElB,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,EAAE;SACL,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC;QACN,EAAE,EAAE,qBAAqB;QACzB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,0BAA0B;KACrC,CAAC;SACD,mBAAmB,EAAE,CAAC;IAEzB,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAY,EACZ,EAAkB,EAClB,KAAmC;IAEnC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACpD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE;SACvB,MAAM,CAAC,iBAAiB,CAAC;SACzB,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;SACjB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvB,SAAS,EAAE,CAAC;IACf,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC;AACjB,CAAC"}
|