@fayz-ai/saas 0.7.0 → 0.8.1

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 (51) hide show
  1. package/README.md +2 -0
  2. package/dist/app/admin-app.d.ts.map +1 -1
  3. package/dist/archetype-lookup.d.ts +1 -1
  4. package/dist/archetype-lookup.d.ts.map +1 -1
  5. package/dist/{chunk-DCRT47W4.js → chunk-3M25GRRU.js} +6 -10
  6. package/dist/chunk-3M25GRRU.js.map +1 -0
  7. package/dist/{chunk-SRIUD35R.cjs → chunk-IPWCHJPE.cjs} +5 -11
  8. package/dist/chunk-IPWCHJPE.cjs.map +1 -0
  9. package/dist/crud/CrudDetailPage.d.ts.map +1 -1
  10. package/dist/crud/CrudFormPage.d.ts.map +1 -1
  11. package/dist/index.cjs +84 -75
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +40 -23
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/schedule-service.d.ts.map +1 -1
  18. package/dist/org/adapters/supabase.d.ts +9 -1
  19. package/dist/org/adapters/supabase.d.ts.map +1 -1
  20. package/dist/org/index.cjs +10 -10
  21. package/dist/org/index.js +1 -1
  22. package/dist/shell/components/settings/ConnectedUserProfile.d.ts.map +1 -1
  23. package/dist/shell/components/settings/LocationsCrudPage.d.ts.map +1 -1
  24. package/dist/shell/lib/create-client-orders-provider.d.ts.map +1 -1
  25. package/dist/shell/lib/supabase.d.ts +2 -1
  26. package/dist/shell/lib/supabase.d.ts.map +1 -1
  27. package/dist/shell/types/crud.d.ts +2 -2
  28. package/dist/shell/types/crud.d.ts.map +1 -1
  29. package/dist/supabase/client.d.ts +0 -4
  30. package/dist/supabase/client.d.ts.map +1 -1
  31. package/package.json +10 -7
  32. package/src/app/admin-app.tsx +9 -1
  33. package/src/archetype-lookup.ts +2 -5
  34. package/src/crud/CrudDetailPage.tsx +3 -0
  35. package/src/crud/CrudFormPage.tsx +11 -0
  36. package/src/crud/archetypes/PersonPicker.tsx +6 -6
  37. package/src/crud/archetypes/SubjectDetailTabs.tsx +2 -2
  38. package/src/env.d.ts +15 -0
  39. package/src/index.ts +0 -2
  40. package/src/lib/schedule-service.ts +2 -1
  41. package/src/org/adapters/supabase.ts +15 -5
  42. package/src/shell/components/settings/ConnectedUserProfile.tsx +3 -6
  43. package/src/shell/components/settings/LocationsCrudPage.ts +0 -1
  44. package/src/shell/lib/create-client-orders-provider.ts +2 -4
  45. package/src/shell/lib/org-adapters/supabase.ts +3 -3
  46. package/src/shell/lib/supabase.ts +5 -3
  47. package/src/shell/stores/theme.store.ts +1 -1
  48. package/src/shell/types/crud.ts +2 -2
  49. package/src/supabase/client.ts +0 -8
  50. package/dist/chunk-DCRT47W4.js.map +0 -1
  51. package/dist/chunk-SRIUD35R.cjs.map +0 -1
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export { ClientOrdersTab } from './shell/components/crud/archetypes/ClientOrders
15
15
  export { createClientOrdersProvider } from './shell/lib/create-client-orders-provider';
16
16
  export { createArchetypeLookup } from './archetype-lookup';
17
17
  export type { EntityLookup, EntityLookupResult, EntityLookupMap, ArchetypeType } from './archetype-lookup';
18
- export { createFayzSupabaseClient, getFayzSupabaseClient, getFayzSupabaseClientOptional, getCoreSchemaClient, CORE_SCHEMA, } from './supabase/client';
18
+ export { createFayzSupabaseClient, getFayzSupabaseClient, getFayzSupabaseClientOptional, } from './supabase/client';
19
19
  export { createSupabaseOrgAdapter, createMockOrgAdapter, useOrganizationStore, getPersistedOrgId, OrgProvider, useTenant, useTenantOptional, useOrgAdapter, useOrgAdapterOptional, } from './org/index';
