Create a custom extension using tiptap

I am currently using (tiptap as for my app’s editor. I want to ask is there a way to build a blockquote always have author’s tag (this is a custom tag) at the last line of it.
p/s: I am currently using pure Javascript with tiptap version 2.2.2. I have already tried the latest version but it kept getting error so I decided to choose 2.2.2 instead. If anyone knows the answer, I really appreciate!

For example if we click a blockquote button, the HTML will change from:

<p>This is a quote</p>
<p>This is a quote</p>
<p>This is a quote</p>

expecting output:

<blockquote>
     <p>This is a quote</>
     <p>This is a quote</p>
     <p>This is a quote</p>
     <author>Please type the author</author>
</blockquote>

or
from:

<p>
      <br class="ProseMirror-trailingBreak">
</p>

expecting output:

<blockquote>
     <p>
          <br class="ProseMirror-trailingBreak">
     </p>
     <author>Please type the author</author>
</blockquote>

All of the parts in blockquote also can be edited.

How to build a full URL from a partial one?

If a user enters URL without schema, it is treated as a relative URL, i.e. youtube.com becomes https://some.domain.com/path/youtube.com. Passing it to URL constructor without base is an error. Of course if you put it in your browser address bar it still works as expected. Is there some standard way to “fix” those URLs similar to what browsers do, besides doing some regex matching (which probably involves reading the entire RFC spec to get right)?

How to put multi line html code into javascript array/list in react

I’m newbie in react and javascript, I’m coming from python and C#.
I need the following html code to be generated repeatedly for the length of the list.
Actually I do not know that could I loop jsx and put the data of the list into it.
I’ll accept whatever idea would you give me.
Please.

var aList = [some data]

function aFunction(){
  return (
   for(let i = 0; i < aList.length; i++) {
    <div>
      <div>
        <ahref="#">
          <h1 >{ aList.titles[i] }</h1>
        </a>
      </div>
      <div>
        <p>
          <a href="#">
            { aList.[i][0] }
          </a>
        </p>
        <p>
          <a href="#">
            { aLis[i][1] }
          </a>
        </p>
        <p>
          <a href="#">
            { aLis[i][2] }
          </a>
        </p>
        <p>
          <a href="#">
            { aLis[i][3] }
          </a>
        </p>
      </div>
    </div>
  );
 }
}

React Native Image Header Scroll View – View scrolling beyond content

I am using the common library – React Native Image Header Scroll View. I’ve implemented this library before but face a problem which i can’t seem to resolve. The issue is that the view is being allowed to scroll up further than the actual height of the content which in turn leaves quite a large blank space below. I already have a view wrapping the Triggering View, but the same problem still occurs. See image and code below

The image shows the differential between the content and space

<ImageHeaderScrollView
      maxHeight={250}
      minHeight={Platform.OS === 'ios' ? 90 : 55}
      headerImage={{ uri: cityImage }}
      maxOverlayOpacity={1}
      overlayColor="#fff"
      style={{marginBottom: 20}}
      showsVerticalScrollIndicator={true}
    >
      <View style={{height: 550}}>
        <TriggeringView>
          <Animatable.View animation={'fadeIn'} duration={1650} style={{marginTop: 30, marginHorizontal: 20}}>
            <Text style={styles.title}>{cityName}</Text>
            {countryLocation && (
              <Animatable.View animation={'fadeIn'} duration={1000} style={{ flexDirection: 'row', alignItems: 'center', marginTop: 10, marginRight: 20 }}>
                <EvilIcons name="location" size={20} color="#5d5d5d" style={{ marginLeft: -5 }} />
                <Text style={{ color: '#999', fontFamily: 'Gilroy-Medium' }}>
                  {countryLocation.location}, {countryLocation.country}
                </Text>
              </Animatable.View>
            )}

            { tags && (
              <>
              <Divider style={{marginTop: 15}}/>
                <View style={{flexDirection: 'row', alignItems: 'center', marginTop: 15, justifyContent: 'space-between'}}>
                {Object.entries(tags).map(([key, value], index) => (
                  <Animatable.View animation={'fadeIn'} duration={1000 + index * 200}  key={index} style={{marginRight: 8, alignItems: 'center'}}>
                      <Text style={{ fontFamily: 'Gilroy-Semibold', fontSize: 15, marginBottom: 5 }}>
                        {key.charAt(0).toUpperCase() + key.slice(1)} {/* Capitalizes the first letter of the key */}
                      </Text>
                      <Text style={{ fontFamily: 'Gilroy-Regular', fontSize: 13 }}>{value}</Text>
                  </Animatable.View>
                  ))}
                </View>
              </>
            )}
              <Divider style={{marginTop: 15}}/>
          </Animatable.View>
        </TriggeringView>
          <ScrollView style={{marginHorizontal: 20, marginTop: 10}} showsVerticalScrollIndicator={false}>
            {countryDesc && (
              <View style={{ marginTop: 10 }}>
                <Animatable.Text
                  animation="fadeIn"
                  duration={1000}
                  style={styles.subHeading}
                >
                  Description
                </Animatable.Text>
                <Animatable.Text
                  animation="fadeIn"
                  duration={1100}
                  style={styles.countryDesc}
                  numberOfLines={showFullDesc ? undefined : 3} // undefined removes the limit
                >
                  {countryDesc}
                </Animatable.Text>
                {countryDesc.length > 100 && (
                  <TouchableOpacity onPress={toggleDescription}>
                    <Text style={styles.readMoreText}>
                      {showFullDesc ? 'Read Less' : 'Read More'}
                    </Text>
                  </TouchableOpacity>
                )}
              </View>
            )}
            {/* Itinerary */}
            {itinerary.length > 0 && (
              <>
                <Divider style={{ marginVertical: 25 }} />
                <Animatable.Text animation={'fadeIn'} duration={1300} style={styles.suggestedItinerary}>
                  Itinerary For You
                </Animatable.Text>

                <View style={{ marginTop: 20 }}>
                  {itinerary.map((rowData, index) => (
                    <Animatable.View animation={'fadeIn'} duration={1100 + index * 200} key={index}>
                      <ItineraryAccordion
                        day={rowData.title} // Pass day as "Day 1", "Day 2" etc.
                        activity={rowData.activity}
                        restaurant={rowData.restaurant}
                      />
                    </Animatable.View>
                  ))}
                </View>
              </>
            )}
          </ScrollView>
      </View>
    </ImageHeaderScrollView>
    <View style={{marginBottom: 35, alignItems: 'center'}}>
      <View style={{}}>
        <TouchableOpacity style={{backgroundColor: '#2970ff', padding: 15, alignItems: 'center',borderRadius: 10, width: 350, paddingVertical: 15}}>
          <Text style={{fontFamily: 'Gilroy-Bold', fontSize: 18, color: '#fff', letterSpacing: -0.5, }}>Book Now</Text>
        </TouchableOpacity>
      </View>
    </View>

React + GSAP Text Animation Stutters on Initial Page Load but Works Fine on Hot Reload

I’m experiencing a strange issue with GSAP text animations in my React component. The animation stutters/gets stuck during initial page load or refresh on all devices, but works perfectly during hot reload in development.

Code:

...
import { useEffect, useRef, useState } from 'react';
import SplitType from 'split-type';
import gsap from "gsap";
import ScrollTrigger from "gsap/ScrollTrigger";

gsap.registerPlugin(ScrollTrigger);

const HeroSection = () => {
   const headingRef = useRef(null);
  const bodyRef = useRef(null);

  useEffect(() => {
    const text = new SplitType(headingRef.current, { types: 'chars' });
    const body = new SplitType(bodyRef.current, { types: 'chars' });

    const tl = gsap.timeline({
      defaults: {
        duration: 0.5,
        ease: "back.out",
      }
    });

    tl.from(text.chars, {
      opacity: 0,
      y: 20,
      rotateX: -90,
      stagger: 0.05
    })
      .from(body.chars, {
        opacity: 0,
        x: 50,
        stagger: 0.01,
        ease: "power2.out"
      }, "-=0.3"); 

    return () => {
      text.revert();
      body.revert();
      tl.kill();
    };
  }, []);

  return (
...
         <div className="overflow-hidden">
              <h1
                ref={headingRef}
                className="font-light text-5xl md:text-6xl lg:text-7xl text-black leading-[1.1] mb-8 opacity-0">
                //heading text
              </h1>
              <p ref={bodyRef} className="text-sm md:text-base text-black/70 max-w-md mb-12 leading-relaxed opacity-0">
                //body text
              </p>
         </div>
...

Following are the demonstrations of outputs:

On intial loading:

enter image description here

On hot reloading:

enter image description here

What I’ve Tried:

  • Added delay to animation start
  • Used gsap.context()
  • Added willChange: ‘transform’
  • Adjusted timing and easing

Any ideas what could be causing this and how to fix it?

React Router v7 Nested Layouts

I am trying to use a nested layout in React Router v7, but my page content is getting rendered twice. I’m guessing something’s missing in my route config or i’m misusing the <Outlet /> component, but reading through the documentation hasn’t really helped.

I’ve included oversimplified representations of my files:

routes.tsx:

import {
  type RouteConfig,
  index,
  layout,
} from "@react-router/dev/routes";

export default [
  layout("app/layout.tsx", [
    layout("app/public/layout.tsx", [
      index("app/public/home.tsx"),
    ]),
  ]),
] satisfies RouteConfig;

app/layout.tsx:

import { Outlet } from "react-router";

export default function RootLayout() {
  return (
    <>
      <p>Root Layout</p>
      <Outlet />
    </>
  );
}

app/public/layout.tsx:

import { Outlet } from "react-router";

export default function RootLayout() {
  return (
    <>
      <p>Public Layout</p>
      <Outlet />
    </>
  );
}

app/public/home.tsx:

export default function HomePage() {
  return <h1>Home Page</h1>;
}

Rendered Result:

<p>Root Layout</p>
<h1>Home Page</h1>
<p>Public Layout</p>
<h1>Home Page</h1>

run script after load more button is clicked

I am using the Smash Balloon custom facebook feed pro plugin on wordpress. I have written a php script the alters the $content on the page with the facebook feed so that it changes the links in the posts to buttons and removes some unwanted words etc. The problem I am facing is that my script works great for the posts that are loaded already however when the “load more button” is clicked via the newly loaded posts are not affected by the script I wrote because they were not part of the original page $content that was loaded. Is there a way to trigger my script again when a user clicks the load more button? I also noticed that I had to set the priority of my action to 995 for it to actually change the $content. my website is [https://nicolesfunfinds.com][1] Thanks
My Code:

<?php
function find_class_content($content){  
    global $post;
if( $post->ID == 63){
$content = preg_replace ('{<a.*?href="([^"]*)".*?>(.*?b)</a>}i', '<a target="_blank" href="$1" class="btn btn-danger btn-sm rounded-0 transition-3d-hover btn-width display-buy-now" style="width:250px !important">Buy Now</a>', $content); 
return $content;}
return $content;}
add_filter( 'the_content', 'find_class_content',995);
?>

Link to cff-scripts.js file where the load more function is fired [https://hosekdentistry.com/wp-content/plugins/custom-facebook-feed-pro/assets/js/cff-scripts.js][1]

Problem with JWT Authentication in .NET web project

I want users to redirect to 2 different Views after logging in depending on the role from the token:

  1. Customers: after logging in, the project will use: Views/Home/…cshtml, site.js, site.css, HomeController.cs
  2. Admins: after logging in, the project will use: Views/Admin/…cshtml, admin-dashboard.js, admin-dashboard.css, AdminController.cs (use [Authorize(Roles = “Admin”)])

Views’ structure

This is how I create token:

    public IActionResult Login([FromBody] LoginModel model)
{
    string role = "Customer";  
    if (model.Username == "administrator" && BCrypt.Net.BCrypt.Verify("adminpassword", customer.CustomerPassword))
    {
        role = "Admin";
    }

    var token = GenerateJwtToken(customer.CustomerUsername, role);
    return Ok(new { token = token, role = role });
}
private string GenerateJwtToken(string username, string role)
{
    var claims = new[]
    {
        new Claim(ClaimTypes.Name, username),
        new Claim(ClaimTypes.Role, role)
    };

    var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:SecretKey"]));
    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

    var token = new JwtSecurityToken(
        issuer: _configuration["Jwt:Issuer"],
        audience: _configuration["Jwt:Audience"],
        claims: claims,
        expires: DateTime.Now.AddHours(1),
        signingCredentials: creds);

    return new JwtSecurityTokenHandler().WriteToken(token);
}

When fulfill the login form, it will save the token into the localStorage:

document.getElementById("loginForm").addEventListener("submit", async function (e) {
e.preventDefault();
const username = document.getElementById("signin-email").value;
const password = document.getElementById("signin-password").value;

try {
    const response = await fetch('/api/login', {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        },
        body: JSON.stringify({ username, password }),
    });

    if (!response.ok) {
        if (response.status === 401) {
            alert("Tên đăng nhập hoặc mật khẩu không đúng.");
        } else {
            alert("Đăng nhập không thành công. Mã lỗi: " + response.status);
        }
        return;
    }

    const data = await response.json();
    const token = data.token;
    const role = data.role;

    localStorage.setItem("jwt_token", token);

    if (role === "Admin") {
        window.location.href = "/Admin/Dashboard";
    } else {
        window.location.href = "/Home/Homepage";             
    }      
} catch (error) {
    console.error("Error during login:", error);
    alert("Lỗi xảy ra trong quá trình đăng nhập. Vui lòng thử lại.");
}

});

But after successfully logging in as admin, it moves to /Admin/Dashboard and reset the localStorage => there is no token to get the role and the server response with the error 401.

Help me fix this and maybe give me the other way to redirect than using window.location.href.

I’m having some issues with Google Calendar API integration…even after working all night on this

Okay, so I’m making a Web app as part of a Capstone project. I decided to use the Google Calendar API with JavaScript, not realizing how complex Google’s APIs are. Add that to the fact that I’m having to rush through it due to lost time, meaning that I’ve missed a lot of details.

Here’s the code in question. First is the main config code:

import { CLIENT_ID } from "./config.js";

import { API_KEY } from "./config.js";

const DISCOVERY_DOC =
  "https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest";

const SCOPES = "https://www.googleapis.com/auth/calendar";

const content = document.getElementById("content");

const sidebarHeading = document.getElementById("sidebar-heading");
const signInBtn = document.getElementById("authorize_button");
const signOutBtn = document.getElementById("signout_button");
const upcomingSearch = document.getElementById("upcoming-search");
const upcommingSearchBtn = document.getElementById("upcoming-search-btn");

let tokenClient;
let gapiInited = false;
let gisInited = false;

const apiConfig = document.getElementById("api-config");
const clientConfig = document.getElementById("client-config");

function gapiLoaded() {
  gapi.load("client", initializeGapiClient);
}

async function initializeGapiClient() {
  await gapi.client.init({
    apiKey: API_KEY,
    discoveryDocs: [DISCOVERY_DOC],
  });
  gapiInited = true;
  maybeEnableButtons();
}

function gisLoaded() {
  tokenClient = google.accounts.oauth2.initTokenClient({
    client_id: CLIENT_ID,
    scope: SCOPES,
    callback: "",
  });
  gisInited = true;
  maybeEnableButtons();
}

function maybeEnableButtons() {
  if (gapiInited && gisInited) {
    signInBtn.style.visibility = "visible";
  }
}

function handleAuthClick() {
  console.log("Sign In button clicked");
  try {
    tokenClient.callback = async (resp) => {
      if (resp.error !== undefined) {
        console.error("Auth Error: ", resp.error);
        throw resp;
      }
      sidebarHeading.style.visibility = "collapse";
      signOutBtn.style.visibility = "visible";
      signInBtn.innerText = "Refresh";
      upcommingSearch.style.visibility = "visible";
      await listUpcomingEvents();
    };

    if (gapi.client.getToken() === null) {
      tokenClient.requestAccessToken({ prompt: "consent" });
    } else {
      tokenClient.requestAccessToken({ prompt: "" });
    }
  } catch (error) {
    console.error("Error during handleAuthClick: ", error);
  }
}

function handleSignoutClick() {
  const token = gapi.client.getToken();
  if (token !== null) {
    google.accounts.oauth2.revoke(token.access_token);
    gapi.client.setToken("");
    content.innerText = "";
    sidebarHeading.style.visibility = "visible";
    signInBtn.innerText = "Sign In to Google Calendar";
    signOutBtn.style.visibility = "hidden";
    upcomingSearch.style.visibility = "hidden";
  }
}

async function listUpcomingEvents(query = "") {
  let response;
  try {
    const request = {
      calendarId: "primary",
      timeMin: new Date().toISOString(),
      timeMax: new Date(
        new Date().setDate(new Date().getDate() + 7)
      ).toISOString(),
      showDeleted: false,
      singleEvents: true,
      maxResults: 10,
      orderBy: "startTime",
      q: query,
    };
    response = await gapi.client.calendar.events.list(request);
  } catch (err) {
    content.innerText = err.message;
    return;
  }

  const events = response.result.items;
  if (!events || events.length == 0) {
    content.innerText = "No events found.";
    return;
  }

  const output = events.reduce(
    (str, event) =>
      `${str}${event.summary} (${event.start.dateTime || event.start.date})n`,
    "Events:n"
  );
  content.innerText = output;
}

function addEvents(events) {
  content.innerHTML = "";

  events.forEach((event) => {
    const eventInfo = document.createElement("p");
    eventInfo.textContent = `${event.summary} (${
      event.start.dateTime || event.start.date
    })`;
    content.appendChild(eventInfo);
  });
}

addEvents();

signInBtn.addEventListener("click", (event) => {
  event.preventDefault();
  handleAuthClick();
});

signOutBtn.addEventListener("click", (event) => {
  event.preventDefault();
  handleSignoutClick();
});

upcommingSearchBtn.addEventListener("click", () => {
  const upcomingQuery = document.getElementById("upcoming-query");
  const query = upcomingQuery.value;
  listUpcomingEvents(query);
});

apiConfig.onload = gapiLoaded;
clientConfig.onload = gisLoaded;

Here is the code for setting up Express:

let express = require("express");
let app = express();

let router = express.Router();

app.get("/", (req, res) => {
  res.send();
});

app.use("/api/", router);

app.listen(5500, () => {
  console.log("Express is listening on http://localhost:5500...");
});

And then, of course, there’s another file with my client ID and API key.

I know I’m missing something, probably quite a bit. I’m wondering if anyone here can help me figure out what I need to include and what needs to be fixed. Any advice is appreciated. Thank you.

MongoDB server keeps failing to start unless I clear the data folder

I’ve installed the free version of mongodb on a windows 10 device.
The service and the database seemed to work for the first couple of days. After a few days, the service would fail to start and I had to clear the database directory for the service to work.

Since then the same cycle keeps happening, the service (either by running mongod.exe or by the automatic start of the service on system startup) works fine for the first 2-3 startups after the last “cleanup” and then every subsequent attempt fails until the next “cleanup”.

Full log from running mongod.exe (fail):

[{"t":{"$date":"2024-12-13T18:12:05.892+02:00"},"s":"I",  "c":"CONTROL",  "id":23285,   "ctx":"thread1","msg":"Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'"}
,{"t":{"$date":"2024-12-13T18:12:05.893+02:00"},"s":"I",  "c":"CONTROL",  "id":5945603, "ctx":"thread1","msg":"Multi threading initialized"}
,{"t":{"$date":"2024-12-13T18:12:05.894+02:00"},"s":"I",  "c":"NETWORK",  "id":4648601, "ctx":"thread1","msg":"Implicit TCP FastOpen unavailable. If TCP FastOpen is required, set at least one of the related parameters","attr":{"relatedParameters":["tcpFastOpenServer","tcpFastOpenClient","tcpFastOpenQueueSize"]}}
,{"t":{"$date":"2024-12-13T18:12:05.895+02:00"},"s":"I",  "c":"NETWORK",  "id":4915701, "ctx":"thread1","msg":"Initialized wire specification","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":25},"incomingInternalClient":{"minWireVersion":0,"maxWireVersion":25},"outgoing":{"minWireVersion":6,"maxWireVersion":25},"isInternalClient":true}}}
,{"t":{"$date":"2024-12-13T18:12:05.898+02:00"},"s":"I",  "c":"TENANT_M", "id":7091600, "ctx":"thread1","msg":"Starting TenantMigrationAccessBlockerRegistry"}
,{"t":{"$date":"2024-12-13T18:12:05.898+02:00"},"s":"I",  "c":"CONTROL",  "id":4615611, "ctx":"initandlisten","msg":"MongoDB starting","attr":{"pid":9752,"port":27017,"dbPath":"/data/db","architecture":"64-bit","host":"DESKTOP-JABS99V"}}
,{"t":{"$date":"2024-12-13T18:12:05.898+02:00"},"s":"I",  "c":"CONTROL",  "id":23398,   "ctx":"initandlisten","msg":"Target operating system minimum version","attr":{"targetMinOS":"Windows 7/Windows Server 2008 R2"}}
,{"t":{"$date":"2024-12-13T18:12:05.898+02:00"},"s":"I",  "c":"CONTROL",  "id":23403,   "ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"8.0.3","gitVersion":"89d97f2744a2b9851ddfb51bdf22f687562d9b06","modules":[],"allocator":"tcmalloc-gperf","environment":{"distmod":"windows","distarch":"x86_64","target_arch":"x86_64"}}}}
,{"t":{"$date":"2024-12-13T18:12:05.898+02:00"},"s":"I",  "c":"CONTROL",  "id":51765,   "ctx":"initandlisten","msg":"Operating System","attr":{"os":{"name":"Microsoft Windows 10","version":"10.0 (build 19045)"}}}
,{"t":{"$date":"2024-12-13T18:12:05.899+02:00"},"s":"I",  "c":"CONTROL",  "id":21951,   "ctx":"initandlisten","msg":"Options set by command line","attr":{"options":{}}}
,{"t":{"$date":"2024-12-13T18:12:05.902+02:00"},"s":"I",  "c":"STORAGE",  "id":22270,   "ctx":"initandlisten","msg":"Storage engine to use detected by data files","attr":{"dbpath":"/data/db","storageEngine":"wiredTiger"}}
,{"t":{"$date":"2024-12-13T18:12:05.902+02:00"},"s":"I",  "c":"STORAGE",  "id":22315,   "ctx":"initandlisten","msg":"Opening WiredTiger","attr":{"config":"create,cache_size=3528M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,remove=true,path=journal,compressor=snappy),builtin_extension_config=(zstd=(compression_level=6)),file_manager=(close_idle_time=600,close_scan_interval=10,close_handle_minimum=2000),statistics_log=(wait=0),json_output=(error,message),verbose=[recovery_progress:1,checkpoint_progress:1,compact_progress:1,backup:0,checkpoint:0,compact:0,evict:0,history_store:0,recovery:0,rts:0,salvage:0,tiered:0,timestamp:0,transaction:0,verify:0,log:0],prefetch=(available=true,default=false),"}}
,{"t":{"$date":"2024-12-13T18:12:05.981+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106325,"ts_usec":981027,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Recovering log 4 through 5"}}}
,{"t":{"$date":"2024-12-13T18:12:06.095+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":94776,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Recovering log 5 through 5"}}}
,{"t":{"$date":"2024-12-13T18:12:06.248+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":247678,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Main recovery loop: starting at 4/384 to 5/256"}}}
,{"t":{"$date":"2024-12-13T18:12:06.471+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":471543,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Recovering log 4 through 5"}}}
,{"t":{"$date":"2024-12-13T18:12:06.608+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":607456,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Recovering log 5 through 5"}}}
,{"t":{"$date":"2024-12-13T18:12:06.701+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":701403,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"recovery log replay has successfully finished and ran for 721 milliseconds"}}}
,{"t":{"$date":"2024-12-13T18:12:06.702+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":701403,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Set global recovery timestamp: (0, 0)"}}}
,{"t":{"$date":"2024-12-13T18:12:06.702+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":702399,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"Set global oldest timestamp: (0, 0)"}}}
,{"t":{"$date":"2024-12-13T18:12:06.705+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":705107,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"recovery rollback to stable has successfully finished and ran for 2 milliseconds"}}}
,{"t":{"$date":"2024-12-13T18:12:06.720+02:00"},"s":"I",  "c":"WTCHKPT",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":720085,"thread":"9752:140732063570064","session_name":"WT_SESSION.checkpoint","category":"WT_VERB_CHECKPOINT_PROGRESS","category_id":7,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"saving checkpoint snapshot min: 1, snapshot max: 1 snapshot count: 0, oldest timestamp: (0, 0) , meta checkpoint timestamp: (0, 0) base write gen: 33"}}}
,{"t":{"$date":"2024-12-13T18:12:06.790+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":790326,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"recovery checkpoint has successfully finished and ran for 84 milliseconds"}}}
,{"t":{"$date":"2024-12-13T18:12:06.791+02:00"},"s":"I",  "c":"WTRECOV",  "id":22430,   "ctx":"initandlisten","msg":"WiredTiger message","attr":{"message":{"ts_sec":1734106326,"ts_usec":790627,"thread":"9752:140732063570064","session_name":"txn-recover","category":"WT_VERB_RECOVERY_PROGRESS","category_id":34,"verbose_level":"DEBUG_1","verbose_level_id":1,"msg":"recovery was completed successfully and took 810ms, including 721ms for the log replay, 2ms for the rollback to stable, and 84ms for the checkpoint."}}}
,{"t":{"$date":"2024-12-13T18:12:06.808+02:00"},"s":"I",  "c":"STORAGE",  "id":4795906, "ctx":"initandlisten","msg":"WiredTiger opened","attr":{"durationMillis":906}}
,{"t":{"$date":"2024-12-13T18:12:06.808+02:00"},"s":"I",  "c":"RECOVERY", "id":23987,   "ctx":"initandlisten","msg":"WiredTiger recoveryTimestamp","attr":{"recoveryTimestamp":{"$timestamp":{"t":0,"i":0}}}}
,{"t":{"$date":"2024-12-13T18:12:06.822+02:00"},"s":"F",  "c":"CONTROL",  "id":23134,   "ctx":"initandlisten","msg":"Unhandled exception","attr":{"exceptionString":"0xC000001D","addressString":"0x00007FF6BAACCBAF"}}
,{"t":{"$date":"2024-12-13T18:12:06.822+02:00"},"s":"F",  "c":"CONTROL",  "id":23136,   "ctx":"initandlisten","msg":"*** stack trace for unhandled exception:"}
,{"t":{"$date":"2024-12-13T18:12:07.458+02:00"},"s":"I",  "c":"CONTROL",  "id":31380,   "ctx":"initandlisten","msg":"BACKTRACE","attr":{"bt":{"backtrace":[{"a":"7FF6BAACCBAF","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy.cc","line":1493,"s":"snappy::SnappyDecompressor::DecompressAllTags<snappy::SnappyArrayWriter>","s+":"16F"},{"a":"7FF6BAACE088","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy.cc","line":2082,"s":"snappy::RawUncompress","s+":"F8"},{"a":"7FF6BAACE3DD","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy-c.cc","line":58,"s":"snappy_uncompress","s+":"4D"},{"a":"7FF6BAE25C94","module":"mongod.exe","file":".../src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c","line":179,"s":"snappy_decompression","s+":"54"},{"a":"7FF6BAEE8387","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/block_cache/block_io.c","line":189,"s":"__wt_blkcache_read","s+":"717"},{"a":"7FF6BAEB8C3B","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/btree/bt_handle.c","line":833,"s":"__btree_preload","s+":"3AB"},{"a":"7FF6BAEB956B","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/btree/bt_handle.c","line":149,"s":"__wt_btree_open","s+":"36B"},{"a":"7FF6BAE21EEB","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/conn/conn_dhandle.c","line":561,"s":"__wt_conn_dhandle_open","s+":"39B"},{"a":"7FF6BAE8FC67","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":953,"s":"__wt_session_get_dhandle","s+":"B7"},{"a":"7FF6BAE8FFD5","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":946,"s":"__wt_session_get_dhandle","s+":"425"},{"a":"7FF6BAE8F571","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":477,"s":"__wt_session_get_btree_ckpt","s+":"F1"},{"a":"7FF6BAE41251","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/cursor/cur_file.c","line":1215,"s":"__wt_curfile_open","s+":"3E1"},{"a":"7FF6BADC94E8","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":699,"s":"__session_open_cursor_int","s+":"C8"},{"a":"7FF6BADD5109","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":739,"s":"__wt_open_cursor","s+":"89"},{"a":"7FF6BAE63119","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/cursor/cur_table.c","line":1102,"s":"__wt_curtable_open","s+":"E9"},{"a":"7FF6BADC94AC","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":606,"s":"__session_open_cursor_int","s+":"8C"},{"a":"7FF6BADC909D","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":802,"s":"__session_open_cursor","s+":"3FD"},{"a":"7FF6B95B3DA1","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp","line":98,"s":"mongo::`anonymous namespace'::_openCursor","s+":"41"},{"a":"7FF6B95B4720","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp","line":146,"s":"mongo::WiredTigerSession::getNewCursor","s+":"20"},{"a":"7FF6B95CA56E","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp","line":1832,"s":"mongo::WiredTigerRecordStore::getLargestKey","s+":"9E"},{"a":"7FF6B9581672","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":334,"s":"mongo::CollectionImpl::SharedState::SharedState","s+":"2A2"},{"a":"7FF6B9580DF0","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":355,"s":"mongo::CollectionImpl::CollectionImpl","s+":"170"},{"a":"7FF6B958D5F5","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":374,"s":"mongo::CollectionImpl::FactoryImpl::make","s+":"125"},{"a":"7FF6B96051A7","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":479,"s":"mongo::StorageEngineImpl::_initCollection","s+":"257"},{"a":"7FF6B9608A04","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":446,"s":"mongo::StorageEngineImpl::loadCatalog","s+":"1D54"},{"a":"7FF6B9601D0F","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":167,"s":"mongo::StorageEngineImpl::StorageEngineImpl","s+":"1CF"},{"a":"7FF6B95A007F","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp","line":162,"s":"mongo::`anonymous namespace'::WiredTigerFactory::create","s+":"80F"},{"a":"7FF6B9693557","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_init.cpp","line":188,"s":"mongo::initializeStorageEngine","s+":"7F7"},{"a":"7FF6B88B9A47","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":597,"s":"`mongo::`anonymous namespace'::_initAndListen'::`2'::<lambda_2>::operator()","s+":"77"},{"a":"7FF6B88BC02A","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":591,"s":"mongo::`anonymous namespace'::_initAndListen","s+":"B3A"},{"a":"7FF6B88BF41E","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":1221,"s":"mongo::`anonymous namespace'::initAndListen","s+":"1E"},{"a":"7FF6B88C27AF","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":2224,"s":"mongo::mongod_main","s+":"7BF"},{"a":"7FF6B88A69BA","module":"mongod.exe","file":".../src/mongo/db/mongod.cpp","line":41,"s":"wmain","s+":"2A"},{"a":"7FF6BB0057DC","module":"mongod.exe","file":"d:/a01/_work/43/s/src/vctools/crt/vcstartup/src/startup/exe_common.inl","line":288,"s":"__scrt_common_main_seh","s+":"10C"},{"a":"7FFEBCA87374","module":"KERNEL32.DLL","s":"BaseThreadInitThunk","s+":"14"}]}},"tags":[]}
,{"t":{"$date":"2024-12-13T18:12:07.472+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAACCBAF","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy.cc","line":1493,"s":"snappy::SnappyDecompressor::DecompressAllTags<snappy::SnappyArrayWriter>","s+":"16F"}}}
,{"t":{"$date":"2024-12-13T18:12:07.473+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAACE088","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy.cc","line":2082,"s":"snappy::RawUncompress","s+":"F8"}}}
,{"t":{"$date":"2024-12-13T18:12:07.474+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAACE3DD","module":"mongod.exe","file":".../src/third_party/snappy/dist/snappy-c.cc","line":58,"s":"snappy_uncompress","s+":"4D"}}}
,{"t":{"$date":"2024-12-13T18:12:07.475+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE25C94","module":"mongod.exe","file":".../src/third_party/wiredtiger/ext/compressors/snappy/snappy_compress.c","line":179,"s":"snappy_decompression","s+":"54"}}}
,{"t":{"$date":"2024-12-13T18:12:07.476+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAEE8387","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/block_cache/block_io.c","line":189,"s":"__wt_blkcache_read","s+":"717"}}}
,{"t":{"$date":"2024-12-13T18:12:07.476+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAEB8C3B","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/btree/bt_handle.c","line":833,"s":"__btree_preload","s+":"3AB"}}}
,{"t":{"$date":"2024-12-13T18:12:07.477+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAEB956B","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/btree/bt_handle.c","line":149,"s":"__wt_btree_open","s+":"36B"}}}
,{"t":{"$date":"2024-12-13T18:12:07.478+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE21EEB","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/conn/conn_dhandle.c","line":561,"s":"__wt_conn_dhandle_open","s+":"39B"}}}
,{"t":{"$date":"2024-12-13T18:12:07.479+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE8FC67","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":953,"s":"__wt_session_get_dhandle","s+":"B7"}}}
,{"t":{"$date":"2024-12-13T18:12:07.480+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE8FFD5","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":946,"s":"__wt_session_get_dhandle","s+":"425"}}}
,{"t":{"$date":"2024-12-13T18:12:07.481+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE8F571","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_dhandle.c","line":477,"s":"__wt_session_get_btree_ckpt","s+":"F1"}}}
,{"t":{"$date":"2024-12-13T18:12:07.494+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE41251","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/cursor/cur_file.c","line":1215,"s":"__wt_curfile_open","s+":"3E1"}}}
,{"t":{"$date":"2024-12-13T18:12:07.495+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BADC94E8","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":699,"s":"__session_open_cursor_int","s+":"C8"}}}
,{"t":{"$date":"2024-12-13T18:12:07.498+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BADD5109","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":739,"s":"__wt_open_cursor","s+":"89"}}}
,{"t":{"$date":"2024-12-13T18:12:07.499+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BAE63119","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/cursor/cur_table.c","line":1102,"s":"__wt_curtable_open","s+":"E9"}}}
,{"t":{"$date":"2024-12-13T18:12:07.499+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BADC94AC","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":606,"s":"__session_open_cursor_int","s+":"8C"}}}
,{"t":{"$date":"2024-12-13T18:12:07.500+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BADC909D","module":"mongod.exe","file":".../src/third_party/wiredtiger/src/session/session_api.c","line":802,"s":"__session_open_cursor","s+":"3FD"}}}
,{"t":{"$date":"2024-12-13T18:12:07.501+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B95B3DA1","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp","line":98,"s":"mongo::`anonymous namespace'::_openCursor","s+":"41"}}}
,{"t":{"$date":"2024-12-13T18:12:07.502+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B95B4720","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp","line":146,"s":"mongo::WiredTigerSession::getNewCursor","s+":"20"}}}
,{"t":{"$date":"2024-12-13T18:12:07.503+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B95CA56E","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_record_store.cpp","line":1832,"s":"mongo::WiredTigerRecordStore::getLargestKey","s+":"9E"}}}
,{"t":{"$date":"2024-12-13T18:12:07.507+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B9581672","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":334,"s":"mongo::CollectionImpl::SharedState::SharedState","s+":"2A2"}}}
,{"t":{"$date":"2024-12-13T18:12:07.508+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B9580DF0","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":355,"s":"mongo::CollectionImpl::CollectionImpl","s+":"170"}}}
,{"t":{"$date":"2024-12-13T18:12:07.509+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B958D5F5","module":"mongod.exe","file":".../src/mongo/db/catalog/collection_impl.cpp","line":374,"s":"mongo::CollectionImpl::FactoryImpl::make","s+":"125"}}}
,{"t":{"$date":"2024-12-13T18:12:07.510+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B96051A7","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":479,"s":"mongo::StorageEngineImpl::_initCollection","s+":"257"}}}
,{"t":{"$date":"2024-12-13T18:12:07.511+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B9608A04","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":446,"s":"mongo::StorageEngineImpl::loadCatalog","s+":"1D54"}}}
,{"t":{"$date":"2024-12-13T18:12:07.512+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B9601D0F","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_impl.cpp","line":167,"s":"mongo::StorageEngineImpl::StorageEngineImpl","s+":"1CF"}}}
,{"t":{"$date":"2024-12-13T18:12:07.512+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B95A007F","module":"mongod.exe","file":".../src/mongo/db/storage/wiredtiger/wiredtiger_init.cpp","line":162,"s":"mongo::`anonymous namespace'::WiredTigerFactory::create","s+":"80F"}}}
,{"t":{"$date":"2024-12-13T18:12:07.513+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B9693557","module":"mongod.exe","file":".../src/mongo/db/storage/storage_engine_init.cpp","line":188,"s":"mongo::initializeStorageEngine","s+":"7F7"}}}
,{"t":{"$date":"2024-12-13T18:12:07.526+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B88B9A47","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":597,"s":"`mongo::`anonymous namespace'::_initAndListen'::`2'::<lambda_2>::operator()","s+":"77"}}}
,{"t":{"$date":"2024-12-13T18:12:07.528+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B88BC02A","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":591,"s":"mongo::`anonymous namespace'::_initAndListen","s+":"B3A"}}}
,{"t":{"$date":"2024-12-13T18:12:07.529+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B88BF41E","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":1221,"s":"mongo::`anonymous namespace'::initAndListen","s+":"1E"}}}
,{"t":{"$date":"2024-12-13T18:12:07.530+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B88C27AF","module":"mongod.exe","file":".../src/mongo/db/mongod_main.cpp","line":2224,"s":"mongo::mongod_main","s+":"7BF"}}}
,{"t":{"$date":"2024-12-13T18:12:07.531+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6B88A69BA","module":"mongod.exe","file":".../src/mongo/db/mongod.cpp","line":41,"s":"wmain","s+":"2A"}}}
,{"t":{"$date":"2024-12-13T18:12:07.532+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FF6BB0057DC","module":"mongod.exe","file":"d:/a01/_work/43/s/src/vctools/crt/vcstartup/src/startup/exe_common.inl","line":288,"s":"__scrt_common_main_seh","s+":"10C"}}}
,{"t":{"$date":"2024-12-13T18:12:07.533+02:00"},"s":"I",  "c":"CONTROL",  "id":31445,   "ctx":"initandlisten","msg":"Frame","attr":{"frame":{"a":"7FFEBCA87374","module":"KERNEL32.DLL","s":"BaseThreadInitThunk","s+":"14"}}}
,{"t":{"$date":"2024-12-13T18:12:07.534+02:00"},"s":"I",  "c":"CONTROL",  "id":23132,   "ctx":"initandlisten","msg":"Writing minidump diagnostic file","attr":{"dumpName":"C:\mongodb\bin\mongod.2024-12-13T16-12-07.mdmp"}}
,{"t":{"$date":"2024-12-13T18:12:07.669+02:00"},"s":"F",  "c":"CONTROL",  "id":23137,   "ctx":"initandlisten","msg":"*** immediate exit due to unhandled exception"}
]

