@robbeverhelst/do 1.37.0 → 1.39.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 -34
- package/package.json +1 -1
package/dist/do.js
CHANGED
|
@@ -4503,9 +4503,15 @@ var pushSubscriptions = pgTable("push_subscriptions", {
|
|
|
4503
4503
|
var shoppingLists = pgTable("shopping_lists", {
|
|
4504
4504
|
id: text("id").primaryKey().references(() => nodes.id),
|
|
4505
4505
|
tenantId: text("tenant_id").notNull().references(() => tenants.id),
|
|
4506
|
-
notes: text("notes")
|
|
4506
|
+
notes: text("notes"),
|
|
4507
|
+
groupByStore: boolean("group_by_store").notNull().default(false),
|
|
4508
|
+
recurrenceUnit: text("recurrence_unit").$type(),
|
|
4509
|
+
recurrenceInterval: integer("recurrence_interval").notNull().default(1),
|
|
4510
|
+
nextRestockAt: timestamp("next_restock_at", { withTimezone: true }),
|
|
4511
|
+
lastRestockedAt: timestamp("last_restocked_at", { withTimezone: true })
|
|
4507
4512
|
}, (t) => [
|
|
4508
|
-
index("shopping_lists_tenant_idx").on(t.tenantId)
|
|
4513
|
+
index("shopping_lists_tenant_idx").on(t.tenantId),
|
|
4514
|
+
index("shopping_lists_next_restock_idx").on(t.nextRestockAt)
|
|
4509
4515
|
]);
|
|
4510
4516
|
var shoppingItems = pgTable("shopping_items", {
|
|
4511
4517
|
id: text("id").primaryKey(),
|
|
@@ -4517,6 +4523,7 @@ var shoppingItems = pgTable("shopping_items", {
|
|
|
4517
4523
|
isChecked: boolean("is_checked").notNull().default(false),
|
|
4518
4524
|
sortOrder: integer("sort_order").notNull().default(0),
|
|
4519
4525
|
notes: text("notes"),
|
|
4526
|
+
store: text("store"),
|
|
4520
4527
|
facet: jsonb("facet").$type(),
|
|
4521
4528
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
|
|
4522
4529
|
}, (t) => [
|
|
@@ -4533,7 +4540,8 @@ var inventoryItems = pgTable("inventory_items", {
|
|
|
4533
4540
|
location: text("location"),
|
|
4534
4541
|
lowStockThreshold: doublePrecision("low_stock_threshold"),
|
|
4535
4542
|
expiresAt: timestamp("expires_at", { withTimezone: true }),
|
|
4536
|
-
notes: text("notes")
|
|
4543
|
+
notes: text("notes"),
|
|
4544
|
+
facet: jsonb("facet").$type()
|
|
4537
4545
|
}, (t) => [
|
|
4538
4546
|
index("inventory_items_tenant_idx").on(t.tenantId)
|
|
4539
4547
|
]);
|
|
@@ -20040,7 +20048,16 @@ var reviewDayStatSchema = exports_external.object({
|
|
|
20040
20048
|
});
|
|
20041
20049
|
var reviewStatsSchema = exports_external.array(reviewDayStatSchema);
|
|
20042
20050
|
// ../../packages/schema/src/contracts/shopping.ts
|
|
20043
|
-
var
|
|
20051
|
+
var shoppingRecurrenceUnitSchema = exports_external.enum(["day", "week", "month"]);
|
|
20052
|
+
var shoppingListSchema = createSelectSchema(shoppingLists, {
|
|
20053
|
+
recurrenceUnit: shoppingRecurrenceUnitSchema.nullable(),
|
|
20054
|
+
nextRestockAt: exports_external.coerce.date().nullable(),
|
|
20055
|
+
lastRestockedAt: exports_external.coerce.date().nullable()
|
|
20056
|
+
});
|
|
20057
|
+
var shoppingRecurrenceInputSchema = exports_external.object({
|
|
20058
|
+
unit: shoppingRecurrenceUnitSchema,
|
|
20059
|
+
interval: exports_external.number().int().positive().default(1)
|
|
20060
|
+
}).strict();
|
|
20044
20061
|
var itemFacetSchema = exports_external.record(exports_external.string(), exports_external.unknown());
|
|
20045
20062
|
var shoppingItemSchema = createSelectSchema(shoppingItems, {
|
|
20046
20063
|
createdAt: exports_external.coerce.date(),
|
|
@@ -20054,6 +20071,7 @@ var shoppingItemInputSchema = exports_external.object({
|
|
|
20054
20071
|
isChecked: exports_external.boolean().optional(),
|
|
20055
20072
|
sortOrder: exports_external.number().int().min(0).optional(),
|
|
20056
20073
|
notes: exports_external.string().nullish(),
|
|
20074
|
+
store: exports_external.string().nullish(),
|
|
20057
20075
|
facet: itemFacetSchema.nullish()
|
|
20058
20076
|
});
|
|
20059
20077
|
var createShoppingListInputSchema = exports_external.object({
|
|
@@ -20062,12 +20080,16 @@ var createShoppingListInputSchema = exports_external.object({
|
|
|
20062
20080
|
parentId: ulidSchema.nullish(),
|
|
20063
20081
|
notes: exports_external.string().nullish(),
|
|
20064
20082
|
displayKind: exports_external.string().min(1).optional(),
|
|
20083
|
+
groupByStore: exports_external.boolean().optional(),
|
|
20084
|
+
recurrence: shoppingRecurrenceInputSchema.nullish(),
|
|
20065
20085
|
items: exports_external.array(shoppingItemInputSchema).optional()
|
|
20066
20086
|
});
|
|
20067
20087
|
var updateShoppingListInputSchema = exports_external.object({
|
|
20068
20088
|
title: exports_external.string().min(1).optional(),
|
|
20069
20089
|
parentId: ulidSchema.nullish(),
|
|
20070
20090
|
notes: exports_external.string().nullish(),
|
|
20091
|
+
groupByStore: exports_external.boolean().optional(),
|
|
20092
|
+
recurrence: shoppingRecurrenceInputSchema.nullish(),
|
|
20071
20093
|
items: exports_external.array(shoppingItemInputSchema).optional()
|
|
20072
20094
|
}).strict();
|
|
20073
20095
|
var shoppingListViewSchema = shoppingListSchema.extend({
|
|
@@ -20084,9 +20106,78 @@ var shoppingListDetailSchema = shoppingListViewSchema.extend({
|
|
|
20084
20106
|
items: exports_external.array(shoppingItemSchema)
|
|
20085
20107
|
});
|
|
20086
20108
|
var setShoppingItemCheckedInputSchema = exports_external.object({ isChecked: exports_external.boolean() }).strict();
|
|
20109
|
+
// ../../packages/schema/src/presets/facets.ts
|
|
20110
|
+
var MEDIA_SHELF_DISPLAY_KIND = "media-shelf";
|
|
20111
|
+
var bookStatusValues = ["to-read", "reading", "read"];
|
|
20112
|
+
var bookStatusSchema = exports_external.enum(bookStatusValues);
|
|
20113
|
+
var mediaShelfFacetSchema = exports_external.object({
|
|
20114
|
+
author: exports_external.string().min(1).max(200).nullish(),
|
|
20115
|
+
coverUrl: exports_external.string().url().max(2048).nullish(),
|
|
20116
|
+
status: bookStatusSchema.default("to-read"),
|
|
20117
|
+
rating: exports_external.number().int().min(1).max(5).nullish()
|
|
20118
|
+
}).strict();
|
|
20119
|
+
var PANTRY_DISPLAY_KIND = "pantry";
|
|
20120
|
+
var WARDROBE_DISPLAY_KIND = "wardrobe";
|
|
20121
|
+
var TOOLS_DISPLAY_KIND = "tools";
|
|
20122
|
+
var MEDS_DISPLAY_KIND = "meds";
|
|
20123
|
+
var INVENTORY_AREA_KINDS = [
|
|
20124
|
+
PANTRY_DISPLAY_KIND,
|
|
20125
|
+
WARDROBE_DISPLAY_KIND,
|
|
20126
|
+
TOOLS_DISPLAY_KIND,
|
|
20127
|
+
MEDS_DISPLAY_KIND
|
|
20128
|
+
];
|
|
20129
|
+
var INVENTORY_DISPLAY_KINDS = ["default", ...INVENTORY_AREA_KINDS];
|
|
20130
|
+
var isoDateString = exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/, "must be an ISO date (YYYY-MM-DD)");
|
|
20131
|
+
var wardrobeSeasonValues = ["spring", "summer", "autumn", "winter", "all-season"];
|
|
20132
|
+
var wardrobeSeasonSchema = exports_external.enum(wardrobeSeasonValues);
|
|
20133
|
+
var toolConditionValues = ["new", "good", "worn", "broken"];
|
|
20134
|
+
var toolConditionSchema = exports_external.enum(toolConditionValues);
|
|
20135
|
+
var pantryFacetSchema = exports_external.object({
|
|
20136
|
+
brand: exports_external.string().min(1).max(200).nullish(),
|
|
20137
|
+
openedAt: isoDateString.nullish()
|
|
20138
|
+
}).strict();
|
|
20139
|
+
var wardrobeFacetSchema = exports_external.object({
|
|
20140
|
+
size: exports_external.string().min(1).max(50).nullish(),
|
|
20141
|
+
season: wardrobeSeasonSchema.nullish(),
|
|
20142
|
+
color: exports_external.string().min(1).max(50).nullish()
|
|
20143
|
+
}).strict();
|
|
20144
|
+
var toolsFacetSchema = exports_external.object({
|
|
20145
|
+
brand: exports_external.string().min(1).max(200).nullish(),
|
|
20146
|
+
condition: toolConditionSchema.nullish(),
|
|
20147
|
+
lastServicedAt: isoDateString.nullish()
|
|
20148
|
+
}).strict();
|
|
20149
|
+
var medsFacetSchema = exports_external.object({
|
|
20150
|
+
dose: exports_external.string().min(1).max(100).nullish(),
|
|
20151
|
+
refillBy: isoDateString.nullish(),
|
|
20152
|
+
prescription: exports_external.boolean().nullish()
|
|
20153
|
+
}).strict();
|
|
20154
|
+
var WATCH_SHELF_DISPLAY_KIND = "watch-shelf";
|
|
20155
|
+
var watchKindValues = ["movie", "show"];
|
|
20156
|
+
var watchKindSchema = exports_external.enum(watchKindValues);
|
|
20157
|
+
var watchStatusValues = ["to-watch", "watching", "watched"];
|
|
20158
|
+
var watchStatusSchema = exports_external.enum(watchStatusValues);
|
|
20159
|
+
var watchFacetSchema = exports_external.object({
|
|
20160
|
+
kind: watchKindSchema.default("movie"),
|
|
20161
|
+
status: watchStatusSchema.default("to-watch"),
|
|
20162
|
+
rating: exports_external.number().int().min(1).max(5).nullish(),
|
|
20163
|
+
year: exports_external.number().int().min(1888).max(2200).nullish(),
|
|
20164
|
+
posterUrl: exports_external.string().url().max(2048).nullish()
|
|
20165
|
+
}).strict();
|
|
20166
|
+
var facetSchemasByDisplayKind = {
|
|
20167
|
+
[MEDIA_SHELF_DISPLAY_KIND]: mediaShelfFacetSchema,
|
|
20168
|
+
[PANTRY_DISPLAY_KIND]: pantryFacetSchema,
|
|
20169
|
+
[WARDROBE_DISPLAY_KIND]: wardrobeFacetSchema,
|
|
20170
|
+
[TOOLS_DISPLAY_KIND]: toolsFacetSchema,
|
|
20171
|
+
[MEDS_DISPLAY_KIND]: medsFacetSchema,
|
|
20172
|
+
[WATCH_SHELF_DISPLAY_KIND]: watchFacetSchema
|
|
20173
|
+
};
|
|
20174
|
+
|
|
20087
20175
|
// ../../packages/schema/src/contracts/inventory.ts
|
|
20176
|
+
var inventoryDisplayKindSchema = exports_external.enum(INVENTORY_DISPLAY_KINDS);
|
|
20177
|
+
var inventoryItemFacetSchema = exports_external.record(exports_external.string(), exports_external.unknown());
|
|
20088
20178
|
var inventoryItemSchema = createSelectSchema(inventoryItems, {
|
|
20089
|
-
expiresAt: exports_external.coerce.date().nullable()
|
|
20179
|
+
expiresAt: exports_external.coerce.date().nullable(),
|
|
20180
|
+
facet: inventoryItemFacetSchema.nullable()
|
|
20090
20181
|
});
|
|
20091
20182
|
var createInventoryItemInputSchema = exports_external.object({
|
|
20092
20183
|
id: ulidSchema,
|
|
@@ -20098,7 +20189,9 @@ var createInventoryItemInputSchema = exports_external.object({
|
|
|
20098
20189
|
location: exports_external.string().nullish(),
|
|
20099
20190
|
lowStockThreshold: exports_external.number().min(0).nullish(),
|
|
20100
20191
|
expiresAt: exports_external.coerce.date().nullish(),
|
|
20101
|
-
notes: exports_external.string().nullish()
|
|
20192
|
+
notes: exports_external.string().nullish(),
|
|
20193
|
+
displayKind: inventoryDisplayKindSchema.optional(),
|
|
20194
|
+
facet: inventoryItemFacetSchema.nullish()
|
|
20102
20195
|
});
|
|
20103
20196
|
var updateInventoryItemInputSchema = exports_external.object({
|
|
20104
20197
|
title: exports_external.string().min(1).optional(),
|
|
@@ -20109,11 +20202,14 @@ var updateInventoryItemInputSchema = exports_external.object({
|
|
|
20109
20202
|
location: exports_external.string().nullish(),
|
|
20110
20203
|
lowStockThreshold: exports_external.number().min(0).nullish(),
|
|
20111
20204
|
expiresAt: exports_external.coerce.date().nullish(),
|
|
20112
|
-
notes: exports_external.string().nullish()
|
|
20205
|
+
notes: exports_external.string().nullish(),
|
|
20206
|
+
displayKind: inventoryDisplayKindSchema.optional(),
|
|
20207
|
+
facet: inventoryItemFacetSchema.nullish()
|
|
20113
20208
|
}).strict();
|
|
20114
20209
|
var inventoryItemViewSchema = inventoryItemSchema.extend({
|
|
20115
20210
|
title: exports_external.string(),
|
|
20116
20211
|
parentId: ulidSchema.nullable(),
|
|
20212
|
+
displayKind: exports_external.string(),
|
|
20117
20213
|
createdAt: exports_external.coerce.date(),
|
|
20118
20214
|
updatedAt: exports_external.coerce.date(),
|
|
20119
20215
|
deletedAt: exports_external.coerce.date().nullable()
|
|
@@ -21116,32 +21212,6 @@ function parseCapture(input) {
|
|
|
21116
21212
|
const title = input.replace(TAG_RE, " ").replace(PRIORITY_RE, " ").replace(AREA_RE, " ").replace(/\s+/g, " ").trim();
|
|
21117
21213
|
return { title, tags, ...priority ? { priority } : {}, ...area ? { area } : {} };
|
|
21118
21214
|
}
|
|
21119
|
-
// ../../packages/schema/src/presets/facets.ts
|
|
21120
|
-
var MEDIA_SHELF_DISPLAY_KIND = "media-shelf";
|
|
21121
|
-
var bookStatusValues = ["to-read", "reading", "read"];
|
|
21122
|
-
var bookStatusSchema = exports_external.enum(bookStatusValues);
|
|
21123
|
-
var mediaShelfFacetSchema = exports_external.object({
|
|
21124
|
-
author: exports_external.string().min(1).max(200).nullish(),
|
|
21125
|
-
coverUrl: exports_external.string().url().max(2048).nullish(),
|
|
21126
|
-
status: bookStatusSchema.default("to-read"),
|
|
21127
|
-
rating: exports_external.number().int().min(1).max(5).nullish()
|
|
21128
|
-
}).strict();
|
|
21129
|
-
var WATCH_SHELF_DISPLAY_KIND = "watch-shelf";
|
|
21130
|
-
var watchKindValues = ["movie", "show"];
|
|
21131
|
-
var watchKindSchema = exports_external.enum(watchKindValues);
|
|
21132
|
-
var watchStatusValues = ["to-watch", "watching", "watched"];
|
|
21133
|
-
var watchStatusSchema = exports_external.enum(watchStatusValues);
|
|
21134
|
-
var watchFacetSchema = exports_external.object({
|
|
21135
|
-
kind: watchKindSchema.default("movie"),
|
|
21136
|
-
status: watchStatusSchema.default("to-watch"),
|
|
21137
|
-
rating: exports_external.number().int().min(1).max(5).nullish(),
|
|
21138
|
-
year: exports_external.number().int().min(1888).max(2200).nullish(),
|
|
21139
|
-
posterUrl: exports_external.string().url().max(2048).nullish()
|
|
21140
|
-
}).strict();
|
|
21141
|
-
var facetSchemasByDisplayKind = {
|
|
21142
|
-
[MEDIA_SHELF_DISPLAY_KIND]: mediaShelfFacetSchema,
|
|
21143
|
-
[WATCH_SHELF_DISPLAY_KIND]: watchFacetSchema
|
|
21144
|
-
};
|
|
21145
21215
|
// ../../packages/schema/src/presets/recipe.ts
|
|
21146
21216
|
var presetEntitySchema = exports_external.enum([
|
|
21147
21217
|
"habit",
|
|
@@ -23018,7 +23088,7 @@ function parseCapture2(input) {
|
|
|
23018
23088
|
|
|
23019
23089
|
// src/meta.ts
|
|
23020
23090
|
var CLI_NAME = "do";
|
|
23021
|
-
var VERSION = "1.
|
|
23091
|
+
var VERSION = "1.39.0";
|
|
23022
23092
|
var API_PREFIX = "/api/v1";
|
|
23023
23093
|
var DEFAULT_API_URL = "http://localhost:3001";
|
|
23024
23094
|
|