20
20
  export type { SupabaseOrgAdapterConfig, OrgStore, OrgProviderProps, TenantContext, } from './org/index';
21
21
  export { usePermissionsStore, PermissionsProvider, usePermission, useHasPermission, usePermissions, } from './permissions/index';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { useOrganizationStore, createFayzSupabaseClient, OrgProvider, getFayzSupabaseClientOptional, createSupabaseOrgAdapter, createMockOrgAdapter, CORE_SCHEMA, useOrgAdapterOptional, getFayzSupabaseClient, getCoreSchemaClient } from './chunk-DCRT47W4.js';
2
- export { CORE_SCHEMA, OrgProvider, createFayzSupabaseClient, createMockOrgAdapter, createSupabaseOrgAdapter, getCoreSchemaClient, getFayzSupabaseClient, getFayzSupabaseClientOptional, getPersistedOrgId, useOrgAdapter, useOrgAdapterOptional, useOrganizationStore, useTenant, useTenantOptional } from './chunk-DCRT47W4.js';
1
+ import { useOrganizationStore, createFayzSupabaseClient, OrgProvider, getFayzSupabaseClientOptional, createSupabaseOrgAdapter, createMockOrgAdapter, useOrgAdapterOptional, getFayzSupabaseClient } from './chunk-3M25GRRU.js';
2
+ export { OrgProvider, createFayzSupabaseClient, createMockOrgAdapter, createSupabaseOrgAdapter, getFayzSupabaseClient, getFayzSupabaseClientOptional, getPersistedOrgId, useOrgAdapter, useOrgAdapterOptional, useOrganizationStore, useTenant, useTenantOptional } from './chunk-3M25GRRU.js';
3
3
  import { PermissionsProvider, usePermissionOptional, usePermissionsStore } from './chunk-XNWCGJYH.js';
4
4
  export { PermissionsProvider, useHasPermission, usePermission, usePermissions, usePermissionsStore } from './chunk-XNWCGJYH.js';
5
5
  import { useBillingStore } from './chunk-5GYQK5IW.js';
