spine-framework 0.1.39 → 0.1.40
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.
|
@@ -567,8 +567,60 @@ async function resolveInternalPersonId(authUserId: string, email?: string): Prom
|
|
|
567
567
|
|
|
568
568
|
if (byAuthId) return byAuthId.id
|
|
569
569
|
|
|
570
|
-
// Not found -
|
|
571
|
-
|
|
570
|
+
// Not found — auto-create the person (handles cases where auth user pre-existed DB reset
|
|
571
|
+
// or trigger fired before seed data was in place)
|
|
572
|
+
const { data: account } = await adminDb
|
|
573
|
+
.from('accounts')
|
|
574
|
+
.select('id')
|
|
575
|
+
.eq('slug', 'spine-system')
|
|
576
|
+
.single()
|
|
577
|
+
|
|
578
|
+
const { data: type } = await adminDb
|
|
579
|
+
.from('types')
|
|
580
|
+
.select('id')
|
|
581
|
+
.eq('kind', 'person')
|
|
582
|
+
.eq('slug', 'person')
|
|
583
|
+
.single()
|
|
584
|
+
|
|
585
|
+
if (!account || !type) {
|
|
586
|
+
throw new Error('Cannot auto-create person: spine-system account or person type not found in DB')
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
// First person ever gets system_admin role
|
|
590
|
+
const { count } = await adminDb
|
|
591
|
+
.from('people')
|
|
592
|
+
.select('id', { count: 'exact', head: true })
|
|
593
|
+
|
|
594
|
+
let roleId: string | null = null
|
|
595
|
+
if ((count ?? 0) === 0) {
|
|
596
|
+
const { data: adminRole } = await adminDb
|
|
597
|
+
.from('roles')
|
|
598
|
+
.select('id')
|
|
599
|
+
.eq('slug', 'system_admin')
|
|
600
|
+
.single()
|
|
601
|
+
roleId = adminRole?.id ?? null
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
const { data: newPerson, error: createError } = await adminDb
|
|
605
|
+
.from('people')
|
|
606
|
+
.upsert({
|
|
607
|
+
id: authUserId,
|
|
608
|
+
auth_uid: authUserId,
|
|
609
|
+
email: email ?? '',
|
|
610
|
+
full_name: email ? email.split('@')[0] : 'Unknown',
|
|
611
|
+
account_id: account.id,
|
|
612
|
+
type_id: type.id,
|
|
613
|
+
role_id: roleId,
|
|
614
|
+
is_active: true
|
|
615
|
+
}, { onConflict: 'id' })
|
|
616
|
+
.select('id')
|
|
617
|
+
.single()
|
|
618
|
+
|
|
619
|
+
if (createError || !newPerson) {
|
|
620
|
+
throw new Error('Failed to auto-create person for auth user ' + authUserId + ': ' + createError?.message)
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
return newPerson.id
|
|
572
624
|
}
|
|
573
625
|
|
|
574
626
|
// ─── HELPER FUNCTIONS ────────────────────────────────────────────────────────
|
|
@@ -398,7 +398,7 @@ function SidebarGroupLabel({
|
|
|
398
398
|
asChild = false,
|
|
399
399
|
...props
|
|
400
400
|
}: React.ComponentProps<"div"> & { asChild?: boolean }) {
|
|
401
|
-
const Comp = asChild ? Slot
|
|
401
|
+
const Comp = asChild ? Slot : "div"
|
|
402
402
|
|
|
403
403
|
return (
|
|
404
404
|
<Comp
|
|
@@ -418,7 +418,7 @@ function SidebarGroupAction({
|
|
|
418
418
|
asChild = false,
|
|
419
419
|
...props
|
|
420
420
|
}: React.ComponentProps<"button"> & { asChild?: boolean }) {
|
|
421
|
-
const Comp = asChild ? Slot
|
|
421
|
+
const Comp = asChild ? Slot : "button"
|
|
422
422
|
|
|
423
423
|
return (
|
|
424
424
|
<Comp
|
|
@@ -504,7 +504,7 @@ function SidebarMenuButton({
|
|
|
504
504
|
isActive?: boolean
|
|
505
505
|
tooltip?: string | React.ComponentProps<typeof TooltipContent>
|
|
506
506
|
} & VariantProps<typeof sidebarMenuButtonVariants>) {
|
|
507
|
-
const Comp = asChild ? Slot
|
|
507
|
+
const Comp = asChild ? Slot : "button"
|
|
508
508
|
const { isMobile, state } = useSidebar()
|
|
509
509
|
|
|
510
510
|
const button = (
|
|
@@ -550,7 +550,7 @@ function SidebarMenuAction({
|
|
|
550
550
|
asChild?: boolean
|
|
551
551
|
showOnHover?: boolean
|
|
552
552
|
}) {
|
|
553
|
-
const Comp = asChild ? Slot
|
|
553
|
+
const Comp = asChild ? Slot : "button"
|
|
554
554
|
|
|
555
555
|
return (
|
|
556
556
|
<Comp
|
|
@@ -661,7 +661,7 @@ function SidebarMenuSubButton({
|
|
|
661
661
|
size?: "sm" | "md"
|
|
662
662
|
isActive?: boolean
|
|
663
663
|
}) {
|
|
664
|
-
const Comp = asChild ? Slot
|
|
664
|
+
const Comp = asChild ? Slot : "a"
|
|
665
665
|
|
|
666
666
|
return (
|
|
667
667
|
<Comp
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../../.framework/functions/_shared/principal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA8BH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAA;IAEV,6DAA6D;IAC7D,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzB,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAGxB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAEhB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;IAEtE,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;IAGpB,UAAU,EAAE;QACV,2CAA2C;QAC3C,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;QAEnF,oEAAoE;QACpE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QAExB,8CAA8C;QAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAE1B,8CAA8C;QAC9C,SAAS,EAAE,MAAM,CAAA;QAGjB,sCAAsC;QACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;QAEjB,oCAAoC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QAEf,sCAAsC;QACtC,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,kCAAkC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,6CAA6C;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,kCAAkC;QAClC,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,wBAAwB;QACxB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IAKD,WAAW,CAAC,EAAE;QACZ,2CAA2C;QAC3C,GAAG,CAAC,EAAE,MAAM,CAAA;QAEZ,6CAA6C;QAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAUjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAY9B,CAAA;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CA2BrE;
|
|
1
|
+
{"version":3,"file":"principal.d.ts","sourceRoot":"","sources":["../../../.framework/functions/_shared/principal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA8BH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,SAAS;IACxB,kFAAkF;IAClF,EAAE,EAAE,MAAM,CAAA;IAEV,6DAA6D;IAC7D,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;IAEzB,mEAAmE;IACnE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAGxB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAEhB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IAGd,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,aAAa,GAAG,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAA;IAEtE,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;IAGpB,UAAU,EAAE;QACV,2CAA2C;QAC3C,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;QAEnF,oEAAoE;QACpE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QAExB,8CAA8C;QAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAE1B,8CAA8C;QAC9C,SAAS,EAAE,MAAM,CAAA;QAGjB,sCAAsC;QACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;QAEjB,oCAAoC;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;QAEf,sCAAsC;QACtC,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,kCAAkC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,6CAA6C;QAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;QAEhB,kCAAkC;QAClC,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,wBAAwB;QACxB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IAKD,WAAW,CAAC,EAAE;QACZ,2CAA2C;QAC3C,GAAG,CAAC,EAAE,MAAM,CAAA;QAEZ,6CAA6C;QAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAID;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAUjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAY9B,CAAA;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CA2BrE;AAuXD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAgB5E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,mFAOlD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAgBpE"}
|