@robbeverhelst/do 1.20.10 → 1.21.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/dist/do.js +104 -16
- package/package.json +1 -1
package/dist/do.js
CHANGED
|
@@ -4202,6 +4202,26 @@ var nodes = pgTable("nodes", {
|
|
|
4202
4202
|
index("nodes_tenant_type_idx").on(t.tenantId, t.type),
|
|
4203
4203
|
index("nodes_parent_idx").on(t.parentId)
|
|
4204
4204
|
]);
|
|
4205
|
+
// ../../packages/schema/src/db/areas.ts
|
|
4206
|
+
var areaColor = pgEnum("area_color", [
|
|
4207
|
+
"teal",
|
|
4208
|
+
"purple",
|
|
4209
|
+
"amber",
|
|
4210
|
+
"rose",
|
|
4211
|
+
"blue",
|
|
4212
|
+
"green",
|
|
4213
|
+
"red",
|
|
4214
|
+
"slate"
|
|
4215
|
+
]);
|
|
4216
|
+
var reviewCadence = pgEnum("review_cadence", ["weekly", "monthly", "quarterly"]);
|
|
4217
|
+
var areas = pgTable("areas", {
|
|
4218
|
+
id: text("id").primaryKey().references(() => nodes.id),
|
|
4219
|
+
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
4220
|
+
color: areaColor("color").notNull().default("teal"),
|
|
4221
|
+
icon: text("icon"),
|
|
4222
|
+
reviewCadence: reviewCadence("review_cadence")
|
|
4223
|
+
}, (t) => [index("areas_tenant_idx").on(t.tenantId)]);
|
|
4224
|
+
|
|
4205
4225
|
// ../../packages/schema/src/db/core.ts
|
|
4206
4226
|
var routineKind = pgEnum("routine_kind", ["sequence", "time_blocked"]);
|
|
4207
4227
|
var projectStatus = pgEnum("project_status", [
|
|
@@ -4229,8 +4249,12 @@ var routines = pgTable("routines", {
|
|
|
4229
4249
|
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
4230
4250
|
kind: routineKind("kind").notNull().default("sequence"),
|
|
4231
4251
|
notes: text("notes"),
|
|
4232
|
-
recurrenceRuleId: text("recurrence_rule_id").references(() => recurrenceRules.id)
|
|
4233
|
-
|
|
4252
|
+
recurrenceRuleId: text("recurrence_rule_id").references(() => recurrenceRules.id),
|
|
4253
|
+
areaId: text("area_id").references(() => areas.id)
|
|
4254
|
+
}, (t) => [
|
|
4255
|
+
index("routines_tenant_idx").on(t.tenantId),
|
|
4256
|
+
index("routines_tenant_area_idx").on(t.tenantId, t.areaId)
|
|
4257
|
+
]);
|
|
4234
4258
|
var routineSteps = pgTable("routine_steps", {
|
|
4235
4259
|
id: text("id").primaryKey(),
|
|
4236
4260
|
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
@@ -4270,8 +4294,12 @@ var projects = pgTable("projects", {
|
|
|
4270
4294
|
progress: integer("progress").notNull().default(0),
|
|
4271
4295
|
notes: text("notes"),
|
|
4272
4296
|
startAt: timestamp("start_at", { withTimezone: true }),
|
|
4273
|
-
dueAt: timestamp("due_at", { withTimezone: true })
|
|
4274
|
-
|
|
4297
|
+
dueAt: timestamp("due_at", { withTimezone: true }),
|
|
4298
|
+
areaId: text("area_id").references(() => areas.id)
|
|
4299
|
+
}, (t) => [
|
|
4300
|
+
index("projects_tenant_idx").on(t.tenantId),
|
|
4301
|
+
index("projects_tenant_area_idx").on(t.tenantId, t.areaId)
|
|
4302
|
+
]);
|
|
4275
4303
|
var projectMilestones = pgTable("project_milestones", {
|
|
4276
4304
|
id: text("id").primaryKey(),
|
|
4277
4305
|
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
@@ -4293,7 +4321,7 @@ var userSettings = pgTable("user_settings", {
|
|
|
4293
4321
|
theme: settingsTheme("theme").notNull().default("system"),
|
|
4294
4322
|
density: settingsDensity("density").notNull().default("comfortable"),
|
|
4295
4323
|
accent: settingsAccent("accent").notNull().default("teal"),
|
|
4296
|
-
|
|
4324
|
+
enabledModules: text("enabled_modules").array().notNull().default([]),
|
|
4297
4325
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
4298
4326
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow()
|
|
4299
4327
|
}, (t) => [unique("user_settings_tenant_user_uniq").on(t.tenantId, t.userId)]);
|
|
@@ -4331,9 +4359,11 @@ var tasks = pgTable("tasks", {
|
|
|
4331
4359
|
durationMinutes: integer("duration_minutes"),
|
|
4332
4360
|
tags: text("tags").array().notNull().default([]),
|
|
4333
4361
|
recurrenceRuleId: text("recurrence_rule_id").references(() => recurrenceRules.id),
|
|
4334
|
-
projectId: text("project_id").references(() => projects.id)
|
|
4362
|
+
projectId: text("project_id").references(() => projects.id),
|
|
4363
|
+
areaId: text("area_id").references(() => areas.id)
|
|
4335
4364
|
}, (t) => [
|
|
4336
4365
|
index("tasks_tenant_project_idx").on(t.tenantId, t.projectId),
|
|
4366
|
+
index("tasks_tenant_area_idx").on(t.tenantId, t.areaId),
|
|
4337
4367
|
index("tasks_tenant_status_idx").on(t.tenantId, t.status),
|
|
4338
4368
|
index("tasks_tenant_scheduled_idx").on(t.tenantId, t.scheduledAt),
|
|
4339
4369
|
index("tasks_tenant_due_idx").on(t.tenantId, t.dueAt)
|
|
@@ -4346,8 +4376,12 @@ var habits = pgTable("habits", {
|
|
|
4346
4376
|
targetUnit: text("target_unit"),
|
|
4347
4377
|
period: habitPeriod("period").notNull().default("day"),
|
|
4348
4378
|
frequencyCount: integer("frequency_count").notNull().default(1),
|
|
4349
|
-
recurrenceRuleId: text("recurrence_rule_id").references(() => recurrenceRules.id)
|
|
4350
|
-
|
|
4379
|
+
recurrenceRuleId: text("recurrence_rule_id").references(() => recurrenceRules.id),
|
|
4380
|
+
areaId: text("area_id").references(() => areas.id)
|
|
4381
|
+
}, (t) => [
|
|
4382
|
+
index("habits_tenant_idx").on(t.tenantId),
|
|
4383
|
+
index("habits_tenant_area_idx").on(t.tenantId, t.areaId)
|
|
4384
|
+
]);
|
|
4351
4385
|
var habitEntries = pgTable("habit_entries", {
|
|
4352
4386
|
id: text("id").primaryKey(),
|
|
4353
4387
|
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
@@ -19513,6 +19547,8 @@ var taskViewSchema = taskSchema.extend({
|
|
|
19513
19547
|
deletedAt: exports_external.coerce.date().nullable()
|
|
19514
19548
|
});
|
|
19515
19549
|
var taskProjectIdSchema = ulidSchema.nullish();
|
|
19550
|
+
var taskAreaIdSchema = ulidSchema.nullish();
|
|
19551
|
+
var taskAreaNameSchema = exports_external.string().trim().min(1).nullish();
|
|
19516
19552
|
var createTaskInputSchema = exports_external.object({
|
|
19517
19553
|
id: ulidSchema,
|
|
19518
19554
|
title: exports_external.string().min(1),
|
|
@@ -19526,7 +19562,9 @@ var createTaskInputSchema = exports_external.object({
|
|
|
19526
19562
|
dueAt: exports_external.coerce.date().nullish(),
|
|
19527
19563
|
durationMinutes: exports_external.number().int().positive().nullish(),
|
|
19528
19564
|
tags: exports_external.array(exports_external.string()).optional(),
|
|
19529
|
-
projectId: taskProjectIdSchema
|
|
19565
|
+
projectId: taskProjectIdSchema,
|
|
19566
|
+
areaId: taskAreaIdSchema,
|
|
19567
|
+
areaName: taskAreaNameSchema
|
|
19530
19568
|
});
|
|
19531
19569
|
var updateTaskInputSchema = exports_external.object({
|
|
19532
19570
|
title: exports_external.string().min(1).optional(),
|
|
@@ -19540,7 +19578,8 @@ var updateTaskInputSchema = exports_external.object({
|
|
|
19540
19578
|
dueAt: exports_external.coerce.date().nullish(),
|
|
19541
19579
|
durationMinutes: exports_external.number().int().positive().nullish(),
|
|
19542
19580
|
tags: exports_external.array(exports_external.string()).optional(),
|
|
19543
|
-
projectId: taskProjectIdSchema
|
|
19581
|
+
projectId: taskProjectIdSchema,
|
|
19582
|
+
areaId: taskAreaIdSchema
|
|
19544
19583
|
}).strict();
|
|
19545
19584
|
var taskListFilterSchema = exports_external.enum(["all", "unsorted"]);
|
|
19546
19585
|
// ../../packages/schema/src/contracts/habits.ts
|
|
@@ -19563,14 +19602,16 @@ var createHabitInputSchema = exports_external.object({
|
|
|
19563
19602
|
targetValue: exports_external.number().nonnegative().nullish(),
|
|
19564
19603
|
targetUnit: exports_external.string().min(1).nullish(),
|
|
19565
19604
|
period: habitPeriodSchema.default("day"),
|
|
19566
|
-
frequencyCount: exports_external.number().int().positive().default(1)
|
|
19605
|
+
frequencyCount: exports_external.number().int().positive().default(1),
|
|
19606
|
+
areaId: ulidSchema.nullish()
|
|
19567
19607
|
});
|
|
19568
19608
|
var updateHabitInputSchema = exports_external.object({
|
|
19569
19609
|
title: exports_external.string().min(1),
|
|
19570
19610
|
targetValue: exports_external.number().nonnegative().nullable(),
|
|
19571
19611
|
targetUnit: exports_external.string().min(1).nullable(),
|
|
19572
19612
|
period: habitPeriodSchema,
|
|
19573
|
-
frequencyCount: exports_external.number().int().positive()
|
|
19613
|
+
frequencyCount: exports_external.number().int().positive(),
|
|
19614
|
+
areaId: ulidSchema.nullish()
|
|
19574
19615
|
}).partial();
|
|
19575
19616
|
var createHabitEntryInputSchema = exports_external.object({
|
|
19576
19617
|
id: ulidSchema,
|
|
@@ -19664,6 +19705,7 @@ var createRoutineInputSchema = exports_external.object({
|
|
|
19664
19705
|
parentId: ulidSchema.nullish(),
|
|
19665
19706
|
kind: routineKindSchema.optional(),
|
|
19666
19707
|
notes: exports_external.string().nullish(),
|
|
19708
|
+
areaId: ulidSchema.nullish(),
|
|
19667
19709
|
steps: exports_external.array(routineStepInputSchema).optional()
|
|
19668
19710
|
});
|
|
19669
19711
|
var updateRoutineInputSchema = exports_external.object({
|
|
@@ -19671,6 +19713,7 @@ var updateRoutineInputSchema = exports_external.object({
|
|
|
19671
19713
|
parentId: ulidSchema.nullish(),
|
|
19672
19714
|
kind: routineKindSchema.optional(),
|
|
19673
19715
|
notes: exports_external.string().nullish(),
|
|
19716
|
+
areaId: ulidSchema.nullish(),
|
|
19674
19717
|
steps: exports_external.array(routineStepInputSchema).optional()
|
|
19675
19718
|
}).strict();
|
|
19676
19719
|
var routineViewSchema = routineSchema.extend({
|
|
@@ -19735,6 +19778,7 @@ var createProjectInputSchema = exports_external.object({
|
|
|
19735
19778
|
notes: exports_external.string().nullish(),
|
|
19736
19779
|
startAt: exports_external.coerce.date().nullish(),
|
|
19737
19780
|
dueAt: exports_external.coerce.date().nullish(),
|
|
19781
|
+
areaId: ulidSchema.nullish(),
|
|
19738
19782
|
milestones: exports_external.array(projectMilestoneInputSchema).optional()
|
|
19739
19783
|
});
|
|
19740
19784
|
var updateProjectInputSchema = exports_external.object({
|
|
@@ -19745,6 +19789,7 @@ var updateProjectInputSchema = exports_external.object({
|
|
|
19745
19789
|
notes: exports_external.string().nullish(),
|
|
19746
19790
|
startAt: exports_external.coerce.date().nullish(),
|
|
19747
19791
|
dueAt: exports_external.coerce.date().nullish(),
|
|
19792
|
+
areaId: ulidSchema.nullish(),
|
|
19748
19793
|
milestones: exports_external.array(projectMilestoneInputSchema).optional()
|
|
19749
19794
|
}).strict();
|
|
19750
19795
|
var projectViewSchema = projectSchema.extend({
|
|
@@ -19763,6 +19808,40 @@ var projectDetailSchema = projectViewSchema.extend({
|
|
|
19763
19808
|
tasks: exports_external.array(taskViewSchema)
|
|
19764
19809
|
});
|
|
19765
19810
|
var attachTaskInputSchema = exports_external.object({ taskId: ulidSchema });
|
|
19811
|
+
// ../../packages/schema/src/contracts/areas.ts
|
|
19812
|
+
var areaColorSchema = exports_external.enum(areaColor.enumValues);
|
|
19813
|
+
var reviewCadenceSchema = exports_external.enum(reviewCadence.enumValues);
|
|
19814
|
+
var areaSchema = createSelectSchema(areas);
|
|
19815
|
+
var areaIconSchema = exports_external.string().trim().min(1).max(64);
|
|
19816
|
+
var createAreaInputSchema = exports_external.object({
|
|
19817
|
+
id: ulidSchema,
|
|
19818
|
+
title: exports_external.string().min(1),
|
|
19819
|
+
color: areaColorSchema.optional(),
|
|
19820
|
+
icon: areaIconSchema.nullish(),
|
|
19821
|
+
reviewCadence: reviewCadenceSchema.nullish()
|
|
19822
|
+
});
|
|
19823
|
+
var updateAreaInputSchema = exports_external.object({
|
|
19824
|
+
title: exports_external.string().min(1).optional(),
|
|
19825
|
+
color: areaColorSchema.optional(),
|
|
19826
|
+
icon: areaIconSchema.nullish(),
|
|
19827
|
+
reviewCadence: reviewCadenceSchema.nullish()
|
|
19828
|
+
}).strict();
|
|
19829
|
+
var areaViewSchema = areaSchema.extend({
|
|
19830
|
+
title: exports_external.string(),
|
|
19831
|
+
createdAt: exports_external.coerce.date(),
|
|
19832
|
+
updatedAt: exports_external.coerce.date(),
|
|
19833
|
+
deletedAt: exports_external.coerce.date().nullable(),
|
|
19834
|
+
projectCount: exports_external.number().int().min(0),
|
|
19835
|
+
taskCount: exports_external.number().int().min(0),
|
|
19836
|
+
habitCount: exports_external.number().int().min(0),
|
|
19837
|
+
routineCount: exports_external.number().int().min(0)
|
|
19838
|
+
});
|
|
19839
|
+
var areaDetailSchema = areaViewSchema.extend({
|
|
19840
|
+
projects: exports_external.array(projectViewSchema),
|
|
19841
|
+
habits: exports_external.array(habitSummarySchema),
|
|
19842
|
+
routines: exports_external.array(routineViewSchema),
|
|
19843
|
+
tasks: exports_external.array(taskViewSchema)
|
|
19844
|
+
});
|
|
19766
19845
|
// ../../packages/schema/src/contracts/settings.ts
|
|
19767
19846
|
var settingsThemeSchema = exports_external.enum(settingsTheme.enumValues);
|
|
19768
19847
|
var settingsDensitySchema = exports_external.enum(settingsDensity.enumValues);
|
|
@@ -19779,7 +19858,7 @@ var updateUserSettingsInputSchema = exports_external.object({
|
|
|
19779
19858
|
theme: settingsThemeSchema.optional(),
|
|
19780
19859
|
density: settingsDensitySchema.optional(),
|
|
19781
19860
|
accent: settingsAccentSchema.optional(),
|
|
19782
|
-
|
|
19861
|
+
enabledModules: exports_external.array(exports_external.string().trim().min(1)).optional()
|
|
19783
19862
|
}).strict();
|
|
19784
19863
|
// ../../packages/schema/src/contracts/notifications.ts
|
|
19785
19864
|
var notificationTypeSchema = exports_external.enum(["task_due", "occurrence_due"]);
|
|
@@ -20827,6 +20906,7 @@ var insightsOverviewSchema = exports_external.object({
|
|
|
20827
20906
|
// ../../packages/schema/src/capture.ts
|
|
20828
20907
|
var TAG_RE = /(?:^|\s)#([\p{L}\p{N}][\p{L}\p{N}_-]*)/gu;
|
|
20829
20908
|
var PRIORITY_RE = /(?:^|\s)!([\p{L}]+)/gu;
|
|
20909
|
+
var AREA_RE = /(?:^|\s)~([\p{L}\p{N}][\p{L}\p{N}_-]*)/gu;
|
|
20830
20910
|
var PRIORITY_ALIASES = {
|
|
20831
20911
|
none: "none",
|
|
20832
20912
|
n: "none",
|
|
@@ -20853,8 +20933,16 @@ function parseCapture(input) {
|
|
|
20853
20933
|
if (mapped)
|
|
20854
20934
|
priority = mapped;
|
|
20855
20935
|
}
|
|
20856
|
-
|
|
20857
|
-
|
|
20936
|
+
let area;
|
|
20937
|
+
for (const match of input.matchAll(AREA_RE)) {
|
|
20938
|
+
const token = match[1]?.toLowerCase();
|
|
20939
|
+
if (token) {
|
|
20940
|
+
area = token;
|
|
20941
|
+
break;
|
|
20942
|
+
}
|
|
20943
|
+
}
|
|
20944
|
+
const title = input.replace(TAG_RE, " ").replace(PRIORITY_RE, " ").replace(AREA_RE, " ").replace(/\s+/g, " ").trim();
|
|
20945
|
+
return { title, tags, ...priority ? { priority } : {}, ...area ? { area } : {} };
|
|
20858
20946
|
}
|
|
20859
20947
|
// ../../node_modules/.bun/ulidx@2.4.1/node_modules/ulidx/dist/node/index.js
|
|
20860
20948
|
import crypto from "crypto";
|
|
@@ -21108,7 +21196,7 @@ function parseCapture2(input) {
|
|
|
21108
21196
|
|
|
21109
21197
|
// src/meta.ts
|
|
21110
21198
|
var CLI_NAME = "do";
|
|
21111
|
-
var VERSION = "1.
|
|
21199
|
+
var VERSION = "1.21.0";
|
|
21112
21200
|
var API_PREFIX = "/api/v1";
|
|
21113
21201
|
var DEFAULT_API_URL = "http://localhost:3001";
|
|
21114
21202
|
|