@robbeverhelst/do 1.39.0 → 1.41.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 +215 -2
  2. package/package.json +1 -1
package/dist/do.js CHANGED
@@ -19616,6 +19616,24 @@ var watchPosterResultSchema = exports_external.object({
19616
19616
  year: exports_external.number().int().nullable(),
19617
19617
  kind: exports_external.enum(["movie", "show"]).nullable()
19618
19618
  });
19619
+ // ../../packages/schema/src/contracts/games.ts
19620
+ var gameCoverQuerySchema = exports_external.object({
19621
+ title: exports_external.string().min(1).max(300)
19622
+ });
19623
+ var gameCoverResultSchema = exports_external.object({
19624
+ coverUrl: exports_external.string().url().nullable(),
19625
+ year: exports_external.number().int().nullable(),
19626
+ platform: exports_external.string().nullable()
19627
+ });
19628
+ // ../../packages/schema/src/contracts/music.ts
19629
+ var albumCoverQuerySchema = exports_external.object({
19630
+ title: exports_external.string().min(1).max(300)
19631
+ });
19632
+ var albumCoverResultSchema = exports_external.object({
19633
+ coverUrl: exports_external.string().url().nullable(),
19634
+ year: exports_external.number().int().nullable(),
19635
+ artist: exports_external.string().nullable()
19636
+ });
19619
19637
  // ../../packages/schema/src/contracts/tasks.ts