Build Info:

{
    "version": "8.0.3",
    "gitVersion": "89d97f2744a2b9851ddfb51bdf22f687562d9b06",
    "modules": [],
    "allocator": "tcmalloc-gperf",
    "environment": {
        "distmod": "windows",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

All the program files are stored under C:mongodb.
I’ve tried using both C:mongodbdata and C:datadb as the data database path.
All users have full access to both database paths.
I’ve tried to uninstalling and reinstalling.
The database directory size seems to always be around 200MB (before both failed and succesful attempts) and the main hard drive volume has more than 100 unused GB.
I’ve tried running the app as an administrator.

Any help would be appreciated.

How to prevent the adjustment of the frame when cropping an image in react native?

How to prevent the adjustment of the frame when cropping an image with react-native-image-crop-picker. Specifically on iOS, I would like the framing to be fixed to width: 700 height: 1000 on iOS and not allow adjusting.

Here’s the snippet below.


const _pickImage = () => {

  ImagePicker.openPicker({
    width: 700, 
    height: 1000, 
    cropping: true,
    cropperToolbarTitle: 'Adjust Image',
    cropperCircleOverlay: false, 
    freeStyleCropEnabled: false,
    hideBottomControls: false, 
    cropperActiveWidgetColor: '#00FF00', 
    cropperStatusBarColor: '#000', 
  })
    .then((image) => {
      setImage(image.path); // Save the selected image path
    })
    .catch((error) => {
      if (error.code !== 'E_PICKER_CANCELLED') {
        Alert.alert('Error', 'An error occurred while picking the image.');
      }
    });
};

enter image description here

How do I make forceatlas2 plugin on CDN based HTML?

I cannot seem to get forceAtlas2 to work with SigmaJS:

Uncaught TypeError: sigmaInstance.startForceAtlas2 is not a function

Everything I see for CDN libraries and force atlas layout is for Sigma v1 and they don’t work. What do I need to include to make this work properly via CDN?

All of the storybook/examples I see are for importing the library, which I can’t do.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Quick Sigma.js Example</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/sigma.js/2.4.0/sigma.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/graphology/0.25.4/graphology.umd.min.js"></script>
    <script src="flows.js"></script>
    <script src="zones.js"></script>
</head>
<body style="background: lightgrey">
<div id="container" style="width: 800px; height: 600px; background: white"></div>
<script>
    const graph = new graphology.Graph({multi: true});
    // flows.forEach(function (flow) {
    //     console.log(flow);
    // });
    // Lay zones out on page...
    zones.forEach(function (c, counter) {
        graph.addNode(c.sys_id, {
            label: `${c.zone_name}`,
            color: c.zone_name.toLowerCase(),
            x: Math.random(),
            y: Math.random(),
            size: 20
        })
    });
    flows.forEach(function (flow) {
        // console.log(`${flow.source_zone} ->  ${flow.destination_zone}`);
        graph.addEdge(flow.source_zone, flow.destination_zone, {size: 2, label: flow.application_name})
    });
    const sigmaInstance = new Sigma(graph, document.getElementById("container"),
        {renderEdgeLabels: true}
    );
    sigmaInstance.startForceAtlas2()
    setTimeout(function(){sigmaInstance.stopForceAtlas2()}, 1000);
</script>
</body>
</html>

Updated Highcharts to latest and now getting Uncaught TypeError: HighchartsMore is not a function

I have a bubble chart was working fine before i updated highcharts now i get the error – Uncaught TypeError: HighchartsMore is not a function it relates to “HighchartsMore(Highcharts);

import Highcharts from 'highcharts';
import HighchartsReact from 'highcharts-react-official';
import HighchartsMore from 'highcharts/highcharts-more';
HighchartsMore(Highcharts);

Im guessing they have moved it? but I cant find any documentation to say what / how i should change my code?

javascript swap two elements in an array issue using arrays destructuring [duplicate]

I’m a novice in Javascript and I was stuck in a leetcode question due to the js syntax, which involves swapping two elements in an array. The complete code in JS is shown below:

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
    const n = nums.length
    const rs = []
    const dfs_swap = (idx, path) => {
        if (idx >= n - 1) {
            rs.push([...path])
            return
        }

        for (let i = idx; i < n; i++) {
            [path[i], path[idx]] = [path[idx], path[i]]
            dfs_swap(idx + 1, path)
            [path[i], path[idx]] = [path[idx], path[i]]
        }

    }
    dfs_swap(0, [...nums])
    return rs
};
// test case below
permute([1,2,3])

But I received the an runtime error below:

Line 17 in solution.js
            [path[i], path[idx]] = [path[idx], path[i]]
                                 ^
TypeError: Cannot set properties of undefined (setting '2')
    Line 17: Char 34 in solution.js (dfs_swap)
    Line 16: Char 13 in solution.js (dfs_swap)
    Line 21: Char 5 in solution.js (permute)
    Line 35: Char 19 in solution.js (Object.<anonymous>)
    Line 16: Char 8 in runner.js (Object.runner)
    Line 24: Char 26 in solution.js (Object.<anonymous>)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
Node.js v20.10.0

I was using the debugger to look into the code at runtime and found everything looked fine there before getting that runtime error. I even tried to run this in my Chrome’s developer console but ended up with the same error.

Then, I only added one thing to solve this error: I added a semicolon after dfs_swap(idx + 1, path), that is:

        for (let i = idx; i < n; i++) {
            [path[i], path[idx]] = [path[idx], path[i]]
            dfs_swap(idx + 1, path);
            [path[i], path[idx]] = [path[idx], path[i]]
        }

After this, I was even more confused about this and ChatGPT failed to give me a plausible answer for that. I pretty much appreciate any help or insights on this, and thank you in advance!

Play Youtube in VSCode

Can I create a VSCode extension which plays a youtube video when I provide a URL inside an iframe.

Is this allowed by VSCode ?

I’m asking because, I tried to develop one and the video is loading in iframe but I’m not able to play and getting error in iframe saying An error occurred. Please try again later.