@robbeverhelst/do 1.37.0 → 1.38.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.
Files changed (2) hide show
  1. package/dist/do.js +80 -31
  2. package/package.json +1 -1
package/dist/do.js CHANGED
@@ -4533,7 +4533,8 @@ var inventoryItems = pgTable("inventory_items", {
4533
4533
  location: text("location"),
4534
4534
  lowStockThreshold: doublePrecision("low_stock_threshold"),
4535
4535
  expiresAt: timestamp("expires_at", { withTimezone: true }),
4536
- notes: text("notes")
4536
+ notes: text("notes"),
4537
+ facet: jsonb("facet").$type()
4537
4538
  }, (t) => [
4538
4539
  index("inventory_items_tenant_idx").on(t.tenantId)
4539
4540
  ]);
@@ -20084,9 +20085,78 @@ var shoppingListDetailSchema = shoppingListViewSchema.extend({
20084
20085
  items: exports_external.array(shoppingItemSchema)
20085
20086
  });
20086
20087
  var setShoppingItemCheckedInputSchema = exports_external.object({ isChecked: exports_external.boolean() }).strict();
20088
+ // ../../packages/schema/src/presets/facets.ts
20089
+ var MEDIA_SHELF_DISPLAY_KIND = "media-shelf";
20090
+ var bookStatusValues = ["to-read", "reading", "read"];
20091
+ var bookStatusSchema = exports_external.enum(bookStatusValues);
20092
+ var mediaShelfFacetSchema = exports_external.object({
20093
+ author: exports_external.string().min(1).max(200).nullish(),
20094
+ coverUrl: exports_external.string().url().max(2048).nullish(),
20095
+ status: bookStatusSchema.default("to-read"),
20096
+ rating: exports_external.number().int().min(1).max(5).nullish()
20097
+ }).strict();
20098
+ var PANTRY_DISPLAY_KIND = "pantry";
20099
+ var WARDROBE_DISPLAY_KIND = "wardrobe";
20100
+ var TOOLS_DISPLAY_KIND = "tools";
20101
+ var MEDS_DISPLAY_KIND = "meds";
20102
+ var INVENTORY_AREA_KINDS = [
20103
+ PANTRY_DISPLAY_KIND,
20104
+ WARDROBE_DISPLAY_KIND,
20105
+ TOOLS_DISPLAY_KIND,
20106
+ MEDS_DISPLAY_KIND
20107
+ ];
20108
+ var INVENTORY_DISPLAY_KINDS = ["default", ...INVENTORY_AREA_KINDS];
20109
+ var isoDateString = exports_external.string().regex(/^\d{4}-\d{2}-\d{2}$/, "must be an ISO date (YYYY-MM-DD)");
20110
+ var wardrobeSeasonValues = ["spring", "summer", "autumn", "winter", "all-season"];
20111
+ var wardrobeSeasonSchema = exports_external.enum(wardrobeSeasonValues);
20112
+ var toolConditionValues = ["new", "good", "worn", "broken"];
20113
+ var toolConditionSchema = exports_external.enum(toolConditionValues);
20114
+ var pantryFacetSchema = exports_external.object({
20115
+ brand: exports_external.string().min(1).max(200).nullish(),
20116
+ openedAt: isoDateString.nullish()
20117
+ }).strict();
20118
+ var wardrobeFacetSchema = exports_external.object({
20119
+ size: exports_external.string().min(1).max(50).nullish(),
20120
+ season: wardrobeSeasonSchema.nullish(),
20121
+ color: exports_external.string().min(1).max(50).nullish()
20122
+ }).strict();
20123
+ var toolsFacetSchema = exports_external.object({
20124
+ brand: exports_external.string().min(1).max(200).nullish(),
20125
+ condition: toolConditionSchema.nullish(),
20126
+ lastServicedAt: isoDateString.nullish()
20127
+ }).strict();
20128
+ var medsFacetSchema = exports_external.object({
20129
+ dose: exports_external.string().min(1).max(100).nullish(),
20130
+ refillBy: isoDateString.nullish(),
20131
+ prescription: exports_external.boolean().nullish()
20132
+ }).strict();
20133
+ var WATCH_SHELF_DISPLAY_KIND = "watch-shelf";
20134
+ var watchKindValues = ["movie", "show"];
20135
+ var watchKindSchema = exports_external.enum(watchKindValues);
20136
+ var watchStatusValues = ["to-watch", "watching", "watched"];
20137
+ var watchStatusSchema = exports_external.enum(watchStatusValues);
20138
+ var watchFacetSchema = exports_external.object({
20139
+ kind: watchKindSchema.default("movie"),
20140
+ status: watchStatusSchema.default("to-watch"),
20141
+ rating: exports_external.number().int().min(1).max(5).nullish(),
20142
+ year: exports_external.number().int().min(1888).max(2200).nullish(),
20143
+ posterUrl: exports_external.string().url().max(2048).nullish()
20144
+ }).strict();
20145
+ var facetSchemasByDisplayKind = {
20146
+ [MEDIA_SHELF_DISPLAY_KIND]: mediaShelfFacetSchema,
20147
+ [PANTRY_DISPLAY_KIND]: pantryFacetSchema,
20148
+ [WARDROBE_DISPLAY_KIND]: wardrobeFacetSchema,
20149
+ [TOOLS_DISPLAY_KIND]: toolsFacetSchema,
20150
+ [MEDS_DISPLAY_KIND]: medsFacetSchema,
20151
+ [WATCH_SHELF_DISPLAY_KIND]: watchFacetSchema
20152
+ };
20153
+
20087
20154
  // ../../packages/schema/src/contracts/inventory.ts
