Nicholai 16cee69250 __Admin dashboard scaffolded with D1 database and R2 file uploads__
This commit implements the core admin dashboard functionality including NextAuth authentication, Cloudflare D1 database integration with complete schema, and Cloudflare R2 file upload system for portfolio images. Features include artist management, appointment scheduling, and data migration capabilities.
2025-09-17 16:08:34 -06:00

205 lines
7.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
0 && (module.exports = {
DOMAttributeNames: null,
default: null,
isEqualNode: null
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
DOMAttributeNames: function() {
return DOMAttributeNames;
},
default: function() {
return initHeadManager;
},
isEqualNode: function() {
return isEqualNode;
}
});
const DOMAttributeNames = {
acceptCharset: "accept-charset",
className: "class",
htmlFor: "for",
httpEquiv: "http-equiv",
noModule: "noModule"
};
function reactElementToDOM(param) {
let { type, props } = param;
const el = document.createElement(type);
for(const p in props){
if (!props.hasOwnProperty(p)) continue;
if (p === "children" || p === "dangerouslySetInnerHTML") continue;
// we don't render undefined props to the DOM
if (props[p] === undefined) continue;
const attr = DOMAttributeNames[p] || p.toLowerCase();
if (type === "script" && (attr === "async" || attr === "defer" || attr === "noModule")) {
el[attr] = !!props[p];
} else {
el.setAttribute(attr, props[p]);
}
}
const { children, dangerouslySetInnerHTML } = props;
if (dangerouslySetInnerHTML) {
el.innerHTML = dangerouslySetInnerHTML.__html || "";
} else if (children) {
el.textContent = typeof children === "string" ? children : Array.isArray(children) ? children.join("") : "";
}
return el;
}
function isEqualNode(oldTag, newTag) {
if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {
const nonce = newTag.getAttribute("nonce");
// Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not
// be stripped if there is no content security policy response header that includes a nonce.
if (nonce && !oldTag.getAttribute("nonce")) {
const cloneTag = newTag.cloneNode(true);
cloneTag.setAttribute("nonce", "");
cloneTag.nonce = nonce;
return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);
}
}
return oldTag.isEqualNode(newTag);
}
let updateElements;
if (process.env.__NEXT_STRICT_NEXT_HEAD) {
updateElements = (type, components)=>{
const headEl = document.querySelector("head");
if (!headEl) return;
const headMetaTags = headEl.querySelectorAll('meta[name="next-head"]') || [];
const oldTags = [];
if (type === "meta") {
const metaCharset = headEl.querySelector("meta[charset]");
if (metaCharset) {
oldTags.push(metaCharset);
}
}
for(let i = 0; i < headMetaTags.length; i++){
var _headTag_tagName;
const metaTag = headMetaTags[i];
const headTag = metaTag.nextSibling;
if ((headTag == null ? void 0 : (_headTag_tagName = headTag.tagName) == null ? void 0 : _headTag_tagName.toLowerCase()) === type) {
oldTags.push(headTag);
}
}
const newTags = components.map(reactElementToDOM).filter((newTag)=>{
for(let k = 0, len = oldTags.length; k < len; k++){
const oldTag = oldTags[k];
if (isEqualNode(oldTag, newTag)) {
oldTags.splice(k, 1);
return false;
}
}
return true;
});
oldTags.forEach((t)=>{
var _t_parentNode;
const metaTag = t.previousSibling;
if (metaTag && metaTag.getAttribute("name") === "next-head") {
var _t_parentNode1;
(_t_parentNode1 = t.parentNode) == null ? void 0 : _t_parentNode1.removeChild(metaTag);
}
(_t_parentNode = t.parentNode) == null ? void 0 : _t_parentNode.removeChild(t);
});
newTags.forEach((t)=>{
var _t_tagName;
const meta = document.createElement("meta");
meta.name = "next-head";
meta.content = "1";
// meta[charset] must be first element so special case
if (!(((_t_tagName = t.tagName) == null ? void 0 : _t_tagName.toLowerCase()) === "meta" && t.getAttribute("charset"))) {
headEl.appendChild(meta);
}
headEl.appendChild(t);
});
};
} else {
updateElements = (type, components)=>{
const headEl = document.getElementsByTagName("head")[0];
const headCountEl = headEl.querySelector("meta[name=next-head-count]");
if (process.env.NODE_ENV !== "production") {
if (!headCountEl) {
console.error("Warning: next-head-count is missing. https://nextjs.org/docs/messages/next-head-count-missing");
return;
}
}
const headCount = Number(headCountEl.content);
const oldTags = [];
for(let i = 0, j = headCountEl.previousElementSibling; i < headCount; i++, j = (j == null ? void 0 : j.previousElementSibling) || null){
var _j_tagName;
if ((j == null ? void 0 : (_j_tagName = j.tagName) == null ? void 0 : _j_tagName.toLowerCase()) === type) {
oldTags.push(j);
}
}
const newTags = components.map(reactElementToDOM).filter((newTag)=>{
for(let k = 0, len = oldTags.length; k < len; k++){
const oldTag = oldTags[k];
if (isEqualNode(oldTag, newTag)) {
oldTags.splice(k, 1);
return false;
}
}
return true;
});
oldTags.forEach((t)=>{
var _t_parentNode;
return (_t_parentNode = t.parentNode) == null ? void 0 : _t_parentNode.removeChild(t);
});
newTags.forEach((t)=>headEl.insertBefore(t, headCountEl));
headCountEl.content = (headCount - oldTags.length + newTags.length).toString();
};
}
function initHeadManager() {
return {
mountedInstances: new Set(),
updateHead: (head)=>{
const tags = {};
head.forEach((h)=>{
if (// If the font tag is loaded only on client navigation
// it won't be inlined. In this case revert to the original behavior
h.type === "link" && h.props["data-optimized-fonts"]) {
if (document.querySelector('style[data-href="' + h.props["data-href"] + '"]')) {
return;
} else {
h.props.href = h.props["data-href"];
h.props["data-href"] = undefined;
}
}
const components = tags[h.type] || [];
components.push(h);
tags[h.type] = components;
});
const titleComponent = tags.title ? tags.title[0] : null;
let title = "";
if (titleComponent) {
const { children } = titleComponent.props;
title = typeof children === "string" ? children : Array.isArray(children) ? children.join("") : "";
}
if (title !== document.title) document.title = title;
[
"meta",
"base",
"link",
"style",
"script"
].forEach((type)=>{
updateElements(type, tags[type] || []);
});
}
};
}
if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') {
Object.defineProperty(exports.default, '__esModule', { value: true });
Object.assign(exports.default, exports);
module.exports = exports.default;
}
//# sourceMappingURL=head-manager.js.map