19620
19638
  var taskSchema = createSelectSchema(tasks, {
19621
19639
  scheduledAt: exports_external.coerce.date().nullable(),
@@ -20163,13 +20181,63 @@ var watchFacetSchema = exports_external.object({
20163
20181
  year: exports_external.number().int().min(1888).max(2200).nullish(),
20164
20182
  posterUrl: exports_external.string().url().max(2048).nullish()
20165
20183
  }).strict();
20184
+ var GAME_SHELF_DISPLAY_KIND = "game-shelf";
20185
+ var gameStatusValues = ["backlog", "playing", "beaten", "dropped"];
20186
+ var gameStatusSchema = exports_external.enum(gameStatusValues);
20187
+ var gameFacetSchema = exports_external.object({
20188
+ status: gameStatusSchema.default("backlog"),
20189
+ platform: exports_external.string().min(1).max(100).nullish(),
20190
+ rating: exports_external.number().int().min(1).max(5).nullish(),
20191
+ hoursPlayed: exports_external.number().min(0).max(1e5).nullish(),
20192
+ coverUrl: exports_external.string().url().max(2048).nullish()
20193
+ }).strict();
20194
+ var BOTTLE_SHELF_DISPLAY_KIND = "bottle-shelf";
20195
+ var bottleTypeValues = ["wine", "whisky", "other"];
20196
+ var bottleTypeSchema = exports_external.enum(bottleTypeValues);
20197
+ var bottleFacetSchema = exports_external.object({
20198
+ type: bottleTypeSchema.default("wine"),
20199
+ region: exports_external.string().min(1).max(200).nullish(),
20200
+ vintage: exports_external.number().int().min(1000).max(2200).nullish(),
20201
+ rating: exports_external.number().int().min(1).max(5).nullish(),
20202
+ drinkBy: isoDateString.nullish(),
20203
+ quantity: exports_external.number().int().min(0).max(1e5).nullish()
20204
+ }).strict();
20205
+ var PLACE_SHELF_DISPLAY_KIND = "place-shelf";
20206
+ var placeStatusValues = ["want", "visited"];
20207
+ var placeStatusSchema = exports_external.enum(placeStatusValues);
20208
+ var placeFacetSchema = exports_external.object({
20209
+ status: placeStatusSchema.default("want"),
20210
+ country: exports_external.string().min(1).max(120).nullish(),
20211
+ city: exports_external.string().min(1).max(120).nullish(),
20212
+ lat: exports_external.number().min(-90).max(90).nullish(),
20213
+ lng: exports_external.number().min(-180).max(180).nullish(),
20214
+ rating: exports_external.number().int().min(1).max(5).nullish(),
20215
+ tripLink: exports_external.string().min(1).max(2048).nullish()
20216
+ }).strict();
20217
+ var ALBUM_SHELF_DISPLAY_KIND = "album-shelf";
20218
+ var albumStatusValues = ["want", "owned", "listened"];
20219
+ var albumStatusSchema = exports_external.enum(albumStatusValues);
20220
+ var albumFormatValues = ["vinyl", "digital", "cd"];
20221
+ var albumFormatSchema = exports_external.enum(albumFormatValues);
20222
+ var albumFacetSchema = exports_external.object({
20223
+ status: albumStatusSchema.default("want"),
20224
+ artist: exports_external.string().min(1).max(200).nullish(),
20225
+ format: albumFormatSchema.nullish(),
20226
+ rating: exports_external.number().int().min(1).max(5).nullish(),
20227
+ year: exports_external.number().int().min(1860).max(2200).nullish(),
20228
+ coverUrl: exports_external.string().url().max(2048).nullish()
20229
+ }).strict();
20166
20230
  var facetSchemasByDisplayKind = {
20167
20231
  [MEDIA_SHELF_DISPLAY_KIND]: mediaShelfFacetSchema,
20168
20232
  [PANTRY_DISPLAY_KIND]: pantryFacetSchema,
20169
20233
  [WARDROBE_DISPLAY_KIND]: wardrobeFacetSchema,
20170
20234
  [TOOLS_DISPLAY_KIND]: toolsFacetSchema,
20171
20235
  [MEDS_DISPLAY_KIND]: medsFacetSchema,
20172
- [WATCH_SHELF_DISPLAY_KIND]: watchFacetSchema
20236
+ [WATCH_SHELF_DISPLAY_KIND]: watchFacetSchema,
20237
+ [GAME_SHELF_DISPLAY_KIND]: gameFacetSchema,
20238
+ [BOTTLE_SHELF_DISPLAY_KIND]: bottleFacetSchema,
20239
+ [PLACE_SHELF_DISPLAY_KIND]: placeFacetSchema,
20240
+ [ALBUM_SHELF_DISPLAY_KIND]: albumFacetSchema
20173
20241
  };
20174
20242
 
20175
20243
  // ../../packages/schema/src/contracts/inventory.ts
@@ -20241,6 +20309,7 @@ var createRecipeInputSchema = exports_external.object({
20241
20309
  cookMinutes: exports_external.number().int().min(0).nullish(),
20242
20310
  source: exports_external.string().nullish(),
20243
20311
  tags: exports_external.array(exports_external.string()).optional(),
20312
+ displayKind: exports_external.string().min(1).nullish(),
20244
20313
  ingredients: exports_external.array(recipeIngredientInputSchema).optional()
20245
20314
  });
20246
20315
  var updateRecipeInputSchema = exports_external.object({
@@ -20253,11 +20322,13 @@ var updateRecipeInputSchema = exports_external.object({
20253
20322
  cookMinutes: exports_external.number().int().min(0).nullish(),
20254
20323
  source: exports_external.string().nullish(),
20255
20324
  tags: exports_external.array(exports_external.string()).optional(),
20325
+ displayKind: exports_external.string().min(1).optional(),
20256
20326
  ingredients: exports_external.array(recipeIngredientInputSchema).optional()
20257
20327
  }).strict();
20258
20328
  var recipeViewSchema = recipeSchema.extend({
20259
20329
  title: exports_external.string(),
20260
20330
  parentId: ulidSchema.nullable(),
20331
+ displayKind: exports_external.string(),
20261
20332
  createdAt: exports_external.coerce.date(),
20262
20333
  updatedAt: exports_external.coerce.date(),
20263
20334
  deletedAt: exports_external.coerce.date().nullable(),
@@ -21219,6 +21290,10 @@ var presetEntitySchema = exports_external.enum([
21219
21290
  "inventory",
21220
21291
  "library",
21221
21292
  "watchlist",
21293
+ "games",
21294
+ "cellar",
21295
+ "places",
21296
+ "music",
21222
21297
  "routine",
21223
21298
  "area",
21224
21299
  "project",
@@ -21575,6 +21650,38 @@ var automationPresets = [
21575
21650
  }
21576
21651
  ];
21577
21652
 
21653
+ // ../../packages/schema/src/presets/features/cellar.ts
21654
+ var bottles = [
21655
+ { title: "Rioja Reserva", type: "wine", region: "Rioja", vintage: 2016 },
21656
+ { title: "Lagavulin 16", type: "whisky", region: "Islay", vintage: 2008 },
21657
+ { title: "Barolo", type: "wine", region: "Piedmont", vintage: 2018 }
21658
+ ];
21659
+ var cellarPreset = {
21660
+ key: "cellar",
21661
+ entity: "cellar",
21662
+ name: "Cellar",
21663
+ description: "Wine & whisky you keep \u2014 type, region, vintage and ratings.",
21664
+ icon: "\uD83C\uDF77",
21665
+ color: "#9f1239",
21666
+ category: "Collecting",
21667
+ displayKind: BOTTLE_SHELF_DISPLAY_KIND,
21668
+ recipe: {
21669
+ nodes: [
21670
+ {
21671
+ ref: "list",
21672
+ kind: "shopping_list",
21673
+ title: "Cellar",
21674
+ displayKind: BOTTLE_SHELF_DISPLAY_KIND,
21675
+ items: bottles.map((b) => ({
21676
+ title: b.title,
21677
+ facet: { type: b.type, region: b.region, vintage: b.vintage, quantity: 1 }
21678
+ }))
21679
+ }
21680
+ ]
21681
+ }
21682
+ };
21683
+ var cellarPresets = [cellarPreset];
21684
+
21578
21685
  // ../../packages/schema/src/presets/features/challenges.ts
21579
21686
  var challengePresetDefs = [
21580
21687
  {
@@ -21722,6 +21829,38 @@ var contactPresets = contactCircleDefs.map((def) => ({
21722
21829
  }
21723
21830
  }));
21724
21831
 
21832
+ // ../../packages/schema/src/presets/features/games.ts
21833
+ var games2 = [
21834
+ { title: "Hollow Knight: Silksong", platform: "PC" },
21835
+ { title: "Elden Ring", platform: "PS5" },
21836
+ { title: "Baldur's Gate 3", platform: "PC" }
21837
+ ];
21838
+ var gamesPreset = {
21839
+ key: "games",
21840
+ entity: "games",
21841
+ name: "Games to play",
21842
+ description: "A backlog of games \u2014 covers, status and ratings.",
21843
+ icon: "\uD83C\uDFAE",
21844
+ color: "#8b5cf6",
21845
+ category: "Playing",
21846
+ displayKind: GAME_SHELF_DISPLAY_KIND,
21847
+ recipe: {
21848
+ nodes: [
21849
+ {
21850
+ ref: "list",
21851
+ kind: "shopping_list",
21852
+ title: "Games to play",
21853
+ displayKind: GAME_SHELF_DISPLAY_KIND,
21854
+ items: games2.map((g) => ({
21855
+ title: g.title,
21856
+ facet: { platform: g.platform, status: "backlog" }
21857
+ }))
21858
+ }
21859
+ ]
21860
+ }
21861
+ };
21862
+ var gamesPresets = [gamesPreset];
21863
+
21725
21864
  // ../../packages/schema/src/presets/features/habits.ts
21726
21865
  var habitPresets = [
21727
21866
  {
@@ -22417,6 +22556,7 @@ var mealPresets = [
22417
22556
  icon: "\uD83C\uDF5D",
22418
22557
  color: "#fb7185",
22419
22558
  category: "Recipes",
22559
+ displayKind: "recipe-card",
22420
22560
  featured: true,
22421
22561
  recipe: {
22422
22562
  nodes: [
@@ -22452,6 +22592,7 @@ var mealPresets = [
22452
22592
  icon: "\uD83E\uDD61",
22453
22593
  color: "#34d399",
22454
22594
  category: "Recipes",
22595
+ displayKind: "recipe-card",
22455
22596
  recipe: {
22456
22597
  nodes: [
22457
22598
  recipeNode({
@@ -22492,6 +22633,7 @@ var mealPresets = [
22492
22633
  icon: "\uD83E\uDD64",
22493
22634
  color: "#f472b6",
22494
22635
  category: "Recipes",
22636
+ displayKind: "recipe-card",
22495
22637
  recipe: {
22496
22638
  nodes: [
22497
22639
  recipeNode({
@@ -22523,6 +22665,7 @@ var mealPresets = [
22523
22665
  icon: "\uD83D\uDCAA",
22524
22666
  color: "#fb7185",
22525
22667
  category: "Recipes",
22668
+ displayKind: "recipe-card",
22526
22669
  recipe: {
22527
22670
  nodes: [
22528
22671
  recipeNode({
@@ -22550,6 +22693,7 @@ var mealPresets = [
22550
22693
  icon: "\uD83E\uDD57",
22551
22694
  color: "#34d399",
22552
22695
  category: "Recipes",
22696
+ displayKind: "recipe-card",
22553
22697
  recipe: {
22554
22698
  nodes: [
22555
22699
  recipeNode({
@@ -22577,6 +22721,7 @@ var mealPresets = [
22577
22721
  icon: "\uD83D\uDCB0",
22578
22722
  color: "#f59e0b",
22579
22723
  category: "Recipes",
22724
+ displayKind: "recipe-card",
22580
22725
  recipe: {
22581
22726
  nodes: [
22582
22727
  recipeNode({
@@ -22598,6 +22743,70 @@ var mealPresets = [
22598
22743
  }
22599
22744
  ];
22600
22745
 
22746
+ // ../../packages/schema/src/presets/features/music.ts
22747
+ var albums = [
22748
+ { title: "In Rainbows", artist: "Radiohead", year: 2007 },
22749
+ { title: "Blonde", artist: "Frank Ocean", year: 2016 },
22750
+ { title: "Random Access Memories", artist: "Daft Punk", year: 2013 }
22751
+ ];
22752
+ var musicPreset = {
22753
+ key: "music",
22754
+ entity: "music",
22755
+ name: "Albums",
22756
+ description: "Albums to hear and own \u2014 artist, format, status and ratings.",
22757
+ icon: "\uD83D\uDCBF",
22758
+ color: "#db2777",
22759
+ category: "Listening",
22760
+ displayKind: ALBUM_SHELF_DISPLAY_KIND,
22761
+ recipe: {
22762
+ nodes: [
22763
+ {
22764
+ ref: "list",
22765
+ kind: "shopping_list",
22766
+ title: "Albums",
22767
+ displayKind: ALBUM_SHELF_DISPLAY_KIND,
22768
+ items: albums.map((a) => ({
22769
+ title: a.title,
22770
+ facet: { artist: a.artist, year: a.year, status: "want" }
22771
+ }))
22772
+ }
22773
+ ]
22774
+ }
22775
+ };
22776
+ var musicPresets = [musicPreset];
22777
+
22778
+ // ../../packages/schema/src/presets/features/places.ts
22779
+ var places = [
22780
+ { title: "Kyoto temples", country: "Japan", city: "Kyoto" },
22781
+ { title: "Northern Lights", country: "Iceland", city: "Reykjav\xEDk" },
22782
+ { title: "Patagonia trek", country: "Argentina", city: "El Chalt\xE9n" }
22783
+ ];
22784
+ var placesPreset = {
22785
+ key: "places",
22786
+ entity: "places",
22787
+ name: "Places to go",
22788
+ description: "A bucket-list of places \u2014 want/visited, location and ratings.",
22789
+ icon: "\uD83D\uDCCD",
22790
+ color: "#0d9488",
22791
+ category: "Exploring",
22792
+ displayKind: PLACE_SHELF_DISPLAY_KIND,
22793
+ recipe: {
22794
+ nodes: [
22795
+ {
22796
+ ref: "list",
22797
+ kind: "shopping_list",
22798
+ title: "Places to go",
22799
+ displayKind: PLACE_SHELF_DISPLAY_KIND,
22800
+ items: places.map((p) => ({
22801
+ title: p.title,
22802
+ facet: { country: p.country, city: p.city, status: "want" }
22803
+ }))
22804
+ }
22805
+ ]
22806
+ }
22807
+ };
22808
+ var placesPresets = [placesPreset];
22809
+
22601
22810
  // ../../packages/schema/src/presets/features/projects.ts
22602
22811
  var projectPresetDefs = [
22603
22812
  {
@@ -22823,6 +23032,10 @@ var featurePresets = [
22823
23032
  ...habitPresets,
22824
23033
  ...shoppingListPresets,
22825
23034
  ...watchlistPresets,
23035
+ ...gamesPresets,
23036
+ ...cellarPresets,
23037
+ ...placesPresets,
23038
+ ...musicPresets,
22826
23039
  ...inventoryPresets,
22827
23040
  ...routinePresets,
22828
23041
  ...areaPresets,
@@ -23088,7 +23301,7 @@ function parseCapture2(input) {
23088
23301
 
23089
23302
  // src/meta.ts
23090
23303
  var CLI_NAME = "do";
23091
- var VERSION = "1.39.0";
23304
+ var VERSION = "1.41.0";
23092
23305
  var API_PREFIX = "/api/v1";
23093
23306
  var DEFAULT_API_URL = "http://localhost:3001";
23094
23307
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robbeverhelst/do",
3
- "version": "1.39.0",
3
+ "version": "1.41.0",
4
4
  "private": false,
5
5
  "description": "do — the agent-drivable CLI over the public /api/v1 surface",
6
6
  "type": "module",