20155
+ var inventoryDisplayKindSchema = exports_external.enum(INVENTORY_DISPLAY_KINDS);
20156
+ var inventoryItemFacetSchema = exports_external.record(exports_external.string(), exports_external.unknown());
20088
20157
  var inventoryItemSchema = createSelectSchema(inventoryItems, {
20089
- expiresAt: exports_external.coerce.date().nullable()
20158
+ expiresAt: exports_external.coerce.date().nullable(),
20159
+ facet: inventoryItemFacetSchema.nullable()
20090
20160
  });
20091
20161
  var createInventoryItemInputSchema = exports_external.object({
20092
20162
  id: ulidSchema,
@@ -20098,7 +20168,9 @@ var createInventoryItemInputSchema = exports_external.object({
20098
20168
  location: exports_external.string().nullish(),
20099
20169
  lowStockThreshold: exports_external.number().min(0).nullish(),
20100
20170
  expiresAt: exports_external.coerce.date().nullish(),
20101
- notes: exports_external.string().nullish()
20171
+ notes: exports_external.string().nullish(),
20172
+ displayKind: inventoryDisplayKindSchema.optional(),
20173
+ facet: inventoryItemFacetSchema.nullish()
20102
20174
  });
20103
20175
  var updateInventoryItemInputSchema = exports_external.object({
20104
20176
  title: exports_external.string().min(1).optional(),
@@ -20109,11 +20181,14 @@ var updateInventoryItemInputSchema = exports_external.object({
20109
20181
  location: exports_external.string().nullish(),
20110
20182
  lowStockThreshold: exports_external.number().min(0).nullish(),
20111
20183
  expiresAt: exports_external.coerce.date().nullish(),
20112
- notes: exports_external.string().nullish()
20184
+ notes: exports_external.string().nullish(),
20185
+ displayKind: inventoryDisplayKindSchema.optional(),
20186
+ facet: inventoryItemFacetSchema.nullish()
20113
20187
  }).strict();
20114
20188
  var inventoryItemViewSchema = inventoryItemSchema.extend({
20115
20189
  title: exports_external.string(),
20116
20190
  parentId: ulidSchema.nullable(),
20191
+ displayKind: exports_external.string(),
20117
20192
  createdAt: exports_external.coerce.date(),
20118
20193
  updatedAt: exports_external.coerce.date(),
20119
20194
  deletedAt: exports_external.coerce.date().nullable()
@@ -21116,32 +21191,6 @@ function parseCapture(input) {
21116
21191
  const title = input.replace(TAG_RE, " ").replace(PRIORITY_RE, " ").replace(AREA_RE, " ").replace(/\s+/g, " ").trim();
21117
21192
  return { title, tags, ...priority ? { priority } : {}, ...area ? { area } : {} };
21118
21193
  }
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
21194
  // ../../packages/schema/src/presets/recipe.ts
21146
21195
  var presetEntitySchema = exports_external.enum([
21147
21196
  "habit",
@@ -23018,7 +23067,7 @@ function parseCapture2(input) {
23018
23067
 
23019
23068
  // src/meta.ts
23020
23069
  var CLI_NAME = "do";
23021
- var VERSION = "1.37.0";
23070
+ var VERSION = "1.38.0";
23022
23071
  var API_PREFIX = "/api/v1";
23023
23072
  var DEFAULT_API_URL = "http://localhost:3001";
23024
23073
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robbeverhelst/do",
3
- "version": "1.37.0",
3
+ "version": "1.38.0",
4
4
  "private": false,
5
5
  "description": "do — the agent-drivable CLI over the public /api/v1 surface",
6
6
  "type": "module",