@@ -10,7 +10,7 @@ import { hashRouterAdapter, registerScaffold, registerEntity, deriveEntityKey, r
10
10
  export { getActiveTenantId, getSupabaseClientOptional, renderApp, setCurrentLocale } from '@fayz-ai/core';
11
11
  import { AuthProvider, AuthGate, createAuthRuntime } from '@fayz-ai/plugin-auth';
12
12
  export { LoginPage } from '@fayz-ai/plugin-auth';
13
- import { ToastProvider, NavTransitionProvider, toast, Card, Button, cn, useLayoutStore, ModuleLayoutProvider, AppShell, PageTransition, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DataTable, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalFooter, ModalBody, createFayzTheme, Avatar, AvatarImage, AvatarFallback, DropdownLabel, DropdownSeparator, Badge, Skeleton, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, CardContent, CardTitle, CardDescription, CardHeader, Input, CardFooter, useSaveBar, useBackHandler, Checkbox, Breadcrumb, Separator, Tabs, TabsList, TabsTrigger, TabsContent, ListView, useModuleLayout, ICON_MAP as ICON_MAP$1, Popover, PopoverTrigger, PopoverContent, CurrencyInput, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, DatePicker, TimePicker } from '@fayz-ai/ui';
13
+ import { ToastProvider, NavTransitionProvider, toast, Card, Button, cn, useLayoutStore, ModuleLayoutProvider, AppShell, PageTransition, Dropdown, DropdownTrigger, DropdownContent, DropdownItem, DataTable, Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription, ModalFooter, ModalBody, createFayzTheme, Avatar, AvatarImage, AvatarFallback, DropdownLabel, DropdownSeparator, Badge, Skeleton, Select, SelectTrigger, SelectValue, SelectContent, SelectItem, CardContent, CardTitle, CardDescription, CardHeader, Input, CardFooter, useSaveBar, useBackHandler, Checkbox, Breadcrumb, Separator, Tabs, TabsList, TabsTrigger, TabsContent, ListView, useModuleLayout, ICON_MAP as ICON_MAP$1, Popover, PopoverTrigger, PopoverContent, MarkdownEditor, CurrencyInput, Markdown, TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, DatePicker, TimePicker } from '@fayz-ai/ui';
14
14
  export { createFayzTheme, fayzThemePresets } from '@fayz-ai/ui';
15
15
  import * as LucideIcons4 from 'lucide-react';
16
16
  import { X, MessageCircle, Settings2, ArrowUp, MoreVertical, Upload, Download, Pencil, BookOpen, Sparkles, Building2, User, Shield, Palette, ArrowLeft, Users, ShieldCheck, MapPin, SlidersHorizontal, Puzzle, Search, Loader2, Zap, UserX, UserPlus, UserCheck, TrendingUp, Star, Inbox, Clock3, Clock, Ban, Receipt, Landmark, Boxes, Box, FolderOpen, ListPlus, List, Plus, Filter, Contact, Handshake, Map as Map$1, UtensilsCrossed, Camera, Tags, Tag, Percent, Globe, BookOpenCheck, UserCog, Briefcase, ListChecks, ClipboardList, Wrench, Target, ShoppingBag, ShoppingCart, Megaphone, CircleDollarSign, BadgeDollarSign, DollarSign, Mail, FileCheck2, FileText, CalendarX, CalendarCheck2, BarChart3, Activity, Package, CalendarClock, Calendar, Bell, CreditCard, Settings, Home, Trash2, Check, FileSpreadsheet, ArrowRight, AlertCircle, ChevronDown, ChevronRight, MoreHorizontal, Eye, Copy, Save, KeyRound, ChevronsUpDown, RotateCcw, Edit, Route, MessageSquare, CalendarDays, ExternalLink, Phone, Cake, Plug, TableProperties, ChevronLeft, CircleCheckBig, CircleAlert, CircleEllipsis, CircleDashed, CheckCircle2, Power, ImagePlus, Truck, CalendarOff, CalendarPlus } from 'lucide-react';
@@ -1045,7 +1045,7 @@ function buildTheme(base, overrides) {
1045
1045
  }
1046
1046
  };
1047
1047
  }
