@robbeverhelst/do 1.289.0 → 1.291.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 +194 -125
- package/package.json +1 -1
package/dist/do.js
CHANGED
|
@@ -3975,7 +3975,8 @@ var notificationType = pgEnum("notification_type", [
|
|
|
3975
3975
|
"card",
|
|
3976
3976
|
"bank_link",
|
|
3977
3977
|
"import_failed",
|
|
3978
|
-
"animal_ask"
|
|
3978
|
+
"animal_ask",
|
|
3979
|
+
"life_block"
|
|
3979
3980
|
]);
|
|
3980
3981
|
var notificationDomain = pgEnum("notification_domain", [
|
|
3981
3982
|
"task",
|
|
@@ -4043,6 +4044,7 @@ var notifications = pgTable("notifications", {
|
|
|
4043
4044
|
groupKey: text("group_key"),
|
|
4044
4045
|
actor: text("actor"),
|
|
4045
4046
|
digestId: text("digest_id"),
|
|
4047
|
+
display: jsonb("display").$type(),
|
|
4046
4048
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow()
|
|
4047
4049
|
}, (t) => [
|
|
4048
4050
|
unique("notifications_tenant_dedupe_uniq").on(t.tenantId, t.dedupeKey),
|
|
@@ -4923,6 +4925,7 @@ var contactMoments = pgTable("contact_moments", {
|
|
|
4923
4925
|
kind: contactMomentKind("kind").notNull().default("other"),
|
|
4924
4926
|
at: timestamp("at", { withTimezone: true }).notNull(),
|
|
4925
4927
|
summary: text("summary"),
|
|
4928
|
+
note: text("note"),
|
|
4926
4929
|
source: text("source").notNull().default("manual"),
|
|
4927
4930
|
sourceNodeId: text("source_node_id").references(() => nodes.id),
|
|
4928
4931
|
withContactIds: text("with_contact_ids").array().notNull().default([]),
|
|
@@ -4944,6 +4947,7 @@ var giftIdeas = pgTable("gift_ideas", {
|
|
|
4944
4947
|
title: text("title").notNull(),
|
|
4945
4948
|
url: text("url"),
|
|
4946
4949
|
priceCents: integer("price_cents"),
|
|
4950
|
+
note: text("note"),
|
|
4947
4951
|
heardAt: timestamp("heard_at", { withTimezone: true }).notNull().defaultNow(),
|
|
4948
4952
|
source: text("source").notNull().default("manual"),
|
|
4949
4953
|
occasionKeyDateId: text("occasion_key_date_id").references(() => keyDates.id, {
|
|
@@ -20157,6 +20161,7 @@ var collectionEntryKindValues = [
|
|
|
20157
20161
|
"service",
|
|
20158
20162
|
"repair",
|
|
20159
20163
|
"fault",
|
|
20164
|
+
"part",
|
|
20160
20165
|
"lent",
|
|
20161
20166
|
"returned",
|
|
20162
20167
|
"valued",
|
|
@@ -21317,6 +21322,10 @@ var houseValueRowSchema = object({
|
|
|
21317
21322
|
model: string2().nullable(),
|
|
21318
21323
|
placeId: string2().nullable(),
|
|
21319
21324
|
placeTitle: string2().nullable(),
|
|
21325
|
+
placeGroup: string2().nullable().default(null),
|
|
21326
|
+
withHouse: boolean3().default(false),
|
|
21327
|
+
paidApprox: boolean3().default(false),
|
|
21328
|
+
borrowedFrom: string2().nullable().default(null),
|
|
21320
21329
|
bought: day.nullable(),
|
|
21321
21330
|
paid: number2().nullable(),
|
|
21322
21331
|
now: number2().nullable(),
|
|
@@ -21329,9 +21338,15 @@ var houseValueSchema = object({
|
|
|
21329
21338
|
rows: array(houseValueRowSchema),
|
|
21330
21339
|
totals: object({
|
|
21331
21340
|
now: number2(),
|
|
21332
|
-
paid: number2()
|
|
21341
|
+
paid: number2(),
|
|
21342
|
+
newForOld: number2().default(0)
|
|
21333
21343
|
}),
|
|
21334
|
-
policy: object({
|
|
21344
|
+
policy: object({
|
|
21345
|
+
documentId: string2(),
|
|
21346
|
+
title: string2(),
|
|
21347
|
+
insuredValue: number2(),
|
|
21348
|
+
lastClaim: object({ kind: string2(), on: day }).nullable().default(null)
|
|
21349
|
+
}).nullable()
|
|
21335
21350
|
});
|
|
21336
21351
|
var upkeepMonthMarkSchema = _enum2(["done", "due", "planned", "late"]).nullable();
|
|
21337
21352
|
var houseUpkeepRoutineSchema = object({
|
|
@@ -21340,15 +21355,21 @@ var houseUpkeepRoutineSchema = object({
|
|
|
21340
21355
|
itemId: string2(),
|
|
21341
21356
|
itemTitle: string2(),
|
|
21342
21357
|
category: string2().nullable(),
|
|
21343
|
-
months: array(upkeepMonthMarkSchema).length(12)
|
|
21358
|
+
months: array(upkeepMonthMarkSchema).length(12),
|
|
21359
|
+
bookedOn: day.nullable().default(null),
|
|
21360
|
+
itemState: string2().nullable().default(null),
|
|
21361
|
+
certified: boolean3().default(false)
|
|
21344
21362
|
});
|
|
21345
21363
|
var houseUpkeepNeedSchema = object({
|
|
21346
21364
|
id: string2(),
|
|
21365
|
+
kind: _enum2(["supply", "loan"]).default("supply"),
|
|
21347
21366
|
title: string2(),
|
|
21348
21367
|
quantity: number2(),
|
|
21349
21368
|
unit: string2().nullable(),
|
|
21350
21369
|
low: boolean3(),
|
|
21351
|
-
itemTitle: string2()
|
|
21370
|
+
itemTitle: string2(),
|
|
21371
|
+
who: string2().nullable().default(null),
|
|
21372
|
+
dueBack: day.nullable().default(null)
|
|
21352
21373
|
});
|
|
21353
21374
|
var houseUpkeepYearSchema = object({
|
|
21354
21375
|
year: number2().int(),
|
|
@@ -21359,7 +21380,8 @@ var houseUpkeepYearSchema = object({
|
|
|
21359
21380
|
spent: object({
|
|
21360
21381
|
total: number2(),
|
|
21361
21382
|
repairs: number2(),
|
|
21362
|
-
services: number2()
|
|
21383
|
+
services: number2(),
|
|
21384
|
+
parts: number2().default(0)
|
|
21363
21385
|
})
|
|
21364
21386
|
});
|
|
21365
21387
|
var houseUpkeepYearQuerySchema = object({ year: exports_coerce.number().int().min(2000).max(2100).optional() }).strict();
|
|
@@ -21600,7 +21622,7 @@ var postRunSchema = object({
|
|
|
21600
21622
|
status: runStatusSchema,
|
|
21601
21623
|
steps: array(runStepSchema).max(12).optional()
|
|
21602
21624
|
});
|
|
21603
|
-
var POST_RECEIPT_ABOUT_VALUES = ["red_flags", "saved"];
|
|
21625
|
+
var POST_RECEIPT_ABOUT_VALUES = ["red_flags", "saved", "vet_visit"];
|
|
21604
21626
|
var POST_RECEIPT_SOURCE_MAX = 80;
|
|
21605
21627
|
var postReceiptInputSchema = object({
|
|
21606
21628
|
nodeId: ulidSchema,
|
|
@@ -23229,6 +23251,120 @@ var updateUserSettingsInputSchema = createUpdateSchema(userSettings, {
|
|
|
23229
23251
|
focusUntil: true
|
|
23230
23252
|
}).strict();
|
|
23231
23253
|
|
|
23254
|
+
// ../../packages/schema/src/contracts/day-record.ts
|
|
23255
|
+
var dayDateSchema = string2().regex(/^\d{4}-\d{2}-\d{2}$/, "a day must be YYYY-MM-DD").refine((d) => {
|
|
23256
|
+
const [y, m, day] = d.split("-").map(Number);
|
|
23257
|
+
const at = new Date(Date.UTC(y, m - 1, day));
|
|
23258
|
+
return at.getUTCFullYear() === y && at.getUTCMonth() === m - 1 && at.getUTCDate() === day;
|
|
23259
|
+
}, "not a calendar day");
|
|
23260
|
+
var RECORD_ROUND_MINUTES = 15;
|
|
23261
|
+
var timeBlockStatusSchema = _enum2(TIME_BLOCK_STATUSES);
|
|
23262
|
+
var recordStateSchema = _enum2(RECORD_STATES);
|
|
23263
|
+
var recordConfidenceSchema = _enum2(RECORD_CONFIDENCES);
|
|
23264
|
+
var evidenceSourceSchema = _enum2(EVIDENCE_SOURCES);
|
|
23265
|
+
var blockEvidenceInputSchema = object({
|
|
23266
|
+
source: evidenceSourceSchema,
|
|
23267
|
+
refKind: string2().trim().min(1).max(40).optional(),
|
|
23268
|
+
refId: string2().trim().min(1).max(100).optional(),
|
|
23269
|
+
at: exports_coerce.date().optional(),
|
|
23270
|
+
note: string2().trim().min(1).max(500).optional()
|
|
23271
|
+
}).strict().refine((v) => Boolean(v.refKind) === Boolean(v.refId), {
|
|
23272
|
+
message: "refKind and refId come together",
|
|
23273
|
+
path: ["refId"]
|
|
23274
|
+
});
|
|
23275
|
+
var dayRecordChangeSchema = object({
|
|
23276
|
+
blockId: ulidSchema.optional(),
|
|
23277
|
+
id: ulidSchema.optional(),
|
|
23278
|
+
lifeKind: lifeBlockKindSchema.optional(),
|
|
23279
|
+
title: string2().trim().min(1).max(500).optional(),
|
|
23280
|
+
startAt: exports_coerce.date().optional(),
|
|
23281
|
+
endAt: exports_coerce.date().optional(),
|
|
23282
|
+
skipped: literal(true).optional(),
|
|
23283
|
+
replacedBy: ulidSchema.optional(),
|
|
23284
|
+
evidence: array(blockEvidenceInputSchema).max(20).default([])
|
|
23285
|
+
}).strict().refine((v) => Boolean(v.blockId) !== Boolean(v.id), {
|
|
23286
|
+
message: "name an existing block (blockId) or mint a new one (id), not both",
|
|
23287
|
+
path: ["blockId"]
|
|
23288
|
+
}).refine((v) => !v.id || v.lifeKind && v.startAt && v.endAt, {
|
|
23289
|
+
message: "a new block needs lifeKind, startAt and endAt",
|
|
23290
|
+
path: ["id"]
|
|
23291
|
+
}).refine((v) => !v.blockId || !v.lifeKind, {
|
|
23292
|
+
message: "a block's kind doesn't change in its record",
|
|
23293
|
+
path: ["lifeKind"]
|
|
23294
|
+
}).refine((v) => !(v.skipped && v.replacedBy), {
|
|
23295
|
+
message: "a block is skipped or replaced, not both",
|
|
23296
|
+
path: ["replacedBy"]
|
|
23297
|
+
}).refine((v) => !v.startAt || !v.endAt || v.endAt > v.startAt, {
|
|
23298
|
+
message: "endAt must be after startAt",
|
|
23299
|
+
path: ["endAt"]
|
|
23300
|
+
});
|
|
23301
|
+
var dayRecordWriteInputSchema = object({
|
|
23302
|
+
changes: array(dayRecordChangeSchema).min(1).max(50)
|
|
23303
|
+
}).strict();
|
|
23304
|
+
var dayRecordAskInputSchema = object({
|
|
23305
|
+
question: string2().trim().min(1).max(300),
|
|
23306
|
+
blockId: ulidSchema.optional(),
|
|
23307
|
+
id: ulidSchema.optional(),
|
|
23308
|
+
startAt: exports_coerce.date().optional(),
|
|
23309
|
+
endAt: exports_coerce.date().optional()
|
|
23310
|
+
}).strict().refine((v) => Boolean(v.blockId) !== Boolean(v.id && v.startAt && v.endAt), {
|
|
23311
|
+
message: "ask about a block (blockId) or a gap (id, startAt, endAt)",
|
|
23312
|
+
path: ["blockId"]
|
|
23313
|
+
}).refine((v) => !v.startAt || !v.endAt || v.endAt > v.startAt, {
|
|
23314
|
+
message: "endAt must be after startAt",
|
|
23315
|
+
path: ["endAt"]
|
|
23316
|
+
});
|
|
23317
|
+
var dayRecordUndoInputSchema = object({ receipt: string2().regex(/^\d+$/, "a receipt is a write's id") }).strict();
|
|
23318
|
+
var blockEvidenceSchema = object({
|
|
23319
|
+
id: string2(),
|
|
23320
|
+
source: evidenceSourceSchema,
|
|
23321
|
+
refKind: string2().nullable(),
|
|
23322
|
+
refId: string2().nullable(),
|
|
23323
|
+
at: exports_coerce.date().nullable(),
|
|
23324
|
+
weight: number2().int(),
|
|
23325
|
+
note: string2().nullable()
|
|
23326
|
+
});
|
|
23327
|
+
var dayRecordBlockSchema = timeBlockViewSchema.extend({
|
|
23328
|
+
status: timeBlockStatusSchema,
|
|
23329
|
+
recordState: recordStateSchema,
|
|
23330
|
+
confidence: recordConfidenceSchema.nullable(),
|
|
23331
|
+
replacedById: string2().nullable(),
|
|
23332
|
+
question: string2().nullable(),
|
|
23333
|
+
askedAt: exports_coerce.date().nullable(),
|
|
23334
|
+
evidence: array(blockEvidenceSchema)
|
|
23335
|
+
});
|
|
23336
|
+
var dayRecordSchema = object({
|
|
23337
|
+
date: dayDateSchema,
|
|
23338
|
+
timezone: string2(),
|
|
23339
|
+
from: exports_coerce.date(),
|
|
23340
|
+
to: exports_coerce.date(),
|
|
23341
|
+
blocks: array(dayRecordBlockSchema),
|
|
23342
|
+
questions: array(object({ blockId: string2(), question: string2(), askedAt: exports_coerce.date() })),
|
|
23343
|
+
filledIn: array(string2()),
|
|
23344
|
+
gaps: array(object({ startAt: exports_coerce.date(), endAt: exports_coerce.date() })),
|
|
23345
|
+
closed: boolean3(),
|
|
23346
|
+
autoClosesAt: exports_coerce.date()
|
|
23347
|
+
});
|
|
23348
|
+
var dayRecordReceiptLineSchema = object({
|
|
23349
|
+
blockId: string2(),
|
|
23350
|
+
title: string2(),
|
|
23351
|
+
lifeKind: lifeBlockKindSchema.nullable(),
|
|
23352
|
+
status: timeBlockStatusSchema,
|
|
23353
|
+
text: string2()
|
|
23354
|
+
});
|
|
23355
|
+
var dayRecordReceiptSchema = object({
|
|
23356
|
+
receipt: string2(),
|
|
23357
|
+
date: dayDateSchema,
|
|
23358
|
+
lines: array(dayRecordReceiptLineSchema),
|
|
23359
|
+
googleUpdated: boolean3(),
|
|
23360
|
+
day: dayRecordSchema
|
|
23361
|
+
});
|
|
23362
|
+
var dayRecordUndoResultSchema = object({
|
|
23363
|
+
undone: array(string2()),
|
|
23364
|
+
day: dayRecordSchema
|
|
23365
|
+
});
|
|
23366
|
+
var STATUS_QUARTER_MS = RECORD_ROUND_MINUTES * 60000;
|
|
23367
|
+
|
|
23232
23368
|
// ../../packages/schema/src/contracts/insights.ts
|
|
23233
23369
|
var insightsActivityPointSchema = object({
|
|
23234
23370
|
day: string2(),
|
|
@@ -23954,11 +24090,19 @@ var contactMomentSchema = createSelectSchema(contactMoments, {
|
|
|
23954
24090
|
at: exports_coerce.date(),
|
|
23955
24091
|
expiresAt: exports_coerce.date().nullable(),
|
|
23956
24092
|
thankedAt: exports_coerce.date().nullable().default(null),
|
|
24093
|
+
note: string2().nullable().default(null),
|
|
23957
24094
|
createdAt: exports_coerce.date(),
|
|
23958
24095
|
updatedAt: exports_coerce.date()
|
|
23959
24096
|
});
|
|
24097
|
+
var momentSourceNodeSchema = object({
|
|
24098
|
+
id: ulidSchema,
|
|
24099
|
+
type: string2(),
|
|
24100
|
+
title: string2()
|
|
24101
|
+
});
|
|
23960
24102
|
var contactMomentViewSchema = contactMomentSchema.extend({
|
|
23961
|
-
contactTitle: string2()
|
|
24103
|
+
contactTitle: string2(),
|
|
24104
|
+
sourceNode: momentSourceNodeSchema.nullable().default(null),
|
|
24105
|
+
photoCount: number2().int().min(0).default(0)
|
|
23962
24106
|
});
|
|
23963
24107
|
var createContactMomentInputSchema = object({
|
|
23964
24108
|
id: ulidSchema,
|
|
@@ -23966,6 +24110,7 @@ var createContactMomentInputSchema = object({
|
|
|
23966
24110
|
kind: contactMomentKindSchema.optional(),
|
|
23967
24111
|
at: exports_coerce.date().optional(),
|
|
23968
24112
|
summary: string2().trim().min(1).max(500).nullish(),
|
|
24113
|
+
note: string2().trim().min(1).max(200).nullish(),
|
|
23969
24114
|
source: sourceSchema2.optional(),
|
|
23970
24115
|
sourceNodeId: ulidSchema.nullish(),
|
|
23971
24116
|
withContactIds: array(ulidSchema).max(50).optional(),
|
|
@@ -23982,6 +24127,7 @@ var contactMomentsQuerySchema = object({
|
|
|
23982
24127
|
});
|
|
23983
24128
|
var giftIdeaSchema = createSelectSchema(giftIdeas, {
|
|
23984
24129
|
heardAt: exports_coerce.date(),
|
|
24130
|
+
note: string2().nullable().default(null),
|
|
23985
24131
|
createdAt: exports_coerce.date(),
|
|
23986
24132
|
updatedAt: exports_coerce.date()
|
|
23987
24133
|
});
|
|
@@ -23995,6 +24141,7 @@ var createGiftIdeaInputSchema = object({
|
|
|
23995
24141
|
title: string2().trim().min(1).max(200),
|
|
23996
24142
|
url: string2().url().max(2000).nullish(),
|
|
23997
24143
|
priceCents: number2().int().min(0).max(1e8).nullish(),
|
|
24144
|
+
note: string2().trim().min(1).max(200).nullish(),
|
|
23998
24145
|
heardAt: exports_coerce.date().optional(),
|
|
23999
24146
|
source: sourceSchema2.optional(),
|
|
24000
24147
|
occasionKeyDateId: ulidSchema.nullish(),
|
|
@@ -24150,7 +24297,13 @@ var personBriefSchema = object({
|
|
|
24150
24297
|
circleIds: array(ulidSchema)
|
|
24151
24298
|
}),
|
|
24152
24299
|
lifeUpdates: array(contactMomentSchema),
|
|
24153
|
-
followUps: array(object({
|
|
24300
|
+
followUps: array(object({
|
|
24301
|
+
id: ulidSchema,
|
|
24302
|
+
label: string2().nullable(),
|
|
24303
|
+
date: keyDateDaySchema,
|
|
24304
|
+
taskId: ulidSchema.nullable().default(null),
|
|
24305
|
+
about: string2().nullable().default(null)
|
|
24306
|
+
})),
|
|
24154
24307
|
giftIdeas: array(giftIdeaSchema),
|
|
24155
24308
|
upcoming: array(object({
|
|
24156
24309
|
id: ulidSchema,
|
|
@@ -24166,6 +24319,22 @@ var personBriefSchema = object({
|
|
|
24166
24319
|
since: keyDateDaySchema,
|
|
24167
24320
|
dueBack: keyDateDaySchema.nullable(),
|
|
24168
24321
|
note: string2().nullable()
|
|
24322
|
+
})).default([]),
|
|
24323
|
+
knownSince: number2().int().nullable().default(null),
|
|
24324
|
+
lastSeen: object({ at: exports_coerce.date(), summary: string2().nullable(), source: string2() }).nullable().default(null),
|
|
24325
|
+
kids: array(object({
|
|
24326
|
+
contactId: ulidSchema,
|
|
24327
|
+
title: string2(),
|
|
24328
|
+
birthday: keyDateDaySchema.nullable(),
|
|
24329
|
+
yearKnown: boolean3()
|
|
24330
|
+
})).default([]),
|
|
24331
|
+
dates: array(object({
|
|
24332
|
+
id: ulidSchema,
|
|
24333
|
+
kind: string2(),
|
|
24334
|
+
label: string2().nullable(),
|
|
24335
|
+
nextOn: keyDateDaySchema,
|
|
24336
|
+
taskOn: keyDateDaySchema,
|
|
24337
|
+
taskId: ulidSchema.nullable()
|
|
24169
24338
|
})).default([])
|
|
24170
24339
|
});
|
|
24171
24340
|
var peopleOverviewQuerySchema = object({
|
|
@@ -24197,9 +24366,18 @@ var peopleOverviewSchema = object({
|
|
|
24197
24366
|
lastSeenAt: exports_coerce.date().nullable(),
|
|
24198
24367
|
lastTalkedAt: exports_coerce.date().nullable(),
|
|
24199
24368
|
rhythmDays: number2().int(),
|
|
24200
|
-
ring: number2()
|
|
24369
|
+
ring: number2(),
|
|
24370
|
+
phone: string2().nullable().default(null)
|
|
24201
24371
|
})),
|
|
24202
|
-
heardLately: array(contactMomentViewSchema)
|
|
24372
|
+
heardLately: array(contactMomentViewSchema),
|
|
24373
|
+
lent: array(object({
|
|
24374
|
+
itemId: ulidSchema,
|
|
24375
|
+
title: string2(),
|
|
24376
|
+
contactId: ulidSchema,
|
|
24377
|
+
contactTitle: string2(),
|
|
24378
|
+
since: keyDateDaySchema,
|
|
24379
|
+
needFor: object({ taskId: ulidSchema, title: string2(), on: keyDateDaySchema }).nullable()
|
|
24380
|
+
})).default([])
|
|
24203
24381
|
});
|
|
24204
24382
|
var personPrivateNoteSchema = object({
|
|
24205
24383
|
body: string2().nullable(),
|
|
@@ -27065,118 +27243,6 @@ var updateCalendarConnectionCalendarInputSchema = object({
|
|
|
27065
27243
|
countsAsBusy: boolean3().optional()
|
|
27066
27244
|
});
|
|
27067
27245
|
|
|
27068
|
-
// ../../packages/schema/src/contracts/day-record.ts
|
|
27069
|
-
var dayDateSchema = string2().regex(/^\d{4}-\d{2}-\d{2}$/, "a day must be YYYY-MM-DD").refine((d) => {
|
|
27070
|
-
const [y, m, day] = d.split("-").map(Number);
|
|
27071
|
-
const at = new Date(Date.UTC(y, m - 1, day));
|
|
27072
|
-
return at.getUTCFullYear() === y && at.getUTCMonth() === m - 1 && at.getUTCDate() === day;
|
|
27073
|
-
}, "not a calendar day");
|
|
27074
|
-
var timeBlockStatusSchema = _enum2(TIME_BLOCK_STATUSES);
|
|
27075
|
-
var recordStateSchema = _enum2(RECORD_STATES);
|
|
27076
|
-
var recordConfidenceSchema = _enum2(RECORD_CONFIDENCES);
|
|
27077
|
-
var evidenceSourceSchema = _enum2(EVIDENCE_SOURCES);
|
|
27078
|
-
var blockEvidenceInputSchema = object({
|
|
27079
|
-
source: evidenceSourceSchema,
|
|
27080
|
-
refKind: string2().trim().min(1).max(40).optional(),
|
|
27081
|
-
refId: string2().trim().min(1).max(100).optional(),
|
|
27082
|
-
at: exports_coerce.date().optional(),
|
|
27083
|
-
note: string2().trim().min(1).max(500).optional()
|
|
27084
|
-
}).strict().refine((v) => Boolean(v.refKind) === Boolean(v.refId), {
|
|
27085
|
-
message: "refKind and refId come together",
|
|
27086
|
-
path: ["refId"]
|
|
27087
|
-
});
|
|
27088
|
-
var dayRecordChangeSchema = object({
|
|
27089
|
-
blockId: ulidSchema.optional(),
|
|
27090
|
-
id: ulidSchema.optional(),
|
|
27091
|
-
lifeKind: lifeBlockKindSchema.optional(),
|
|
27092
|
-
title: string2().trim().min(1).max(500).optional(),
|
|
27093
|
-
startAt: exports_coerce.date().optional(),
|
|
27094
|
-
endAt: exports_coerce.date().optional(),
|
|
27095
|
-
skipped: literal(true).optional(),
|
|
27096
|
-
replacedBy: ulidSchema.optional(),
|
|
27097
|
-
evidence: array(blockEvidenceInputSchema).max(20).default([])
|
|
27098
|
-
}).strict().refine((v) => Boolean(v.blockId) !== Boolean(v.id), {
|
|
27099
|
-
message: "name an existing block (blockId) or mint a new one (id), not both",
|
|
27100
|
-
path: ["blockId"]
|
|
27101
|
-
}).refine((v) => !v.id || v.lifeKind && v.startAt && v.endAt, {
|
|
27102
|
-
message: "a new block needs lifeKind, startAt and endAt",
|
|
27103
|
-
path: ["id"]
|
|
27104
|
-
}).refine((v) => !v.blockId || !v.lifeKind, {
|
|
27105
|
-
message: "a block's kind doesn't change in its record",
|
|
27106
|
-
path: ["lifeKind"]
|
|
27107
|
-
}).refine((v) => !(v.skipped && v.replacedBy), {
|
|
27108
|
-
message: "a block is skipped or replaced, not both",
|
|
27109
|
-
path: ["replacedBy"]
|
|
27110
|
-
}).refine((v) => !v.startAt || !v.endAt || v.endAt > v.startAt, {
|
|
27111
|
-
message: "endAt must be after startAt",
|
|
27112
|
-
path: ["endAt"]
|
|
27113
|
-
});
|
|
27114
|
-
var dayRecordWriteInputSchema = object({
|
|
27115
|
-
changes: array(dayRecordChangeSchema).min(1).max(50)
|
|
27116
|
-
}).strict();
|
|
27117
|
-
var dayRecordAskInputSchema = object({
|
|
27118
|
-
question: string2().trim().min(1).max(300),
|
|
27119
|
-
blockId: ulidSchema.optional(),
|
|
27120
|
-
id: ulidSchema.optional(),
|
|
27121
|
-
startAt: exports_coerce.date().optional(),
|
|
27122
|
-
endAt: exports_coerce.date().optional()
|
|
27123
|
-
}).strict().refine((v) => Boolean(v.blockId) !== Boolean(v.id && v.startAt && v.endAt), {
|
|
27124
|
-
message: "ask about a block (blockId) or a gap (id, startAt, endAt)",
|
|
27125
|
-
path: ["blockId"]
|
|
27126
|
-
}).refine((v) => !v.startAt || !v.endAt || v.endAt > v.startAt, {
|
|
27127
|
-
message: "endAt must be after startAt",
|
|
27128
|
-
path: ["endAt"]
|
|
27129
|
-
});
|
|
27130
|
-
var dayRecordUndoInputSchema = object({ receipt: string2().regex(/^\d+$/, "a receipt is a write's id") }).strict();
|
|
27131
|
-
var blockEvidenceSchema = object({
|
|
27132
|
-
id: string2(),
|
|
27133
|
-
source: evidenceSourceSchema,
|
|
27134
|
-
refKind: string2().nullable(),
|
|
27135
|
-
refId: string2().nullable(),
|
|
27136
|
-
at: exports_coerce.date().nullable(),
|
|
27137
|
-
weight: number2().int(),
|
|
27138
|
-
note: string2().nullable()
|
|
27139
|
-
});
|
|
27140
|
-
var dayRecordBlockSchema = timeBlockViewSchema.extend({
|
|
27141
|
-
status: timeBlockStatusSchema,
|
|
27142
|
-
recordState: recordStateSchema,
|
|
27143
|
-
confidence: recordConfidenceSchema.nullable(),
|
|
27144
|
-
replacedById: string2().nullable(),
|
|
27145
|
-
question: string2().nullable(),
|
|
27146
|
-
askedAt: exports_coerce.date().nullable(),
|
|
27147
|
-
evidence: array(blockEvidenceSchema)
|
|
27148
|
-
});
|
|
27149
|
-
var dayRecordSchema = object({
|
|
27150
|
-
date: dayDateSchema,
|
|
27151
|
-
timezone: string2(),
|
|
27152
|
-
from: exports_coerce.date(),
|
|
27153
|
-
to: exports_coerce.date(),
|
|
27154
|
-
blocks: array(dayRecordBlockSchema),
|
|
27155
|
-
questions: array(object({ blockId: string2(), question: string2(), askedAt: exports_coerce.date() })),
|
|
27156
|
-
filledIn: array(string2()),
|
|
27157
|
-
gaps: array(object({ startAt: exports_coerce.date(), endAt: exports_coerce.date() })),
|
|
27158
|
-
closed: boolean3(),
|
|
27159
|
-
autoClosesAt: exports_coerce.date()
|
|
27160
|
-
});
|
|
27161
|
-
var dayRecordReceiptLineSchema = object({
|
|
27162
|
-
blockId: string2(),
|
|
27163
|
-
title: string2(),
|
|
27164
|
-
lifeKind: lifeBlockKindSchema.nullable(),
|
|
27165
|
-
status: timeBlockStatusSchema,
|
|
27166
|
-
text: string2()
|
|
27167
|
-
});
|
|
27168
|
-
var dayRecordReceiptSchema = object({
|
|
27169
|
-
receipt: string2(),
|
|
27170
|
-
date: dayDateSchema,
|
|
27171
|
-
lines: array(dayRecordReceiptLineSchema),
|
|
27172
|
-
googleUpdated: boolean3(),
|
|
27173
|
-
day: dayRecordSchema
|
|
27174
|
-
});
|
|
27175
|
-
var dayRecordUndoResultSchema = object({
|
|
27176
|
-
undone: array(string2()),
|
|
27177
|
-
day: dayRecordSchema
|
|
27178
|
-
});
|
|
27179
|
-
|
|
27180
27246
|
// ../../packages/schema/src/contracts/plans.ts
|
|
27181
27247
|
var PLAN_KINDS = ["week", "day"];
|
|
27182
27248
|
var PLAN_ITEM_ACTIONS = ["plan", "someday", "let_go"];
|
|
@@ -28294,6 +28360,9 @@ var assetFacetSchema = object({
|
|
|
28294
28360
|
lastServicedAt: isoDateString2.nullish(),
|
|
28295
28361
|
purchasedAt: isoDateString2.nullish(),
|
|
28296
28362
|
purchasePrice: number2().min(0).max(1e7).nullish(),
|
|
28363
|
+
priceApprox: boolean3().nullish(),
|
|
28364
|
+
cameWithHouse: boolean3().nullish(),
|
|
28365
|
+
newPrice: number2().min(0).max(1e7).nullish(),
|
|
28297
28366
|
merchant: string2().min(1).max(200).nullish(),
|
|
28298
28367
|
merchantContactId: string2().min(1).max(64).nullish(),
|
|
28299
28368
|
installedAt: isoDateString2.nullish(),
|
|
@@ -28694,7 +28763,7 @@ function parseCapture2(input, now) {
|
|
|
28694
28763
|
|
|
28695
28764
|
// src/meta.ts
|
|
28696
28765
|
var CLI_NAME = "do";
|
|
28697
|
-
var VERSION = "1.
|
|
28766
|
+
var VERSION = "1.291.0";
|
|
28698
28767
|
var API_PREFIX = "/api/v1";
|
|
28699
28768
|
var DEFAULT_API_URL = "http://localhost:3001";
|
|
28700
28769
|
|
|
@@ -33744,7 +33813,7 @@ var COMMAND_SPECS = [
|
|
|
33744
33813
|
],
|
|
33745
33814
|
scopes: ["animals:write"],
|
|
33746
33815
|
returns: "AnimalVetVisit",
|
|
33747
|
-
notes: 'POST /api/v1/animals/{id}/vet-visits (`animal_vet_visit`, mockup 03). The visit is the receipt: post it with `receipt: { nodeId: <visit id> }`. `do animals vet-visit <dog> --data \'{"reason":"booster","vaccine":{"name":"DHPPi + L4","source":"sticker"},"weight":{"value":37.8}}\'`.'
|
|
33816
|
+
notes: 'POST /api/v1/animals/{id}/vet-visits (`animal_vet_visit`, mockup 03). The visit is the receipt: post it with `receipt: { nodeId: <animal id>, about: "vet_visit", parts: [<visit id>] }`. `do animals vet-visit <dog> --data \'{"reason":"booster","vaccine":{"name":"DHPPi + L4","source":"sticker"},"weight":{"value":37.8}}\'`.'
|
|
33748
33817
|
},
|
|
33749
33818
|
{
|
|
33750
33819
|
path: ["animals", "vet-visit-get"],
|
package/package.json
CHANGED