1048
- var STORE_KEY = "__saas_core_theme_store__";
1048
+ var STORE_KEY = "__fayz_theme_store__";
1049
1049
  function createThemeStore() {
1050
1050
  if (typeof window !== "undefined" && window[STORE_KEY]) {
1051
1051
  return window[STORE_KEY];
@@ -1737,7 +1737,7 @@ function ConnectedUserProfile() {
1737
1737
  const supabase = getFayzSupabaseClientOptional();
1738
1738
  if (!user || !supabase) return;
1739
1739
  let cancelled = false;
1740
- void supabase.schema(CORE_SCHEMA).from("profiles").select("full_name, avatar_url, email").eq("id", user.id).maybeSingle().then(({ data }) => {
1740
+ void supabase.from("profiles").select("full_name, avatar_url, email").eq("id", user.id).maybeSingle().then(({ data }) => {
1741
1741
  if (!cancelled && data) setProfile(data);
1742
1742
  });
1743
1743
  return () => {
@@ -1748,7 +1748,7 @@ function ConnectedUserProfile() {
1748
1748
  if (!user) return;
1749
1749
  try {
1750
1750
  const supabase = getFayzSupabaseClient();
1751
- const { error: profileError } = await supabase.schema(CORE_SCHEMA).from("profiles").upsert({ id: user.id, full_name: data.fullName, email: user.email }, { onConflict: "id" });
1751
+ const { error: profileError } = await supabase.from("profiles").upsert({ id: user.id, full_name: data.fullName, email: user.email }, { onConflict: "id" });
1752
1752
  if (profileError) throw profileError;
1753
1753
  const { error: metaError } = await supabase.auth.updateUser({ data: { full_name: data.fullName } });
1754
1754
  if (metaError) throw metaError;
@@ -1769,7 +1769,7 @@ function ConnectedUserProfile() {
1769
1769
  if (uploadError) throw uploadError;
1770
1770
  const { data: urlData } = supabase.storage.from("avatars").getPublicUrl(path);
1771
1771
  const avatarUrl = urlData.publicUrl;
1772
- const { error: profileError } = await supabase.schema(CORE_SCHEMA).from("profiles").upsert({ id: user.id, avatar_url: avatarUrl, email: user.email }, { onConflict: "id" });
1772
+ const { error: profileError } = await supabase.from("profiles").upsert({ id: user.id, avatar_url: avatarUrl, email: user.email }, { onConflict: "id" });
1773
1773
  if (profileError) throw profileError;
1774
1774
  await supabase.auth.updateUser({ data: { avatar_url: avatarUrl } });
1775
1775
  setUser({ ...user, avatarUrl });
@@ -3427,7 +3427,7 @@ function PersonPicker({
3427
3427
  if (value && !selected) {
3428
3428
  const supabase = getSupabaseClientOptional$1();
3429
3429
  if (!supabase) return;
3430
- supabase.schema("saas_core").from("persons").select("id, name, email, phone, kind").eq("id", value).single().then(({ data }) => {
3430
+ supabase.from("people").select("id, name, email, phone, kind").eq("id", value).single().then(({ data }) => {
3431
3431
  if (data) setSelected(data);
3432
3432
  });
3433
3433
  }
@@ -3451,7 +3451,7 @@ function PersonPicker({
3451
3451
  try {
3452
3452
  const supabase = getSupabaseClientOptional$1();
3453
3453
  if (!supabase) return;
3454
- const { data } = await supabase.schema("saas_core").from("persons").select("id, name, email, phone, kind").eq("tenant_id", tenantId).ilike("name", `%${term}%`).limit(6);
3454
+ const { data } = await supabase.from("people").select("id, name, email, phone, kind").eq("tenant_id", tenantId).ilike("name", `%${term}%`).limit(6);
3455
3455
  setResults(data ?? []);
3456
3456
  } finally {
3457
3457
  setSearching(false);
@@ -3484,7 +3484,7 @@ function PersonPicker({
3484
3484
  try {
3485
3485
  const supabase = getSupabaseClientOptional$1();
3486
3486
  if (!supabase) return;
3487
- const { data, error } = await supabase.schema("saas_core").from("persons").insert({
3487
+ const { data, error } = await supabase.from("people").insert({
3488
3488
  tenant_id: tenantId,
3489
3489
  kind: personKind,
3490
3490
  name: query.trim(),
@@ -3910,6 +3910,17 @@ function renderField(field, value, onChange, allValues = {}) {
3910
3910
  className: `${baseClass} min-h-[60px] py-1.5`
3911
3911
  }
3912
3912
  );
3913
+ case "markdown":
3914
+ return /* @__PURE__ */ jsx(
3915
+ MarkdownEditor,
3916
+ {
3917
+ value: value ?? "",
3918
+ onChange,
3919
+ placeholder: field.placeholder,
3920
+ minRows: 12,
3921
+ defaultMode: "edit"
3922
+ }
3923
+ );
3913
3924
  case "relation":
3914
3925
  return /* @__PURE__ */ jsx(
3915
3926
  RelationSelect,
@@ -4518,13 +4529,13 @@ function mapRow(row) {
4518
4529
  return r;
4519
4530
  }
4520
4531
  async function getSchedules(assigneeId, kind = "working_hours") {
4521
- const core = getCoreSchemaClient();
4532
+ const core = getFayzSupabaseClient();
4522
4533
  const { data, error } = await core.from("schedules").select("*").eq("kind", kind).eq("assignee_id", assigneeId).order("day_of_week").order("starts_at");
4523
4534
  if (error) throw error;
4524
4535
  return (data ?? []).map(mapRow);
4525
4536
  }
4526
4537
  async function replaceWeeklySchedules(assigneeId, week, kind = "working_hours") {
4527
- const core = getCoreSchemaClient();
4538
+ const core = getFayzSupabaseClient();
4528
4539
  const tenantId = getTenantId();
4529
4540
  const { error: delErr } = await core.from("schedules").delete().eq("assignee_id", assigneeId).eq("kind", kind).not("day_of_week", "is", null).is("specific_date", null);
4530
4541
  if (delErr) throw delErr;
@@ -4562,7 +4573,7 @@ function eachDate(startDate, endDate) {
4562
4573
  return dates;
4563
4574
  }
4564
4575
  async function saveException(input) {
4565
- const core = getCoreSchemaClient();
4576
+ const core = getFayzSupabaseClient();
4566
4577
  const tenantId = getTenantId();
4567
4578
  const kind = input.kind ?? "working_hours";
4568
4579
  const dates = eachDate(input.startDate, input.endDate);
@@ -4615,7 +4626,7 @@ async function saveException(input) {
4615
4626
  }
4616
4627
  }
4617
4628
  async function deleteException(assigneeId, startDate, endDate, kind = "working_hours") {
4618
- const core = getCoreSchemaClient();
4629
+ const core = getFayzSupabaseClient();
4619
4630
  const dates = eachDate(startDate, endDate ?? startDate);
4620
4631
  const { error } = await core.from("schedules").delete().eq("assignee_id", assigneeId).eq("kind", kind).in("specific_date", dates);
4621
4632
  if (error) throw error;
@@ -5832,7 +5843,7 @@ function OwnerTab({ item }) {
5832
5843
  setLoading(false);
5833
5844
  return;
5834
5845
  }
5835
- supabase.schema("saas_core").from("persons").select("*").eq("id", tutorId).single().then(({ data }) => {
5846
+ supabase.from("people").select("*").eq("id", tutorId).single().then(({ data }) => {
5836
5847
  setPerson(data);
5837
5848
  setLoading(false);
5838
5849
  }, () => setLoading(false));
@@ -5940,6 +5951,8 @@ function formatValue2(field, value, t) {
5940
5951
  return /* @__PURE__ */ jsx("a", { href: value, target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline", children: value });
5941
5952
  case "textarea":
5942
5953
  return /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap", children: value });
5954
+ case "markdown":
5955
+ return value ? /* @__PURE__ */ jsx(Markdown, { source: String(value) }) : null;
5943
5956
  default:
5944
5957
  return String(value);
5945
5958
  }
@@ -7216,7 +7229,6 @@ var locationEntityDef = {
7216
7229
  ],
7217
7230
  data: {
7218
7231
  table: "locations",
7219
- schema: "saas_core",
7220
7232
  tenantScoped: true,
7221
7233
  searchColumns: ["name", "city", "state"],
7222
7234
  defaults: { kind: "branch" }
@@ -8001,7 +8013,12 @@ function resolveOrgAdapter(config, authAdapter) {
8001
8013
  name: p.name,
8002
8014
  description: p.description
8003
8015
  }));
8004
- if (strategy === "supabase") return createSupabaseOrgAdapter({ roles: declaredRoles, authAdapter });
8016
+ if (strategy === "supabase")
8017
+ return createSupabaseOrgAdapter({
8018
+ roles: declaredRoles,
8019
+ authAdapter,
8020
+ siteUrl: import.meta.env.VITE_APP_URL
8021
+ });
8005
8022
  return createMockOrgAdapter(config.permissions?.defaultProfiles);
8006
8023
  }
8007
8024
  function buildI18nConfig(config) {
@@ -8437,7 +8454,7 @@ function createClientOrdersProvider() {
8437
8454
  const supabase = getSupabaseClientOptional();
8438
8455
  if (!supabase) return { data: [], total: 0 };
8439
8456
  try {
8440
- let qb = supabase.schema("saas_core").from("orders").select("id, kind, status, total, reference_number, notes, metadata, created_at", { count: "exact" }).eq("party_id", query.clientId);
8457
+ let qb = supabase.from("orders").select("id, kind, status, total, reference_number, notes, metadata, created_at", { count: "exact" }).eq("party_id", query.clientId);
8441
8458
  if (query.stages && query.stages.length > 0) {
8442
8459
  const allStages = query.stages.flatMap((s) => STAGE_FILTER_MAP[s] ?? [s]);
8443
8460
  qb = qb.in("status", allStages);
@@ -8450,7 +8467,7 @@ function createClientOrdersProvider() {
8450
8467
  const orderIds = (data ?? []).map((row) => row.id).filter(Boolean);
8451
8468
  const bookingStartsByOrderId = /* @__PURE__ */ new Map();
8452
8469
  if (orderIds.length > 0) {
8453
- const { data: bookings } = await supabase.schema("saas_core").from("bookings").select("order_id, starts_at").in("order_id", orderIds);
8470
+ const { data: bookings } = await supabase.from("appointments").select("order_id, starts_at").in("order_id", orderIds);
8454
8471
  for (const booking of bookings ?? []) {
8455
8472
  if (booking.order_id && booking.starts_at && !bookingStartsByOrderId.has(booking.order_id)) {
8456
8473
  bookingStartsByOrderId.set(booking.order_id, booking.starts_at);
@@ -8481,7 +8498,7 @@ function createClientOrdersProvider() {
8481
8498
  };
8482
8499
  }
8483
8500
  var ARCHETYPE_DISPLAY = {
8484
- person: { table: "persons", labelField: "name", subtitleFields: ["phone"], groupField: "kind" },
8501
+ person: { table: "people", labelField: "name", subtitleFields: ["phone"], groupField: "kind" },
8485
8502
  product: { table: "products", labelField: "name", subtitleFields: ["sku", "description"], priceField: "price" },
8486
8503
  service: { table: "services", labelField: "name", subtitleFields: ["duration_minutes", "description"], priceField: "price" },
8487
8504
  location: { table: "locations", labelField: "name", subtitleFields: ["city", "address"], groupField: "kind" }
@@ -8520,7 +8537,7 @@ function createArchetypeLookup(config) {
8520
8537
  async search(query) {
8521
8538
  const supabase = getSupabaseClientOptional$1();
8522
8539
  if (!supabase) return [];
8523
- let qb = supabase.schema("saas_core").from(display.table).select("*").eq("is_active", true).order(display.labelField, { ascending: true }).limit(limit);
8540
+ let qb = supabase.from(display.table).select("*").eq("is_active", true).order(display.labelField, { ascending: true }).limit(limit);
8524
8541
  if (query) qb = qb.ilike(display.labelField, `%${query}%`);
8525
8542
  qb = applyKindFilter(qb);
8526
8543
  const { data } = await qb;
@@ -8531,7 +8548,7 @@ function createArchetypeLookup(config) {
8531
8548
  async list() {
8532
8549
  const supabase = getSupabaseClientOptional$1();
8533
8550
  if (!supabase) return [];
8534
- let qb = supabase.schema("saas_core").from(display.table).select("*").eq("is_active", true).order(display.labelField, { ascending: true }).limit(limit);
8551
+ let qb = supabase.from(display.table).select("*").eq("is_active", true).order(display.labelField, { ascending: true }).limit(limit);
8535
8552
  qb = applyKindFilter(qb);
8536
8553
  const { data } = await qb;
8537
8554
  return (data ?? []).map(
@@ -8541,7 +8558,7 @@ function createArchetypeLookup(config) {
8541
8558
  async getById(id) {
8542
8559
  const supabase = getSupabaseClientOptional$1();
8543
8560
  if (!supabase) return null;
8544
- const { data } = await supabase.schema("saas_core").from(display.table).select("*").eq("id", id).single();
8561
+ const { data } = await supabase.from(display.table).select("*").eq("id", id).single();
8545
8562
  return data ? toResult(data, display, config.kindLabels) : null;
8546
8563
  }
8547
8564
  };