19240 lines
1.0 MiB
Plaintext
19240 lines
1.0 MiB
Plaintext
module.exports = [
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
module.exports = __turbopack_context__.r("[externals]/next/dist/compiled/next-server/app-page-turbo.runtime.dev.js [external] (next/dist/compiled/next-server/app-page-turbo.runtime.dev.js, cjs)");
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
}
|
|
} //# sourceMappingURL=module.compiled.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['react-ssr'].React; //# sourceMappingURL=react.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
function _getRequireWildcardCache(nodeInterop) {
|
|
if (typeof WeakMap !== "function") return null;
|
|
var cacheBabelInterop = new WeakMap();
|
|
var cacheNodeInterop = new WeakMap();
|
|
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
})(nodeInterop);
|
|
}
|
|
function _interop_require_wildcard(obj, nodeInterop) {
|
|
if (!nodeInterop && obj && obj.__esModule) return obj;
|
|
if (obj === null || typeof obj !== "object" && typeof obj !== "function") return {
|
|
default: obj
|
|
};
|
|
var cache = _getRequireWildcardCache(nodeInterop);
|
|
if (cache && cache.has(obj)) return cache.get(obj);
|
|
var newObj = {
|
|
__proto__: null
|
|
};
|
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
for(var key in obj){
|
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
|
|
else newObj[key] = obj[key];
|
|
}
|
|
}
|
|
newObj.default = obj;
|
|
if (cache) cache.set(obj, newObj);
|
|
return newObj;
|
|
}
|
|
exports._ = _interop_require_wildcard;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['contexts'].AppRouterContext; //# sourceMappingURL=app-router-context.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['contexts'].HooksClientContext; //# sourceMappingURL=hooks-client-context.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/segment.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
DEFAULT_SEGMENT_KEY: null,
|
|
PAGE_SEGMENT_KEY: null,
|
|
addSearchParamsIfPageSegment: null,
|
|
computeSelectedLayoutSegment: null,
|
|
getSegmentValue: null,
|
|
getSelectedLayoutSegmentPath: null,
|
|
isGroupSegment: null,
|
|
isParallelRouteSegment: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
DEFAULT_SEGMENT_KEY: function() {
|
|
return DEFAULT_SEGMENT_KEY;
|
|
},
|
|
PAGE_SEGMENT_KEY: function() {
|
|
return PAGE_SEGMENT_KEY;
|
|
},
|
|
addSearchParamsIfPageSegment: function() {
|
|
return addSearchParamsIfPageSegment;
|
|
},
|
|
computeSelectedLayoutSegment: function() {
|
|
return computeSelectedLayoutSegment;
|
|
},
|
|
getSegmentValue: function() {
|
|
return getSegmentValue;
|
|
},
|
|
getSelectedLayoutSegmentPath: function() {
|
|
return getSelectedLayoutSegmentPath;
|
|
},
|
|
isGroupSegment: function() {
|
|
return isGroupSegment;
|
|
},
|
|
isParallelRouteSegment: function() {
|
|
return isParallelRouteSegment;
|
|
}
|
|
});
|
|
function getSegmentValue(segment) {
|
|
return Array.isArray(segment) ? segment[1] : segment;
|
|
}
|
|
function isGroupSegment(segment) {
|
|
// Use array[0] for performant purpose
|
|
return segment[0] === '(' && segment.endsWith(')');
|
|
}
|
|
function isParallelRouteSegment(segment) {
|
|
return segment.startsWith('@') && segment !== '@children';
|
|
}
|
|
function addSearchParamsIfPageSegment(segment, searchParams) {
|
|
const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);
|
|
if (isPageSegment) {
|
|
const stringifiedQuery = JSON.stringify(searchParams);
|
|
return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;
|
|
}
|
|
return segment;
|
|
}
|
|
function computeSelectedLayoutSegment(segments, parallelRouteKey) {
|
|
if (!segments || segments.length === 0) {
|
|
return null;
|
|
}
|
|
// For 'children', use first segment; for other parallel routes, use last segment
|
|
const rawSegment = parallelRouteKey === 'children' ? segments[0] : segments[segments.length - 1];
|
|
// If the default slot is showing, return null since it's not technically "selected" (it's a fallback)
|
|
// Returning an internal value like `__DEFAULT__` would be confusing
|
|
return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment;
|
|
}
|
|
function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first = true, segmentPath = []) {
|
|
let node;
|
|
if (first) {
|
|
// Use the provided parallel route key on the first parallel route
|
|
node = tree[1][parallelRouteKey];
|
|
} else {
|
|
// After first parallel route prefer children, if there's no children pick the first parallel route.
|
|
const parallelRoutes = tree[1];
|
|
node = parallelRoutes.children ?? Object.values(parallelRoutes)[0];
|
|
}
|
|
if (!node) return segmentPath;
|
|
const segment = node[0];
|
|
let segmentValue = getSegmentValue(segment);
|
|
if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {
|
|
return segmentPath;
|
|
}
|
|
segmentPath.push(segmentValue);
|
|
return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);
|
|
}
|
|
const PAGE_SEGMENT_KEY = '__PAGE__';
|
|
const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* ReadonlyURLSearchParams implementation shared between client and server.
|
|
* This file is intentionally not marked as 'use client' or 'use server'
|
|
* so it can be imported by both environments.
|
|
*/ /** @internal */ Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "ReadonlyURLSearchParams", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return ReadonlyURLSearchParams;
|
|
}
|
|
});
|
|
class ReadonlyURLSearchParamsError extends Error {
|
|
constructor(){
|
|
super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');
|
|
}
|
|
}
|
|
class ReadonlyURLSearchParams extends URLSearchParams {
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
}
|
|
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=readonly-url-search-params.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['contexts'].ServerInsertedHtml; //# sourceMappingURL=server-inserted-html.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unrecognized-action-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
UnrecognizedActionError: null,
|
|
unstable_isUnrecognizedActionError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
UnrecognizedActionError: function() {
|
|
return UnrecognizedActionError;
|
|
},
|
|
unstable_isUnrecognizedActionError: function() {
|
|
return unstable_isUnrecognizedActionError;
|
|
}
|
|
});
|
|
class UnrecognizedActionError extends Error {
|
|
constructor(...args){
|
|
super(...args);
|
|
this.name = 'UnrecognizedActionError';
|
|
}
|
|
}
|
|
function unstable_isUnrecognizedActionError(error) {
|
|
return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError);
|
|
}
|
|
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=unrecognized-action-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-status-code.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "RedirectStatusCode", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return RedirectStatusCode;
|
|
}
|
|
});
|
|
var RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {
|
|
RedirectStatusCode[RedirectStatusCode["SeeOther"] = 303] = "SeeOther";
|
|
RedirectStatusCode[RedirectStatusCode["TemporaryRedirect"] = 307] = "TemporaryRedirect";
|
|
RedirectStatusCode[RedirectStatusCode["PermanentRedirect"] = 308] = "PermanentRedirect";
|
|
return RedirectStatusCode;
|
|
}({});
|
|
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=redirect-status-code.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
REDIRECT_ERROR_CODE: null,
|
|
RedirectType: null,
|
|
isRedirectError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
REDIRECT_ERROR_CODE: function() {
|
|
return REDIRECT_ERROR_CODE;
|
|
},
|
|
RedirectType: function() {
|
|
return RedirectType;
|
|
},
|
|
isRedirectError: function() {
|
|
return isRedirectError;
|
|
}
|
|
});
|
|
const _redirectstatuscode = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-status-code.js [app-ssr] (ecmascript)");
|
|
const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';
|
|
var RedirectType = /*#__PURE__*/ function(RedirectType) {
|
|
RedirectType["push"] = "push";
|
|
RedirectType["replace"] = "replace";
|
|
return RedirectType;
|
|
}({});
|
|
function isRedirectError(error) {
|
|
if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {
|
|
return false;
|
|
}
|
|
const digest = error.digest.split(';');
|
|
const [errorCode, type] = digest;
|
|
const destination = digest.slice(2, -2).join(';');
|
|
const status = digest.at(-2);
|
|
const statusCode = Number(status);
|
|
return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;
|
|
}
|
|
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=redirect-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
getRedirectError: null,
|
|
getRedirectStatusCodeFromError: null,
|
|
getRedirectTypeFromError: null,
|
|
getURLFromRedirectError: null,
|
|
permanentRedirect: null,
|
|
redirect: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
getRedirectError: function() {
|
|
return getRedirectError;
|
|
},
|
|
getRedirectStatusCodeFromError: function() {
|
|
return getRedirectStatusCodeFromError;
|
|
},
|
|
getRedirectTypeFromError: function() {
|
|
return getRedirectTypeFromError;
|
|
},
|
|
getURLFromRedirectError: function() {
|
|
return getURLFromRedirectError;
|
|
},
|
|
permanentRedirect: function() {
|
|
return permanentRedirect;
|
|
},
|
|
redirect: function() {
|
|
return redirect;
|
|
}
|
|
});
|
|
const _redirectstatuscode = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-status-code.js [app-ssr] (ecmascript)");
|
|
const _redirecterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
const actionAsyncStorage = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[externals]/next/dist/server/app-render/action-async-storage.external.js [external] (next/dist/server/app-render/action-async-storage.external.js, cjs)").actionAsyncStorage : "TURBOPACK unreachable";
|
|
function getRedirectError(url, type, statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect) {
|
|
const error = Object.defineProperty(new Error(_redirecterror.REDIRECT_ERROR_CODE), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = `${_redirecterror.REDIRECT_ERROR_CODE};${type};${url};${statusCode};`;
|
|
return error;
|
|
}
|
|
function redirect(/** The URL to redirect to */ url, type) {
|
|
type ??= actionAsyncStorage?.getStore()?.isAction ? _redirecterror.RedirectType.push : _redirecterror.RedirectType.replace;
|
|
throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.TemporaryRedirect);
|
|
}
|
|
function permanentRedirect(/** The URL to redirect to */ url, type = _redirecterror.RedirectType.replace) {
|
|
throw getRedirectError(url, type, _redirectstatuscode.RedirectStatusCode.PermanentRedirect);
|
|
}
|
|
function getURLFromRedirectError(error) {
|
|
if (!(0, _redirecterror.isRedirectError)(error)) return null;
|
|
// Slices off the beginning of the digest that contains the code and the
|
|
// separating ';'.
|
|
return error.digest.split(';').slice(2, -2).join(';');
|
|
}
|
|
function getRedirectTypeFromError(error) {
|
|
if (!(0, _redirecterror.isRedirectError)(error)) {
|
|
throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", {
|
|
value: "E260",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return error.digest.split(';', 2)[1];
|
|
}
|
|
function getRedirectStatusCodeFromError(error) {
|
|
if (!(0, _redirecterror.isRedirectError)(error)) {
|
|
throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", {
|
|
value: "E260",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return Number(error.digest.split(';').at(-2));
|
|
}
|
|
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=redirect.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
HTTPAccessErrorStatus: null,
|
|
HTTP_ERROR_FALLBACK_ERROR_CODE: null,
|
|
getAccessFallbackErrorTypeByStatus: null,
|
|
getAccessFallbackHTTPStatus: null,
|
|
isHTTPAccessFallbackError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
HTTPAccessErrorStatus: function() {
|
|
return HTTPAccessErrorStatus;
|
|
},
|
|
HTTP_ERROR_FALLBACK_ERROR_CODE: function() {
|
|
return HTTP_ERROR_FALLBACK_ERROR_CODE;
|
|
},
|
|
getAccessFallbackErrorTypeByStatus: function() {
|
|
return getAccessFallbackErrorTypeByStatus;
|
|
},
|
|
getAccessFallbackHTTPStatus: function() {
|
|
return getAccessFallbackHTTPStatus;
|
|
},
|
|
isHTTPAccessFallbackError: function() {
|
|
return isHTTPAccessFallbackError;
|
|
}
|
|
});
|
|
const HTTPAccessErrorStatus = {
|
|
NOT_FOUND: 404,
|
|
FORBIDDEN: 403,
|
|
UNAUTHORIZED: 401
|
|
};
|
|
const ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));
|
|
const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';
|
|
function isHTTPAccessFallbackError(error) {
|
|
if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {
|
|
return false;
|
|
}
|
|
const [prefix, httpStatus] = error.digest.split(';');
|
|
return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));
|
|
}
|
|
function getAccessFallbackHTTPStatus(error) {
|
|
const httpStatus = error.digest.split(';')[1];
|
|
return Number(httpStatus);
|
|
}
|
|
function getAccessFallbackErrorTypeByStatus(status) {
|
|
switch(status){
|
|
case 401:
|
|
return 'unauthorized';
|
|
case 403:
|
|
return 'forbidden';
|
|
case 404:
|
|
return 'not-found';
|
|
default:
|
|
return;
|
|
}
|
|
}
|
|
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=http-access-fallback.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/not-found.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "notFound", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return notFound;
|
|
}
|
|
});
|
|
const _httpaccessfallback = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
/**
|
|
* This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `notFound()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
* - In a Server Component, this will insert a `<meta name="robots" content="noindex" />` meta tag and set the status code to 404.
|
|
* - In a Route Handler or Server Action, it will serve a 404 to the caller.
|
|
*
|
|
* Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)
|
|
*/ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;
|
|
function notFound() {
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
}
|
|
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=not-found.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/forbidden.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "forbidden", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return forbidden;
|
|
}
|
|
});
|
|
const _httpaccessfallback = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
// TODO: Add `forbidden` docs
|
|
/**
|
|
* @experimental
|
|
* This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `forbidden()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
* Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)
|
|
*/ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};403`;
|
|
function forbidden() {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
throw Object.defineProperty(new Error(`\`forbidden()\` is experimental and only allowed to be enabled when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
|
|
value: "E488",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
}
|
|
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=forbidden.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unauthorized.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "unauthorized", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return unauthorized;
|
|
}
|
|
});
|
|
const _httpaccessfallback = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
// TODO: Add `unauthorized` docs
|
|
/**
|
|
* @experimental
|
|
* This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `unauthorized()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
*
|
|
* Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)
|
|
*/ const DIGEST = `${_httpaccessfallback.HTTP_ERROR_FALLBACK_ERROR_CODE};401`;
|
|
function unauthorized() {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
throw Object.defineProperty(new Error(`\`unauthorized()\` is experimental and only allowed to be used when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
|
|
value: "E411",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
}
|
|
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=unauthorized.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
isHangingPromiseRejectionError: null,
|
|
makeDevtoolsIOAwarePromise: null,
|
|
makeHangingPromise: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
isHangingPromiseRejectionError: function() {
|
|
return isHangingPromiseRejectionError;
|
|
},
|
|
makeDevtoolsIOAwarePromise: function() {
|
|
return makeDevtoolsIOAwarePromise;
|
|
},
|
|
makeHangingPromise: function() {
|
|
return makeHangingPromise;
|
|
}
|
|
});
|
|
function isHangingPromiseRejectionError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err)) {
|
|
return false;
|
|
}
|
|
return err.digest === HANGING_PROMISE_REJECTION;
|
|
}
|
|
const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';
|
|
class HangingPromiseRejectionError extends Error {
|
|
constructor(route, expression){
|
|
super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;
|
|
}
|
|
}
|
|
const abortListenersBySignal = new WeakMap();
|
|
function makeHangingPromise(signal, route, expression) {
|
|
if (signal.aborted) {
|
|
return Promise.reject(new HangingPromiseRejectionError(route, expression));
|
|
} else {
|
|
const hangingPromise = new Promise((_, reject)=>{
|
|
const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));
|
|
let currentListeners = abortListenersBySignal.get(signal);
|
|
if (currentListeners) {
|
|
currentListeners.push(boundRejection);
|
|
} else {
|
|
const listeners = [
|
|
boundRejection
|
|
];
|
|
abortListenersBySignal.set(signal, listeners);
|
|
signal.addEventListener('abort', ()=>{
|
|
for(let i = 0; i < listeners.length; i++){
|
|
listeners[i]();
|
|
}
|
|
}, {
|
|
once: true
|
|
});
|
|
}
|
|
});
|
|
// We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so
|
|
// we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct
|
|
// your own promise out of it you'll need to ensure you handle the error when it rejects.
|
|
hangingPromise.catch(ignoreReject);
|
|
return hangingPromise;
|
|
}
|
|
}
|
|
function ignoreReject() {}
|
|
function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) {
|
|
if (requestStore.stagedRendering) {
|
|
// We resolve each stage in a timeout, so React DevTools will pick this up as IO.
|
|
return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying);
|
|
}
|
|
// in React DevTools if we resolve in a setTimeout we will observe
|
|
// the promise resolution as something that can suspend a boundary or root.
|
|
return new Promise((resolve)=>{
|
|
// Must use setTimeout to be considered IO React DevTools. setImmediate will not work.
|
|
setTimeout(()=>{
|
|
resolve(underlying);
|
|
}, 0);
|
|
});
|
|
} //# sourceMappingURL=dynamic-rendering-utils.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/lib/router-utils/is-postpone.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "isPostpone", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return isPostpone;
|
|
}
|
|
});
|
|
const REACT_POSTPONE_TYPE = Symbol.for('react.postpone');
|
|
function isPostpone(error) {
|
|
return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;
|
|
} //# sourceMappingURL=is-postpone.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
// This has to be a shared module which is shared between client component error boundary and dynamic component
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
BailoutToCSRError: null,
|
|
isBailoutToCSRError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
BailoutToCSRError: function() {
|
|
return BailoutToCSRError;
|
|
},
|
|
isBailoutToCSRError: function() {
|
|
return isBailoutToCSRError;
|
|
}
|
|
});
|
|
const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';
|
|
class BailoutToCSRError extends Error {
|
|
constructor(reason){
|
|
super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR;
|
|
}
|
|
}
|
|
function isBailoutToCSRError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err)) {
|
|
return false;
|
|
}
|
|
return err.digest === BAILOUT_TO_CSR;
|
|
} //# sourceMappingURL=bailout-to-csr.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/is-next-router-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "isNextRouterError", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return isNextRouterError;
|
|
}
|
|
});
|
|
const _httpaccessfallback = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
const _redirecterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
function isNextRouterError(error) {
|
|
return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);
|
|
}
|
|
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=is-next-router-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
DynamicServerError: null,
|
|
isDynamicServerError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
DynamicServerError: function() {
|
|
return DynamicServerError;
|
|
},
|
|
isDynamicServerError: function() {
|
|
return isDynamicServerError;
|
|
}
|
|
});
|
|
const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';
|
|
class DynamicServerError extends Error {
|
|
constructor(description){
|
|
super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE;
|
|
}
|
|
}
|
|
function isDynamicServerError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {
|
|
return false;
|
|
}
|
|
return err.digest === DYNAMIC_ERROR_CODE;
|
|
}
|
|
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=hooks-server-context.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
StaticGenBailoutError: null,
|
|
isStaticGenBailoutError: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
StaticGenBailoutError: function() {
|
|
return StaticGenBailoutError;
|
|
},
|
|
isStaticGenBailoutError: function() {
|
|
return isStaticGenBailoutError;
|
|
}
|
|
});
|
|
const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';
|
|
class StaticGenBailoutError extends Error {
|
|
constructor(...args){
|
|
super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;
|
|
}
|
|
}
|
|
function isStaticGenBailoutError(error) {
|
|
if (typeof error !== 'object' || error === null || !('code' in error)) {
|
|
return false;
|
|
}
|
|
return error.code === NEXT_STATIC_GEN_BAILOUT;
|
|
}
|
|
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=static-generation-bailout.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
METADATA_BOUNDARY_NAME: null,
|
|
OUTLET_BOUNDARY_NAME: null,
|
|
ROOT_LAYOUT_BOUNDARY_NAME: null,
|
|
VIEWPORT_BOUNDARY_NAME: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
METADATA_BOUNDARY_NAME: function() {
|
|
return METADATA_BOUNDARY_NAME;
|
|
},
|
|
OUTLET_BOUNDARY_NAME: function() {
|
|
return OUTLET_BOUNDARY_NAME;
|
|
},
|
|
ROOT_LAYOUT_BOUNDARY_NAME: function() {
|
|
return ROOT_LAYOUT_BOUNDARY_NAME;
|
|
},
|
|
VIEWPORT_BOUNDARY_NAME: function() {
|
|
return VIEWPORT_BOUNDARY_NAME;
|
|
}
|
|
});
|
|
const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';
|
|
const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';
|
|
const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';
|
|
const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'; //# sourceMappingURL=boundary-constants.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
atLeastOneTask: null,
|
|
scheduleImmediate: null,
|
|
scheduleOnNextTick: null,
|
|
waitAtLeastOneReactRenderTask: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
atLeastOneTask: function() {
|
|
return atLeastOneTask;
|
|
},
|
|
scheduleImmediate: function() {
|
|
return scheduleImmediate;
|
|
},
|
|
scheduleOnNextTick: function() {
|
|
return scheduleOnNextTick;
|
|
},
|
|
waitAtLeastOneReactRenderTask: function() {
|
|
return waitAtLeastOneReactRenderTask;
|
|
}
|
|
});
|
|
const scheduleOnNextTick = (cb)=>{
|
|
// We use Promise.resolve().then() here so that the operation is scheduled at
|
|
// the end of the promise job queue, we then add it to the next process tick
|
|
// to ensure it's evaluated afterwards.
|
|
//
|
|
// This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255
|
|
//
|
|
Promise.resolve().then(()=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
process.nextTick(cb);
|
|
}
|
|
});
|
|
};
|
|
const scheduleImmediate = (cb)=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
setImmediate(cb);
|
|
}
|
|
};
|
|
function atLeastOneTask() {
|
|
return new Promise((resolve)=>scheduleImmediate(resolve));
|
|
}
|
|
function waitAtLeastOneReactRenderTask() {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
return new Promise((r)=>setImmediate(r));
|
|
}
|
|
} //# sourceMappingURL=scheduler.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "InvariantError", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return InvariantError;
|
|
}
|
|
});
|
|
class InvariantError extends Error {
|
|
constructor(message, options){
|
|
super(`Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`, options);
|
|
this.name = 'InvariantError';
|
|
}
|
|
} //# sourceMappingURL=invariant-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "createPromiseWithResolvers", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return createPromiseWithResolvers;
|
|
}
|
|
});
|
|
function createPromiseWithResolvers() {
|
|
// Shim of Stage 4 Promise.withResolvers proposal
|
|
let resolve;
|
|
let reject;
|
|
const promise = new Promise((res, rej)=>{
|
|
resolve = res;
|
|
reject = rej;
|
|
});
|
|
return {
|
|
resolve: resolve,
|
|
reject: reject,
|
|
promise
|
|
};
|
|
} //# sourceMappingURL=promise-with-resolvers.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
RenderStage: null,
|
|
StagedRenderingController: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
RenderStage: function() {
|
|
return RenderStage;
|
|
},
|
|
StagedRenderingController: function() {
|
|
return StagedRenderingController;
|
|
}
|
|
});
|
|
const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
const _promisewithresolvers = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.js [app-ssr] (ecmascript)");
|
|
var RenderStage = /*#__PURE__*/ function(RenderStage) {
|
|
RenderStage[RenderStage["Static"] = 1] = "Static";
|
|
RenderStage[RenderStage["Runtime"] = 2] = "Runtime";
|
|
RenderStage[RenderStage["Dynamic"] = 3] = "Dynamic";
|
|
return RenderStage;
|
|
}({});
|
|
class StagedRenderingController {
|
|
constructor(abortSignal = null){
|
|
this.abortSignal = abortSignal;
|
|
this.currentStage = 1;
|
|
this.runtimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
|
|
this.dynamicStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)();
|
|
if (abortSignal) {
|
|
abortSignal.addEventListener('abort', ()=>{
|
|
const { reason } = abortSignal;
|
|
if (this.currentStage < 2) {
|
|
this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections
|
|
;
|
|
this.runtimeStagePromise.reject(reason);
|
|
}
|
|
if (this.currentStage < 3) {
|
|
this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections
|
|
;
|
|
this.dynamicStagePromise.reject(reason);
|
|
}
|
|
}, {
|
|
once: true
|
|
});
|
|
}
|
|
}
|
|
advanceStage(stage) {
|
|
// If we're already at the target stage or beyond, do nothing.
|
|
// (this can happen e.g. if sync IO advanced us to the dynamic stage)
|
|
if (this.currentStage >= stage) {
|
|
return;
|
|
}
|
|
this.currentStage = stage;
|
|
// Note that we might be going directly from Static to Dynamic,
|
|
// so we need to resolve the runtime stage as well.
|
|
if (stage >= 2) {
|
|
this.runtimeStagePromise.resolve();
|
|
}
|
|
if (stage >= 3) {
|
|
this.dynamicStagePromise.resolve();
|
|
}
|
|
}
|
|
getStagePromise(stage) {
|
|
switch(stage){
|
|
case 2:
|
|
{
|
|
return this.runtimeStagePromise.promise;
|
|
}
|
|
case 3:
|
|
{
|
|
return this.dynamicStagePromise.promise;
|
|
}
|
|
default:
|
|
{
|
|
stage;
|
|
throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", {
|
|
value: "E881",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
}
|
|
waitForStage(stage) {
|
|
return this.getStagePromise(stage);
|
|
}
|
|
delayUntilStage(stage, displayName, resolvedValue) {
|
|
const ioTriggerPromise = this.getStagePromise(stage);
|
|
const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue);
|
|
// Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.
|
|
// (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).
|
|
// We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.
|
|
if (this.abortSignal) {
|
|
promise.catch(ignoreReject);
|
|
}
|
|
return promise;
|
|
}
|
|
}
|
|
function ignoreReject() {}
|
|
// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,
|
|
// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`
|
|
// is confusing, we should clean it up.
|
|
function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) {
|
|
// If we create a `new Promise` and give it a displayName
|
|
// (with no userspace code above us in the stack)
|
|
// React Devtools will use it as the IO cause when determining "suspended by".
|
|
// In particular, it should shadow any inner IO that resolved/rejected the promise
|
|
// (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)
|
|
const promise = new Promise((resolve, reject)=>{
|
|
ioTrigger.then(resolve.bind(null, resolvedValue), reject);
|
|
});
|
|
if (displayName !== undefined) {
|
|
// @ts-expect-error
|
|
promise.displayName = displayName;
|
|
}
|
|
return promise;
|
|
} //# sourceMappingURL=staged-rendering.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* The functions provided by this module are used to communicate certain properties
|
|
* about the currently running code so that Next.js can make decisions on how to handle
|
|
* the current execution in different rendering modes such as pre-rendering, resuming, and SSR.
|
|
*
|
|
* Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.
|
|
* Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts
|
|
* of a React tree as dynamic while still keeping other parts static. There are really two different kinds of
|
|
* Dynamic indications.
|
|
*
|
|
* The first is simply an intention to be dynamic. unstable_noStore is an example of this where
|
|
* the currently executing code simply declares that the current scope is dynamic but if you use it
|
|
* inside unstable_cache it can still be cached. This type of indication can be removed if we ever
|
|
* make the default dynamic to begin with because the only way you would ever be static is inside
|
|
* a cache scope which this indication does not affect.
|
|
*
|
|
* The second is an indication that a dynamic data source was read. This is a stronger form of dynamic
|
|
* because it means that it is inappropriate to cache this at all. using a dynamic data source inside
|
|
* unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should
|
|
* read that data outside the cache and pass it in as an argument to the cached function.
|
|
*/ Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
Postpone: null,
|
|
PreludeState: null,
|
|
abortAndThrowOnSynchronousRequestDataAccess: null,
|
|
abortOnSynchronousPlatformIOAccess: null,
|
|
accessedDynamicData: null,
|
|
annotateDynamicAccess: null,
|
|
consumeDynamicAccess: null,
|
|
createDynamicTrackingState: null,
|
|
createDynamicValidationState: null,
|
|
createHangingInputAbortSignal: null,
|
|
createRenderInBrowserAbortSignal: null,
|
|
delayUntilRuntimeStage: null,
|
|
formatDynamicAPIAccesses: null,
|
|
getFirstDynamicReason: null,
|
|
isDynamicPostpone: null,
|
|
isPrerenderInterruptedError: null,
|
|
logDisallowedDynamicError: null,
|
|
markCurrentScopeAsDynamic: null,
|
|
postponeWithTracking: null,
|
|
throwIfDisallowedDynamic: null,
|
|
throwToInterruptStaticGeneration: null,
|
|
trackAllowedDynamicAccess: null,
|
|
trackDynamicDataInDynamicRender: null,
|
|
trackSynchronousPlatformIOAccessInDev: null,
|
|
useDynamicRouteParams: null,
|
|
useDynamicSearchParams: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
Postpone: function() {
|
|
return Postpone;
|
|
},
|
|
PreludeState: function() {
|
|
return PreludeState;
|
|
},
|
|
abortAndThrowOnSynchronousRequestDataAccess: function() {
|
|
return abortAndThrowOnSynchronousRequestDataAccess;
|
|
},
|
|
abortOnSynchronousPlatformIOAccess: function() {
|
|
return abortOnSynchronousPlatformIOAccess;
|
|
},
|
|
accessedDynamicData: function() {
|
|
return accessedDynamicData;
|
|
},
|
|
annotateDynamicAccess: function() {
|
|
return annotateDynamicAccess;
|
|
},
|
|
consumeDynamicAccess: function() {
|
|
return consumeDynamicAccess;
|
|
},
|
|
createDynamicTrackingState: function() {
|
|
return createDynamicTrackingState;
|
|
},
|
|
createDynamicValidationState: function() {
|
|
return createDynamicValidationState;
|
|
},
|
|
createHangingInputAbortSignal: function() {
|
|
return createHangingInputAbortSignal;
|
|
},
|
|
createRenderInBrowserAbortSignal: function() {
|
|
return createRenderInBrowserAbortSignal;
|
|
},
|
|
delayUntilRuntimeStage: function() {
|
|
return delayUntilRuntimeStage;
|
|
},
|
|
formatDynamicAPIAccesses: function() {
|
|
return formatDynamicAPIAccesses;
|
|
},
|
|
getFirstDynamicReason: function() {
|
|
return getFirstDynamicReason;
|
|
},
|
|
isDynamicPostpone: function() {
|
|
return isDynamicPostpone;
|
|
},
|
|
isPrerenderInterruptedError: function() {
|
|
return isPrerenderInterruptedError;
|
|
},
|
|
logDisallowedDynamicError: function() {
|
|
return logDisallowedDynamicError;
|
|
},
|
|
markCurrentScopeAsDynamic: function() {
|
|
return markCurrentScopeAsDynamic;
|
|
},
|
|
postponeWithTracking: function() {
|
|
return postponeWithTracking;
|
|
},
|
|
throwIfDisallowedDynamic: function() {
|
|
return throwIfDisallowedDynamic;
|
|
},
|
|
throwToInterruptStaticGeneration: function() {
|
|
return throwToInterruptStaticGeneration;
|
|
},
|
|
trackAllowedDynamicAccess: function() {
|
|
return trackAllowedDynamicAccess;
|
|
},
|
|
trackDynamicDataInDynamicRender: function() {
|
|
return trackDynamicDataInDynamicRender;
|
|
},
|
|
trackSynchronousPlatformIOAccessInDev: function() {
|
|
return trackSynchronousPlatformIOAccessInDev;
|
|
},
|
|
useDynamicRouteParams: function() {
|
|
return useDynamicRouteParams;
|
|
},
|
|
useDynamicSearchParams: function() {
|
|
return useDynamicSearchParams;
|
|
}
|
|
});
|
|
const _react = /*#__PURE__*/ _interop_require_default(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"));
|
|
const _hooksservercontext = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-ssr] (ecmascript)");
|
|
const _staticgenerationbailout = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.js [app-ssr] (ecmascript)");
|
|
const _workunitasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)");
|
|
const _workasyncstorageexternal = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)");
|
|
const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
const _boundaryconstants = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.js [app-ssr] (ecmascript)");
|
|
const _scheduler = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.js [app-ssr] (ecmascript)");
|
|
const _bailouttocsr = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)");
|
|
const _invarianterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
const _stagedrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.js [app-ssr] (ecmascript)");
|
|
function _interop_require_default(obj) {
|
|
return obj && obj.__esModule ? obj : {
|
|
default: obj
|
|
};
|
|
}
|
|
const hasPostpone = typeof _react.default.unstable_postpone === 'function';
|
|
function createDynamicTrackingState(isDebugDynamicAccesses) {
|
|
return {
|
|
isDebugDynamicAccesses,
|
|
dynamicAccesses: [],
|
|
syncDynamicErrorWithStack: null
|
|
};
|
|
}
|
|
function createDynamicValidationState() {
|
|
return {
|
|
hasSuspenseAboveBody: false,
|
|
hasDynamicMetadata: false,
|
|
hasDynamicViewport: false,
|
|
hasAllowedDynamic: false,
|
|
dynamicErrors: []
|
|
};
|
|
}
|
|
function getFirstDynamicReason(trackingState) {
|
|
var _trackingState_dynamicAccesses_;
|
|
return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;
|
|
}
|
|
function markCurrentScopeAsDynamic(store, workUnitStore, expression) {
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
// Inside cache scopes, marking a scope as dynamic has no effect,
|
|
// because the outer cache scope creates a cache boundary. This is
|
|
// subtly different from reading a dynamic data source, which is
|
|
// forbidden inside a cache scope.
|
|
return;
|
|
case 'private-cache':
|
|
// A private cache scope is already dynamic by definition.
|
|
return;
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
case 'request':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
// If we're forcing dynamic rendering or we're forcing static rendering, we
|
|
// don't need to do anything here because the entire page is already dynamic
|
|
// or it's static and it should not throw or postpone here.
|
|
if (store.forceDynamic || store.forceStatic) return;
|
|
if (store.dynamicShouldError) {
|
|
throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", {
|
|
value: "E553",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender-ppr':
|
|
return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);
|
|
case 'prerender-legacy':
|
|
workUnitStore.revalidate = 0;
|
|
// We aren't prerendering, but we are generating a static page. We need
|
|
// to bail out of static generation.
|
|
const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
|
value: "E550",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
store.dynamicUsageDescription = expression;
|
|
store.dynamicUsageStack = err.stack;
|
|
throw err;
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
workUnitStore.usedDynamic = true;
|
|
}
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
}
|
|
function throwToInterruptStaticGeneration(expression, store, prerenderStore) {
|
|
// We aren't prerendering but we are generating a static page. We need to bail out of static generation
|
|
const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
|
value: "E558",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
prerenderStore.revalidate = 0;
|
|
store.dynamicUsageDescription = expression;
|
|
store.dynamicUsageStack = err.stack;
|
|
throw err;
|
|
}
|
|
function trackDynamicDataInDynamicRender(workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
// Inside cache scopes, marking a scope as dynamic has no effect,
|
|
// because the outer cache scope creates a cache boundary. This is
|
|
// subtly different from reading a dynamic data source, which is
|
|
// forbidden inside a cache scope.
|
|
return;
|
|
case 'private-cache':
|
|
// A private cache scope is already dynamic by definition.
|
|
return;
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
case 'prerender-client':
|
|
break;
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
workUnitStore.usedDynamic = true;
|
|
}
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {
|
|
const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;
|
|
const error = createPrerenderInterruptedError(reason);
|
|
prerenderStore.controller.abort(error);
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
// When we aren't debugging, we don't need to create another error for the
|
|
// stack trace.
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
}
|
|
function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
|
// It is important that we set this tracking value after aborting. Aborts are executed
|
|
// synchronously except for the case where you abort during render itself. By setting this
|
|
// value late we can use it to determine if any of the aborted tasks are the task that
|
|
// called the sync IO expression in the first place.
|
|
if (dynamicTracking) {
|
|
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
|
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
|
}
|
|
}
|
|
}
|
|
function trackSynchronousPlatformIOAccessInDev(requestStore) {
|
|
// We don't actually have a controller to abort but we do the semantic equivalent by
|
|
// advancing the request store out of the prerender stage
|
|
if (requestStore.stagedRendering) {
|
|
// TODO: error for sync IO in the runtime stage
|
|
// (which is not currently covered by the validation render in `spawnDynamicValidationInDev`)
|
|
requestStore.stagedRendering.advanceStage(_stagedrendering.RenderStage.Dynamic);
|
|
}
|
|
}
|
|
function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {
|
|
const prerenderSignal = prerenderStore.controller.signal;
|
|
if (prerenderSignal.aborted === false) {
|
|
// TODO it would be better to move this aborted check into the callsite so we can avoid making
|
|
// the error object when it isn't relevant to the aborting of the prerender however
|
|
// since we need the throw semantics regardless of whether we abort it is easier to land
|
|
// this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer
|
|
// to ideal implementation
|
|
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
|
// It is important that we set this tracking value after aborting. Aborts are executed
|
|
// synchronously except for the case where you abort during render itself. By setting this
|
|
// value late we can use it to determine if any of the aborted tasks are the task that
|
|
// called the sync IO expression in the first place.
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
|
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
|
}
|
|
}
|
|
}
|
|
throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);
|
|
}
|
|
function Postpone({ reason, route }) {
|
|
const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;
|
|
postponeWithTracking(route, reason, dynamicTracking);
|
|
}
|
|
function postponeWithTracking(route, expression, dynamicTracking) {
|
|
assertPostpone();
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
// When we aren't debugging, we don't need to create another error for the
|
|
// stack trace.
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
_react.default.unstable_postpone(createPostponeReason(route, expression));
|
|
}
|
|
function createPostponeReason(route, expression) {
|
|
return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;
|
|
}
|
|
function isDynamicPostpone(err) {
|
|
if (typeof err === 'object' && err !== null && typeof err.message === 'string') {
|
|
return isDynamicPostponeReason(err.message);
|
|
}
|
|
return false;
|
|
}
|
|
function isDynamicPostponeReason(reason) {
|
|
return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');
|
|
}
|
|
if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {
|
|
throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", {
|
|
value: "E296",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';
|
|
function createPrerenderInterruptedError(message) {
|
|
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = NEXT_PRERENDER_INTERRUPTED;
|
|
return error;
|
|
}
|
|
function isPrerenderInterruptedError(error) {
|
|
return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;
|
|
}
|
|
function accessedDynamicData(dynamicAccesses) {
|
|
return dynamicAccesses.length > 0;
|
|
}
|
|
function consumeDynamicAccess(serverDynamic, clientDynamic) {
|
|
// We mutate because we only call this once we are no longer writing
|
|
// to the dynamicTrackingState and it's more efficient than creating a new
|
|
// array.
|
|
serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);
|
|
return serverDynamic.dynamicAccesses;
|
|
}
|
|
function formatDynamicAPIAccesses(dynamicAccesses) {
|
|
return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{
|
|
stack = stack.split('\n') // Remove the "Error: " prefix from the first line of the stack trace as
|
|
// well as the first 4 lines of the stack trace which is the distance
|
|
// from the user code and the `new Error().stack` call.
|
|
.slice(4).filter((line)=>{
|
|
// Exclude Next.js internals from the stack trace.
|
|
if (line.includes('node_modules/next/')) {
|
|
return false;
|
|
}
|
|
// Exclude anonymous functions from the stack trace.
|
|
if (line.includes(' (<anonymous>)')) {
|
|
return false;
|
|
}
|
|
// Exclude Node.js internals from the stack trace.
|
|
if (line.includes(' (node:')) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}).join('\n');
|
|
return `Dynamic API Usage Debug - ${expression}:\n${stack}`;
|
|
});
|
|
}
|
|
function assertPostpone() {
|
|
if (!hasPostpone) {
|
|
throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", {
|
|
value: "E224",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
function createRenderInBrowserAbortSignal() {
|
|
const controller = new AbortController();
|
|
controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), "__NEXT_ERROR_CODE", {
|
|
value: "E721",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
return controller.signal;
|
|
}
|
|
function createHangingInputAbortSignal(workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
const controller = new AbortController();
|
|
if (workUnitStore.cacheSignal) {
|
|
// If we have a cacheSignal it means we're in a prospective render. If
|
|
// the input we're waiting on is coming from another cache, we do want
|
|
// to wait for it so that we can resolve this cache entry too.
|
|
workUnitStore.cacheSignal.inputReady().then(()=>{
|
|
controller.abort();
|
|
});
|
|
} else {
|
|
// Otherwise we're in the final render and we should already have all
|
|
// our caches filled.
|
|
// If the prerender uses stages, we have wait until the runtime stage,
|
|
// at which point all runtime inputs will be resolved.
|
|
// (otherwise, a runtime prerender might consider `cookies()` hanging
|
|
// even though they'd resolve in the next task.)
|
|
//
|
|
// We might still be waiting on some microtasks so we
|
|
// wait one tick before giving up. When we give up, we still want to
|
|
// render the content of this cache as deeply as we can so that we can
|
|
// suspend as deeply as possible in the tree or not at all if we don't
|
|
// end up waiting for the input.
|
|
const runtimeStagePromise = (0, _workunitasyncstorageexternal.getRuntimeStagePromise)(workUnitStore);
|
|
if (runtimeStagePromise) {
|
|
runtimeStagePromise.then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort()));
|
|
} else {
|
|
(0, _scheduler.scheduleOnNextTick)(()=>controller.abort());
|
|
}
|
|
}
|
|
return controller.signal;
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
return undefined;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
function annotateDynamicAccess(expression, prerenderStore) {
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
}
|
|
function useDynamicRouteParams(expression) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (workStore && workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender-client':
|
|
case 'prerender':
|
|
{
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams && fallbackParams.size > 0) {
|
|
// We are in a prerender with cacheComponents semantics. We are going to
|
|
// hang here and never resolve. This will cause the currently
|
|
// rendering component to effectively be a dynamic hole.
|
|
_react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-ppr':
|
|
{
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams && fallbackParams.size > 0) {
|
|
return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E771",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E745",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'unstable-cache':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
}
|
|
function useDynamicSearchParams(expression) {
|
|
const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();
|
|
const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();
|
|
if (!workStore) {
|
|
// We assume pages router context and just return
|
|
return;
|
|
}
|
|
if (!workUnitStore) {
|
|
(0, _workunitasyncstorageexternal.throwForMissingRequestStore)(expression);
|
|
}
|
|
switch(workUnitStore.type){
|
|
case 'prerender-client':
|
|
{
|
|
_react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression));
|
|
break;
|
|
}
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
{
|
|
if (workStore.forceStatic) {
|
|
return;
|
|
}
|
|
throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(expression), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E795",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
case 'private-cache':
|
|
throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E745",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
return;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
const hasSuspenseRegex = /\n\s+at Suspense \(<anonymous>\)/;
|
|
// Common implicit body tags that React will treat as body when placed directly in html
|
|
const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';
|
|
// Detects when RootLayoutBoundary (our framework marker component) appears
|
|
// after Suspense in the component stack, indicating the root layout is wrapped
|
|
// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.
|
|
//
|
|
// Example matches:
|
|
// at Suspense (<anonymous>)
|
|
// at __next_root_layout_boundary__ (<anonymous>)
|
|
//
|
|
// Or with other components in between (but not body/html/implicit-body):
|
|
// at Suspense (<anonymous>)
|
|
// at SomeComponent (<anonymous>)
|
|
// at __next_root_layout_boundary__ (<anonymous>)
|
|
const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`);
|
|
const hasMetadataRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\n\\s]`);
|
|
const hasViewportRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`);
|
|
const hasOutletRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\n\\s]`);
|
|
function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {
|
|
if (hasOutletRegex.test(componentStack)) {
|
|
// We don't need to track that this is dynamic. It is only so when something else is also dynamic.
|
|
return;
|
|
} else if (hasMetadataRegex.test(componentStack)) {
|
|
dynamicValidation.hasDynamicMetadata = true;
|
|
return;
|
|
} else if (hasViewportRegex.test(componentStack)) {
|
|
dynamicValidation.hasDynamicViewport = true;
|
|
return;
|
|
} else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {
|
|
// For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.
|
|
// But if you have Suspense above body, the prelude is empty but we allow that because having Suspense
|
|
// is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.
|
|
dynamicValidation.hasAllowedDynamic = true;
|
|
dynamicValidation.hasSuspenseAboveBody = true;
|
|
return;
|
|
} else if (hasSuspenseRegex.test(componentStack)) {
|
|
// this error had a Suspense boundary above it so we don't need to report it as a source
|
|
// of disallowed
|
|
dynamicValidation.hasAllowedDynamic = true;
|
|
return;
|
|
} else if (clientDynamic.syncDynamicErrorWithStack) {
|
|
// This task was the task that called the sync error.
|
|
dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
|
|
return;
|
|
} else {
|
|
const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '<Suspense>. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route';
|
|
const error = createErrorWithComponentOrOwnerStack(message, componentStack);
|
|
dynamicValidation.dynamicErrors.push(error);
|
|
return;
|
|
}
|
|
}
|
|
/**
|
|
* In dev mode, we prefer using the owner stack, otherwise the provided
|
|
* component stack is used.
|
|
*/ function createErrorWithComponentOrOwnerStack(message, componentStack) {
|
|
const ownerStack = ("TURBOPACK compile-time value", "development") !== 'production' && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null;
|
|
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);
|
|
return error;
|
|
}
|
|
var PreludeState = /*#__PURE__*/ function(PreludeState) {
|
|
PreludeState[PreludeState["Full"] = 0] = "Full";
|
|
PreludeState[PreludeState["Empty"] = 1] = "Empty";
|
|
PreludeState[PreludeState["Errored"] = 2] = "Errored";
|
|
return PreludeState;
|
|
}({});
|
|
function logDisallowedDynamicError(workStore, error) {
|
|
console.error(error);
|
|
if (!workStore.dev) {
|
|
if (workStore.hasReadableErrorStacks) {
|
|
console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`);
|
|
} else {
|
|
console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
- Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.
|
|
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`);
|
|
}
|
|
}
|
|
}
|
|
function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {
|
|
if (serverDynamic.syncDynamicErrorWithStack) {
|
|
logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);
|
|
throw new _staticgenerationbailout.StaticGenBailoutError();
|
|
}
|
|
if (prelude !== 0) {
|
|
if (dynamicValidation.hasSuspenseAboveBody) {
|
|
// This route has opted into allowing fully dynamic rendering
|
|
// by including a Suspense boundary above the body. In this case
|
|
// a lack of a shell is not considered disallowed so we simply return
|
|
return;
|
|
}
|
|
// We didn't have any sync bailouts but there may be user code which
|
|
// blocked the root. We would have captured these during the prerender
|
|
// and can log them here and then terminate the build/validating render
|
|
const dynamicErrors = dynamicValidation.dynamicErrors;
|
|
if (dynamicErrors.length > 0) {
|
|
for(let i = 0; i < dynamicErrors.length; i++){
|
|
logDisallowedDynamicError(workStore, dynamicErrors[i]);
|
|
}
|
|
throw new _staticgenerationbailout.StaticGenBailoutError();
|
|
}
|
|
// If we got this far then the only other thing that could be blocking
|
|
// the root is dynamic Viewport. If this is dynamic then
|
|
// you need to opt into that by adding a Suspense boundary above the body
|
|
// to indicate your are ok with fully dynamic rendering.
|
|
if (dynamicValidation.hasDynamicViewport) {
|
|
console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);
|
|
throw new _staticgenerationbailout.StaticGenBailoutError();
|
|
}
|
|
if (prelude === 1) {
|
|
// If we ever get this far then we messed up the tracking of invalid dynamic.
|
|
// We still adhere to the constraint that you must produce a shell but invite the
|
|
// user to report this as a bug in Next.js.
|
|
console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);
|
|
throw new _staticgenerationbailout.StaticGenBailoutError();
|
|
}
|
|
} else {
|
|
if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {
|
|
console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);
|
|
throw new _staticgenerationbailout.StaticGenBailoutError();
|
|
}
|
|
}
|
|
}
|
|
function delayUntilRuntimeStage(prerenderStore, result) {
|
|
if (prerenderStore.runtimeStagePromise) {
|
|
return prerenderStore.runtimeStagePromise.then(()=>result);
|
|
}
|
|
return result;
|
|
} //# sourceMappingURL=dynamic-rendering.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.server.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "unstable_rethrow", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return unstable_rethrow;
|
|
}
|
|
});
|
|
const _dynamicrenderingutils = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
const _ispostpone = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/lib/router-utils/is-postpone.js [app-ssr] (ecmascript)");
|
|
const _bailouttocsr = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)");
|
|
const _isnextroutererror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/is-next-router-error.js [app-ssr] (ecmascript)");
|
|
const _dynamicrendering = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)");
|
|
const _hooksservercontext = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.js [app-ssr] (ecmascript)");
|
|
function unstable_rethrow(error) {
|
|
if ((0, _isnextroutererror.isNextRouterError)(error) || (0, _bailouttocsr.isBailoutToCSRError)(error) || (0, _hooksservercontext.isDynamicServerError)(error) || (0, _dynamicrendering.isDynamicPostpone)(error) || (0, _ispostpone.isPostpone)(error) || (0, _dynamicrenderingutils.isHangingPromiseRejectionError)(error) || (0, _dynamicrendering.isPrerenderInterruptedError)(error)) {
|
|
throw error;
|
|
}
|
|
if (error instanceof Error && 'cause' in error) {
|
|
unstable_rethrow(error.cause);
|
|
}
|
|
}
|
|
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=unstable-rethrow.server.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.
|
|
* When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.
|
|
* This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.
|
|
*
|
|
* Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)
|
|
*/ Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "unstable_rethrow", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return unstable_rethrow;
|
|
}
|
|
});
|
|
const unstable_rethrow = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.server.js [app-ssr] (ecmascript)").unstable_rethrow : "TURBOPACK unreachable";
|
|
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=unstable-rethrow.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.react-server.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
ReadonlyURLSearchParams: null,
|
|
RedirectType: null,
|
|
forbidden: null,
|
|
notFound: null,
|
|
permanentRedirect: null,
|
|
redirect: null,
|
|
unauthorized: null,
|
|
unstable_isUnrecognizedActionError: null,
|
|
unstable_rethrow: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
ReadonlyURLSearchParams: function() {
|
|
return _readonlyurlsearchparams.ReadonlyURLSearchParams;
|
|
},
|
|
RedirectType: function() {
|
|
return _redirecterror.RedirectType;
|
|
},
|
|
forbidden: function() {
|
|
return _forbidden.forbidden;
|
|
},
|
|
notFound: function() {
|
|
return _notfound.notFound;
|
|
},
|
|
permanentRedirect: function() {
|
|
return _redirect.permanentRedirect;
|
|
},
|
|
redirect: function() {
|
|
return _redirect.redirect;
|
|
},
|
|
unauthorized: function() {
|
|
return _unauthorized.unauthorized;
|
|
},
|
|
unstable_isUnrecognizedActionError: function() {
|
|
return unstable_isUnrecognizedActionError;
|
|
},
|
|
unstable_rethrow: function() {
|
|
return _unstablerethrow.unstable_rethrow;
|
|
}
|
|
});
|
|
const _readonlyurlsearchparams = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)");
|
|
const _redirect = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect.js [app-ssr] (ecmascript)");
|
|
const _redirecterror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
const _notfound = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/not-found.js [app-ssr] (ecmascript)");
|
|
const _forbidden = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/forbidden.js [app-ssr] (ecmascript)");
|
|
const _unauthorized = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unauthorized.js [app-ssr] (ecmascript)");
|
|
const _unstablerethrow = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.js [app-ssr] (ecmascript)");
|
|
function unstable_isUnrecognizedActionError() {
|
|
throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", {
|
|
value: "E776",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
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=navigation.react-server.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
ReadonlyURLSearchParams: null,
|
|
RedirectType: null,
|
|
ServerInsertedHTMLContext: null,
|
|
forbidden: null,
|
|
notFound: null,
|
|
permanentRedirect: null,
|
|
redirect: null,
|
|
unauthorized: null,
|
|
unstable_isUnrecognizedActionError: null,
|
|
unstable_rethrow: null,
|
|
useParams: null,
|
|
usePathname: null,
|
|
useRouter: null,
|
|
useSearchParams: null,
|
|
useSelectedLayoutSegment: null,
|
|
useSelectedLayoutSegments: null,
|
|
useServerInsertedHTML: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
ReadonlyURLSearchParams: function() {
|
|
return _navigationreactserver.ReadonlyURLSearchParams;
|
|
},
|
|
RedirectType: function() {
|
|
return _navigationreactserver.RedirectType;
|
|
},
|
|
ServerInsertedHTMLContext: function() {
|
|
return _serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext;
|
|
},
|
|
forbidden: function() {
|
|
return _navigationreactserver.forbidden;
|
|
},
|
|
notFound: function() {
|
|
return _navigationreactserver.notFound;
|
|
},
|
|
permanentRedirect: function() {
|
|
return _navigationreactserver.permanentRedirect;
|
|
},
|
|
redirect: function() {
|
|
return _navigationreactserver.redirect;
|
|
},
|
|
unauthorized: function() {
|
|
return _navigationreactserver.unauthorized;
|
|
},
|
|
unstable_isUnrecognizedActionError: function() {
|
|
return _unrecognizedactionerror.unstable_isUnrecognizedActionError;
|
|
},
|
|
unstable_rethrow: function() {
|
|
return _navigationreactserver.unstable_rethrow;
|
|
},
|
|
useParams: function() {
|
|
return useParams;
|
|
},
|
|
usePathname: function() {
|
|
return usePathname;
|
|
},
|
|
useRouter: function() {
|
|
return useRouter;
|
|
},
|
|
useSearchParams: function() {
|
|
return useSearchParams;
|
|
},
|
|
useSelectedLayoutSegment: function() {
|
|
return useSelectedLayoutSegment;
|
|
},
|
|
useSelectedLayoutSegments: function() {
|
|
return useSelectedLayoutSegments;
|
|
},
|
|
useServerInsertedHTML: function() {
|
|
return _serverinsertedhtmlsharedruntime.useServerInsertedHTML;
|
|
}
|
|
});
|
|
const _interop_require_wildcard = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [app-ssr] (ecmascript)");
|
|
const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)"));
|
|
const _approutercontextsharedruntime = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
const _hooksclientcontextsharedruntime = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
const _segment = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
const _readonlyurlsearchparams = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)");
|
|
const _serverinsertedhtmlsharedruntime = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js [app-ssr] (ecmascript)");
|
|
const _unrecognizedactionerror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unrecognized-action-error.js [app-ssr] (ecmascript)");
|
|
const _navigationreactserver = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.react-server.js [app-ssr] (ecmascript)");
|
|
const useDynamicRouteParams = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)").useDynamicRouteParams : "TURBOPACK unreachable";
|
|
const useDynamicSearchParams = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)").useDynamicSearchParams : "TURBOPACK unreachable";
|
|
function useSearchParams() {
|
|
useDynamicSearchParams?.('useSearchParams()');
|
|
const searchParams = (0, _react.useContext)(_hooksclientcontextsharedruntime.SearchParamsContext);
|
|
// In the case where this is `null`, the compat types added in
|
|
// `next-env.d.ts` will add a new overload that changes the return type to
|
|
// include `null`.
|
|
const readonlySearchParams = (0, _react.useMemo)(()=>{
|
|
if (!searchParams) {
|
|
// When the router is not ready in pages, we won't have the search params
|
|
// available.
|
|
return null;
|
|
}
|
|
return new _readonlyurlsearchparams.ReadonlyURLSearchParams(searchParams);
|
|
}, [
|
|
searchParams
|
|
]);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
|
|
const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
if (navigationPromises) {
|
|
return (0, _react.use)(navigationPromises.searchParams);
|
|
}
|
|
}
|
|
return readonlySearchParams;
|
|
}
|
|
function usePathname() {
|
|
useDynamicRouteParams?.('usePathname()');
|
|
// In the case where this is `null`, the compat types added in `next-env.d.ts`
|
|
// will add a new overload that changes the return type to include `null`.
|
|
const pathname = (0, _react.useContext)(_hooksclientcontextsharedruntime.PathnameContext);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
|
|
const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
if (navigationPromises) {
|
|
return (0, _react.use)(navigationPromises.pathname);
|
|
}
|
|
}
|
|
return pathname;
|
|
}
|
|
function useRouter() {
|
|
const router = (0, _react.useContext)(_approutercontextsharedruntime.AppRouterContext);
|
|
if (router === null) {
|
|
throw Object.defineProperty(new Error('invariant expected app router to be mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E238",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return router;
|
|
}
|
|
function useParams() {
|
|
useDynamicRouteParams?.('useParams()');
|
|
const params = (0, _react.useContext)(_hooksclientcontextsharedruntime.PathParamsContext);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
|
|
const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
if (navigationPromises) {
|
|
return (0, _react.use)(navigationPromises.params);
|
|
}
|
|
}
|
|
return params;
|
|
}
|
|
function useSelectedLayoutSegments(parallelRouteKey = 'children') {
|
|
useDynamicRouteParams?.('useSelectedLayoutSegments()');
|
|
const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);
|
|
// @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts
|
|
if (!context) return null;
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in _react.default) {
|
|
const navigationPromises = (0, _react.use)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
if (navigationPromises) {
|
|
const promise = navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey);
|
|
if (promise) {
|
|
// We should always have a promise here, but if we don't, it's not worth erroring over.
|
|
// We just won't be able to instrument it, but can still provide the value.
|
|
return (0, _react.use)(promise);
|
|
}
|
|
}
|
|
}
|
|
return (0, _segment.getSelectedLayoutSegmentPath)(context.parentTree, parallelRouteKey);
|
|
}
|
|
function useSelectedLayoutSegment(parallelRouteKey = 'children') {
|
|
useDynamicRouteParams?.('useSelectedLayoutSegment()');
|
|
const navigationPromises = (0, _react.useContext)(_hooksclientcontextsharedruntime.NavigationPromisesContext);
|
|
const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && navigationPromises && 'use' in _react.default) {
|
|
const promise = navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey);
|
|
if (promise) {
|
|
// We should always have a promise here, but if we don't, it's not worth erroring over.
|
|
// We just won't be able to instrument it, but can still provide the value.
|
|
return (0, _react.use)(promise);
|
|
}
|
|
}
|
|
return (0, _segment.computeSelectedLayoutSegment)(selectedLayoutSegments, parallelRouteKey);
|
|
}
|
|
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=navigation.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/navigation.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.js [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@vercel+analytics@1.5.0_next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@vercel/analytics/dist/next/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Analytics",
|
|
()=>Analytics2
|
|
]);
|
|
// src/nextjs/index.tsx
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
// src/nextjs/utils.ts
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/navigation.js [app-ssr] (ecmascript)");
|
|
"use client";
|
|
;
|
|
;
|
|
// package.json
|
|
var name = "@vercel/analytics";
|
|
var version = "1.5.0";
|
|
// src/queue.ts
|
|
var initQueue = ()=>{
|
|
if (window.va) return;
|
|
window.va = function a(...params) {
|
|
(window.vaq = window.vaq || []).push(params);
|
|
};
|
|
};
|
|
// src/utils.ts
|
|
function isBrowser() {
|
|
return ("TURBOPACK compile-time value", "undefined") !== "undefined";
|
|
}
|
|
function detectEnvironment() {
|
|
try {
|
|
const env = ("TURBOPACK compile-time value", "development");
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
return "development";
|
|
}
|
|
} catch (e) {}
|
|
return "production";
|
|
}
|
|
function setMode(mode = "auto") {
|
|
if (mode === "auto") {
|
|
window.vam = detectEnvironment();
|
|
return;
|
|
}
|
|
window.vam = mode;
|
|
}
|
|
function getMode() {
|
|
const mode = isBrowser() ? "TURBOPACK unreachable" : detectEnvironment();
|
|
return mode || "production";
|
|
}
|
|
function isDevelopment() {
|
|
return getMode() === "development";
|
|
}
|
|
function computeRoute(pathname, pathParams) {
|
|
if (!pathname || !pathParams) {
|
|
return pathname;
|
|
}
|
|
let result = pathname;
|
|
try {
|
|
const entries = Object.entries(pathParams);
|
|
for (const [key, value] of entries){
|
|
if (!Array.isArray(value)) {
|
|
const matcher = turnValueToRegExp(value);
|
|
if (matcher.test(result)) {
|
|
result = result.replace(matcher, `/[${key}]`);
|
|
}
|
|
}
|
|
}
|
|
for (const [key, value] of entries){
|
|
if (Array.isArray(value)) {
|
|
const matcher = turnValueToRegExp(value.join("/"));
|
|
if (matcher.test(result)) {
|
|
result = result.replace(matcher, `/[...${key}]`);
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
} catch (e) {
|
|
return pathname;
|
|
}
|
|
}
|
|
function turnValueToRegExp(value) {
|
|
return new RegExp(`/${escapeRegExp(value)}(?=[/?#]|$)`);
|
|
}
|
|
function escapeRegExp(string) {
|
|
return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
}
|
|
function getScriptSrc(props) {
|
|
if (props.scriptSrc) {
|
|
return props.scriptSrc;
|
|
}
|
|
if (isDevelopment()) {
|
|
return "https://va.vercel-scripts.com/v1/script.debug.js";
|
|
}
|
|
if (props.basePath) {
|
|
return `${props.basePath}/insights/script.js`;
|
|
}
|
|
return "/_vercel/insights/script.js";
|
|
}
|
|
// src/generic.ts
|
|
function inject(props = {
|
|
debug: true
|
|
}) {
|
|
var _a;
|
|
if (!isBrowser()) return;
|
|
//TURBOPACK unreachable
|
|
;
|
|
const src = undefined;
|
|
const script = undefined;
|
|
}
|
|
function pageview({ route, path }) {
|
|
var _a;
|
|
(_a = window.va) == null ? void 0 : _a.call(window, "pageview", {
|
|
route,
|
|
path
|
|
});
|
|
}
|
|
// src/react/utils.ts
|
|
function getBasePath() {
|
|
if (typeof process === "undefined" || typeof process.env === "undefined") {
|
|
return void 0;
|
|
}
|
|
return process.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH;
|
|
}
|
|
// src/react/index.tsx
|
|
function Analytics(props) {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
var _a;
|
|
if (props.beforeSend) {
|
|
(_a = window.va) == null ? void 0 : _a.call(window, "beforeSend", props.beforeSend);
|
|
}
|
|
}, [
|
|
props.beforeSend
|
|
]);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
inject({
|
|
framework: props.framework || "react",
|
|
basePath: props.basePath ?? getBasePath(),
|
|
...props.route !== void 0 && {
|
|
disableAutoTrack: true
|
|
},
|
|
...props
|
|
});
|
|
}, []);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (props.route && props.path) {
|
|
pageview({
|
|
route: props.route,
|
|
path: props.path
|
|
});
|
|
}
|
|
}, [
|
|
props.route,
|
|
props.path
|
|
]);
|
|
return null;
|
|
}
|
|
;
|
|
var useRoute = ()=>{
|
|
const params = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useParams"])();
|
|
const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useSearchParams"])();
|
|
const path = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["usePathname"])();
|
|
if (!params) {
|
|
return {
|
|
route: null,
|
|
path
|
|
};
|
|
}
|
|
const finalParams = Object.keys(params).length ? params : Object.fromEntries(searchParams.entries());
|
|
return {
|
|
route: computeRoute(path, finalParams),
|
|
path
|
|
};
|
|
};
|
|
function getBasePath2() {
|
|
if (typeof process === "undefined" || typeof process.env === "undefined") {
|
|
return void 0;
|
|
}
|
|
return process.env.NEXT_PUBLIC_VERCEL_OBSERVABILITY_BASEPATH;
|
|
}
|
|
// src/nextjs/index.tsx
|
|
function AnalyticsComponent(props) {
|
|
const { route, path } = useRoute();
|
|
return /* @__PURE__ */ __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].createElement(Analytics, {
|
|
path,
|
|
route,
|
|
...props,
|
|
basePath: getBasePath2(),
|
|
framework: "next"
|
|
});
|
|
}
|
|
function Analytics2(props) {
|
|
return /* @__PURE__ */ __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].createElement(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Suspense"], {
|
|
fallback: null
|
|
}, /* @__PURE__ */ __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].createElement(AnalyticsComponent, {
|
|
...props
|
|
}));
|
|
}
|
|
;
|
|
//# sourceMappingURL=index.mjs.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['react-ssr'].ReactJsxDevRuntime; //# sourceMappingURL=react-jsx-dev-runtime.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie@4.2.1/node_modules/dexie/dist/dexie.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
|
|
/*
|
|
* Dexie.js - a minimalistic wrapper for IndexedDB
|
|
* ===============================================
|
|
*
|
|
* By David Fahlander, david.fahlander@gmail.com
|
|
*
|
|
* Version 4.2.1, Sat Oct 04 2025
|
|
*
|
|
* https://dexie.org
|
|
*
|
|
* Apache License Version 2.0, January 2004, http://www.apache.org/licenses/
|
|
*/ (function(global, factory) {
|
|
("TURBOPACK compile-time truthy", 1) ? module.exports = factory() : "TURBOPACK unreachable";
|
|
})(/*TURBOPACK member replacement*/ __turbopack_context__.e, function() {
|
|
'use strict';
|
|
/*! *****************************************************************************
|
|
Copyright (c) Microsoft Corporation.
|
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
purpose with or without fee is hereby granted.
|
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
PERFORMANCE OF THIS SOFTWARE.
|
|
***************************************************************************** */ var extendStatics = function(d, b) {
|
|
extendStatics = Object.setPrototypeOf || ({
|
|
__proto__: []
|
|
}) instanceof Array && function(d, b) {
|
|
d.__proto__ = b;
|
|
} || function(d, b) {
|
|
for(var p in b)if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
|
|
};
|
|
return extendStatics(d, b);
|
|
};
|
|
function __extends(d, b) {
|
|
if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
extendStatics(d, b);
|
|
function __() {
|
|
this.constructor = d;
|
|
}
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
}
|
|
var __assign = function() {
|
|
__assign = Object.assign || function __assign(t) {
|
|
for(var s, i = 1, n = arguments.length; i < n; i++){
|
|
s = arguments[i];
|
|
for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
}
|
|
return t;
|
|
};
|
|
return __assign.apply(this, arguments);
|
|
};
|
|
function __spreadArray(to, from, pack) {
|
|
if (pack || arguments.length === 2) for(var i = 0, l = from.length, ar; i < l; i++){
|
|
if (ar || !(i in from)) {
|
|
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
ar[i] = from[i];
|
|
}
|
|
}
|
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
}
|
|
var _global = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : /*TURBOPACK member replacement*/ __turbopack_context__.g;
|
|
var keys = Object.keys;
|
|
var isArray = Array.isArray;
|
|
if (typeof Promise !== 'undefined' && !_global.Promise) {
|
|
_global.Promise = Promise;
|
|
}
|
|
function extend(obj, extension) {
|
|
if (typeof extension !== 'object') return obj;
|
|
keys(extension).forEach(function(key) {
|
|
obj[key] = extension[key];
|
|
});
|
|
return obj;
|
|
}
|
|
var getProto = Object.getPrototypeOf;
|
|
var _hasOwn = {}.hasOwnProperty;
|
|
function hasOwn(obj, prop) {
|
|
return _hasOwn.call(obj, prop);
|
|
}
|
|
function props(proto, extension) {
|
|
if (typeof extension === 'function') extension = extension(getProto(proto));
|
|
(typeof Reflect === "undefined" ? keys : Reflect.ownKeys)(extension).forEach(function(key) {
|
|
setProp(proto, key, extension[key]);
|
|
});
|
|
}
|
|
var defineProperty = Object.defineProperty;
|
|
function setProp(obj, prop, functionOrGetSet, options) {
|
|
defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, "get") && typeof functionOrGetSet.get === 'function' ? {
|
|
get: functionOrGetSet.get,
|
|
set: functionOrGetSet.set,
|
|
configurable: true
|
|
} : {
|
|
value: functionOrGetSet,
|
|
configurable: true,
|
|
writable: true
|
|
}, options));
|
|
}
|
|
function derive(Child) {
|
|
return {
|
|
from: function(Parent) {
|
|
Child.prototype = Object.create(Parent.prototype);
|
|
setProp(Child.prototype, "constructor", Child);
|
|
return {
|
|
extend: props.bind(null, Child.prototype)
|
|
};
|
|
}
|
|
};
|
|
}
|
|
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
|
function getPropertyDescriptor(obj, prop) {
|
|
var pd = getOwnPropertyDescriptor(obj, prop);
|
|
var proto;
|
|
return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);
|
|
}
|
|
var _slice = [].slice;
|
|
function slice(args, start, end) {
|
|
return _slice.call(args, start, end);
|
|
}
|
|
function override(origFunc, overridedFactory) {
|
|
return overridedFactory(origFunc);
|
|
}
|
|
function assert(b) {
|
|
if (!b) throw new Error("Assertion Failed");
|
|
}
|
|
function asap$1(fn) {
|
|
if (_global.setImmediate) setImmediate(fn);
|
|
else setTimeout(fn, 0);
|
|
}
|
|
function arrayToObject(array, extractor) {
|
|
return array.reduce(function(result, item, i) {
|
|
var nameAndValue = extractor(item, i);
|
|
if (nameAndValue) result[nameAndValue[0]] = nameAndValue[1];
|
|
return result;
|
|
}, {});
|
|
}
|
|
function getByKeyPath(obj, keyPath) {
|
|
if (typeof keyPath === 'string' && hasOwn(obj, keyPath)) return obj[keyPath];
|
|
if (!keyPath) return obj;
|
|
if (typeof keyPath !== 'string') {
|
|
var rv = [];
|
|
for(var i = 0, l = keyPath.length; i < l; ++i){
|
|
var val = getByKeyPath(obj, keyPath[i]);
|
|
rv.push(val);
|
|
}
|
|
return rv;
|
|
}
|
|
var period = keyPath.indexOf('.');
|
|
if (period !== -1) {
|
|
var innerObj = obj[keyPath.substr(0, period)];
|
|
return innerObj == null ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));
|
|
}
|
|
return undefined;
|
|
}
|
|
function setByKeyPath(obj, keyPath, value) {
|
|
if (!obj || keyPath === undefined) return;
|
|
if ('isFrozen' in Object && Object.isFrozen(obj)) return;
|
|
if (typeof keyPath !== 'string' && 'length' in keyPath) {
|
|
assert(typeof value !== 'string' && 'length' in value);
|
|
for(var i = 0, l = keyPath.length; i < l; ++i){
|
|
setByKeyPath(obj, keyPath[i], value[i]);
|
|
}
|
|
} else {
|
|
var period = keyPath.indexOf('.');
|
|
if (period !== -1) {
|
|
var currentKeyPath = keyPath.substr(0, period);
|
|
var remainingKeyPath = keyPath.substr(period + 1);
|
|
if (remainingKeyPath === "") if (value === undefined) {
|
|
if (isArray(obj) && !isNaN(parseInt(currentKeyPath))) obj.splice(currentKeyPath, 1);
|
|
else delete obj[currentKeyPath];
|
|
} else obj[currentKeyPath] = value;
|
|
else {
|
|
var innerObj = obj[currentKeyPath];
|
|
if (!innerObj || !hasOwn(obj, currentKeyPath)) innerObj = obj[currentKeyPath] = {};
|
|
setByKeyPath(innerObj, remainingKeyPath, value);
|
|
}
|
|
} else {
|
|
if (value === undefined) {
|
|
if (isArray(obj) && !isNaN(parseInt(keyPath))) obj.splice(keyPath, 1);
|
|
else delete obj[keyPath];
|
|
} else obj[keyPath] = value;
|
|
}
|
|
}
|
|
}
|
|
function delByKeyPath(obj, keyPath) {
|
|
if (typeof keyPath === 'string') setByKeyPath(obj, keyPath, undefined);
|
|
else if ('length' in keyPath) [].map.call(keyPath, function(kp) {
|
|
setByKeyPath(obj, kp, undefined);
|
|
});
|
|
}
|
|
function shallowClone(obj) {
|
|
var rv = {};
|
|
for(var m in obj){
|
|
if (hasOwn(obj, m)) rv[m] = obj[m];
|
|
}
|
|
return rv;
|
|
}
|
|
var concat = [].concat;
|
|
function flatten(a) {
|
|
return concat.apply([], a);
|
|
}
|
|
var intrinsicTypeNames = "BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(',').concat(flatten([
|
|
8,
|
|
16,
|
|
32,
|
|
64
|
|
].map(function(num) {
|
|
return [
|
|
"Int",
|
|
"Uint",
|
|
"Float"
|
|
].map(function(t) {
|
|
return t + num + "Array";
|
|
});
|
|
}))).filter(function(t) {
|
|
return _global[t];
|
|
});
|
|
var intrinsicTypes = new Set(intrinsicTypeNames.map(function(t) {
|
|
return _global[t];
|
|
}));
|
|
function cloneSimpleObjectTree(o) {
|
|
var rv = {};
|
|
for(var k in o)if (hasOwn(o, k)) {
|
|
var v = o[k];
|
|
rv[k] = !v || typeof v !== 'object' || intrinsicTypes.has(v.constructor) ? v : cloneSimpleObjectTree(v);
|
|
}
|
|
return rv;
|
|
}
|
|
function objectIsEmpty(o) {
|
|
for(var k in o)if (hasOwn(o, k)) return false;
|
|
return true;
|
|
}
|
|
var circularRefs = null;
|
|
function deepClone(any) {
|
|
circularRefs = new WeakMap();
|
|
var rv = innerDeepClone(any);
|
|
circularRefs = null;
|
|
return rv;
|
|
}
|
|
function innerDeepClone(x) {
|
|
if (!x || typeof x !== 'object') return x;
|
|
var rv = circularRefs.get(x);
|
|
if (rv) return rv;
|
|
if (isArray(x)) {
|
|
rv = [];
|
|
circularRefs.set(x, rv);
|
|
for(var i = 0, l = x.length; i < l; ++i){
|
|
rv.push(innerDeepClone(x[i]));
|
|
}
|
|
} else if (intrinsicTypes.has(x.constructor)) {
|
|
rv = x;
|
|
} else {
|
|
var proto = getProto(x);
|
|
rv = proto === Object.prototype ? {} : Object.create(proto);
|
|
circularRefs.set(x, rv);
|
|
for(var prop in x){
|
|
if (hasOwn(x, prop)) {
|
|
rv[prop] = innerDeepClone(x[prop]);
|
|
}
|
|
}
|
|
}
|
|
return rv;
|
|
}
|
|
var toString = {}.toString;
|
|
function toStringTag(o) {
|
|
return toString.call(o).slice(8, -1);
|
|
}
|
|
var iteratorSymbol = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';
|
|
var getIteratorOf = typeof iteratorSymbol === "symbol" ? function(x) {
|
|
var i;
|
|
return x != null && (i = x[iteratorSymbol]) && i.apply(x);
|
|
} : function() {
|
|
return null;
|
|
};
|
|
function delArrayItem(a, x) {
|
|
var i = a.indexOf(x);
|
|
if (i >= 0) a.splice(i, 1);
|
|
return i >= 0;
|
|
}
|
|
var NO_CHAR_ARRAY = {};
|
|
function getArrayOf(arrayLike) {
|
|
var i, a, x, it;
|
|
if (arguments.length === 1) {
|
|
if (isArray(arrayLike)) return arrayLike.slice();
|
|
if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string') return [
|
|
arrayLike
|
|
];
|
|
if (it = getIteratorOf(arrayLike)) {
|
|
a = [];
|
|
while(x = it.next(), !x.done)a.push(x.value);
|
|
return a;
|
|
}
|
|
if (arrayLike == null) return [
|
|
arrayLike
|
|
];
|
|
i = arrayLike.length;
|
|
if (typeof i === 'number') {
|
|
a = new Array(i);
|
|
while(i--)a[i] = arrayLike[i];
|
|
return a;
|
|
}
|
|
return [
|
|
arrayLike
|
|
];
|
|
}
|
|
i = arguments.length;
|
|
a = new Array(i);
|
|
while(i--)a[i] = arguments[i];
|
|
return a;
|
|
}
|
|
var isAsyncFunction = typeof Symbol !== 'undefined' ? function(fn) {
|
|
return fn[Symbol.toStringTag] === 'AsyncFunction';
|
|
} : function() {
|
|
return false;
|
|
};
|
|
var dexieErrorNames = [
|
|
'Modify',
|
|
'Bulk',
|
|
'OpenFailed',
|
|
'VersionChange',
|
|
'Schema',
|
|
'Upgrade',
|
|
'InvalidTable',
|
|
'MissingAPI',
|
|
'NoSuchDatabase',
|
|
'InvalidArgument',
|
|
'SubTransaction',
|
|
'Unsupported',
|
|
'Internal',
|
|
'DatabaseClosed',
|
|
'PrematureCommit',
|
|
'ForeignAwait'
|
|
];
|
|
var idbDomErrorNames = [
|
|
'Unknown',
|
|
'Constraint',
|
|
'Data',
|
|
'TransactionInactive',
|
|
'ReadOnly',
|
|
'Version',
|
|
'NotFound',
|
|
'InvalidState',
|
|
'InvalidAccess',
|
|
'Abort',
|
|
'Timeout',
|
|
'QuotaExceeded',
|
|
'Syntax',
|
|
'DataClone'
|
|
];
|
|
var errorList = dexieErrorNames.concat(idbDomErrorNames);
|
|
var defaultTexts = {
|
|
VersionChanged: "Database version changed by other database connection",
|
|
DatabaseClosed: "Database has been closed",
|
|
Abort: "Transaction aborted",
|
|
TransactionInactive: "Transaction has already completed or failed",
|
|
MissingAPI: "IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"
|
|
};
|
|
function DexieError(name, msg) {
|
|
this.name = name;
|
|
this.message = msg;
|
|
}
|
|
derive(DexieError).from(Error).extend({
|
|
toString: function() {
|
|
return this.name + ": " + this.message;
|
|
}
|
|
});
|
|
function getMultiErrorMessage(msg, failures) {
|
|
return msg + ". Errors: " + Object.keys(failures).map(function(key) {
|
|
return failures[key].toString();
|
|
}).filter(function(v, i, s) {
|
|
return s.indexOf(v) === i;
|
|
}).join('\n');
|
|
}
|
|
function ModifyError(msg, failures, successCount, failedKeys) {
|
|
this.failures = failures;
|
|
this.failedKeys = failedKeys;
|
|
this.successCount = successCount;
|
|
this.message = getMultiErrorMessage(msg, failures);
|
|
}
|
|
derive(ModifyError).from(DexieError);
|
|
function BulkError(msg, failures) {
|
|
this.name = "BulkError";
|
|
this.failures = Object.keys(failures).map(function(pos) {
|
|
return failures[pos];
|
|
});
|
|
this.failuresByPos = failures;
|
|
this.message = getMultiErrorMessage(msg, this.failures);
|
|
}
|
|
derive(BulkError).from(DexieError);
|
|
var errnames = errorList.reduce(function(obj, name) {
|
|
return obj[name] = name + "Error", obj;
|
|
}, {});
|
|
var BaseException = DexieError;
|
|
var exceptions = errorList.reduce(function(obj, name) {
|
|
var fullName = name + "Error";
|
|
function DexieError(msgOrInner, inner) {
|
|
this.name = fullName;
|
|
if (!msgOrInner) {
|
|
this.message = defaultTexts[name] || fullName;
|
|
this.inner = null;
|
|
} else if (typeof msgOrInner === 'string') {
|
|
this.message = "".concat(msgOrInner).concat(!inner ? '' : '\n ' + inner);
|
|
this.inner = inner || null;
|
|
} else if (typeof msgOrInner === 'object') {
|
|
this.message = "".concat(msgOrInner.name, " ").concat(msgOrInner.message);
|
|
this.inner = msgOrInner;
|
|
}
|
|
}
|
|
derive(DexieError).from(BaseException);
|
|
obj[name] = DexieError;
|
|
return obj;
|
|
}, {});
|
|
exceptions.Syntax = SyntaxError;
|
|
exceptions.Type = TypeError;
|
|
exceptions.Range = RangeError;
|
|
var exceptionMap = idbDomErrorNames.reduce(function(obj, name) {
|
|
obj[name + "Error"] = exceptions[name];
|
|
return obj;
|
|
}, {});
|
|
function mapError(domError, message) {
|
|
if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name]) return domError;
|
|
var rv = new exceptionMap[domError.name](message || domError.message, domError);
|
|
if ("stack" in domError) {
|
|
setProp(rv, "stack", {
|
|
get: function() {
|
|
return this.inner.stack;
|
|
}
|
|
});
|
|
}
|
|
return rv;
|
|
}
|
|
var fullNameExceptions = errorList.reduce(function(obj, name) {
|
|
if ([
|
|
"Syntax",
|
|
"Type",
|
|
"Range"
|
|
].indexOf(name) === -1) obj[name + "Error"] = exceptions[name];
|
|
return obj;
|
|
}, {});
|
|
fullNameExceptions.ModifyError = ModifyError;
|
|
fullNameExceptions.DexieError = DexieError;
|
|
fullNameExceptions.BulkError = BulkError;
|
|
function nop() {}
|
|
function mirror(val) {
|
|
return val;
|
|
}
|
|
function pureFunctionChain(f1, f2) {
|
|
if (f1 == null || f1 === mirror) return f2;
|
|
return function(val) {
|
|
return f2(f1(val));
|
|
};
|
|
}
|
|
function callBoth(on1, on2) {
|
|
return function() {
|
|
on1.apply(this, arguments);
|
|
on2.apply(this, arguments);
|
|
};
|
|
}
|
|
function hookCreatingChain(f1, f2) {
|
|
if (f1 === nop) return f2;
|
|
return function() {
|
|
var res = f1.apply(this, arguments);
|
|
if (res !== undefined) arguments[0] = res;
|
|
var onsuccess = this.onsuccess, onerror = this.onerror;
|
|
this.onsuccess = null;
|
|
this.onerror = null;
|
|
var res2 = f2.apply(this, arguments);
|
|
if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;
|
|
if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;
|
|
return res2 !== undefined ? res2 : res;
|
|
};
|
|
}
|
|
function hookDeletingChain(f1, f2) {
|
|
if (f1 === nop) return f2;
|
|
return function() {
|
|
f1.apply(this, arguments);
|
|
var onsuccess = this.onsuccess, onerror = this.onerror;
|
|
this.onsuccess = this.onerror = null;
|
|
f2.apply(this, arguments);
|
|
if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;
|
|
if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;
|
|
};
|
|
}
|
|
function hookUpdatingChain(f1, f2) {
|
|
if (f1 === nop) return f2;
|
|
return function(modifications) {
|
|
var res = f1.apply(this, arguments);
|
|
extend(modifications, res);
|
|
var onsuccess = this.onsuccess, onerror = this.onerror;
|
|
this.onsuccess = null;
|
|
this.onerror = null;
|
|
var res2 = f2.apply(this, arguments);
|
|
if (onsuccess) this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;
|
|
if (onerror) this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;
|
|
return res === undefined ? res2 === undefined ? undefined : res2 : extend(res, res2);
|
|
};
|
|
}
|
|
function reverseStoppableEventChain(f1, f2) {
|
|
if (f1 === nop) return f2;
|
|
return function() {
|
|
if (f2.apply(this, arguments) === false) return false;
|
|
return f1.apply(this, arguments);
|
|
};
|
|
}
|
|
function promisableChain(f1, f2) {
|
|
if (f1 === nop) return f2;
|
|
return function() {
|
|
var res = f1.apply(this, arguments);
|
|
if (res && typeof res.then === 'function') {
|
|
var thiz = this, i = arguments.length, args = new Array(i);
|
|
while(i--)args[i] = arguments[i];
|
|
return res.then(function() {
|
|
return f2.apply(thiz, args);
|
|
});
|
|
}
|
|
return f2.apply(this, arguments);
|
|
};
|
|
}
|
|
var debug = typeof location !== 'undefined' && /^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);
|
|
function setDebug(value, filter) {
|
|
debug = value;
|
|
}
|
|
var INTERNAL = {};
|
|
var ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ? [] : function() {
|
|
var globalP = Promise.resolve();
|
|
if (typeof crypto === 'undefined' || !crypto.subtle) return [
|
|
globalP,
|
|
getProto(globalP),
|
|
globalP
|
|
];
|
|
var nativeP = crypto.subtle.digest("SHA-512", new Uint8Array([
|
|
0
|
|
]));
|
|
return [
|
|
nativeP,
|
|
getProto(nativeP),
|
|
globalP
|
|
];
|
|
}(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;
|
|
var NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;
|
|
var patchGlobalPromise = !!resolvedGlobalPromise;
|
|
function schedulePhysicalTick() {
|
|
queueMicrotask(physicalTick);
|
|
}
|
|
var asap = function(callback, args) {
|
|
microtickQueue.push([
|
|
callback,
|
|
args
|
|
]);
|
|
if (needsNewPhysicalTick) {
|
|
schedulePhysicalTick();
|
|
needsNewPhysicalTick = false;
|
|
}
|
|
};
|
|
var isOutsideMicroTick = true, needsNewPhysicalTick = true, unhandledErrors = [], rejectingErrors = [], rejectionMapper = mirror;
|
|
var globalPSD = {
|
|
id: 'global',
|
|
global: true,
|
|
ref: 0,
|
|
unhandleds: [],
|
|
onunhandled: nop,
|
|
pgp: false,
|
|
env: {},
|
|
finalize: nop
|
|
};
|
|
var PSD = globalPSD;
|
|
var microtickQueue = [];
|
|
var numScheduledCalls = 0;
|
|
var tickFinalizers = [];
|
|
function DexiePromise(fn) {
|
|
if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
|
|
this._listeners = [];
|
|
this._lib = false;
|
|
var psd = this._PSD = PSD;
|
|
if (typeof fn !== 'function') {
|
|
if (fn !== INTERNAL) throw new TypeError('Not a function');
|
|
this._state = arguments[1];
|
|
this._value = arguments[2];
|
|
if (this._state === false) handleRejection(this, this._value);
|
|
return;
|
|
}
|
|
this._state = null;
|
|
this._value = null;
|
|
++psd.ref;
|
|
executePromiseTask(this, fn);
|
|
}
|
|
var thenProp = {
|
|
get: function() {
|
|
var psd = PSD, microTaskId = totalEchoes;
|
|
function then(onFulfilled, onRejected) {
|
|
var _this = this;
|
|
var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);
|
|
var cleanup = possibleAwait && !decrementExpectedAwaits();
|
|
var rv = new DexiePromise(function(resolve, reject) {
|
|
propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));
|
|
});
|
|
if (this._consoleTask) rv._consoleTask = this._consoleTask;
|
|
return rv;
|
|
}
|
|
then.prototype = INTERNAL;
|
|
return then;
|
|
},
|
|
set: function(value) {
|
|
setProp(this, 'then', value && value.prototype === INTERNAL ? thenProp : {
|
|
get: function() {
|
|
return value;
|
|
},
|
|
set: thenProp.set
|
|
});
|
|
}
|
|
};
|
|
props(DexiePromise.prototype, {
|
|
then: thenProp,
|
|
_then: function(onFulfilled, onRejected) {
|
|
propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));
|
|
},
|
|
catch: function(onRejected) {
|
|
if (arguments.length === 1) return this.then(null, onRejected);
|
|
var type = arguments[0], handler = arguments[1];
|
|
return typeof type === 'function' ? this.then(null, function(err) {
|
|
return err instanceof type ? handler(err) : PromiseReject(err);
|
|
}) : this.then(null, function(err) {
|
|
return err && err.name === type ? handler(err) : PromiseReject(err);
|
|
});
|
|
},
|
|
finally: function(onFinally) {
|
|
return this.then(function(value) {
|
|
return DexiePromise.resolve(onFinally()).then(function() {
|
|
return value;
|
|
});
|
|
}, function(err) {
|
|
return DexiePromise.resolve(onFinally()).then(function() {
|
|
return PromiseReject(err);
|
|
});
|
|
});
|
|
},
|
|
timeout: function(ms, msg) {
|
|
var _this = this;
|
|
return ms < Infinity ? new DexiePromise(function(resolve, reject) {
|
|
var handle = setTimeout(function() {
|
|
return reject(new exceptions.Timeout(msg));
|
|
}, ms);
|
|
_this.then(resolve, reject).finally(clearTimeout.bind(null, handle));
|
|
}) : this;
|
|
}
|
|
});
|
|
if (typeof Symbol !== 'undefined' && Symbol.toStringTag) setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');
|
|
globalPSD.env = snapShot();
|
|
function Listener(onFulfilled, onRejected, resolve, reject, zone) {
|
|
this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
|
|
this.onRejected = typeof onRejected === 'function' ? onRejected : null;
|
|
this.resolve = resolve;
|
|
this.reject = reject;
|
|
this.psd = zone;
|
|
}
|
|
props(DexiePromise, {
|
|
all: function() {
|
|
var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
|
|
return new DexiePromise(function(resolve, reject) {
|
|
if (values.length === 0) resolve([]);
|
|
var remaining = values.length;
|
|
values.forEach(function(a, i) {
|
|
return DexiePromise.resolve(a).then(function(x) {
|
|
values[i] = x;
|
|
if (!--remaining) resolve(values);
|
|
}, reject);
|
|
});
|
|
});
|
|
},
|
|
resolve: function(value) {
|
|
if (value instanceof DexiePromise) return value;
|
|
if (value && typeof value.then === 'function') return new DexiePromise(function(resolve, reject) {
|
|
value.then(resolve, reject);
|
|
});
|
|
var rv = new DexiePromise(INTERNAL, true, value);
|
|
return rv;
|
|
},
|
|
reject: PromiseReject,
|
|
race: function() {
|
|
var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
|
|
return new DexiePromise(function(resolve, reject) {
|
|
values.map(function(value) {
|
|
return DexiePromise.resolve(value).then(resolve, reject);
|
|
});
|
|
});
|
|
},
|
|
PSD: {
|
|
get: function() {
|
|
return PSD;
|
|
},
|
|
set: function(value) {
|
|
return PSD = value;
|
|
}
|
|
},
|
|
totalEchoes: {
|
|
get: function() {
|
|
return totalEchoes;
|
|
}
|
|
},
|
|
newPSD: newScope,
|
|
usePSD: usePSD,
|
|
scheduler: {
|
|
get: function() {
|
|
return asap;
|
|
},
|
|
set: function(value) {
|
|
asap = value;
|
|
}
|
|
},
|
|
rejectionMapper: {
|
|
get: function() {
|
|
return rejectionMapper;
|
|
},
|
|
set: function(value) {
|
|
rejectionMapper = value;
|
|
}
|
|
},
|
|
follow: function(fn, zoneProps) {
|
|
return new DexiePromise(function(resolve, reject) {
|
|
return newScope(function(resolve, reject) {
|
|
var psd = PSD;
|
|
psd.unhandleds = [];
|
|
psd.onunhandled = reject;
|
|
psd.finalize = callBoth(function() {
|
|
var _this = this;
|
|
run_at_end_of_this_or_next_physical_tick(function() {
|
|
_this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);
|
|
});
|
|
}, psd.finalize);
|
|
fn();
|
|
}, zoneProps, resolve, reject);
|
|
});
|
|
}
|
|
});
|
|
if (NativePromise) {
|
|
if (NativePromise.allSettled) setProp(DexiePromise, "allSettled", function() {
|
|
var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
|
|
return new DexiePromise(function(resolve) {
|
|
if (possiblePromises.length === 0) resolve([]);
|
|
var remaining = possiblePromises.length;
|
|
var results = new Array(remaining);
|
|
possiblePromises.forEach(function(p, i) {
|
|
return DexiePromise.resolve(p).then(function(value) {
|
|
return results[i] = {
|
|
status: "fulfilled",
|
|
value: value
|
|
};
|
|
}, function(reason) {
|
|
return results[i] = {
|
|
status: "rejected",
|
|
reason: reason
|
|
};
|
|
}).then(function() {
|
|
return --remaining || resolve(results);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
if (NativePromise.any && typeof AggregateError !== 'undefined') setProp(DexiePromise, "any", function() {
|
|
var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);
|
|
return new DexiePromise(function(resolve, reject) {
|
|
if (possiblePromises.length === 0) reject(new AggregateError([]));
|
|
var remaining = possiblePromises.length;
|
|
var failures = new Array(remaining);
|
|
possiblePromises.forEach(function(p, i) {
|
|
return DexiePromise.resolve(p).then(function(value) {
|
|
return resolve(value);
|
|
}, function(failure) {
|
|
failures[i] = failure;
|
|
if (!--remaining) reject(new AggregateError(failures));
|
|
});
|
|
});
|
|
});
|
|
});
|
|
if (NativePromise.withResolvers) DexiePromise.withResolvers = NativePromise.withResolvers;
|
|
}
|
|
function executePromiseTask(promise, fn) {
|
|
try {
|
|
fn(function(value) {
|
|
if (promise._state !== null) return;
|
|
if (value === promise) throw new TypeError('A promise cannot be resolved with itself.');
|
|
var shouldExecuteTick = promise._lib && beginMicroTickScope();
|
|
if (value && typeof value.then === 'function') {
|
|
executePromiseTask(promise, function(resolve, reject) {
|
|
value instanceof DexiePromise ? value._then(resolve, reject) : value.then(resolve, reject);
|
|
});
|
|
} else {
|
|
promise._state = true;
|
|
promise._value = value;
|
|
propagateAllListeners(promise);
|
|
}
|
|
if (shouldExecuteTick) endMicroTickScope();
|
|
}, handleRejection.bind(null, promise));
|
|
} catch (ex) {
|
|
handleRejection(promise, ex);
|
|
}
|
|
}
|
|
function handleRejection(promise, reason) {
|
|
rejectingErrors.push(reason);
|
|
if (promise._state !== null) return;
|
|
var shouldExecuteTick = promise._lib && beginMicroTickScope();
|
|
reason = rejectionMapper(reason);
|
|
promise._state = false;
|
|
promise._value = reason;
|
|
addPossiblyUnhandledError(promise);
|
|
propagateAllListeners(promise);
|
|
if (shouldExecuteTick) endMicroTickScope();
|
|
}
|
|
function propagateAllListeners(promise) {
|
|
var listeners = promise._listeners;
|
|
promise._listeners = [];
|
|
for(var i = 0, len = listeners.length; i < len; ++i){
|
|
propagateToListener(promise, listeners[i]);
|
|
}
|
|
var psd = promise._PSD;
|
|
--psd.ref || psd.finalize();
|
|
if (numScheduledCalls === 0) {
|
|
++numScheduledCalls;
|
|
asap(function() {
|
|
if (--numScheduledCalls === 0) finalizePhysicalTick();
|
|
}, []);
|
|
}
|
|
}
|
|
function propagateToListener(promise, listener) {
|
|
if (promise._state === null) {
|
|
promise._listeners.push(listener);
|
|
return;
|
|
}
|
|
var cb = promise._state ? listener.onFulfilled : listener.onRejected;
|
|
if (cb === null) {
|
|
return (promise._state ? listener.resolve : listener.reject)(promise._value);
|
|
}
|
|
++listener.psd.ref;
|
|
++numScheduledCalls;
|
|
asap(callListener, [
|
|
cb,
|
|
promise,
|
|
listener
|
|
]);
|
|
}
|
|
function callListener(cb, promise, listener) {
|
|
try {
|
|
var ret, value = promise._value;
|
|
if (!promise._state && rejectingErrors.length) rejectingErrors = [];
|
|
ret = debug && promise._consoleTask ? promise._consoleTask.run(function() {
|
|
return cb(value);
|
|
}) : cb(value);
|
|
if (!promise._state && rejectingErrors.indexOf(value) === -1) {
|
|
markErrorAsHandled(promise);
|
|
}
|
|
listener.resolve(ret);
|
|
} catch (e) {
|
|
listener.reject(e);
|
|
} finally{
|
|
if (--numScheduledCalls === 0) finalizePhysicalTick();
|
|
--listener.psd.ref || listener.psd.finalize();
|
|
}
|
|
}
|
|
function physicalTick() {
|
|
usePSD(globalPSD, function() {
|
|
beginMicroTickScope() && endMicroTickScope();
|
|
});
|
|
}
|
|
function beginMicroTickScope() {
|
|
var wasRootExec = isOutsideMicroTick;
|
|
isOutsideMicroTick = false;
|
|
needsNewPhysicalTick = false;
|
|
return wasRootExec;
|
|
}
|
|
function endMicroTickScope() {
|
|
var callbacks, i, l;
|
|
do {
|
|
while(microtickQueue.length > 0){
|
|
callbacks = microtickQueue;
|
|
microtickQueue = [];
|
|
l = callbacks.length;
|
|
for(i = 0; i < l; ++i){
|
|
var item = callbacks[i];
|
|
item[0].apply(null, item[1]);
|
|
}
|
|
}
|
|
}while (microtickQueue.length > 0)
|
|
isOutsideMicroTick = true;
|
|
needsNewPhysicalTick = true;
|
|
}
|
|
function finalizePhysicalTick() {
|
|
var unhandledErrs = unhandledErrors;
|
|
unhandledErrors = [];
|
|
unhandledErrs.forEach(function(p) {
|
|
p._PSD.onunhandled.call(null, p._value, p);
|
|
});
|
|
var finalizers = tickFinalizers.slice(0);
|
|
var i = finalizers.length;
|
|
while(i)finalizers[--i]();
|
|
}
|
|
function run_at_end_of_this_or_next_physical_tick(fn) {
|
|
function finalizer() {
|
|
fn();
|
|
tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);
|
|
}
|
|
tickFinalizers.push(finalizer);
|
|
++numScheduledCalls;
|
|
asap(function() {
|
|
if (--numScheduledCalls === 0) finalizePhysicalTick();
|
|
}, []);
|
|
}
|
|
function addPossiblyUnhandledError(promise) {
|
|
if (!unhandledErrors.some(function(p) {
|
|
return p._value === promise._value;
|
|
})) unhandledErrors.push(promise);
|
|
}
|
|
function markErrorAsHandled(promise) {
|
|
var i = unhandledErrors.length;
|
|
while(i)if (unhandledErrors[--i]._value === promise._value) {
|
|
unhandledErrors.splice(i, 1);
|
|
return;
|
|
}
|
|
}
|
|
function PromiseReject(reason) {
|
|
return new DexiePromise(INTERNAL, false, reason);
|
|
}
|
|
function wrap(fn, errorCatcher) {
|
|
var psd = PSD;
|
|
return function() {
|
|
var wasRootExec = beginMicroTickScope(), outerScope = PSD;
|
|
try {
|
|
switchToZone(psd, true);
|
|
return fn.apply(this, arguments);
|
|
} catch (e) {
|
|
errorCatcher && errorCatcher(e);
|
|
} finally{
|
|
switchToZone(outerScope, false);
|
|
if (wasRootExec) endMicroTickScope();
|
|
}
|
|
};
|
|
}
|
|
var task = {
|
|
awaits: 0,
|
|
echoes: 0,
|
|
id: 0
|
|
};
|
|
var taskCounter = 0;
|
|
var zoneStack = [];
|
|
var zoneEchoes = 0;
|
|
var totalEchoes = 0;
|
|
var zone_id_counter = 0;
|
|
function newScope(fn, props, a1, a2) {
|
|
var parent = PSD, psd = Object.create(parent);
|
|
psd.parent = parent;
|
|
psd.ref = 0;
|
|
psd.global = false;
|
|
psd.id = ++zone_id_counter;
|
|
globalPSD.env;
|
|
psd.env = patchGlobalPromise ? {
|
|
Promise: DexiePromise,
|
|
PromiseProp: {
|
|
value: DexiePromise,
|
|
configurable: true,
|
|
writable: true
|
|
},
|
|
all: DexiePromise.all,
|
|
race: DexiePromise.race,
|
|
allSettled: DexiePromise.allSettled,
|
|
any: DexiePromise.any,
|
|
resolve: DexiePromise.resolve,
|
|
reject: DexiePromise.reject
|
|
} : {};
|
|
if (props) extend(psd, props);
|
|
++parent.ref;
|
|
psd.finalize = function() {
|
|
--this.parent.ref || this.parent.finalize();
|
|
};
|
|
var rv = usePSD(psd, fn, a1, a2);
|
|
if (psd.ref === 0) psd.finalize();
|
|
return rv;
|
|
}
|
|
function incrementExpectedAwaits() {
|
|
if (!task.id) task.id = ++taskCounter;
|
|
++task.awaits;
|
|
task.echoes += ZONE_ECHO_LIMIT;
|
|
return task.id;
|
|
}
|
|
function decrementExpectedAwaits() {
|
|
if (!task.awaits) return false;
|
|
if (--task.awaits === 0) task.id = 0;
|
|
task.echoes = task.awaits * ZONE_ECHO_LIMIT;
|
|
return true;
|
|
}
|
|
if (('' + nativePromiseThen).indexOf('[native code]') === -1) {
|
|
incrementExpectedAwaits = decrementExpectedAwaits = nop;
|
|
}
|
|
function onPossibleParallellAsync(possiblePromise) {
|
|
if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {
|
|
incrementExpectedAwaits();
|
|
return possiblePromise.then(function(x) {
|
|
decrementExpectedAwaits();
|
|
return x;
|
|
}, function(e) {
|
|
decrementExpectedAwaits();
|
|
return rejection(e);
|
|
});
|
|
}
|
|
return possiblePromise;
|
|
}
|
|
function zoneEnterEcho(targetZone) {
|
|
++totalEchoes;
|
|
if (!task.echoes || --task.echoes === 0) {
|
|
task.echoes = task.awaits = task.id = 0;
|
|
}
|
|
zoneStack.push(PSD);
|
|
switchToZone(targetZone, true);
|
|
}
|
|
function zoneLeaveEcho() {
|
|
var zone = zoneStack[zoneStack.length - 1];
|
|
zoneStack.pop();
|
|
switchToZone(zone, false);
|
|
}
|
|
function switchToZone(targetZone, bEnteringZone) {
|
|
var currentZone = PSD;
|
|
if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {
|
|
queueMicrotask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);
|
|
}
|
|
if (targetZone === PSD) return;
|
|
PSD = targetZone;
|
|
if (currentZone === globalPSD) globalPSD.env = snapShot();
|
|
if (patchGlobalPromise) {
|
|
var GlobalPromise = globalPSD.env.Promise;
|
|
var targetEnv = targetZone.env;
|
|
if (currentZone.global || targetZone.global) {
|
|
Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);
|
|
GlobalPromise.all = targetEnv.all;
|
|
GlobalPromise.race = targetEnv.race;
|
|
GlobalPromise.resolve = targetEnv.resolve;
|
|
GlobalPromise.reject = targetEnv.reject;
|
|
if (targetEnv.allSettled) GlobalPromise.allSettled = targetEnv.allSettled;
|
|
if (targetEnv.any) GlobalPromise.any = targetEnv.any;
|
|
}
|
|
}
|
|
}
|
|
function snapShot() {
|
|
var GlobalPromise = _global.Promise;
|
|
return patchGlobalPromise ? {
|
|
Promise: GlobalPromise,
|
|
PromiseProp: Object.getOwnPropertyDescriptor(_global, "Promise"),
|
|
all: GlobalPromise.all,
|
|
race: GlobalPromise.race,
|
|
allSettled: GlobalPromise.allSettled,
|
|
any: GlobalPromise.any,
|
|
resolve: GlobalPromise.resolve,
|
|
reject: GlobalPromise.reject
|
|
} : {};
|
|
}
|
|
function usePSD(psd, fn, a1, a2, a3) {
|
|
var outerScope = PSD;
|
|
try {
|
|
switchToZone(psd, true);
|
|
return fn(a1, a2, a3);
|
|
} finally{
|
|
switchToZone(outerScope, false);
|
|
}
|
|
}
|
|
function nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {
|
|
return typeof fn !== 'function' ? fn : function() {
|
|
var outerZone = PSD;
|
|
if (possibleAwait) incrementExpectedAwaits();
|
|
switchToZone(zone, true);
|
|
try {
|
|
return fn.apply(this, arguments);
|
|
} finally{
|
|
switchToZone(outerZone, false);
|
|
if (cleanup) queueMicrotask(decrementExpectedAwaits);
|
|
}
|
|
};
|
|
}
|
|
function execInGlobalContext(cb) {
|
|
if (Promise === NativePromise && task.echoes === 0) {
|
|
if (zoneEchoes === 0) {
|
|
cb();
|
|
} else {
|
|
enqueueNativeMicroTask(cb);
|
|
}
|
|
} else {
|
|
setTimeout(cb, 0);
|
|
}
|
|
}
|
|
var rejection = DexiePromise.reject;
|
|
function tempTransaction(db, mode, storeNames, fn) {
|
|
if (!db.idbdb || !db._state.openComplete && !PSD.letThrough && !db._vip) {
|
|
if (db._state.openComplete) {
|
|
return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));
|
|
}
|
|
if (!db._state.isBeingOpened) {
|
|
if (!db._state.autoOpen) return rejection(new exceptions.DatabaseClosed());
|
|
db.open().catch(nop);
|
|
}
|
|
return db._state.dbReadyPromise.then(function() {
|
|
return tempTransaction(db, mode, storeNames, fn);
|
|
});
|
|
} else {
|
|
var trans = db._createTransaction(mode, storeNames, db._dbSchema);
|
|
try {
|
|
trans.create();
|
|
db._state.PR1398_maxLoop = 3;
|
|
} catch (ex) {
|
|
if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {
|
|
console.warn('Dexie: Need to reopen db');
|
|
db.close({
|
|
disableAutoOpen: false
|
|
});
|
|
return db.open().then(function() {
|
|
return tempTransaction(db, mode, storeNames, fn);
|
|
});
|
|
}
|
|
return rejection(ex);
|
|
}
|
|
return trans._promise(mode, function(resolve, reject) {
|
|
return newScope(function() {
|
|
PSD.trans = trans;
|
|
return fn(resolve, reject, trans);
|
|
});
|
|
}).then(function(result) {
|
|
if (mode === 'readwrite') try {
|
|
trans.idbtrans.commit();
|
|
} catch (_a) {}
|
|
return mode === 'readonly' ? result : trans._completion.then(function() {
|
|
return result;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
var DEXIE_VERSION = '4.2.1';
|
|
var maxString = String.fromCharCode(65535);
|
|
var minKey = -Infinity;
|
|
var INVALID_KEY_ARGUMENT = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.";
|
|
var STRING_EXPECTED = "String expected.";
|
|
var connections = [];
|
|
var DBNAMES_DB = '__dbnames';
|
|
var READONLY = 'readonly';
|
|
var READWRITE = 'readwrite';
|
|
function combine(filter1, filter2) {
|
|
return filter1 ? filter2 ? function() {
|
|
return filter1.apply(this, arguments) && filter2.apply(this, arguments);
|
|
} : filter1 : filter2;
|
|
}
|
|
var AnyRange = {
|
|
type: 3,
|
|
lower: -Infinity,
|
|
lowerOpen: false,
|
|
upper: [
|
|
[]
|
|
],
|
|
upperOpen: false
|
|
};
|
|
function workaroundForUndefinedPrimKey(keyPath) {
|
|
return typeof keyPath === "string" && !/\./.test(keyPath) ? function(obj) {
|
|
if (obj[keyPath] === undefined && keyPath in obj) {
|
|
obj = deepClone(obj);
|
|
delete obj[keyPath];
|
|
}
|
|
return obj;
|
|
} : function(obj) {
|
|
return obj;
|
|
};
|
|
}
|
|
function Entity() {
|
|
throw exceptions.Type("Entity instances must never be new:ed. Instances are generated by the framework bypassing the constructor.");
|
|
}
|
|
function cmp(a, b) {
|
|
try {
|
|
var ta = type(a);
|
|
var tb = type(b);
|
|
if (ta !== tb) {
|
|
if (ta === 'Array') return 1;
|
|
if (tb === 'Array') return -1;
|
|
if (ta === 'binary') return 1;
|
|
if (tb === 'binary') return -1;
|
|
if (ta === 'string') return 1;
|
|
if (tb === 'string') return -1;
|
|
if (ta === 'Date') return 1;
|
|
if (tb !== 'Date') return NaN;
|
|
return -1;
|
|
}
|
|
switch(ta){
|
|
case 'number':
|
|
case 'Date':
|
|
case 'string':
|
|
return a > b ? 1 : a < b ? -1 : 0;
|
|
case 'binary':
|
|
{
|
|
return compareUint8Arrays(getUint8Array(a), getUint8Array(b));
|
|
}
|
|
case 'Array':
|
|
return compareArrays(a, b);
|
|
}
|
|
} catch (_a) {}
|
|
return NaN;
|
|
}
|
|
function compareArrays(a, b) {
|
|
var al = a.length;
|
|
var bl = b.length;
|
|
var l = al < bl ? al : bl;
|
|
for(var i = 0; i < l; ++i){
|
|
var res = cmp(a[i], b[i]);
|
|
if (res !== 0) return res;
|
|
}
|
|
return al === bl ? 0 : al < bl ? -1 : 1;
|
|
}
|
|
function compareUint8Arrays(a, b) {
|
|
var al = a.length;
|
|
var bl = b.length;
|
|
var l = al < bl ? al : bl;
|
|
for(var i = 0; i < l; ++i){
|
|
if (a[i] !== b[i]) return a[i] < b[i] ? -1 : 1;
|
|
}
|
|
return al === bl ? 0 : al < bl ? -1 : 1;
|
|
}
|
|
function type(x) {
|
|
var t = typeof x;
|
|
if (t !== 'object') return t;
|
|
if (ArrayBuffer.isView(x)) return 'binary';
|
|
var tsTag = toStringTag(x);
|
|
return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;
|
|
}
|
|
function getUint8Array(a) {
|
|
if (a instanceof Uint8Array) return a;
|
|
if (ArrayBuffer.isView(a)) return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
|
|
return new Uint8Array(a);
|
|
}
|
|
function builtInDeletionTrigger(table, keys, res) {
|
|
var yProps = table.schema.yProps;
|
|
if (!yProps) return res;
|
|
if (keys && res.numFailures > 0) keys = keys.filter(function(_, i) {
|
|
return !res.failures[i];
|
|
});
|
|
return Promise.all(yProps.map(function(_a) {
|
|
var updatesTable = _a.updatesTable;
|
|
return keys ? table.db.table(updatesTable).where('k').anyOf(keys).delete() : table.db.table(updatesTable).clear();
|
|
})).then(function() {
|
|
return res;
|
|
});
|
|
}
|
|
var PropModification = function() {
|
|
function PropModification(spec) {
|
|
this["@@propmod"] = spec;
|
|
}
|
|
PropModification.prototype.execute = function(value) {
|
|
var _a;
|
|
var spec = this["@@propmod"];
|
|
if (spec.add !== undefined) {
|
|
var term = spec.add;
|
|
if (isArray(term)) {
|
|
return __spreadArray(__spreadArray([], isArray(value) ? value : [], true), term, true).sort();
|
|
}
|
|
if (typeof term === 'number') return (Number(value) || 0) + term;
|
|
if (typeof term === 'bigint') {
|
|
try {
|
|
return BigInt(value) + term;
|
|
} catch (_b) {
|
|
return BigInt(0) + term;
|
|
}
|
|
}
|
|
throw new TypeError("Invalid term ".concat(term));
|
|
}
|
|
if (spec.remove !== undefined) {
|
|
var subtrahend_1 = spec.remove;
|
|
if (isArray(subtrahend_1)) {
|
|
return isArray(value) ? value.filter(function(item) {
|
|
return !subtrahend_1.includes(item);
|
|
}).sort() : [];
|
|
}
|
|
if (typeof subtrahend_1 === 'number') return Number(value) - subtrahend_1;
|
|
if (typeof subtrahend_1 === 'bigint') {
|
|
try {
|
|
return BigInt(value) - subtrahend_1;
|
|
} catch (_c) {
|
|
return BigInt(0) - subtrahend_1;
|
|
}
|
|
}
|
|
throw new TypeError("Invalid subtrahend ".concat(subtrahend_1));
|
|
}
|
|
var prefixToReplace = (_a = spec.replacePrefix) === null || _a === void 0 ? void 0 : _a[0];
|
|
if (prefixToReplace && typeof value === 'string' && value.startsWith(prefixToReplace)) {
|
|
return spec.replacePrefix[1] + value.substring(prefixToReplace.length);
|
|
}
|
|
return value;
|
|
};
|
|
return PropModification;
|
|
}();
|
|
function applyUpdateSpec(obj, changes) {
|
|
var keyPaths = keys(changes);
|
|
var numKeys = keyPaths.length;
|
|
var anythingModified = false;
|
|
for(var i = 0; i < numKeys; ++i){
|
|
var keyPath = keyPaths[i];
|
|
var value = changes[keyPath];
|
|
var origValue = getByKeyPath(obj, keyPath);
|
|
if (value instanceof PropModification) {
|
|
setByKeyPath(obj, keyPath, value.execute(origValue));
|
|
anythingModified = true;
|
|
} else if (origValue !== value) {
|
|
setByKeyPath(obj, keyPath, value);
|
|
anythingModified = true;
|
|
}
|
|
}
|
|
return anythingModified;
|
|
}
|
|
var Table = function() {
|
|
function Table() {}
|
|
Table.prototype._trans = function(mode, fn, writeLocked) {
|
|
var trans = this._tx || PSD.trans;
|
|
var tableName = this.name;
|
|
var task = debug && typeof console !== 'undefined' && console.createTask && console.createTask("Dexie: ".concat(mode === 'readonly' ? 'read' : 'write', " ").concat(this.name));
|
|
function checkTableInTransaction(resolve, reject, trans) {
|
|
if (!trans.schema[tableName]) throw new exceptions.NotFound("Table " + tableName + " not part of transaction");
|
|
return fn(trans.idbtrans, trans);
|
|
}
|
|
var wasRootExec = beginMicroTickScope();
|
|
try {
|
|
var p = trans && trans.db._novip === this.db._novip ? trans === PSD.trans ? trans._promise(mode, checkTableInTransaction, writeLocked) : newScope(function() {
|
|
return trans._promise(mode, checkTableInTransaction, writeLocked);
|
|
}, {
|
|
trans: trans,
|
|
transless: PSD.transless || PSD
|
|
}) : tempTransaction(this.db, mode, [
|
|
this.name
|
|
], checkTableInTransaction);
|
|
if (task) {
|
|
p._consoleTask = task;
|
|
p = p.catch(function(err) {
|
|
console.trace(err);
|
|
return rejection(err);
|
|
});
|
|
}
|
|
return p;
|
|
} finally{
|
|
if (wasRootExec) endMicroTickScope();
|
|
}
|
|
};
|
|
Table.prototype.get = function(keyOrCrit, cb) {
|
|
var _this = this;
|
|
if (keyOrCrit && keyOrCrit.constructor === Object) return this.where(keyOrCrit).first(cb);
|
|
if (keyOrCrit == null) return rejection(new exceptions.Type("Invalid argument to Table.get()"));
|
|
return this._trans('readonly', function(trans) {
|
|
return _this.core.get({
|
|
trans: trans,
|
|
key: keyOrCrit
|
|
}).then(function(res) {
|
|
return _this.hook.reading.fire(res);
|
|
});
|
|
}).then(cb);
|
|
};
|
|
Table.prototype.where = function(indexOrCrit) {
|
|
if (typeof indexOrCrit === 'string') return new this.db.WhereClause(this, indexOrCrit);
|
|
if (isArray(indexOrCrit)) return new this.db.WhereClause(this, "[".concat(indexOrCrit.join('+'), "]"));
|
|
var keyPaths = keys(indexOrCrit);
|
|
if (keyPaths.length === 1) return this.where(keyPaths[0]).equals(indexOrCrit[keyPaths[0]]);
|
|
var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function(ix) {
|
|
if (ix.compound && keyPaths.every(function(keyPath) {
|
|
return ix.keyPath.indexOf(keyPath) >= 0;
|
|
})) {
|
|
for(var i = 0; i < keyPaths.length; ++i){
|
|
if (keyPaths.indexOf(ix.keyPath[i]) === -1) return false;
|
|
}
|
|
return true;
|
|
}
|
|
return false;
|
|
}).sort(function(a, b) {
|
|
return a.keyPath.length - b.keyPath.length;
|
|
})[0];
|
|
if (compoundIndex && this.db._maxKey !== maxString) {
|
|
var keyPathsInValidOrder = compoundIndex.keyPath.slice(0, keyPaths.length);
|
|
return this.where(keyPathsInValidOrder).equals(keyPathsInValidOrder.map(function(kp) {
|
|
return indexOrCrit[kp];
|
|
}));
|
|
}
|
|
if (!compoundIndex && debug) console.warn("The query ".concat(JSON.stringify(indexOrCrit), " on ").concat(this.name, " would benefit from a ") + "compound index [".concat(keyPaths.join('+'), "]"));
|
|
var idxByName = this.schema.idxByName;
|
|
function equals(a, b) {
|
|
return cmp(a, b) === 0;
|
|
}
|
|
var _a = keyPaths.reduce(function(_a, keyPath) {
|
|
var prevIndex = _a[0], prevFilterFn = _a[1];
|
|
var index = idxByName[keyPath];
|
|
var value = indexOrCrit[keyPath];
|
|
return [
|
|
prevIndex || index,
|
|
prevIndex || !index ? combine(prevFilterFn, index && index.multi ? function(x) {
|
|
var prop = getByKeyPath(x, keyPath);
|
|
return isArray(prop) && prop.some(function(item) {
|
|
return equals(value, item);
|
|
});
|
|
} : function(x) {
|
|
return equals(value, getByKeyPath(x, keyPath));
|
|
}) : prevFilterFn
|
|
];
|
|
}, [
|
|
null,
|
|
null
|
|
]), idx = _a[0], filterFunction = _a[1];
|
|
return idx ? this.where(idx.name).equals(indexOrCrit[idx.keyPath]).filter(filterFunction) : compoundIndex ? this.filter(filterFunction) : this.where(keyPaths).equals('');
|
|
};
|
|
Table.prototype.filter = function(filterFunction) {
|
|
return this.toCollection().and(filterFunction);
|
|
};
|
|
Table.prototype.count = function(thenShortcut) {
|
|
return this.toCollection().count(thenShortcut);
|
|
};
|
|
Table.prototype.offset = function(offset) {
|
|
return this.toCollection().offset(offset);
|
|
};
|
|
Table.prototype.limit = function(numRows) {
|
|
return this.toCollection().limit(numRows);
|
|
};
|
|
Table.prototype.each = function(callback) {
|
|
return this.toCollection().each(callback);
|
|
};
|
|
Table.prototype.toArray = function(thenShortcut) {
|
|
return this.toCollection().toArray(thenShortcut);
|
|
};
|
|
Table.prototype.toCollection = function() {
|
|
return new this.db.Collection(new this.db.WhereClause(this));
|
|
};
|
|
Table.prototype.orderBy = function(index) {
|
|
return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ? "[".concat(index.join('+'), "]") : index));
|
|
};
|
|
Table.prototype.reverse = function() {
|
|
return this.toCollection().reverse();
|
|
};
|
|
Table.prototype.mapToClass = function(constructor) {
|
|
var _a = this, db = _a.db, tableName = _a.name;
|
|
this.schema.mappedClass = constructor;
|
|
if (constructor.prototype instanceof Entity) {
|
|
constructor = function(_super) {
|
|
__extends(class_1, _super);
|
|
function class_1() {
|
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
}
|
|
Object.defineProperty(class_1.prototype, "db", {
|
|
get: function() {
|
|
return db;
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
class_1.prototype.table = function() {
|
|
return tableName;
|
|
};
|
|
return class_1;
|
|
}(constructor);
|
|
}
|
|
var inheritedProps = new Set();
|
|
for(var proto = constructor.prototype; proto; proto = getProto(proto)){
|
|
Object.getOwnPropertyNames(proto).forEach(function(propName) {
|
|
return inheritedProps.add(propName);
|
|
});
|
|
}
|
|
var readHook = function(obj) {
|
|
if (!obj) return obj;
|
|
var res = Object.create(constructor.prototype);
|
|
for(var m in obj)if (!inheritedProps.has(m)) try {
|
|
res[m] = obj[m];
|
|
} catch (_) {}
|
|
return res;
|
|
};
|
|
if (this.schema.readHook) {
|
|
this.hook.reading.unsubscribe(this.schema.readHook);
|
|
}
|
|
this.schema.readHook = readHook;
|
|
this.hook("reading", readHook);
|
|
return constructor;
|
|
};
|
|
Table.prototype.defineClass = function() {
|
|
function Class(content) {
|
|
extend(this, content);
|
|
}
|
|
return this.mapToClass(Class);
|
|
};
|
|
Table.prototype.add = function(obj, key) {
|
|
var _this = this;
|
|
var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;
|
|
var objToAdd = obj;
|
|
if (keyPath && auto) {
|
|
objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);
|
|
}
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'add',
|
|
keys: key != null ? [
|
|
key
|
|
] : null,
|
|
values: [
|
|
objToAdd
|
|
]
|
|
});
|
|
}).then(function(res) {
|
|
return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult;
|
|
}).then(function(lastResult) {
|
|
if (keyPath) {
|
|
try {
|
|
setByKeyPath(obj, keyPath, lastResult);
|
|
} catch (_) {}
|
|
}
|
|
return lastResult;
|
|
});
|
|
};
|
|
Table.prototype.upsert = function(key, modifications) {
|
|
var _this = this;
|
|
var keyPath = this.schema.primKey.keyPath;
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.get({
|
|
trans: trans,
|
|
key: key
|
|
}).then(function(existing) {
|
|
var obj = existing !== null && existing !== void 0 ? existing : {};
|
|
applyUpdateSpec(obj, modifications);
|
|
if (keyPath) setByKeyPath(obj, keyPath, key);
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'put',
|
|
values: [
|
|
obj
|
|
],
|
|
keys: [
|
|
key
|
|
],
|
|
upsert: true,
|
|
updates: {
|
|
keys: [
|
|
key
|
|
],
|
|
changeSpecs: [
|
|
modifications
|
|
]
|
|
}
|
|
}).then(function(res) {
|
|
return res.numFailures ? DexiePromise.reject(res.failures[0]) : !!existing;
|
|
});
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.update = function(keyOrObject, modifications) {
|
|
if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {
|
|
var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);
|
|
if (key === undefined) return rejection(new exceptions.InvalidArgument("Given object does not contain its primary key"));
|
|
return this.where(":id").equals(key).modify(modifications);
|
|
} else {
|
|
return this.where(":id").equals(keyOrObject).modify(modifications);
|
|
}
|
|
};
|
|
Table.prototype.put = function(obj, key) {
|
|
var _this = this;
|
|
var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;
|
|
var objToAdd = obj;
|
|
if (keyPath && auto) {
|
|
objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);
|
|
}
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'put',
|
|
values: [
|
|
objToAdd
|
|
],
|
|
keys: key != null ? [
|
|
key
|
|
] : null
|
|
});
|
|
}).then(function(res) {
|
|
return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult;
|
|
}).then(function(lastResult) {
|
|
if (keyPath) {
|
|
try {
|
|
setByKeyPath(obj, keyPath, lastResult);
|
|
} catch (_) {}
|
|
}
|
|
return lastResult;
|
|
});
|
|
};
|
|
Table.prototype.delete = function(key) {
|
|
var _this = this;
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'delete',
|
|
keys: [
|
|
key
|
|
]
|
|
}).then(function(res) {
|
|
return builtInDeletionTrigger(_this, [
|
|
key
|
|
], res);
|
|
}).then(function(res) {
|
|
return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined;
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.clear = function() {
|
|
var _this = this;
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'deleteRange',
|
|
range: AnyRange
|
|
}).then(function(res) {
|
|
return builtInDeletionTrigger(_this, null, res);
|
|
});
|
|
}).then(function(res) {
|
|
return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined;
|
|
});
|
|
};
|
|
Table.prototype.bulkGet = function(keys) {
|
|
var _this = this;
|
|
return this._trans('readonly', function(trans) {
|
|
return _this.core.getMany({
|
|
keys: keys,
|
|
trans: trans
|
|
}).then(function(result) {
|
|
return result.map(function(res) {
|
|
return _this.hook.reading.fire(res);
|
|
});
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.bulkAdd = function(objects, keysOrOptions, options) {
|
|
var _this = this;
|
|
var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;
|
|
options = options || (keys ? undefined : keysOrOptions);
|
|
var wantResults = options ? options.allKeys : undefined;
|
|
return this._trans('readwrite', function(trans) {
|
|
var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;
|
|
if (keyPath && keys) throw new exceptions.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");
|
|
if (keys && keys.length !== objects.length) throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length");
|
|
var numObjects = objects.length;
|
|
var objectsToAdd = keyPath && auto ? objects.map(workaroundForUndefinedPrimKey(keyPath)) : objects;
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'add',
|
|
keys: keys,
|
|
values: objectsToAdd,
|
|
wantResults: wantResults
|
|
}).then(function(_a) {
|
|
var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;
|
|
var result = wantResults ? results : lastResult;
|
|
if (numFailures === 0) return result;
|
|
throw new BulkError("".concat(_this.name, ".bulkAdd(): ").concat(numFailures, " of ").concat(numObjects, " operations failed"), failures);
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.bulkPut = function(objects, keysOrOptions, options) {
|
|
var _this = this;
|
|
var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;
|
|
options = options || (keys ? undefined : keysOrOptions);
|
|
var wantResults = options ? options.allKeys : undefined;
|
|
return this._trans('readwrite', function(trans) {
|
|
var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;
|
|
if (keyPath && keys) throw new exceptions.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");
|
|
if (keys && keys.length !== objects.length) throw new exceptions.InvalidArgument("Arguments objects and keys must have the same length");
|
|
var numObjects = objects.length;
|
|
var objectsToPut = keyPath && auto ? objects.map(workaroundForUndefinedPrimKey(keyPath)) : objects;
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'put',
|
|
keys: keys,
|
|
values: objectsToPut,
|
|
wantResults: wantResults
|
|
}).then(function(_a) {
|
|
var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;
|
|
var result = wantResults ? results : lastResult;
|
|
if (numFailures === 0) return result;
|
|
throw new BulkError("".concat(_this.name, ".bulkPut(): ").concat(numFailures, " of ").concat(numObjects, " operations failed"), failures);
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.bulkUpdate = function(keysAndChanges) {
|
|
var _this = this;
|
|
var coreTable = this.core;
|
|
var keys = keysAndChanges.map(function(entry) {
|
|
return entry.key;
|
|
});
|
|
var changeSpecs = keysAndChanges.map(function(entry) {
|
|
return entry.changes;
|
|
});
|
|
var offsetMap = [];
|
|
return this._trans('readwrite', function(trans) {
|
|
return coreTable.getMany({
|
|
trans: trans,
|
|
keys: keys,
|
|
cache: 'clone'
|
|
}).then(function(objs) {
|
|
var resultKeys = [];
|
|
var resultObjs = [];
|
|
keysAndChanges.forEach(function(_a, idx) {
|
|
var key = _a.key, changes = _a.changes;
|
|
var obj = objs[idx];
|
|
if (obj) {
|
|
for(var _i = 0, _b = Object.keys(changes); _i < _b.length; _i++){
|
|
var keyPath = _b[_i];
|
|
var value = changes[keyPath];
|
|
if (keyPath === _this.schema.primKey.keyPath) {
|
|
if (cmp(value, key) !== 0) {
|
|
throw new exceptions.Constraint("Cannot update primary key in bulkUpdate()");
|
|
}
|
|
} else {
|
|
setByKeyPath(obj, keyPath, value);
|
|
}
|
|
}
|
|
offsetMap.push(idx);
|
|
resultKeys.push(key);
|
|
resultObjs.push(obj);
|
|
}
|
|
});
|
|
var numEntries = resultKeys.length;
|
|
return coreTable.mutate({
|
|
trans: trans,
|
|
type: 'put',
|
|
keys: resultKeys,
|
|
values: resultObjs,
|
|
updates: {
|
|
keys: keys,
|
|
changeSpecs: changeSpecs
|
|
}
|
|
}).then(function(_a) {
|
|
var numFailures = _a.numFailures, failures = _a.failures;
|
|
if (numFailures === 0) return numEntries;
|
|
for(var _i = 0, _b = Object.keys(failures); _i < _b.length; _i++){
|
|
var offset = _b[_i];
|
|
var mappedOffset = offsetMap[Number(offset)];
|
|
if (mappedOffset != null) {
|
|
var failure = failures[offset];
|
|
delete failures[offset];
|
|
failures[mappedOffset] = failure;
|
|
}
|
|
}
|
|
throw new BulkError("".concat(_this.name, ".bulkUpdate(): ").concat(numFailures, " of ").concat(numEntries, " operations failed"), failures);
|
|
});
|
|
});
|
|
});
|
|
};
|
|
Table.prototype.bulkDelete = function(keys) {
|
|
var _this = this;
|
|
var numKeys = keys.length;
|
|
return this._trans('readwrite', function(trans) {
|
|
return _this.core.mutate({
|
|
trans: trans,
|
|
type: 'delete',
|
|
keys: keys
|
|
}).then(function(res) {
|
|
return builtInDeletionTrigger(_this, keys, res);
|
|
});
|
|
}).then(function(_a) {
|
|
var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;
|
|
if (numFailures === 0) return lastResult;
|
|
throw new BulkError("".concat(_this.name, ".bulkDelete(): ").concat(numFailures, " of ").concat(numKeys, " operations failed"), failures);
|
|
});
|
|
};
|
|
return Table;
|
|
}();
|
|
function Events(ctx) {
|
|
var evs = {};
|
|
var rv = function(eventName, subscriber) {
|
|
if (subscriber) {
|
|
var i = arguments.length, args = new Array(i - 1);
|
|
while(--i)args[i - 1] = arguments[i];
|
|
evs[eventName].subscribe.apply(null, args);
|
|
return ctx;
|
|
} else if (typeof eventName === 'string') {
|
|
return evs[eventName];
|
|
}
|
|
};
|
|
rv.addEventType = add;
|
|
for(var i = 1, l = arguments.length; i < l; ++i){
|
|
add(arguments[i]);
|
|
}
|
|
return rv;
|
|
//TURBOPACK unreachable
|
|
;
|
|
function add(eventName, chainFunction, defaultFunction) {
|
|
if (typeof eventName === 'object') return addConfiguredEvents(eventName);
|
|
if (!chainFunction) chainFunction = reverseStoppableEventChain;
|
|
if (!defaultFunction) defaultFunction = nop;
|
|
var context = {
|
|
subscribers: [],
|
|
fire: defaultFunction,
|
|
subscribe: function(cb) {
|
|
if (context.subscribers.indexOf(cb) === -1) {
|
|
context.subscribers.push(cb);
|
|
context.fire = chainFunction(context.fire, cb);
|
|
}
|
|
},
|
|
unsubscribe: function(cb) {
|
|
context.subscribers = context.subscribers.filter(function(fn) {
|
|
return fn !== cb;
|
|
});
|
|
context.fire = context.subscribers.reduce(chainFunction, defaultFunction);
|
|
}
|
|
};
|
|
evs[eventName] = rv[eventName] = context;
|
|
return context;
|
|
}
|
|
function addConfiguredEvents(cfg) {
|
|
keys(cfg).forEach(function(eventName) {
|
|
var args = cfg[eventName];
|
|
if (isArray(args)) {
|
|
add(eventName, cfg[eventName][0], cfg[eventName][1]);
|
|
} else if (args === 'asap') {
|
|
var context = add(eventName, mirror, function fire() {
|
|
var i = arguments.length, args = new Array(i);
|
|
while(i--)args[i] = arguments[i];
|
|
context.subscribers.forEach(function(fn) {
|
|
asap$1(function fireEvent() {
|
|
fn.apply(null, args);
|
|
});
|
|
});
|
|
});
|
|
} else throw new exceptions.InvalidArgument("Invalid event config");
|
|
});
|
|
}
|
|
}
|
|
function makeClassConstructor(prototype, constructor) {
|
|
derive(constructor).from({
|
|
prototype: prototype
|
|
});
|
|
return constructor;
|
|
}
|
|
function createTableConstructor(db) {
|
|
return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {
|
|
this.db = db;
|
|
this._tx = trans;
|
|
this.name = name;
|
|
this.schema = tableSchema;
|
|
this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {
|
|
"creating": [
|
|
hookCreatingChain,
|
|
nop
|
|
],
|
|
"reading": [
|
|
pureFunctionChain,
|
|
mirror
|
|
],
|
|
"updating": [
|
|
hookUpdatingChain,
|
|
nop
|
|
],
|
|
"deleting": [
|
|
hookDeletingChain,
|
|
nop
|
|
]
|
|
});
|
|
});
|
|
}
|
|
function isPlainKeyRange(ctx, ignoreLimitFilter) {
|
|
return !(ctx.filter || ctx.algorithm || ctx.or) && (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);
|
|
}
|
|
function addFilter(ctx, fn) {
|
|
ctx.filter = combine(ctx.filter, fn);
|
|
}
|
|
function addReplayFilter(ctx, factory, isLimitFilter) {
|
|
var curr = ctx.replayFilter;
|
|
ctx.replayFilter = curr ? function() {
|
|
return combine(curr(), factory());
|
|
} : factory;
|
|
ctx.justLimit = isLimitFilter && !curr;
|
|
}
|
|
function addMatchFilter(ctx, fn) {
|
|
ctx.isMatch = combine(ctx.isMatch, fn);
|
|
}
|
|
function getIndexOrStore(ctx, coreSchema) {
|
|
if (ctx.isPrimKey) return coreSchema.primaryKey;
|
|
var index = coreSchema.getIndexByKeyPath(ctx.index);
|
|
if (!index) throw new exceptions.Schema("KeyPath " + ctx.index + " on object store " + coreSchema.name + " is not indexed");
|
|
return index;
|
|
}
|
|
function openCursor(ctx, coreTable, trans) {
|
|
var index = getIndexOrStore(ctx, coreTable.schema);
|
|
return coreTable.openCursor({
|
|
trans: trans,
|
|
values: !ctx.keysOnly,
|
|
reverse: ctx.dir === 'prev',
|
|
unique: !!ctx.unique,
|
|
query: {
|
|
index: index,
|
|
range: ctx.range
|
|
}
|
|
});
|
|
}
|
|
function iter(ctx, fn, coreTrans, coreTable) {
|
|
var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;
|
|
if (!ctx.or) {
|
|
return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);
|
|
} else {
|
|
var set_1 = {};
|
|
var union = function(item, cursor, advance) {
|
|
if (!filter || filter(cursor, advance, function(result) {
|
|
return cursor.stop(result);
|
|
}, function(err) {
|
|
return cursor.fail(err);
|
|
})) {
|
|
var primaryKey = cursor.primaryKey;
|
|
var key = '' + primaryKey;
|
|
if (key === '[object ArrayBuffer]') key = '' + new Uint8Array(primaryKey);
|
|
if (!hasOwn(set_1, key)) {
|
|
set_1[key] = true;
|
|
fn(item, cursor, advance);
|
|
}
|
|
}
|
|
};
|
|
return Promise.all([
|
|
ctx.or._iterate(union, coreTrans),
|
|
iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)
|
|
]);
|
|
}
|
|
}
|
|
function iterate(cursorPromise, filter, fn, valueMapper) {
|
|
var mappedFn = valueMapper ? function(x, c, a) {
|
|
return fn(valueMapper(x), c, a);
|
|
} : fn;
|
|
var wrappedFn = wrap(mappedFn);
|
|
return cursorPromise.then(function(cursor) {
|
|
if (cursor) {
|
|
return cursor.start(function() {
|
|
var c = function() {
|
|
return cursor.continue();
|
|
};
|
|
if (!filter || filter(cursor, function(advancer) {
|
|
return c = advancer;
|
|
}, function(val) {
|
|
cursor.stop(val);
|
|
c = nop;
|
|
}, function(e) {
|
|
cursor.fail(e);
|
|
c = nop;
|
|
})) wrappedFn(cursor.value, cursor, function(advancer) {
|
|
return c = advancer;
|
|
});
|
|
c();
|
|
});
|
|
}
|
|
});
|
|
}
|
|
var Collection = function() {
|
|
function Collection() {}
|
|
Collection.prototype._read = function(fn, cb) {
|
|
var ctx = this._ctx;
|
|
return ctx.error ? ctx.table._trans(null, rejection.bind(null, ctx.error)) : ctx.table._trans('readonly', fn).then(cb);
|
|
};
|
|
Collection.prototype._write = function(fn) {
|
|
var ctx = this._ctx;
|
|
return ctx.error ? ctx.table._trans(null, rejection.bind(null, ctx.error)) : ctx.table._trans('readwrite', fn, "locked");
|
|
};
|
|
Collection.prototype._addAlgorithm = function(fn) {
|
|
var ctx = this._ctx;
|
|
ctx.algorithm = combine(ctx.algorithm, fn);
|
|
};
|
|
Collection.prototype._iterate = function(fn, coreTrans) {
|
|
return iter(this._ctx, fn, coreTrans, this._ctx.table.core);
|
|
};
|
|
Collection.prototype.clone = function(props) {
|
|
var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);
|
|
if (props) extend(ctx, props);
|
|
rv._ctx = ctx;
|
|
return rv;
|
|
};
|
|
Collection.prototype.raw = function() {
|
|
this._ctx.valueMapper = null;
|
|
return this;
|
|
};
|
|
Collection.prototype.each = function(fn) {
|
|
var ctx = this._ctx;
|
|
return this._read(function(trans) {
|
|
return iter(ctx, fn, trans, ctx.table.core);
|
|
});
|
|
};
|
|
Collection.prototype.count = function(cb) {
|
|
var _this = this;
|
|
return this._read(function(trans) {
|
|
var ctx = _this._ctx;
|
|
var coreTable = ctx.table.core;
|
|
if (isPlainKeyRange(ctx, true)) {
|
|
return coreTable.count({
|
|
trans: trans,
|
|
query: {
|
|
index: getIndexOrStore(ctx, coreTable.schema),
|
|
range: ctx.range
|
|
}
|
|
}).then(function(count) {
|
|
return Math.min(count, ctx.limit);
|
|
});
|
|
} else {
|
|
var count = 0;
|
|
return iter(ctx, function() {
|
|
++count;
|
|
return false;
|
|
}, trans, coreTable).then(function() {
|
|
return count;
|
|
});
|
|
}
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.sortBy = function(keyPath, cb) {
|
|
var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;
|
|
function getval(obj, i) {
|
|
if (i) return getval(obj[parts[i]], i - 1);
|
|
return obj[lastPart];
|
|
}
|
|
var order = this._ctx.dir === "next" ? 1 : -1;
|
|
function sorter(a, b) {
|
|
var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);
|
|
return cmp(aVal, bVal) * order;
|
|
}
|
|
return this.toArray(function(a) {
|
|
return a.sort(sorter);
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.toArray = function(cb) {
|
|
var _this = this;
|
|
return this._read(function(trans) {
|
|
var ctx = _this._ctx;
|
|
if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {
|
|
var valueMapper_1 = ctx.valueMapper;
|
|
var index = getIndexOrStore(ctx, ctx.table.core.schema);
|
|
return ctx.table.core.query({
|
|
trans: trans,
|
|
limit: ctx.limit,
|
|
values: true,
|
|
query: {
|
|
index: index,
|
|
range: ctx.range
|
|
}
|
|
}).then(function(_a) {
|
|
var result = _a.result;
|
|
return valueMapper_1 ? result.map(valueMapper_1) : result;
|
|
});
|
|
} else {
|
|
var a_1 = [];
|
|
return iter(ctx, function(item) {
|
|
return a_1.push(item);
|
|
}, trans, ctx.table.core).then(function() {
|
|
return a_1;
|
|
});
|
|
}
|
|
}, cb);
|
|
};
|
|
Collection.prototype.offset = function(offset) {
|
|
var ctx = this._ctx;
|
|
if (offset <= 0) return this;
|
|
ctx.offset += offset;
|
|
if (isPlainKeyRange(ctx)) {
|
|
addReplayFilter(ctx, function() {
|
|
var offsetLeft = offset;
|
|
return function(cursor, advance) {
|
|
if (offsetLeft === 0) return true;
|
|
if (offsetLeft === 1) {
|
|
--offsetLeft;
|
|
return false;
|
|
}
|
|
advance(function() {
|
|
cursor.advance(offsetLeft);
|
|
offsetLeft = 0;
|
|
});
|
|
return false;
|
|
};
|
|
});
|
|
} else {
|
|
addReplayFilter(ctx, function() {
|
|
var offsetLeft = offset;
|
|
return function() {
|
|
return --offsetLeft < 0;
|
|
};
|
|
});
|
|
}
|
|
return this;
|
|
};
|
|
Collection.prototype.limit = function(numRows) {
|
|
this._ctx.limit = Math.min(this._ctx.limit, numRows);
|
|
addReplayFilter(this._ctx, function() {
|
|
var rowsLeft = numRows;
|
|
return function(cursor, advance, resolve) {
|
|
if (--rowsLeft <= 0) advance(resolve);
|
|
return rowsLeft >= 0;
|
|
};
|
|
}, true);
|
|
return this;
|
|
};
|
|
Collection.prototype.until = function(filterFunction, bIncludeStopEntry) {
|
|
addFilter(this._ctx, function(cursor, advance, resolve) {
|
|
if (filterFunction(cursor.value)) {
|
|
advance(resolve);
|
|
return bIncludeStopEntry;
|
|
} else {
|
|
return true;
|
|
}
|
|
});
|
|
return this;
|
|
};
|
|
Collection.prototype.first = function(cb) {
|
|
return this.limit(1).toArray(function(a) {
|
|
return a[0];
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.last = function(cb) {
|
|
return this.reverse().first(cb);
|
|
};
|
|
Collection.prototype.filter = function(filterFunction) {
|
|
addFilter(this._ctx, function(cursor) {
|
|
return filterFunction(cursor.value);
|
|
});
|
|
addMatchFilter(this._ctx, filterFunction);
|
|
return this;
|
|
};
|
|
Collection.prototype.and = function(filter) {
|
|
return this.filter(filter);
|
|
};
|
|
Collection.prototype.or = function(indexName) {
|
|
return new this.db.WhereClause(this._ctx.table, indexName, this);
|
|
};
|
|
Collection.prototype.reverse = function() {
|
|
this._ctx.dir = this._ctx.dir === "prev" ? "next" : "prev";
|
|
if (this._ondirectionchange) this._ondirectionchange(this._ctx.dir);
|
|
return this;
|
|
};
|
|
Collection.prototype.desc = function() {
|
|
return this.reverse();
|
|
};
|
|
Collection.prototype.eachKey = function(cb) {
|
|
var ctx = this._ctx;
|
|
ctx.keysOnly = !ctx.isMatch;
|
|
return this.each(function(val, cursor) {
|
|
cb(cursor.key, cursor);
|
|
});
|
|
};
|
|
Collection.prototype.eachUniqueKey = function(cb) {
|
|
this._ctx.unique = "unique";
|
|
return this.eachKey(cb);
|
|
};
|
|
Collection.prototype.eachPrimaryKey = function(cb) {
|
|
var ctx = this._ctx;
|
|
ctx.keysOnly = !ctx.isMatch;
|
|
return this.each(function(val, cursor) {
|
|
cb(cursor.primaryKey, cursor);
|
|
});
|
|
};
|
|
Collection.prototype.keys = function(cb) {
|
|
var ctx = this._ctx;
|
|
ctx.keysOnly = !ctx.isMatch;
|
|
var a = [];
|
|
return this.each(function(item, cursor) {
|
|
a.push(cursor.key);
|
|
}).then(function() {
|
|
return a;
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.primaryKeys = function(cb) {
|
|
var ctx = this._ctx;
|
|
if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {
|
|
return this._read(function(trans) {
|
|
var index = getIndexOrStore(ctx, ctx.table.core.schema);
|
|
return ctx.table.core.query({
|
|
trans: trans,
|
|
values: false,
|
|
limit: ctx.limit,
|
|
query: {
|
|
index: index,
|
|
range: ctx.range
|
|
}
|
|
});
|
|
}).then(function(_a) {
|
|
var result = _a.result;
|
|
return result;
|
|
}).then(cb);
|
|
}
|
|
ctx.keysOnly = !ctx.isMatch;
|
|
var a = [];
|
|
return this.each(function(item, cursor) {
|
|
a.push(cursor.primaryKey);
|
|
}).then(function() {
|
|
return a;
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.uniqueKeys = function(cb) {
|
|
this._ctx.unique = "unique";
|
|
return this.keys(cb);
|
|
};
|
|
Collection.prototype.firstKey = function(cb) {
|
|
return this.limit(1).keys(function(a) {
|
|
return a[0];
|
|
}).then(cb);
|
|
};
|
|
Collection.prototype.lastKey = function(cb) {
|
|
return this.reverse().firstKey(cb);
|
|
};
|
|
Collection.prototype.distinct = function() {
|
|
var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];
|
|
if (!idx || !idx.multi) return this;
|
|
var set = {};
|
|
addFilter(this._ctx, function(cursor) {
|
|
var strKey = cursor.primaryKey.toString();
|
|
var found = hasOwn(set, strKey);
|
|
set[strKey] = true;
|
|
return !found;
|
|
});
|
|
return this;
|
|
};
|
|
Collection.prototype.modify = function(changes) {
|
|
var _this = this;
|
|
var ctx = this._ctx;
|
|
return this._write(function(trans) {
|
|
var modifyer;
|
|
if (typeof changes === 'function') {
|
|
modifyer = changes;
|
|
} else {
|
|
modifyer = function(item) {
|
|
return applyUpdateSpec(item, changes);
|
|
};
|
|
}
|
|
var coreTable = ctx.table.core;
|
|
var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;
|
|
var limit = 200;
|
|
var modifyChunkSize = _this.db._options.modifyChunkSize;
|
|
if (modifyChunkSize) {
|
|
if (typeof modifyChunkSize == 'object') {
|
|
limit = modifyChunkSize[coreTable.name] || modifyChunkSize['*'] || 200;
|
|
} else {
|
|
limit = modifyChunkSize;
|
|
}
|
|
}
|
|
var totalFailures = [];
|
|
var successCount = 0;
|
|
var failedKeys = [];
|
|
var applyMutateResult = function(expectedCount, res) {
|
|
var failures = res.failures, numFailures = res.numFailures;
|
|
successCount += expectedCount - numFailures;
|
|
for(var _i = 0, _a = keys(failures); _i < _a.length; _i++){
|
|
var pos = _a[_i];
|
|
totalFailures.push(failures[pos]);
|
|
}
|
|
};
|
|
var isUnconditionalDelete = changes === deleteCallback;
|
|
return _this.clone().primaryKeys().then(function(keys) {
|
|
var criteria = isPlainKeyRange(ctx) && ctx.limit === Infinity && (typeof changes !== 'function' || isUnconditionalDelete) && {
|
|
index: ctx.index,
|
|
range: ctx.range
|
|
};
|
|
var nextChunk = function(offset) {
|
|
var count = Math.min(limit, keys.length - offset);
|
|
var keysInChunk = keys.slice(offset, offset + count);
|
|
return (isUnconditionalDelete ? Promise.resolve([]) : coreTable.getMany({
|
|
trans: trans,
|
|
keys: keysInChunk,
|
|
cache: "immutable"
|
|
})).then(function(values) {
|
|
var addValues = [];
|
|
var putValues = [];
|
|
var putKeys = outbound ? [] : null;
|
|
var deleteKeys = isUnconditionalDelete ? keysInChunk : [];
|
|
if (!isUnconditionalDelete) for(var i = 0; i < count; ++i){
|
|
var origValue = values[i];
|
|
var ctx_1 = {
|
|
value: deepClone(origValue),
|
|
primKey: keys[offset + i]
|
|
};
|
|
if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {
|
|
if (ctx_1.value == null) {
|
|
deleteKeys.push(keys[offset + i]);
|
|
} else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {
|
|
deleteKeys.push(keys[offset + i]);
|
|
addValues.push(ctx_1.value);
|
|
} else {
|
|
putValues.push(ctx_1.value);
|
|
if (outbound) putKeys.push(keys[offset + i]);
|
|
}
|
|
}
|
|
}
|
|
return Promise.resolve(addValues.length > 0 && coreTable.mutate({
|
|
trans: trans,
|
|
type: 'add',
|
|
values: addValues
|
|
}).then(function(res) {
|
|
for(var pos in res.failures){
|
|
deleteKeys.splice(parseInt(pos), 1);
|
|
}
|
|
applyMutateResult(addValues.length, res);
|
|
})).then(function() {
|
|
return (putValues.length > 0 || criteria && typeof changes === 'object') && coreTable.mutate({
|
|
trans: trans,
|
|
type: 'put',
|
|
keys: putKeys,
|
|
values: putValues,
|
|
criteria: criteria,
|
|
changeSpec: typeof changes !== 'function' && changes,
|
|
isAdditionalChunk: offset > 0
|
|
}).then(function(res) {
|
|
return applyMutateResult(putValues.length, res);
|
|
});
|
|
}).then(function() {
|
|
return (deleteKeys.length > 0 || criteria && isUnconditionalDelete) && coreTable.mutate({
|
|
trans: trans,
|
|
type: 'delete',
|
|
keys: deleteKeys,
|
|
criteria: criteria,
|
|
isAdditionalChunk: offset > 0
|
|
}).then(function(res) {
|
|
return builtInDeletionTrigger(ctx.table, deleteKeys, res);
|
|
}).then(function(res) {
|
|
return applyMutateResult(deleteKeys.length, res);
|
|
});
|
|
}).then(function() {
|
|
return keys.length > offset + count && nextChunk(offset + limit);
|
|
});
|
|
});
|
|
};
|
|
return nextChunk(0).then(function() {
|
|
if (totalFailures.length > 0) throw new ModifyError("Error modifying one or more objects", totalFailures, successCount, failedKeys);
|
|
return keys.length;
|
|
});
|
|
});
|
|
});
|
|
};
|
|
Collection.prototype.delete = function() {
|
|
var ctx = this._ctx, range = ctx.range;
|
|
if (isPlainKeyRange(ctx) && !ctx.table.schema.yProps && (ctx.isPrimKey || range.type === 3)) {
|
|
return this._write(function(trans) {
|
|
var primaryKey = ctx.table.core.schema.primaryKey;
|
|
var coreRange = range;
|
|
return ctx.table.core.count({
|
|
trans: trans,
|
|
query: {
|
|
index: primaryKey,
|
|
range: coreRange
|
|
}
|
|
}).then(function(count) {
|
|
return ctx.table.core.mutate({
|
|
trans: trans,
|
|
type: 'deleteRange',
|
|
range: coreRange
|
|
}).then(function(_a) {
|
|
var failures = _a.failures, numFailures = _a.numFailures;
|
|
if (numFailures) throw new ModifyError("Could not delete some values", Object.keys(failures).map(function(pos) {
|
|
return failures[pos];
|
|
}), count - numFailures);
|
|
return count - numFailures;
|
|
});
|
|
});
|
|
});
|
|
}
|
|
return this.modify(deleteCallback);
|
|
};
|
|
return Collection;
|
|
}();
|
|
var deleteCallback = function(value, ctx) {
|
|
return ctx.value = null;
|
|
};
|
|
function createCollectionConstructor(db) {
|
|
return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {
|
|
this.db = db;
|
|
var keyRange = AnyRange, error = null;
|
|
if (keyRangeGenerator) try {
|
|
keyRange = keyRangeGenerator();
|
|
} catch (ex) {
|
|
error = ex;
|
|
}
|
|
var whereCtx = whereClause._ctx;
|
|
var table = whereCtx.table;
|
|
var readingHook = table.hook.reading.fire;
|
|
this._ctx = {
|
|
table: table,
|
|
index: whereCtx.index,
|
|
isPrimKey: !whereCtx.index || table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name,
|
|
range: keyRange,
|
|
keysOnly: false,
|
|
dir: "next",
|
|
unique: "",
|
|
algorithm: null,
|
|
filter: null,
|
|
replayFilter: null,
|
|
justLimit: true,
|
|
isMatch: null,
|
|
offset: 0,
|
|
limit: Infinity,
|
|
error: error,
|
|
or: whereCtx.or,
|
|
valueMapper: readingHook !== mirror ? readingHook : null
|
|
};
|
|
});
|
|
}
|
|
function simpleCompare(a, b) {
|
|
return a < b ? -1 : a === b ? 0 : 1;
|
|
}
|
|
function simpleCompareReverse(a, b) {
|
|
return a > b ? -1 : a === b ? 0 : 1;
|
|
}
|
|
function fail(collectionOrWhereClause, err, T) {
|
|
var collection = collectionOrWhereClause instanceof WhereClause ? new collectionOrWhereClause.Collection(collectionOrWhereClause) : collectionOrWhereClause;
|
|
collection._ctx.error = T ? new T(err) : new TypeError(err);
|
|
return collection;
|
|
}
|
|
function emptyCollection(whereClause) {
|
|
return new whereClause.Collection(whereClause, function() {
|
|
return rangeEqual("");
|
|
}).limit(0);
|
|
}
|
|
function upperFactory(dir) {
|
|
return dir === "next" ? function(s) {
|
|
return s.toUpperCase();
|
|
} : function(s) {
|
|
return s.toLowerCase();
|
|
};
|
|
}
|
|
function lowerFactory(dir) {
|
|
return dir === "next" ? function(s) {
|
|
return s.toLowerCase();
|
|
} : function(s) {
|
|
return s.toUpperCase();
|
|
};
|
|
}
|
|
function nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {
|
|
var length = Math.min(key.length, lowerNeedle.length);
|
|
var llp = -1;
|
|
for(var i = 0; i < length; ++i){
|
|
var lwrKeyChar = lowerKey[i];
|
|
if (lwrKeyChar !== lowerNeedle[i]) {
|
|
if (cmp(key[i], upperNeedle[i]) < 0) return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);
|
|
if (cmp(key[i], lowerNeedle[i]) < 0) return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);
|
|
if (llp >= 0) return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);
|
|
return null;
|
|
}
|
|
if (cmp(key[i], lwrKeyChar) < 0) llp = i;
|
|
}
|
|
if (length < lowerNeedle.length && dir === "next") return key + upperNeedle.substr(key.length);
|
|
if (length < key.length && dir === "prev") return key.substr(0, upperNeedle.length);
|
|
return llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1);
|
|
}
|
|
function addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {
|
|
var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;
|
|
if (!needles.every(function(s) {
|
|
return typeof s === 'string';
|
|
})) {
|
|
return fail(whereClause, STRING_EXPECTED);
|
|
}
|
|
function initDirection(dir) {
|
|
upper = upperFactory(dir);
|
|
lower = lowerFactory(dir);
|
|
compare = dir === "next" ? simpleCompare : simpleCompareReverse;
|
|
var needleBounds = needles.map(function(needle) {
|
|
return {
|
|
lower: lower(needle),
|
|
upper: upper(needle)
|
|
};
|
|
}).sort(function(a, b) {
|
|
return compare(a.lower, b.lower);
|
|
});
|
|
upperNeedles = needleBounds.map(function(nb) {
|
|
return nb.upper;
|
|
});
|
|
lowerNeedles = needleBounds.map(function(nb) {
|
|
return nb.lower;
|
|
});
|
|
direction = dir;
|
|
nextKeySuffix = dir === "next" ? "" : suffix;
|
|
}
|
|
initDirection("next");
|
|
var c = new whereClause.Collection(whereClause, function() {
|
|
return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix);
|
|
});
|
|
c._ondirectionchange = function(direction) {
|
|
initDirection(direction);
|
|
};
|
|
var firstPossibleNeedle = 0;
|
|
c._addAlgorithm(function(cursor, advance, resolve) {
|
|
var key = cursor.key;
|
|
if (typeof key !== 'string') return false;
|
|
var lowerKey = lower(key);
|
|
if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {
|
|
return true;
|
|
} else {
|
|
var lowestPossibleCasing = null;
|
|
for(var i = firstPossibleNeedle; i < needlesLen; ++i){
|
|
var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);
|
|
if (casing === null && lowestPossibleCasing === null) firstPossibleNeedle = i + 1;
|
|
else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {
|
|
lowestPossibleCasing = casing;
|
|
}
|
|
}
|
|
if (lowestPossibleCasing !== null) {
|
|
advance(function() {
|
|
cursor.continue(lowestPossibleCasing + nextKeySuffix);
|
|
});
|
|
} else {
|
|
advance(resolve);
|
|
}
|
|
return false;
|
|
}
|
|
});
|
|
return c;
|
|
}
|
|
function createRange(lower, upper, lowerOpen, upperOpen) {
|
|
return {
|
|
type: 2,
|
|
lower: lower,
|
|
upper: upper,
|
|
lowerOpen: lowerOpen,
|
|
upperOpen: upperOpen
|
|
};
|
|
}
|
|
function rangeEqual(value) {
|
|
return {
|
|
type: 1,
|
|
lower: value,
|
|
upper: value
|
|
};
|
|
}
|
|
var WhereClause = function() {
|
|
function WhereClause() {}
|
|
Object.defineProperty(WhereClause.prototype, "Collection", {
|
|
get: function() {
|
|
return this._ctx.table.db.Collection;
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
WhereClause.prototype.between = function(lower, upper, includeLower, includeUpper) {
|
|
includeLower = includeLower !== false;
|
|
includeUpper = includeUpper === true;
|
|
try {
|
|
if (this._cmp(lower, upper) > 0 || this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)) return emptyCollection(this);
|
|
return new this.Collection(this, function() {
|
|
return createRange(lower, upper, !includeLower, !includeUpper);
|
|
});
|
|
} catch (e) {
|
|
return fail(this, INVALID_KEY_ARGUMENT);
|
|
}
|
|
};
|
|
WhereClause.prototype.equals = function(value) {
|
|
if (value == null) return fail(this, INVALID_KEY_ARGUMENT);
|
|
return new this.Collection(this, function() {
|
|
return rangeEqual(value);
|
|
});
|
|
};
|
|
WhereClause.prototype.above = function(value) {
|
|
if (value == null) return fail(this, INVALID_KEY_ARGUMENT);
|
|
return new this.Collection(this, function() {
|
|
return createRange(value, undefined, true);
|
|
});
|
|
};
|
|
WhereClause.prototype.aboveOrEqual = function(value) {
|
|
if (value == null) return fail(this, INVALID_KEY_ARGUMENT);
|
|
return new this.Collection(this, function() {
|
|
return createRange(value, undefined, false);
|
|
});
|
|
};
|
|
WhereClause.prototype.below = function(value) {
|
|
if (value == null) return fail(this, INVALID_KEY_ARGUMENT);
|
|
return new this.Collection(this, function() {
|
|
return createRange(undefined, value, false, true);
|
|
});
|
|
};
|
|
WhereClause.prototype.belowOrEqual = function(value) {
|
|
if (value == null) return fail(this, INVALID_KEY_ARGUMENT);
|
|
return new this.Collection(this, function() {
|
|
return createRange(undefined, value);
|
|
});
|
|
};
|
|
WhereClause.prototype.startsWith = function(str) {
|
|
if (typeof str !== 'string') return fail(this, STRING_EXPECTED);
|
|
return this.between(str, str + maxString, true, true);
|
|
};
|
|
WhereClause.prototype.startsWithIgnoreCase = function(str) {
|
|
if (str === "") return this.startsWith(str);
|
|
return addIgnoreCaseAlgorithm(this, function(x, a) {
|
|
return x.indexOf(a[0]) === 0;
|
|
}, [
|
|
str
|
|
], maxString);
|
|
};
|
|
WhereClause.prototype.equalsIgnoreCase = function(str) {
|
|
return addIgnoreCaseAlgorithm(this, function(x, a) {
|
|
return x === a[0];
|
|
}, [
|
|
str
|
|
], "");
|
|
};
|
|
WhereClause.prototype.anyOfIgnoreCase = function() {
|
|
var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);
|
|
if (set.length === 0) return emptyCollection(this);
|
|
return addIgnoreCaseAlgorithm(this, function(x, a) {
|
|
return a.indexOf(x) !== -1;
|
|
}, set, "");
|
|
};
|
|
WhereClause.prototype.startsWithAnyOfIgnoreCase = function() {
|
|
var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);
|
|
if (set.length === 0) return emptyCollection(this);
|
|
return addIgnoreCaseAlgorithm(this, function(x, a) {
|
|
return a.some(function(n) {
|
|
return x.indexOf(n) === 0;
|
|
});
|
|
}, set, maxString);
|
|
};
|
|
WhereClause.prototype.anyOf = function() {
|
|
var _this = this;
|
|
var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);
|
|
var compare = this._cmp;
|
|
try {
|
|
set.sort(compare);
|
|
} catch (e) {
|
|
return fail(this, INVALID_KEY_ARGUMENT);
|
|
}
|
|
if (set.length === 0) return emptyCollection(this);
|
|
var c = new this.Collection(this, function() {
|
|
return createRange(set[0], set[set.length - 1]);
|
|
});
|
|
c._ondirectionchange = function(direction) {
|
|
compare = direction === "next" ? _this._ascending : _this._descending;
|
|
set.sort(compare);
|
|
};
|
|
var i = 0;
|
|
c._addAlgorithm(function(cursor, advance, resolve) {
|
|
var key = cursor.key;
|
|
while(compare(key, set[i]) > 0){
|
|
++i;
|
|
if (i === set.length) {
|
|
advance(resolve);
|
|
return false;
|
|
}
|
|
}
|
|
if (compare(key, set[i]) === 0) {
|
|
return true;
|
|
} else {
|
|
advance(function() {
|
|
cursor.continue(set[i]);
|
|
});
|
|
return false;
|
|
}
|
|
});
|
|
return c;
|
|
};
|
|
WhereClause.prototype.notEqual = function(value) {
|
|
return this.inAnyRange([
|
|
[
|
|
minKey,
|
|
value
|
|
],
|
|
[
|
|
value,
|
|
this.db._maxKey
|
|
]
|
|
], {
|
|
includeLowers: false,
|
|
includeUppers: false
|
|
});
|
|
};
|
|
WhereClause.prototype.noneOf = function() {
|
|
var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);
|
|
if (set.length === 0) return new this.Collection(this);
|
|
try {
|
|
set.sort(this._ascending);
|
|
} catch (e) {
|
|
return fail(this, INVALID_KEY_ARGUMENT);
|
|
}
|
|
var ranges = set.reduce(function(res, val) {
|
|
return res ? res.concat([
|
|
[
|
|
res[res.length - 1][1],
|
|
val
|
|
]
|
|
]) : [
|
|
[
|
|
minKey,
|
|
val
|
|
]
|
|
];
|
|
}, null);
|
|
ranges.push([
|
|
set[set.length - 1],
|
|
this.db._maxKey
|
|
]);
|
|
return this.inAnyRange(ranges, {
|
|
includeLowers: false,
|
|
includeUppers: false
|
|
});
|
|
};
|
|
WhereClause.prototype.inAnyRange = function(ranges, options) {
|
|
var _this = this;
|
|
var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;
|
|
if (ranges.length === 0) return emptyCollection(this);
|
|
if (!ranges.every(function(range) {
|
|
return range[0] !== undefined && range[1] !== undefined && ascending(range[0], range[1]) <= 0;
|
|
})) {
|
|
return fail(this, "First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower", exceptions.InvalidArgument);
|
|
}
|
|
var includeLowers = !options || options.includeLowers !== false;
|
|
var includeUppers = options && options.includeUppers === true;
|
|
function addRange(ranges, newRange) {
|
|
var i = 0, l = ranges.length;
|
|
for(; i < l; ++i){
|
|
var range = ranges[i];
|
|
if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {
|
|
range[0] = min(range[0], newRange[0]);
|
|
range[1] = max(range[1], newRange[1]);
|
|
break;
|
|
}
|
|
}
|
|
if (i === l) ranges.push(newRange);
|
|
return ranges;
|
|
}
|
|
var sortDirection = ascending;
|
|
function rangeSorter(a, b) {
|
|
return sortDirection(a[0], b[0]);
|
|
}
|
|
var set;
|
|
try {
|
|
set = ranges.reduce(addRange, []);
|
|
set.sort(rangeSorter);
|
|
} catch (ex) {
|
|
return fail(this, INVALID_KEY_ARGUMENT);
|
|
}
|
|
var rangePos = 0;
|
|
var keyIsBeyondCurrentEntry = includeUppers ? function(key) {
|
|
return ascending(key, set[rangePos][1]) > 0;
|
|
} : function(key) {
|
|
return ascending(key, set[rangePos][1]) >= 0;
|
|
};
|
|
var keyIsBeforeCurrentEntry = includeLowers ? function(key) {
|
|
return descending(key, set[rangePos][0]) > 0;
|
|
} : function(key) {
|
|
return descending(key, set[rangePos][0]) >= 0;
|
|
};
|
|
function keyWithinCurrentRange(key) {
|
|
return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);
|
|
}
|
|
var checkKey = keyIsBeyondCurrentEntry;
|
|
var c = new this.Collection(this, function() {
|
|
return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers);
|
|
});
|
|
c._ondirectionchange = function(direction) {
|
|
if (direction === "next") {
|
|
checkKey = keyIsBeyondCurrentEntry;
|
|
sortDirection = ascending;
|
|
} else {
|
|
checkKey = keyIsBeforeCurrentEntry;
|
|
sortDirection = descending;
|
|
}
|
|
set.sort(rangeSorter);
|
|
};
|
|
c._addAlgorithm(function(cursor, advance, resolve) {
|
|
var key = cursor.key;
|
|
while(checkKey(key)){
|
|
++rangePos;
|
|
if (rangePos === set.length) {
|
|
advance(resolve);
|
|
return false;
|
|
}
|
|
}
|
|
if (keyWithinCurrentRange(key)) {
|
|
return true;
|
|
} else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {
|
|
return false;
|
|
} else {
|
|
advance(function() {
|
|
if (sortDirection === ascending) cursor.continue(set[rangePos][0]);
|
|
else cursor.continue(set[rangePos][1]);
|
|
});
|
|
return false;
|
|
}
|
|
});
|
|
return c;
|
|
};
|
|
WhereClause.prototype.startsWithAnyOf = function() {
|
|
var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);
|
|
if (!set.every(function(s) {
|
|
return typeof s === 'string';
|
|
})) {
|
|
return fail(this, "startsWithAnyOf() only works with strings");
|
|
}
|
|
if (set.length === 0) return emptyCollection(this);
|
|
return this.inAnyRange(set.map(function(str) {
|
|
return [
|
|
str,
|
|
str + maxString
|
|
];
|
|
}));
|
|
};
|
|
return WhereClause;
|
|
}();
|
|
function createWhereClauseConstructor(db) {
|
|
return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {
|
|
this.db = db;
|
|
this._ctx = {
|
|
table: table,
|
|
index: index === ":id" ? null : index,
|
|
or: orCollection
|
|
};
|
|
this._cmp = this._ascending = cmp;
|
|
this._descending = function(a, b) {
|
|
return cmp(b, a);
|
|
};
|
|
this._max = function(a, b) {
|
|
return cmp(a, b) > 0 ? a : b;
|
|
};
|
|
this._min = function(a, b) {
|
|
return cmp(a, b) < 0 ? a : b;
|
|
};
|
|
this._IDBKeyRange = db._deps.IDBKeyRange;
|
|
if (!this._IDBKeyRange) throw new exceptions.MissingAPI();
|
|
});
|
|
}
|
|
function eventRejectHandler(reject) {
|
|
return wrap(function(event) {
|
|
preventDefault(event);
|
|
reject(event.target.error);
|
|
return false;
|
|
});
|
|
}
|
|
function preventDefault(event) {
|
|
if (event.stopPropagation) event.stopPropagation();
|
|
if (event.preventDefault) event.preventDefault();
|
|
}
|
|
var DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';
|
|
var STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';
|
|
var globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);
|
|
var Transaction = function() {
|
|
function Transaction() {}
|
|
Transaction.prototype._lock = function() {
|
|
assert(!PSD.global);
|
|
++this._reculock;
|
|
if (this._reculock === 1 && !PSD.global) PSD.lockOwnerFor = this;
|
|
return this;
|
|
};
|
|
Transaction.prototype._unlock = function() {
|
|
assert(!PSD.global);
|
|
if (--this._reculock === 0) {
|
|
if (!PSD.global) PSD.lockOwnerFor = null;
|
|
while(this._blockedFuncs.length > 0 && !this._locked()){
|
|
var fnAndPSD = this._blockedFuncs.shift();
|
|
try {
|
|
usePSD(fnAndPSD[1], fnAndPSD[0]);
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
return this;
|
|
};
|
|
Transaction.prototype._locked = function() {
|
|
return this._reculock && PSD.lockOwnerFor !== this;
|
|
};
|
|
Transaction.prototype.create = function(idbtrans) {
|
|
var _this = this;
|
|
if (!this.mode) return this;
|
|
var idbdb = this.db.idbdb;
|
|
var dbOpenError = this.db._state.dbOpenError;
|
|
assert(!this.idbtrans);
|
|
if (!idbtrans && !idbdb) {
|
|
switch(dbOpenError && dbOpenError.name){
|
|
case "DatabaseClosedError":
|
|
throw new exceptions.DatabaseClosed(dbOpenError);
|
|
case "MissingAPIError":
|
|
throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);
|
|
default:
|
|
throw new exceptions.OpenFailed(dbOpenError);
|
|
}
|
|
}
|
|
if (!this.active) throw new exceptions.TransactionInactive();
|
|
assert(this._completion._state === null);
|
|
idbtrans = this.idbtrans = idbtrans || (this.db.core ? this.db.core.transaction(this.storeNames, this.mode, {
|
|
durability: this.chromeTransactionDurability
|
|
}) : idbdb.transaction(this.storeNames, this.mode, {
|
|
durability: this.chromeTransactionDurability
|
|
}));
|
|
idbtrans.onerror = wrap(function(ev) {
|
|
preventDefault(ev);
|
|
_this._reject(idbtrans.error);
|
|
});
|
|
idbtrans.onabort = wrap(function(ev) {
|
|
preventDefault(ev);
|
|
_this.active && _this._reject(new exceptions.Abort(idbtrans.error));
|
|
_this.active = false;
|
|
_this.on("abort").fire(ev);
|
|
});
|
|
idbtrans.oncomplete = wrap(function() {
|
|
_this.active = false;
|
|
_this._resolve();
|
|
if ('mutatedParts' in idbtrans) {
|
|
globalEvents.storagemutated.fire(idbtrans["mutatedParts"]);
|
|
}
|
|
});
|
|
return this;
|
|
};
|
|
Transaction.prototype._promise = function(mode, fn, bWriteLock) {
|
|
var _this = this;
|
|
if (mode === 'readwrite' && this.mode !== 'readwrite') return rejection(new exceptions.ReadOnly("Transaction is readonly"));
|
|
if (!this.active) return rejection(new exceptions.TransactionInactive());
|
|
if (this._locked()) {
|
|
return new DexiePromise(function(resolve, reject) {
|
|
_this._blockedFuncs.push([
|
|
function() {
|
|
_this._promise(mode, fn, bWriteLock).then(resolve, reject);
|
|
},
|
|
PSD
|
|
]);
|
|
});
|
|
} else if (bWriteLock) {
|
|
return newScope(function() {
|
|
var p = new DexiePromise(function(resolve, reject) {
|
|
_this._lock();
|
|
var rv = fn(resolve, reject, _this);
|
|
if (rv && rv.then) rv.then(resolve, reject);
|
|
});
|
|
p.finally(function() {
|
|
return _this._unlock();
|
|
});
|
|
p._lib = true;
|
|
return p;
|
|
});
|
|
} else {
|
|
var p = new DexiePromise(function(resolve, reject) {
|
|
var rv = fn(resolve, reject, _this);
|
|
if (rv && rv.then) rv.then(resolve, reject);
|
|
});
|
|
p._lib = true;
|
|
return p;
|
|
}
|
|
};
|
|
Transaction.prototype._root = function() {
|
|
return this.parent ? this.parent._root() : this;
|
|
};
|
|
Transaction.prototype.waitFor = function(promiseLike) {
|
|
var root = this._root();
|
|
var promise = DexiePromise.resolve(promiseLike);
|
|
if (root._waitingFor) {
|
|
root._waitingFor = root._waitingFor.then(function() {
|
|
return promise;
|
|
});
|
|
} else {
|
|
root._waitingFor = promise;
|
|
root._waitingQueue = [];
|
|
var store = root.idbtrans.objectStore(root.storeNames[0]);
|
|
(function spin() {
|
|
++root._spinCount;
|
|
while(root._waitingQueue.length)root._waitingQueue.shift()();
|
|
if (root._waitingFor) store.get(-Infinity).onsuccess = spin;
|
|
})();
|
|
}
|
|
var currentWaitPromise = root._waitingFor;
|
|
return new DexiePromise(function(resolve, reject) {
|
|
promise.then(function(res) {
|
|
return root._waitingQueue.push(wrap(resolve.bind(null, res)));
|
|
}, function(err) {
|
|
return root._waitingQueue.push(wrap(reject.bind(null, err)));
|
|
}).finally(function() {
|
|
if (root._waitingFor === currentWaitPromise) {
|
|
root._waitingFor = null;
|
|
}
|
|
});
|
|
});
|
|
};
|
|
Transaction.prototype.abort = function() {
|
|
if (this.active) {
|
|
this.active = false;
|
|
if (this.idbtrans) this.idbtrans.abort();
|
|
this._reject(new exceptions.Abort());
|
|
}
|
|
};
|
|
Transaction.prototype.table = function(tableName) {
|
|
var memoizedTables = this._memoizedTables || (this._memoizedTables = {});
|
|
if (hasOwn(memoizedTables, tableName)) return memoizedTables[tableName];
|
|
var tableSchema = this.schema[tableName];
|
|
if (!tableSchema) {
|
|
throw new exceptions.NotFound("Table " + tableName + " not part of transaction");
|
|
}
|
|
var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);
|
|
transactionBoundTable.core = this.db.core.table(tableName);
|
|
memoizedTables[tableName] = transactionBoundTable;
|
|
return transactionBoundTable;
|
|
};
|
|
return Transaction;
|
|
}();
|
|
function createTransactionConstructor(db) {
|
|
return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {
|
|
var _this = this;
|
|
if (mode !== 'readonly') storeNames.forEach(function(storeName) {
|
|
var _a;
|
|
var yProps = (_a = dbschema[storeName]) === null || _a === void 0 ? void 0 : _a.yProps;
|
|
if (yProps) storeNames = storeNames.concat(yProps.map(function(p) {
|
|
return p.updatesTable;
|
|
}));
|
|
});
|
|
this.db = db;
|
|
this.mode = mode;
|
|
this.storeNames = storeNames;
|
|
this.schema = dbschema;
|
|
this.chromeTransactionDurability = chromeTransactionDurability;
|
|
this.idbtrans = null;
|
|
this.on = Events(this, "complete", "error", "abort");
|
|
this.parent = parent || null;
|
|
this.active = true;
|
|
this._reculock = 0;
|
|
this._blockedFuncs = [];
|
|
this._resolve = null;
|
|
this._reject = null;
|
|
this._waitingFor = null;
|
|
this._waitingQueue = null;
|
|
this._spinCount = 0;
|
|
this._completion = new DexiePromise(function(resolve, reject) {
|
|
_this._resolve = resolve;
|
|
_this._reject = reject;
|
|
});
|
|
this._completion.then(function() {
|
|
_this.active = false;
|
|
_this.on.complete.fire();
|
|
}, function(e) {
|
|
var wasActive = _this.active;
|
|
_this.active = false;
|
|
_this.on.error.fire(e);
|
|
_this.parent ? _this.parent._reject(e) : wasActive && _this.idbtrans && _this.idbtrans.abort();
|
|
return rejection(e);
|
|
});
|
|
});
|
|
}
|
|
function createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey, type) {
|
|
return {
|
|
name: name,
|
|
keyPath: keyPath,
|
|
unique: unique,
|
|
multi: multi,
|
|
auto: auto,
|
|
compound: compound,
|
|
src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? "++" : "") + nameFromKeyPath(keyPath),
|
|
type: type
|
|
};
|
|
}
|
|
function nameFromKeyPath(keyPath) {
|
|
return typeof keyPath === 'string' ? keyPath : keyPath ? '[' + [].join.call(keyPath, '+') + ']' : "";
|
|
}
|
|
function createTableSchema(name, primKey, indexes) {
|
|
return {
|
|
name: name,
|
|
primKey: primKey,
|
|
indexes: indexes,
|
|
mappedClass: null,
|
|
idxByName: arrayToObject(indexes, function(index) {
|
|
return [
|
|
index.name,
|
|
index
|
|
];
|
|
})
|
|
};
|
|
}
|
|
function safariMultiStoreFix(storeNames) {
|
|
return storeNames.length === 1 ? storeNames[0] : storeNames;
|
|
}
|
|
var getMaxKey = function(IdbKeyRange) {
|
|
try {
|
|
IdbKeyRange.only([
|
|
[]
|
|
]);
|
|
getMaxKey = function() {
|
|
return [
|
|
[]
|
|
];
|
|
};
|
|
return [
|
|
[]
|
|
];
|
|
} catch (e) {
|
|
getMaxKey = function() {
|
|
return maxString;
|
|
};
|
|
return maxString;
|
|
}
|
|
};
|
|
function getKeyExtractor(keyPath) {
|
|
if (keyPath == null) {
|
|
return function() {
|
|
return undefined;
|
|
};
|
|
} else if (typeof keyPath === 'string') {
|
|
return getSinglePathKeyExtractor(keyPath);
|
|
} else {
|
|
return function(obj) {
|
|
return getByKeyPath(obj, keyPath);
|
|
};
|
|
}
|
|
}
|
|
function getSinglePathKeyExtractor(keyPath) {
|
|
var split = keyPath.split('.');
|
|
if (split.length === 1) {
|
|
return function(obj) {
|
|
return obj[keyPath];
|
|
};
|
|
} else {
|
|
return function(obj) {
|
|
return getByKeyPath(obj, keyPath);
|
|
};
|
|
}
|
|
}
|
|
function arrayify(arrayLike) {
|
|
return [].slice.call(arrayLike);
|
|
}
|
|
var _id_counter = 0;
|
|
function getKeyPathAlias(keyPath) {
|
|
return keyPath == null ? ":id" : typeof keyPath === 'string' ? keyPath : "[".concat(keyPath.join('+'), "]");
|
|
}
|
|
function createDBCore(db, IdbKeyRange, tmpTrans) {
|
|
function extractSchema(db, trans) {
|
|
var tables = arrayify(db.objectStoreNames);
|
|
return {
|
|
schema: {
|
|
name: db.name,
|
|
tables: tables.map(function(table) {
|
|
return trans.objectStore(table);
|
|
}).map(function(store) {
|
|
var keyPath = store.keyPath, autoIncrement = store.autoIncrement;
|
|
var compound = isArray(keyPath);
|
|
var outbound = keyPath == null;
|
|
var indexByKeyPath = {};
|
|
var result = {
|
|
name: store.name,
|
|
primaryKey: {
|
|
name: null,
|
|
isPrimaryKey: true,
|
|
outbound: outbound,
|
|
compound: compound,
|
|
keyPath: keyPath,
|
|
autoIncrement: autoIncrement,
|
|
unique: true,
|
|
extractKey: getKeyExtractor(keyPath)
|
|
},
|
|
indexes: arrayify(store.indexNames).map(function(indexName) {
|
|
return store.index(indexName);
|
|
}).map(function(index) {
|
|
var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;
|
|
var compound = isArray(keyPath);
|
|
var result = {
|
|
name: name,
|
|
compound: compound,
|
|
keyPath: keyPath,
|
|
unique: unique,
|
|
multiEntry: multiEntry,
|
|
extractKey: getKeyExtractor(keyPath)
|
|
};
|
|
indexByKeyPath[getKeyPathAlias(keyPath)] = result;
|
|
return result;
|
|
}),
|
|
getIndexByKeyPath: function(keyPath) {
|
|
return indexByKeyPath[getKeyPathAlias(keyPath)];
|
|
}
|
|
};
|
|
indexByKeyPath[":id"] = result.primaryKey;
|
|
if (keyPath != null) {
|
|
indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;
|
|
}
|
|
return result;
|
|
})
|
|
},
|
|
hasGetAll: tables.length > 0 && 'getAll' in trans.objectStore(tables[0]) && !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604)
|
|
};
|
|
}
|
|
function makeIDBKeyRange(range) {
|
|
if (range.type === 3) return null;
|
|
if (range.type === 4) throw new Error("Cannot convert never type to IDBKeyRange");
|
|
var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;
|
|
var idbRange = lower === undefined ? upper === undefined ? null : IdbKeyRange.upperBound(upper, !!upperOpen) : upper === undefined ? IdbKeyRange.lowerBound(lower, !!lowerOpen) : IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);
|
|
return idbRange;
|
|
}
|
|
function createDbCoreTable(tableSchema) {
|
|
var tableName = tableSchema.name;
|
|
function mutate(_a) {
|
|
var trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;
|
|
return new Promise(function(resolve, reject) {
|
|
resolve = wrap(resolve);
|
|
var store = trans.objectStore(tableName);
|
|
var outbound = store.keyPath == null;
|
|
var isAddOrPut = type === "put" || type === "add";
|
|
if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange') throw new Error("Invalid operation type: " + type);
|
|
var length = (keys || values || {
|
|
length: 1
|
|
}).length;
|
|
if (keys && values && keys.length !== values.length) {
|
|
throw new Error("Given keys array must have same length as given values array.");
|
|
}
|
|
if (length === 0) return resolve({
|
|
numFailures: 0,
|
|
failures: {},
|
|
results: [],
|
|
lastResult: undefined
|
|
});
|
|
var req;
|
|
var reqs = [];
|
|
var failures = [];
|
|
var numFailures = 0;
|
|
var errorHandler = function(event) {
|
|
++numFailures;
|
|
preventDefault(event);
|
|
};
|
|
if (type === 'deleteRange') {
|
|
if (range.type === 4) return resolve({
|
|
numFailures: numFailures,
|
|
failures: failures,
|
|
results: [],
|
|
lastResult: undefined
|
|
});
|
|
if (range.type === 3) reqs.push(req = store.clear());
|
|
else reqs.push(req = store.delete(makeIDBKeyRange(range)));
|
|
} else {
|
|
var _a = isAddOrPut ? outbound ? [
|
|
values,
|
|
keys
|
|
] : [
|
|
values,
|
|
null
|
|
] : [
|
|
keys,
|
|
null
|
|
], args1 = _a[0], args2 = _a[1];
|
|
if (isAddOrPut) {
|
|
for(var i = 0; i < length; ++i){
|
|
reqs.push(req = args2 && args2[i] !== undefined ? store[type](args1[i], args2[i]) : store[type](args1[i]));
|
|
req.onerror = errorHandler;
|
|
}
|
|
} else {
|
|
for(var i = 0; i < length; ++i){
|
|
reqs.push(req = store[type](args1[i]));
|
|
req.onerror = errorHandler;
|
|
}
|
|
}
|
|
}
|
|
var done = function(event) {
|
|
var lastResult = event.target.result;
|
|
reqs.forEach(function(req, i) {
|
|
return req.error != null && (failures[i] = req.error);
|
|
});
|
|
resolve({
|
|
numFailures: numFailures,
|
|
failures: failures,
|
|
results: type === "delete" ? keys : reqs.map(function(req) {
|
|
return req.result;
|
|
}),
|
|
lastResult: lastResult
|
|
});
|
|
};
|
|
req.onerror = function(event) {
|
|
errorHandler(event);
|
|
done(event);
|
|
};
|
|
req.onsuccess = done;
|
|
});
|
|
}
|
|
function openCursor(_a) {
|
|
var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;
|
|
return new Promise(function(resolve, reject) {
|
|
resolve = wrap(resolve);
|
|
var index = query.index, range = query.range;
|
|
var store = trans.objectStore(tableName);
|
|
var source = index.isPrimaryKey ? store : store.index(index.name);
|
|
var direction = reverse ? unique ? "prevunique" : "prev" : unique ? "nextunique" : "next";
|
|
var req = values || !('openKeyCursor' in source) ? source.openCursor(makeIDBKeyRange(range), direction) : source.openKeyCursor(makeIDBKeyRange(range), direction);
|
|
req.onerror = eventRejectHandler(reject);
|
|
req.onsuccess = wrap(function(ev) {
|
|
var cursor = req.result;
|
|
if (!cursor) {
|
|
resolve(null);
|
|
return;
|
|
}
|
|
cursor.___id = ++_id_counter;
|
|
cursor.done = false;
|
|
var _cursorContinue = cursor.continue.bind(cursor);
|
|
var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;
|
|
if (_cursorContinuePrimaryKey) _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);
|
|
var _cursorAdvance = cursor.advance.bind(cursor);
|
|
var doThrowCursorIsNotStarted = function() {
|
|
throw new Error("Cursor not started");
|
|
};
|
|
var doThrowCursorIsStopped = function() {
|
|
throw new Error("Cursor not stopped");
|
|
};
|
|
cursor.trans = trans;
|
|
cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;
|
|
cursor.fail = wrap(reject);
|
|
cursor.next = function() {
|
|
var _this = this;
|
|
var gotOne = 1;
|
|
return this.start(function() {
|
|
return gotOne-- ? _this.continue() : _this.stop();
|
|
}).then(function() {
|
|
return _this;
|
|
});
|
|
};
|
|
cursor.start = function(callback) {
|
|
var iterationPromise = new Promise(function(resolveIteration, rejectIteration) {
|
|
resolveIteration = wrap(resolveIteration);
|
|
req.onerror = eventRejectHandler(rejectIteration);
|
|
cursor.fail = rejectIteration;
|
|
cursor.stop = function(value) {
|
|
cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;
|
|
resolveIteration(value);
|
|
};
|
|
});
|
|
var guardedCallback = function() {
|
|
if (req.result) {
|
|
try {
|
|
callback();
|
|
} catch (err) {
|
|
cursor.fail(err);
|
|
}
|
|
} else {
|
|
cursor.done = true;
|
|
cursor.start = function() {
|
|
throw new Error("Cursor behind last entry");
|
|
};
|
|
cursor.stop();
|
|
}
|
|
};
|
|
req.onsuccess = wrap(function(ev) {
|
|
req.onsuccess = guardedCallback;
|
|
guardedCallback();
|
|
});
|
|
cursor.continue = _cursorContinue;
|
|
cursor.continuePrimaryKey = _cursorContinuePrimaryKey;
|
|
cursor.advance = _cursorAdvance;
|
|
guardedCallback();
|
|
return iterationPromise;
|
|
};
|
|
resolve(cursor);
|
|
}, reject);
|
|
});
|
|
}
|
|
function query(hasGetAll) {
|
|
return function(request) {
|
|
return new Promise(function(resolve, reject) {
|
|
resolve = wrap(resolve);
|
|
var trans = request.trans, values = request.values, limit = request.limit, query = request.query;
|
|
var nonInfinitLimit = limit === Infinity ? undefined : limit;
|
|
var index = query.index, range = query.range;
|
|
var store = trans.objectStore(tableName);
|
|
var source = index.isPrimaryKey ? store : store.index(index.name);
|
|
var idbKeyRange = makeIDBKeyRange(range);
|
|
if (limit === 0) return resolve({
|
|
result: []
|
|
});
|
|
if (hasGetAll) {
|
|
var req = values ? source.getAll(idbKeyRange, nonInfinitLimit) : source.getAllKeys(idbKeyRange, nonInfinitLimit);
|
|
req.onsuccess = function(event) {
|
|
return resolve({
|
|
result: event.target.result
|
|
});
|
|
};
|
|
req.onerror = eventRejectHandler(reject);
|
|
} else {
|
|
var count_1 = 0;
|
|
var req_1 = values || !('openKeyCursor' in source) ? source.openCursor(idbKeyRange) : source.openKeyCursor(idbKeyRange);
|
|
var result_1 = [];
|
|
req_1.onsuccess = function(event) {
|
|
var cursor = req_1.result;
|
|
if (!cursor) return resolve({
|
|
result: result_1
|
|
});
|
|
result_1.push(values ? cursor.value : cursor.primaryKey);
|
|
if (++count_1 === limit) return resolve({
|
|
result: result_1
|
|
});
|
|
cursor.continue();
|
|
};
|
|
req_1.onerror = eventRejectHandler(reject);
|
|
}
|
|
});
|
|
};
|
|
}
|
|
return {
|
|
name: tableName,
|
|
schema: tableSchema,
|
|
mutate: mutate,
|
|
getMany: function(_a) {
|
|
var trans = _a.trans, keys = _a.keys;
|
|
return new Promise(function(resolve, reject) {
|
|
resolve = wrap(resolve);
|
|
var store = trans.objectStore(tableName);
|
|
var length = keys.length;
|
|
var result = new Array(length);
|
|
var keyCount = 0;
|
|
var callbackCount = 0;
|
|
var req;
|
|
var successHandler = function(event) {
|
|
var req = event.target;
|
|
if ((result[req._pos] = req.result) != null) ;
|
|
if (++callbackCount === keyCount) resolve(result);
|
|
};
|
|
var errorHandler = eventRejectHandler(reject);
|
|
for(var i = 0; i < length; ++i){
|
|
var key = keys[i];
|
|
if (key != null) {
|
|
req = store.get(keys[i]);
|
|
req._pos = i;
|
|
req.onsuccess = successHandler;
|
|
req.onerror = errorHandler;
|
|
++keyCount;
|
|
}
|
|
}
|
|
if (keyCount === 0) resolve(result);
|
|
});
|
|
},
|
|
get: function(_a) {
|
|
var trans = _a.trans, key = _a.key;
|
|
return new Promise(function(resolve, reject) {
|
|
resolve = wrap(resolve);
|
|
var store = trans.objectStore(tableName);
|
|
var req = store.get(key);
|
|
req.onsuccess = function(event) {
|
|
return resolve(event.target.result);
|
|
};
|
|
req.onerror = eventRejectHandler(reject);
|
|
});
|
|
},
|
|
query: query(hasGetAll),
|
|
openCursor: openCursor,
|
|
count: function(_a) {
|
|
var query = _a.query, trans = _a.trans;
|
|
var index = query.index, range = query.range;
|
|
return new Promise(function(resolve, reject) {
|
|
var store = trans.objectStore(tableName);
|
|
var source = index.isPrimaryKey ? store : store.index(index.name);
|
|
var idbKeyRange = makeIDBKeyRange(range);
|
|
var req = idbKeyRange ? source.count(idbKeyRange) : source.count();
|
|
req.onsuccess = wrap(function(ev) {
|
|
return resolve(ev.target.result);
|
|
});
|
|
req.onerror = eventRejectHandler(reject);
|
|
});
|
|
}
|
|
};
|
|
}
|
|
var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;
|
|
var tables = schema.tables.map(function(tableSchema) {
|
|
return createDbCoreTable(tableSchema);
|
|
});
|
|
var tableMap = {};
|
|
tables.forEach(function(table) {
|
|
return tableMap[table.name] = table;
|
|
});
|
|
return {
|
|
stack: "dbcore",
|
|
transaction: db.transaction.bind(db),
|
|
table: function(name) {
|
|
var result = tableMap[name];
|
|
if (!result) throw new Error("Table '".concat(name, "' not found"));
|
|
return tableMap[name];
|
|
},
|
|
MIN_KEY: -Infinity,
|
|
MAX_KEY: getMaxKey(IdbKeyRange),
|
|
schema: schema
|
|
};
|
|
}
|
|
function createMiddlewareStack(stackImpl, middlewares) {
|
|
return middlewares.reduce(function(down, _a) {
|
|
var create = _a.create;
|
|
return __assign(__assign({}, down), create(down));
|
|
}, stackImpl);
|
|
}
|
|
function createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {
|
|
var IDBKeyRange = _a.IDBKeyRange;
|
|
_a.indexedDB;
|
|
var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);
|
|
return {
|
|
dbcore: dbcore
|
|
};
|
|
}
|
|
function generateMiddlewareStacks(db, tmpTrans) {
|
|
var idbdb = tmpTrans.db;
|
|
var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);
|
|
db.core = stacks.dbcore;
|
|
db.tables.forEach(function(table) {
|
|
var tableName = table.name;
|
|
if (db.core.schema.tables.some(function(tbl) {
|
|
return tbl.name === tableName;
|
|
})) {
|
|
table.core = db.core.table(tableName);
|
|
if (db[tableName] instanceof db.Table) {
|
|
db[tableName].core = table.core;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
function setApiOnPlace(db, objs, tableNames, dbschema) {
|
|
tableNames.forEach(function(tableName) {
|
|
var schema = dbschema[tableName];
|
|
objs.forEach(function(obj) {
|
|
var propDesc = getPropertyDescriptor(obj, tableName);
|
|
if (!propDesc || "value" in propDesc && propDesc.value === undefined) {
|
|
if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {
|
|
setProp(obj, tableName, {
|
|
get: function() {
|
|
return this.table(tableName);
|
|
},
|
|
set: function(value) {
|
|
defineProperty(this, tableName, {
|
|
value: value,
|
|
writable: true,
|
|
configurable: true,
|
|
enumerable: true
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
obj[tableName] = new db.Table(tableName, schema);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
function removeTablesApi(db, objs) {
|
|
objs.forEach(function(obj) {
|
|
for(var key in obj){
|
|
if (obj[key] instanceof db.Table) delete obj[key];
|
|
}
|
|
});
|
|
}
|
|
function lowerVersionFirst(a, b) {
|
|
return a._cfg.version - b._cfg.version;
|
|
}
|
|
function runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {
|
|
var globalSchema = db._dbSchema;
|
|
if (idbUpgradeTrans.objectStoreNames.contains('$meta') && !globalSchema.$meta) {
|
|
globalSchema.$meta = createTableSchema("$meta", parseIndexSyntax("")[0], []);
|
|
db._storeNames.push('$meta');
|
|
}
|
|
var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);
|
|
trans.create(idbUpgradeTrans);
|
|
trans._completion.catch(reject);
|
|
var rejectTransaction = trans._reject.bind(trans);
|
|
var transless = PSD.transless || PSD;
|
|
newScope(function() {
|
|
PSD.trans = trans;
|
|
PSD.transless = transless;
|
|
if (oldVersion === 0) {
|
|
keys(globalSchema).forEach(function(tableName) {
|
|
createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);
|
|
});
|
|
generateMiddlewareStacks(db, idbUpgradeTrans);
|
|
DexiePromise.follow(function() {
|
|
return db.on.populate.fire(trans);
|
|
}).catch(rejectTransaction);
|
|
} else {
|
|
generateMiddlewareStacks(db, idbUpgradeTrans);
|
|
return getExistingVersion(db, trans, oldVersion).then(function(oldVersion) {
|
|
return updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans);
|
|
}).catch(rejectTransaction);
|
|
}
|
|
});
|
|
}
|
|
function patchCurrentVersion(db, idbUpgradeTrans) {
|
|
createMissingTables(db._dbSchema, idbUpgradeTrans);
|
|
if (idbUpgradeTrans.db.version % 10 === 0 && !idbUpgradeTrans.objectStoreNames.contains('$meta')) {
|
|
idbUpgradeTrans.db.createObjectStore('$meta').add(Math.ceil(idbUpgradeTrans.db.version / 10 - 1), 'version');
|
|
}
|
|
var globalSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);
|
|
adjustToExistingIndexNames(db, db._dbSchema, idbUpgradeTrans);
|
|
var diff = getSchemaDiff(globalSchema, db._dbSchema);
|
|
var _loop_1 = function(tableChange) {
|
|
if (tableChange.change.length || tableChange.recreate) {
|
|
console.warn("Unable to patch indexes of table ".concat(tableChange.name, " because it has changes on the type of index or primary key."));
|
|
return {
|
|
value: void 0
|
|
};
|
|
}
|
|
var store = idbUpgradeTrans.objectStore(tableChange.name);
|
|
tableChange.add.forEach(function(idx) {
|
|
if (debug) console.debug("Dexie upgrade patch: Creating missing index ".concat(tableChange.name, ".").concat(idx.src));
|
|
addIndex(store, idx);
|
|
});
|
|
};
|
|
for(var _i = 0, _a = diff.change; _i < _a.length; _i++){
|
|
var tableChange = _a[_i];
|
|
var state_1 = _loop_1(tableChange);
|
|
if (typeof state_1 === "object") return state_1.value;
|
|
}
|
|
}
|
|
function getExistingVersion(db, trans, oldVersion) {
|
|
if (trans.storeNames.includes('$meta')) {
|
|
return trans.table('$meta').get('version').then(function(metaVersion) {
|
|
return metaVersion != null ? metaVersion : oldVersion;
|
|
});
|
|
} else {
|
|
return DexiePromise.resolve(oldVersion);
|
|
}
|
|
}
|
|
function updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans) {
|
|
var queue = [];
|
|
var versions = db._versions;
|
|
var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);
|
|
var versToRun = versions.filter(function(v) {
|
|
return v._cfg.version >= oldVersion;
|
|
});
|
|
if (versToRun.length === 0) {
|
|
return DexiePromise.resolve();
|
|
}
|
|
versToRun.forEach(function(version) {
|
|
queue.push(function() {
|
|
var oldSchema = globalSchema;
|
|
var newSchema = version._cfg.dbschema;
|
|
adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);
|
|
adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);
|
|
globalSchema = db._dbSchema = newSchema;
|
|
var diff = getSchemaDiff(oldSchema, newSchema);
|
|
diff.add.forEach(function(tuple) {
|
|
createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);
|
|
});
|
|
diff.change.forEach(function(change) {
|
|
if (change.recreate) {
|
|
throw new exceptions.Upgrade("Not yet support for changing primary key");
|
|
} else {
|
|
var store_1 = idbUpgradeTrans.objectStore(change.name);
|
|
change.add.forEach(function(idx) {
|
|
return addIndex(store_1, idx);
|
|
});
|
|
change.change.forEach(function(idx) {
|
|
store_1.deleteIndex(idx.name);
|
|
addIndex(store_1, idx);
|
|
});
|
|
change.del.forEach(function(idxName) {
|
|
return store_1.deleteIndex(idxName);
|
|
});
|
|
}
|
|
});
|
|
var contentUpgrade = version._cfg.contentUpgrade;
|
|
if (contentUpgrade && version._cfg.version > oldVersion) {
|
|
generateMiddlewareStacks(db, idbUpgradeTrans);
|
|
trans._memoizedTables = {};
|
|
var upgradeSchema_1 = shallowClone(newSchema);
|
|
diff.del.forEach(function(table) {
|
|
upgradeSchema_1[table] = oldSchema[table];
|
|
});
|
|
removeTablesApi(db, [
|
|
db.Transaction.prototype
|
|
]);
|
|
setApiOnPlace(db, [
|
|
db.Transaction.prototype
|
|
], keys(upgradeSchema_1), upgradeSchema_1);
|
|
trans.schema = upgradeSchema_1;
|
|
var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);
|
|
if (contentUpgradeIsAsync_1) {
|
|
incrementExpectedAwaits();
|
|
}
|
|
var returnValue_1;
|
|
var promiseFollowed = DexiePromise.follow(function() {
|
|
returnValue_1 = contentUpgrade(trans);
|
|
if (returnValue_1) {
|
|
if (contentUpgradeIsAsync_1) {
|
|
var decrementor = decrementExpectedAwaits.bind(null, null);
|
|
returnValue_1.then(decrementor, decrementor);
|
|
}
|
|
}
|
|
});
|
|
return returnValue_1 && typeof returnValue_1.then === 'function' ? DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function() {
|
|
return returnValue_1;
|
|
});
|
|
}
|
|
});
|
|
queue.push(function(idbtrans) {
|
|
var newSchema = version._cfg.dbschema;
|
|
deleteRemovedTables(newSchema, idbtrans);
|
|
removeTablesApi(db, [
|
|
db.Transaction.prototype
|
|
]);
|
|
setApiOnPlace(db, [
|
|
db.Transaction.prototype
|
|
], db._storeNames, db._dbSchema);
|
|
trans.schema = db._dbSchema;
|
|
});
|
|
queue.push(function(idbtrans) {
|
|
if (db.idbdb.objectStoreNames.contains('$meta')) {
|
|
if (Math.ceil(db.idbdb.version / 10) === version._cfg.version) {
|
|
db.idbdb.deleteObjectStore('$meta');
|
|
delete db._dbSchema.$meta;
|
|
db._storeNames = db._storeNames.filter(function(name) {
|
|
return name !== '$meta';
|
|
});
|
|
} else {
|
|
idbtrans.objectStore('$meta').put(version._cfg.version, 'version');
|
|
}
|
|
}
|
|
});
|
|
});
|
|
function runQueue() {
|
|
return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) : DexiePromise.resolve();
|
|
}
|
|
return runQueue().then(function() {
|
|
createMissingTables(globalSchema, idbUpgradeTrans);
|
|
});
|
|
}
|
|
function getSchemaDiff(oldSchema, newSchema) {
|
|
var diff = {
|
|
del: [],
|
|
add: [],
|
|
change: []
|
|
};
|
|
var table;
|
|
for(table in oldSchema){
|
|
if (!newSchema[table]) diff.del.push(table);
|
|
}
|
|
for(table in newSchema){
|
|
var oldDef = oldSchema[table], newDef = newSchema[table];
|
|
if (!oldDef) {
|
|
diff.add.push([
|
|
table,
|
|
newDef
|
|
]);
|
|
} else {
|
|
var change = {
|
|
name: table,
|
|
def: newDef,
|
|
recreate: false,
|
|
del: [],
|
|
add: [],
|
|
change: []
|
|
};
|
|
if ('' + (oldDef.primKey.keyPath || '') !== '' + (newDef.primKey.keyPath || '') || oldDef.primKey.auto !== newDef.primKey.auto) {
|
|
change.recreate = true;
|
|
diff.change.push(change);
|
|
} else {
|
|
var oldIndexes = oldDef.idxByName;
|
|
var newIndexes = newDef.idxByName;
|
|
var idxName = void 0;
|
|
for(idxName in oldIndexes){
|
|
if (!newIndexes[idxName]) change.del.push(idxName);
|
|
}
|
|
for(idxName in newIndexes){
|
|
var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];
|
|
if (!oldIdx) change.add.push(newIdx);
|
|
else if (oldIdx.src !== newIdx.src) change.change.push(newIdx);
|
|
}
|
|
if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {
|
|
diff.change.push(change);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return diff;
|
|
}
|
|
function createTable(idbtrans, tableName, primKey, indexes) {
|
|
var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ? {
|
|
keyPath: primKey.keyPath,
|
|
autoIncrement: primKey.auto
|
|
} : {
|
|
autoIncrement: primKey.auto
|
|
});
|
|
indexes.forEach(function(idx) {
|
|
return addIndex(store, idx);
|
|
});
|
|
return store;
|
|
}
|
|
function createMissingTables(newSchema, idbtrans) {
|
|
keys(newSchema).forEach(function(tableName) {
|
|
if (!idbtrans.db.objectStoreNames.contains(tableName)) {
|
|
if (debug) console.debug('Dexie: Creating missing table', tableName);
|
|
createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);
|
|
}
|
|
});
|
|
}
|
|
function deleteRemovedTables(newSchema, idbtrans) {
|
|
[].slice.call(idbtrans.db.objectStoreNames).forEach(function(storeName) {
|
|
return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);
|
|
});
|
|
}
|
|
function addIndex(store, idx) {
|
|
store.createIndex(idx.name, idx.keyPath, {
|
|
unique: idx.unique,
|
|
multiEntry: idx.multi
|
|
});
|
|
}
|
|
function buildGlobalSchema(db, idbdb, tmpTrans) {
|
|
var globalSchema = {};
|
|
var dbStoreNames = slice(idbdb.objectStoreNames, 0);
|
|
dbStoreNames.forEach(function(storeName) {
|
|
var store = tmpTrans.objectStore(storeName);
|
|
var keyPath = store.keyPath;
|
|
var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || "", true, false, !!store.autoIncrement, keyPath && typeof keyPath !== "string", true);
|
|
var indexes = [];
|
|
for(var j = 0; j < store.indexNames.length; ++j){
|
|
var idbindex = store.index(store.indexNames[j]);
|
|
keyPath = idbindex.keyPath;
|
|
var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== "string", false);
|
|
indexes.push(index);
|
|
}
|
|
globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);
|
|
});
|
|
return globalSchema;
|
|
}
|
|
function readGlobalSchema(db, idbdb, tmpTrans) {
|
|
db.verno = idbdb.version / 10;
|
|
var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);
|
|
db._storeNames = slice(idbdb.objectStoreNames, 0);
|
|
setApiOnPlace(db, [
|
|
db._allTables
|
|
], keys(globalSchema), globalSchema);
|
|
}
|
|
function verifyInstalledSchema(db, tmpTrans) {
|
|
var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);
|
|
var diff = getSchemaDiff(installedSchema, db._dbSchema);
|
|
return !(diff.add.length || diff.change.some(function(ch) {
|
|
return ch.add.length || ch.change.length;
|
|
}));
|
|
}
|
|
function adjustToExistingIndexNames(db, schema, idbtrans) {
|
|
var storeNames = idbtrans.db.objectStoreNames;
|
|
for(var i = 0; i < storeNames.length; ++i){
|
|
var storeName = storeNames[i];
|
|
var store = idbtrans.objectStore(storeName);
|
|
db._hasGetAll = 'getAll' in store;
|
|
for(var j = 0; j < store.indexNames.length; ++j){
|
|
var indexName = store.indexNames[j];
|
|
var keyPath = store.index(indexName).keyPath;
|
|
var dexieName = typeof keyPath === 'string' ? keyPath : "[" + slice(keyPath).join('+') + "]";
|
|
if (schema[storeName]) {
|
|
var indexSpec = schema[storeName].idxByName[dexieName];
|
|
if (indexSpec) {
|
|
indexSpec.name = indexName;
|
|
delete schema[storeName].idxByName[dexieName];
|
|
schema[storeName].idxByName[indexName] = indexSpec;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604) {
|
|
db._hasGetAll = false;
|
|
}
|
|
}
|
|
function parseIndexSyntax(primKeyAndIndexes) {
|
|
return primKeyAndIndexes.split(',').map(function(index, indexNum) {
|
|
var _a;
|
|
var typeSplit = index.split(':');
|
|
var type = (_a = typeSplit[1]) === null || _a === void 0 ? void 0 : _a.trim();
|
|
index = typeSplit[0].trim();
|
|
var name = index.replace(/([&*]|\+\+)/g, "");
|
|
var keyPath = /^\[/.test(name) ? name.match(/^\[(.*)\]$/)[1].split('+') : name;
|
|
return createIndexSpec(name, keyPath || null, /\&/.test(index), /\*/.test(index), /\+\+/.test(index), isArray(keyPath), indexNum === 0, type);
|
|
});
|
|
}
|
|
var Version = function() {
|
|
function Version() {}
|
|
Version.prototype._createTableSchema = function(name, primKey, indexes) {
|
|
return createTableSchema(name, primKey, indexes);
|
|
};
|
|
Version.prototype._parseIndexSyntax = function(primKeyAndIndexes) {
|
|
return parseIndexSyntax(primKeyAndIndexes);
|
|
};
|
|
Version.prototype._parseStoresSpec = function(stores, outSchema) {
|
|
var _this = this;
|
|
keys(stores).forEach(function(tableName) {
|
|
if (stores[tableName] !== null) {
|
|
var indexes = _this._parseIndexSyntax(stores[tableName]);
|
|
var primKey = indexes.shift();
|
|
if (!primKey) {
|
|
throw new exceptions.Schema('Invalid schema for table ' + tableName + ': ' + stores[tableName]);
|
|
}
|
|
primKey.unique = true;
|
|
if (primKey.multi) throw new exceptions.Schema('Primary key cannot be multiEntry*');
|
|
indexes.forEach(function(idx) {
|
|
if (idx.auto) throw new exceptions.Schema('Only primary key can be marked as autoIncrement (++)');
|
|
if (!idx.keyPath) throw new exceptions.Schema('Index must have a name and cannot be an empty string');
|
|
});
|
|
var tblSchema = _this._createTableSchema(tableName, primKey, indexes);
|
|
outSchema[tableName] = tblSchema;
|
|
}
|
|
});
|
|
};
|
|
Version.prototype.stores = function(stores) {
|
|
var db = this.db;
|
|
this._cfg.storesSource = this._cfg.storesSource ? extend(this._cfg.storesSource, stores) : stores;
|
|
var versions = db._versions;
|
|
var storesSpec = {};
|
|
var dbschema = {};
|
|
versions.forEach(function(version) {
|
|
extend(storesSpec, version._cfg.storesSource);
|
|
dbschema = version._cfg.dbschema = {};
|
|
version._parseStoresSpec(storesSpec, dbschema);
|
|
});
|
|
db._dbSchema = dbschema;
|
|
removeTablesApi(db, [
|
|
db._allTables,
|
|
db,
|
|
db.Transaction.prototype
|
|
]);
|
|
setApiOnPlace(db, [
|
|
db._allTables,
|
|
db,
|
|
db.Transaction.prototype,
|
|
this._cfg.tables
|
|
], keys(dbschema), dbschema);
|
|
db._storeNames = keys(dbschema);
|
|
return this;
|
|
};
|
|
Version.prototype.upgrade = function(upgradeFunction) {
|
|
this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);
|
|
return this;
|
|
};
|
|
return Version;
|
|
}();
|
|
function createVersionConstructor(db) {
|
|
return makeClassConstructor(Version.prototype, function Version(versionNumber) {
|
|
this.db = db;
|
|
this._cfg = {
|
|
version: versionNumber,
|
|
storesSource: null,
|
|
dbschema: {},
|
|
tables: {},
|
|
contentUpgrade: null
|
|
};
|
|
});
|
|
}
|
|
function getDbNamesTable(indexedDB1, IDBKeyRange) {
|
|
var dbNamesDB = indexedDB1["_dbNamesDB"];
|
|
if (!dbNamesDB) {
|
|
dbNamesDB = indexedDB1["_dbNamesDB"] = new Dexie$1(DBNAMES_DB, {
|
|
addons: [],
|
|
indexedDB: indexedDB1,
|
|
IDBKeyRange: IDBKeyRange
|
|
});
|
|
dbNamesDB.version(1).stores({
|
|
dbnames: "name"
|
|
});
|
|
}
|
|
return dbNamesDB.table("dbnames");
|
|
}
|
|
function hasDatabasesNative(indexedDB1) {
|
|
return indexedDB1 && typeof indexedDB1.databases === "function";
|
|
}
|
|
function getDatabaseNames(_a) {
|
|
var indexedDB1 = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;
|
|
return hasDatabasesNative(indexedDB1) ? Promise.resolve(indexedDB1.databases()).then(function(infos) {
|
|
return infos.map(function(info) {
|
|
return info.name;
|
|
}).filter(function(name) {
|
|
return name !== DBNAMES_DB;
|
|
});
|
|
}) : getDbNamesTable(indexedDB1, IDBKeyRange).toCollection().primaryKeys();
|
|
}
|
|
function _onDatabaseCreated(_a, name) {
|
|
var indexedDB1 = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;
|
|
!hasDatabasesNative(indexedDB1) && name !== DBNAMES_DB && getDbNamesTable(indexedDB1, IDBKeyRange).put({
|
|
name: name
|
|
}).catch(nop);
|
|
}
|
|
function _onDatabaseDeleted(_a, name) {
|
|
var indexedDB1 = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;
|
|
!hasDatabasesNative(indexedDB1) && name !== DBNAMES_DB && getDbNamesTable(indexedDB1, IDBKeyRange).delete(name).catch(nop);
|
|
}
|
|
function vip(fn) {
|
|
return newScope(function() {
|
|
PSD.letThrough = true;
|
|
return fn();
|
|
});
|
|
}
|
|
function idbReady() {
|
|
var isSafari = !navigator.userAgentData && /Safari\//.test(navigator.userAgent) && !/Chrom(e|ium)\//.test(navigator.userAgent);
|
|
if (!isSafari || !indexedDB.databases) return Promise.resolve();
|
|
var intervalId;
|
|
return new Promise(function(resolve) {
|
|
var tryIdb = function() {
|
|
return indexedDB.databases().finally(resolve);
|
|
};
|
|
intervalId = setInterval(tryIdb, 100);
|
|
tryIdb();
|
|
}).finally(function() {
|
|
return clearInterval(intervalId);
|
|
});
|
|
}
|
|
var _a;
|
|
function isEmptyRange(node) {
|
|
return !("from" in node);
|
|
}
|
|
var RangeSet = function(fromOrTree, to) {
|
|
if (this) {
|
|
extend(this, arguments.length ? {
|
|
d: 1,
|
|
from: fromOrTree,
|
|
to: arguments.length > 1 ? to : fromOrTree
|
|
} : {
|
|
d: 0
|
|
});
|
|
} else {
|
|
var rv = new RangeSet();
|
|
if (fromOrTree && "d" in fromOrTree) {
|
|
extend(rv, fromOrTree);
|
|
}
|
|
return rv;
|
|
}
|
|
};
|
|
props(RangeSet.prototype, (_a = {
|
|
add: function(rangeSet) {
|
|
mergeRanges(this, rangeSet);
|
|
return this;
|
|
},
|
|
addKey: function(key) {
|
|
addRange(this, key, key);
|
|
return this;
|
|
},
|
|
addKeys: function(keys) {
|
|
var _this = this;
|
|
keys.forEach(function(key) {
|
|
return addRange(_this, key, key);
|
|
});
|
|
return this;
|
|
},
|
|
hasKey: function(key) {
|
|
var node = getRangeSetIterator(this).next(key).value;
|
|
return node && cmp(node.from, key) <= 0 && cmp(node.to, key) >= 0;
|
|
}
|
|
}, _a[iteratorSymbol] = function() {
|
|
return getRangeSetIterator(this);
|
|
}, _a));
|
|
function addRange(target, from, to) {
|
|
var diff = cmp(from, to);
|
|
if (isNaN(diff)) return;
|
|
if (diff > 0) throw RangeError();
|
|
if (isEmptyRange(target)) return extend(target, {
|
|
from: from,
|
|
to: to,
|
|
d: 1
|
|
});
|
|
var left = target.l;
|
|
var right = target.r;
|
|
if (cmp(to, target.from) < 0) {
|
|
left ? addRange(left, from, to) : target.l = {
|
|
from: from,
|
|
to: to,
|
|
d: 1,
|
|
l: null,
|
|
r: null
|
|
};
|
|
return rebalance(target);
|
|
}
|
|
if (cmp(from, target.to) > 0) {
|
|
right ? addRange(right, from, to) : target.r = {
|
|
from: from,
|
|
to: to,
|
|
d: 1,
|
|
l: null,
|
|
r: null
|
|
};
|
|
return rebalance(target);
|
|
}
|
|
if (cmp(from, target.from) < 0) {
|
|
target.from = from;
|
|
target.l = null;
|
|
target.d = right ? right.d + 1 : 1;
|
|
}
|
|
if (cmp(to, target.to) > 0) {
|
|
target.to = to;
|
|
target.r = null;
|
|
target.d = target.l ? target.l.d + 1 : 1;
|
|
}
|
|
var rightWasCutOff = !target.r;
|
|
if (left && !target.l) {
|
|
mergeRanges(target, left);
|
|
}
|
|
if (right && rightWasCutOff) {
|
|
mergeRanges(target, right);
|
|
}
|
|
}
|
|
function mergeRanges(target, newSet) {
|
|
function _addRangeSet(target, _a) {
|
|
var from = _a.from, to = _a.to, l = _a.l, r = _a.r;
|
|
addRange(target, from, to);
|
|
if (l) _addRangeSet(target, l);
|
|
if (r) _addRangeSet(target, r);
|
|
}
|
|
if (!isEmptyRange(newSet)) _addRangeSet(target, newSet);
|
|
}
|
|
function rangesOverlap(rangeSet1, rangeSet2) {
|
|
var i1 = getRangeSetIterator(rangeSet2);
|
|
var nextResult1 = i1.next();
|
|
if (nextResult1.done) return false;
|
|
var a = nextResult1.value;
|
|
var i2 = getRangeSetIterator(rangeSet1);
|
|
var nextResult2 = i2.next(a.from);
|
|
var b = nextResult2.value;
|
|
while(!nextResult1.done && !nextResult2.done){
|
|
if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0) return true;
|
|
cmp(a.from, b.from) < 0 ? a = (nextResult1 = i1.next(b.from)).value : b = (nextResult2 = i2.next(a.from)).value;
|
|
}
|
|
return false;
|
|
}
|
|
function getRangeSetIterator(node) {
|
|
var state = isEmptyRange(node) ? null : {
|
|
s: 0,
|
|
n: node
|
|
};
|
|
return {
|
|
next: function(key) {
|
|
var keyProvided = arguments.length > 0;
|
|
while(state){
|
|
switch(state.s){
|
|
case 0:
|
|
state.s = 1;
|
|
if (keyProvided) {
|
|
while(state.n.l && cmp(key, state.n.from) < 0)state = {
|
|
up: state,
|
|
n: state.n.l,
|
|
s: 1
|
|
};
|
|
} else {
|
|
while(state.n.l)state = {
|
|
up: state,
|
|
n: state.n.l,
|
|
s: 1
|
|
};
|
|
}
|
|
case 1:
|
|
state.s = 2;
|
|
if (!keyProvided || cmp(key, state.n.to) <= 0) return {
|
|
value: state.n,
|
|
done: false
|
|
};
|
|
case 2:
|
|
if (state.n.r) {
|
|
state.s = 3;
|
|
state = {
|
|
up: state,
|
|
n: state.n.r,
|
|
s: 0
|
|
};
|
|
continue;
|
|
}
|
|
case 3:
|
|
state = state.up;
|
|
}
|
|
}
|
|
return {
|
|
done: true
|
|
};
|
|
}
|
|
};
|
|
}
|
|
function rebalance(target) {
|
|
var _a, _b;
|
|
var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);
|
|
var r = diff > 1 ? "r" : diff < -1 ? "l" : "";
|
|
if (r) {
|
|
var l = r === "r" ? "l" : "r";
|
|
var rootClone = __assign({}, target);
|
|
var oldRootRight = target[r];
|
|
target.from = oldRootRight.from;
|
|
target.to = oldRootRight.to;
|
|
target[r] = oldRootRight[r];
|
|
rootClone[r] = oldRootRight[l];
|
|
target[l] = rootClone;
|
|
rootClone.d = computeDepth(rootClone);
|
|
}
|
|
target.d = computeDepth(target);
|
|
}
|
|
function computeDepth(_a) {
|
|
var r = _a.r, l = _a.l;
|
|
return (r ? l ? Math.max(r.d, l.d) : r.d : l ? l.d : 0) + 1;
|
|
}
|
|
function extendObservabilitySet(target, newSet) {
|
|
keys(newSet).forEach(function(part) {
|
|
if (target[part]) mergeRanges(target[part], newSet[part]);
|
|
else target[part] = cloneSimpleObjectTree(newSet[part]);
|
|
});
|
|
return target;
|
|
}
|
|
function obsSetsOverlap(os1, os2) {
|
|
return os1.all || os2.all || Object.keys(os1).some(function(key) {
|
|
return os2[key] && rangesOverlap(os2[key], os1[key]);
|
|
});
|
|
}
|
|
var cache = {};
|
|
var unsignaledParts = {};
|
|
var isTaskEnqueued = false;
|
|
function signalSubscribersLazily(part, optimistic) {
|
|
extendObservabilitySet(unsignaledParts, part);
|
|
if (!isTaskEnqueued) {
|
|
isTaskEnqueued = true;
|
|
setTimeout(function() {
|
|
isTaskEnqueued = false;
|
|
var parts = unsignaledParts;
|
|
unsignaledParts = {};
|
|
signalSubscribersNow(parts, false);
|
|
}, 0);
|
|
}
|
|
}
|
|
function signalSubscribersNow(updatedParts, deleteAffectedCacheEntries) {
|
|
if (deleteAffectedCacheEntries === void 0) {
|
|
deleteAffectedCacheEntries = false;
|
|
}
|
|
var queriesToSignal = new Set();
|
|
if (updatedParts.all) {
|
|
for(var _i = 0, _a = Object.values(cache); _i < _a.length; _i++){
|
|
var tblCache = _a[_i];
|
|
collectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);
|
|
}
|
|
} else {
|
|
for(var key in updatedParts){
|
|
var parts = /^idb\:\/\/(.*)\/(.*)\//.exec(key);
|
|
if (parts) {
|
|
var dbName = parts[1], tableName = parts[2];
|
|
var tblCache = cache["idb://".concat(dbName, "/").concat(tableName)];
|
|
if (tblCache) collectTableSubscribers(tblCache, updatedParts, queriesToSignal, deleteAffectedCacheEntries);
|
|
}
|
|
}
|
|
}
|
|
queriesToSignal.forEach(function(requery) {
|
|
return requery();
|
|
});
|
|
}
|
|
function collectTableSubscribers(tblCache, updatedParts, outQueriesToSignal, deleteAffectedCacheEntries) {
|
|
var updatedEntryLists = [];
|
|
for(var _i = 0, _a = Object.entries(tblCache.queries.query); _i < _a.length; _i++){
|
|
var _b = _a[_i], indexName = _b[0], entries = _b[1];
|
|
var filteredEntries = [];
|
|
for(var _c = 0, entries_1 = entries; _c < entries_1.length; _c++){
|
|
var entry = entries_1[_c];
|
|
if (obsSetsOverlap(updatedParts, entry.obsSet)) {
|
|
entry.subscribers.forEach(function(requery) {
|
|
return outQueriesToSignal.add(requery);
|
|
});
|
|
} else if (deleteAffectedCacheEntries) {
|
|
filteredEntries.push(entry);
|
|
}
|
|
}
|
|
if (deleteAffectedCacheEntries) updatedEntryLists.push([
|
|
indexName,
|
|
filteredEntries
|
|
]);
|
|
}
|
|
if (deleteAffectedCacheEntries) {
|
|
for(var _d = 0, updatedEntryLists_1 = updatedEntryLists; _d < updatedEntryLists_1.length; _d++){
|
|
var _e = updatedEntryLists_1[_d], indexName = _e[0], filteredEntries = _e[1];
|
|
tblCache.queries.query[indexName] = filteredEntries;
|
|
}
|
|
}
|
|
}
|
|
function dexieOpen(db) {
|
|
var state = db._state;
|
|
var indexedDB1 = db._deps.indexedDB;
|
|
if (state.isBeingOpened || db.idbdb) return state.dbReadyPromise.then(function() {
|
|
return state.dbOpenError ? rejection(state.dbOpenError) : db;
|
|
});
|
|
state.isBeingOpened = true;
|
|
state.dbOpenError = null;
|
|
state.openComplete = false;
|
|
var openCanceller = state.openCanceller;
|
|
var nativeVerToOpen = Math.round(db.verno * 10);
|
|
var schemaPatchMode = false;
|
|
function throwIfCancelled() {
|
|
if (state.openCanceller !== openCanceller) throw new exceptions.DatabaseClosed('db.open() was cancelled');
|
|
}
|
|
var resolveDbReady = state.dbReadyResolve, upgradeTransaction = null, wasCreated = false;
|
|
var tryOpenDB = function() {
|
|
return new DexiePromise(function(resolve, reject) {
|
|
throwIfCancelled();
|
|
if (!indexedDB1) throw new exceptions.MissingAPI();
|
|
var dbName = db.name;
|
|
var req = state.autoSchema || !nativeVerToOpen ? indexedDB1.open(dbName) : indexedDB1.open(dbName, nativeVerToOpen);
|
|
if (!req) throw new exceptions.MissingAPI();
|
|
req.onerror = eventRejectHandler(reject);
|
|
req.onblocked = wrap(db._fireOnBlocked);
|
|
req.onupgradeneeded = wrap(function(e) {
|
|
upgradeTransaction = req.transaction;
|
|
if (state.autoSchema && !db._options.allowEmptyDB) {
|
|
req.onerror = preventDefault;
|
|
upgradeTransaction.abort();
|
|
req.result.close();
|
|
var delreq = indexedDB1.deleteDatabase(dbName);
|
|
delreq.onsuccess = delreq.onerror = wrap(function() {
|
|
reject(new exceptions.NoSuchDatabase("Database ".concat(dbName, " doesnt exist")));
|
|
});
|
|
} else {
|
|
upgradeTransaction.onerror = eventRejectHandler(reject);
|
|
var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;
|
|
wasCreated = oldVer < 1;
|
|
db.idbdb = req.result;
|
|
if (schemaPatchMode) {
|
|
patchCurrentVersion(db, upgradeTransaction);
|
|
}
|
|
runUpgraders(db, oldVer / 10, upgradeTransaction, reject);
|
|
}
|
|
}, reject);
|
|
req.onsuccess = wrap(function() {
|
|
upgradeTransaction = null;
|
|
var idbdb = db.idbdb = req.result;
|
|
var objectStoreNames = slice(idbdb.objectStoreNames);
|
|
if (objectStoreNames.length > 0) try {
|
|
var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');
|
|
if (state.autoSchema) readGlobalSchema(db, idbdb, tmpTrans);
|
|
else {
|
|
adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);
|
|
if (!verifyInstalledSchema(db, tmpTrans) && !schemaPatchMode) {
|
|
console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Dexie will add missing parts and increment native version number to workaround this.");
|
|
idbdb.close();
|
|
nativeVerToOpen = idbdb.version + 1;
|
|
schemaPatchMode = true;
|
|
return resolve(tryOpenDB());
|
|
}
|
|
}
|
|
generateMiddlewareStacks(db, tmpTrans);
|
|
} catch (e) {}
|
|
connections.push(db);
|
|
idbdb.onversionchange = wrap(function(ev) {
|
|
state.vcFired = true;
|
|
db.on("versionchange").fire(ev);
|
|
});
|
|
idbdb.onclose = wrap(function() {
|
|
db.close({
|
|
disableAutoOpen: false
|
|
});
|
|
});
|
|
if (wasCreated) _onDatabaseCreated(db._deps, dbName);
|
|
resolve();
|
|
}, reject);
|
|
}).catch(function(err) {
|
|
switch(err === null || err === void 0 ? void 0 : err.name){
|
|
case "UnknownError":
|
|
if (state.PR1398_maxLoop > 0) {
|
|
state.PR1398_maxLoop--;
|
|
console.warn('Dexie: Workaround for Chrome UnknownError on open()');
|
|
return tryOpenDB();
|
|
}
|
|
break;
|
|
case "VersionError":
|
|
if (nativeVerToOpen > 0) {
|
|
nativeVerToOpen = 0;
|
|
return tryOpenDB();
|
|
}
|
|
break;
|
|
}
|
|
return DexiePromise.reject(err);
|
|
});
|
|
};
|
|
return DexiePromise.race([
|
|
openCanceller,
|
|
(typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(tryOpenDB)
|
|
]).then(function() {
|
|
throwIfCancelled();
|
|
state.onReadyBeingFired = [];
|
|
return DexiePromise.resolve(vip(function() {
|
|
return db.on.ready.fire(db.vip);
|
|
})).then(function fireRemainders() {
|
|
if (state.onReadyBeingFired.length > 0) {
|
|
var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);
|
|
state.onReadyBeingFired = [];
|
|
return DexiePromise.resolve(vip(function() {
|
|
return remainders_1(db.vip);
|
|
})).then(fireRemainders);
|
|
}
|
|
});
|
|
}).finally(function() {
|
|
if (state.openCanceller === openCanceller) {
|
|
state.onReadyBeingFired = null;
|
|
state.isBeingOpened = false;
|
|
}
|
|
}).catch(function(err) {
|
|
state.dbOpenError = err;
|
|
try {
|
|
upgradeTransaction && upgradeTransaction.abort();
|
|
} catch (_a) {}
|
|
if (openCanceller === state.openCanceller) {
|
|
db._close();
|
|
}
|
|
return rejection(err);
|
|
}).finally(function() {
|
|
state.openComplete = true;
|
|
resolveDbReady();
|
|
}).then(function() {
|
|
if (wasCreated) {
|
|
var everything_1 = {};
|
|
db.tables.forEach(function(table) {
|
|
table.schema.indexes.forEach(function(idx) {
|
|
if (idx.name) everything_1["idb://".concat(db.name, "/").concat(table.name, "/").concat(idx.name)] = new RangeSet(-Infinity, [
|
|
[
|
|
[]
|
|
]
|
|
]);
|
|
});
|
|
everything_1["idb://".concat(db.name, "/").concat(table.name, "/")] = everything_1["idb://".concat(db.name, "/").concat(table.name, "/:dels")] = new RangeSet(-Infinity, [
|
|
[
|
|
[]
|
|
]
|
|
]);
|
|
});
|
|
globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME).fire(everything_1);
|
|
signalSubscribersNow(everything_1, true);
|
|
}
|
|
return db;
|
|
});
|
|
}
|
|
function awaitIterator(iterator) {
|
|
var callNext = function(result) {
|
|
return iterator.next(result);
|
|
}, doThrow = function(error) {
|
|
return iterator.throw(error);
|
|
}, onSuccess = step(callNext), onError = step(doThrow);
|
|
function step(getNext) {
|
|
return function(val) {
|
|
var next = getNext(val), value = next.value;
|
|
return next.done ? value : !value || typeof value.then !== 'function' ? isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) : value.then(onSuccess, onError);
|
|
};
|
|
}
|
|
return step(callNext)();
|
|
}
|
|
function extractTransactionArgs(mode, _tableArgs_, scopeFunc) {
|
|
var i = arguments.length;
|
|
if (i < 2) throw new exceptions.InvalidArgument("Too few arguments");
|
|
var args = new Array(i - 1);
|
|
while(--i)args[i - 1] = arguments[i];
|
|
scopeFunc = args.pop();
|
|
var tables = flatten(args);
|
|
return [
|
|
mode,
|
|
tables,
|
|
scopeFunc
|
|
];
|
|
}
|
|
function enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {
|
|
return DexiePromise.resolve().then(function() {
|
|
var transless = PSD.transless || PSD;
|
|
var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);
|
|
trans.explicit = true;
|
|
var zoneProps = {
|
|
trans: trans,
|
|
transless: transless
|
|
};
|
|
if (parentTransaction) {
|
|
trans.idbtrans = parentTransaction.idbtrans;
|
|
} else {
|
|
try {
|
|
trans.create();
|
|
trans.idbtrans._explicit = true;
|
|
db._state.PR1398_maxLoop = 3;
|
|
} catch (ex) {
|
|
if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {
|
|
console.warn('Dexie: Need to reopen db');
|
|
db.close({
|
|
disableAutoOpen: false
|
|
});
|
|
return db.open().then(function() {
|
|
return enterTransactionScope(db, mode, storeNames, null, scopeFunc);
|
|
});
|
|
}
|
|
return rejection(ex);
|
|
}
|
|
}
|
|
var scopeFuncIsAsync = isAsyncFunction(scopeFunc);
|
|
if (scopeFuncIsAsync) {
|
|
incrementExpectedAwaits();
|
|
}
|
|
var returnValue;
|
|
var promiseFollowed = DexiePromise.follow(function() {
|
|
returnValue = scopeFunc.call(trans, trans);
|
|
if (returnValue) {
|
|
if (scopeFuncIsAsync) {
|
|
var decrementor = decrementExpectedAwaits.bind(null, null);
|
|
returnValue.then(decrementor, decrementor);
|
|
} else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {
|
|
returnValue = awaitIterator(returnValue);
|
|
}
|
|
}
|
|
}, zoneProps);
|
|
return (returnValue && typeof returnValue.then === 'function' ? DexiePromise.resolve(returnValue).then(function(x) {
|
|
return trans.active ? x : rejection(new exceptions.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn"));
|
|
}) : promiseFollowed.then(function() {
|
|
return returnValue;
|
|
})).then(function(x) {
|
|
if (parentTransaction) trans._resolve();
|
|
return trans._completion.then(function() {
|
|
return x;
|
|
});
|
|
}).catch(function(e) {
|
|
trans._reject(e);
|
|
return rejection(e);
|
|
});
|
|
});
|
|
}
|
|
function pad(a, value, count) {
|
|
var result = isArray(a) ? a.slice() : [
|
|
a
|
|
];
|
|
for(var i = 0; i < count; ++i)result.push(value);
|
|
return result;
|
|
}
|
|
function createVirtualIndexMiddleware(down) {
|
|
return __assign(__assign({}, down), {
|
|
table: function(tableName) {
|
|
var table = down.table(tableName);
|
|
var schema = table.schema;
|
|
var indexLookup = {};
|
|
var allVirtualIndexes = [];
|
|
function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {
|
|
var keyPathAlias = getKeyPathAlias(keyPath);
|
|
var indexList = indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || [];
|
|
var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;
|
|
var isVirtual = keyTail > 0;
|
|
var virtualIndex = __assign(__assign({}, lowLevelIndex), {
|
|
name: isVirtual ? "".concat(keyPathAlias, "(virtual-from:").concat(lowLevelIndex.name, ")") : lowLevelIndex.name,
|
|
lowLevelIndex: lowLevelIndex,
|
|
isVirtual: isVirtual,
|
|
keyTail: keyTail,
|
|
keyLength: keyLength,
|
|
extractKey: getKeyExtractor(keyPath),
|
|
unique: !isVirtual && lowLevelIndex.unique
|
|
});
|
|
indexList.push(virtualIndex);
|
|
if (!virtualIndex.isPrimaryKey) {
|
|
allVirtualIndexes.push(virtualIndex);
|
|
}
|
|
if (keyLength > 1) {
|
|
var virtualKeyPath = keyLength === 2 ? keyPath[0] : keyPath.slice(0, keyLength - 1);
|
|
addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);
|
|
}
|
|
indexList.sort(function(a, b) {
|
|
return a.keyTail - b.keyTail;
|
|
});
|
|
return virtualIndex;
|
|
}
|
|
var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);
|
|
indexLookup[":id"] = [
|
|
primaryKey
|
|
];
|
|
for(var _i = 0, _a = schema.indexes; _i < _a.length; _i++){
|
|
var index = _a[_i];
|
|
addVirtualIndexes(index.keyPath, 0, index);
|
|
}
|
|
function findBestIndex(keyPath) {
|
|
var result = indexLookup[getKeyPathAlias(keyPath)];
|
|
return result && result[0];
|
|
}
|
|
function translateRange(range, keyTail) {
|
|
return {
|
|
type: range.type === 1 ? 2 : range.type,
|
|
lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),
|
|
lowerOpen: true,
|
|
upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),
|
|
upperOpen: true
|
|
};
|
|
}
|
|
function translateRequest(req) {
|
|
var index = req.query.index;
|
|
return index.isVirtual ? __assign(__assign({}, req), {
|
|
query: {
|
|
index: index.lowLevelIndex,
|
|
range: translateRange(req.query.range, index.keyTail)
|
|
}
|
|
}) : req;
|
|
}
|
|
var result = __assign(__assign({}, table), {
|
|
schema: __assign(__assign({}, schema), {
|
|
primaryKey: primaryKey,
|
|
indexes: allVirtualIndexes,
|
|
getIndexByKeyPath: findBestIndex
|
|
}),
|
|
count: function(req) {
|
|
return table.count(translateRequest(req));
|
|
},
|
|
query: function(req) {
|
|
return table.query(translateRequest(req));
|
|
},
|
|
openCursor: function(req) {
|
|
var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;
|
|
if (!isVirtual) return table.openCursor(req);
|
|
function createVirtualCursor(cursor) {
|
|
function _continue(key) {
|
|
key != null ? cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) : req.unique ? cursor.continue(cursor.key.slice(0, keyLength).concat(req.reverse ? down.MIN_KEY : down.MAX_KEY, keyTail)) : cursor.continue();
|
|
}
|
|
var virtualCursor = Object.create(cursor, {
|
|
continue: {
|
|
value: _continue
|
|
},
|
|
continuePrimaryKey: {
|
|
value: function(key, primaryKey) {
|
|
cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);
|
|
}
|
|
},
|
|
primaryKey: {
|
|
get: function() {
|
|
return cursor.primaryKey;
|
|
}
|
|
},
|
|
key: {
|
|
get: function() {
|
|
var key = cursor.key;
|
|
return keyLength === 1 ? key[0] : key.slice(0, keyLength);
|
|
}
|
|
},
|
|
value: {
|
|
get: function() {
|
|
return cursor.value;
|
|
}
|
|
}
|
|
});
|
|
return virtualCursor;
|
|
}
|
|
return table.openCursor(translateRequest(req)).then(function(cursor) {
|
|
return cursor && createVirtualCursor(cursor);
|
|
});
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
});
|
|
}
|
|
var virtualIndexMiddleware = {
|
|
stack: "dbcore",
|
|
name: "VirtualIndexMiddleware",
|
|
level: 1,
|
|
create: createVirtualIndexMiddleware
|
|
};
|
|
function getObjectDiff(a, b, rv, prfx) {
|
|
rv = rv || {};
|
|
prfx = prfx || '';
|
|
keys(a).forEach(function(prop) {
|
|
if (!hasOwn(b, prop)) {
|
|
rv[prfx + prop] = undefined;
|
|
} else {
|
|
var ap = a[prop], bp = b[prop];
|
|
if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {
|
|
var apTypeName = toStringTag(ap);
|
|
var bpTypeName = toStringTag(bp);
|
|
if (apTypeName !== bpTypeName) {
|
|
rv[prfx + prop] = b[prop];
|
|
} else if (apTypeName === 'Object') {
|
|
getObjectDiff(ap, bp, rv, prfx + prop + '.');
|
|
} else if (ap !== bp) {
|
|
rv[prfx + prop] = b[prop];
|
|
}
|
|
} else if (ap !== bp) rv[prfx + prop] = b[prop];
|
|
}
|
|
});
|
|
keys(b).forEach(function(prop) {
|
|
if (!hasOwn(a, prop)) {
|
|
rv[prfx + prop] = b[prop];
|
|
}
|
|
});
|
|
return rv;
|
|
}
|
|
function getEffectiveKeys(primaryKey, req) {
|
|
if (req.type === 'delete') return req.keys;
|
|
return req.keys || req.values.map(primaryKey.extractKey);
|
|
}
|
|
var hooksMiddleware = {
|
|
stack: "dbcore",
|
|
name: "HooksMiddleware",
|
|
level: 2,
|
|
create: function(downCore) {
|
|
return __assign(__assign({}, downCore), {
|
|
table: function(tableName) {
|
|
var downTable = downCore.table(tableName);
|
|
var primaryKey = downTable.schema.primaryKey;
|
|
var tableMiddleware = __assign(__assign({}, downTable), {
|
|
mutate: function(req) {
|
|
var dxTrans = PSD.trans;
|
|
var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;
|
|
switch(req.type){
|
|
case 'add':
|
|
if (creating.fire === nop) break;
|
|
return dxTrans._promise('readwrite', function() {
|
|
return addPutOrDelete(req);
|
|
}, true);
|
|
case 'put':
|
|
if (creating.fire === nop && updating.fire === nop) break;
|
|
return dxTrans._promise('readwrite', function() {
|
|
return addPutOrDelete(req);
|
|
}, true);
|
|
case 'delete':
|
|
if (deleting.fire === nop) break;
|
|
return dxTrans._promise('readwrite', function() {
|
|
return addPutOrDelete(req);
|
|
}, true);
|
|
case 'deleteRange':
|
|
if (deleting.fire === nop) break;
|
|
return dxTrans._promise('readwrite', function() {
|
|
return deleteRange(req);
|
|
}, true);
|
|
}
|
|
return downTable.mutate(req);
|
|
//TURBOPACK unreachable
|
|
;
|
|
function addPutOrDelete(req) {
|
|
var dxTrans = PSD.trans;
|
|
var keys = req.keys || getEffectiveKeys(primaryKey, req);
|
|
if (!keys) throw new Error("Keys missing");
|
|
req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), {
|
|
keys: keys
|
|
}) : __assign({}, req);
|
|
if (req.type !== 'delete') req.values = __spreadArray([], req.values, true);
|
|
if (req.keys) req.keys = __spreadArray([], req.keys, true);
|
|
return getExistingValues(downTable, req, keys).then(function(existingValues) {
|
|
var contexts = keys.map(function(key, i) {
|
|
var existingValue = existingValues[i];
|
|
var ctx = {
|
|
onerror: null,
|
|
onsuccess: null
|
|
};
|
|
if (req.type === 'delete') {
|
|
deleting.fire.call(ctx, key, existingValue, dxTrans);
|
|
} else if (req.type === 'add' || existingValue === undefined) {
|
|
var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);
|
|
if (key == null && generatedPrimaryKey != null) {
|
|
key = generatedPrimaryKey;
|
|
req.keys[i] = key;
|
|
if (!primaryKey.outbound) {
|
|
setByKeyPath(req.values[i], primaryKey.keyPath, key);
|
|
}
|
|
}
|
|
} else {
|
|
var objectDiff = getObjectDiff(existingValue, req.values[i]);
|
|
var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);
|
|
if (additionalChanges_1) {
|
|
var requestedValue_1 = req.values[i];
|
|
Object.keys(additionalChanges_1).forEach(function(keyPath) {
|
|
if (hasOwn(requestedValue_1, keyPath)) {
|
|
requestedValue_1[keyPath] = additionalChanges_1[keyPath];
|
|
} else {
|
|
setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
return ctx;
|
|
});
|
|
return downTable.mutate(req).then(function(_a) {
|
|
var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;
|
|
for(var i = 0; i < keys.length; ++i){
|
|
var primKey = results ? results[i] : keys[i];
|
|
var ctx = contexts[i];
|
|
if (primKey == null) {
|
|
ctx.onerror && ctx.onerror(failures[i]);
|
|
} else {
|
|
ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ? req.values[i] : primKey);
|
|
}
|
|
}
|
|
return {
|
|
failures: failures,
|
|
results: results,
|
|
numFailures: numFailures,
|
|
lastResult: lastResult
|
|
};
|
|
}).catch(function(error) {
|
|
contexts.forEach(function(ctx) {
|
|
return ctx.onerror && ctx.onerror(error);
|
|
});
|
|
return Promise.reject(error);
|
|
});
|
|
});
|
|
}
|
|
function deleteRange(req) {
|
|
return deleteNextChunk(req.trans, req.range, 10000);
|
|
}
|
|
function deleteNextChunk(trans, range, limit) {
|
|
return downTable.query({
|
|
trans: trans,
|
|
values: false,
|
|
query: {
|
|
index: primaryKey,
|
|
range: range
|
|
},
|
|
limit: limit
|
|
}).then(function(_a) {
|
|
var result = _a.result;
|
|
return addPutOrDelete({
|
|
type: 'delete',
|
|
keys: result,
|
|
trans: trans
|
|
}).then(function(res) {
|
|
if (res.numFailures > 0) return Promise.reject(res.failures[0]);
|
|
if (result.length < limit) {
|
|
return {
|
|
failures: [],
|
|
numFailures: 0,
|
|
lastResult: undefined
|
|
};
|
|
} else {
|
|
return deleteNextChunk(trans, __assign(__assign({}, range), {
|
|
lower: result[result.length - 1],
|
|
lowerOpen: true
|
|
}), limit);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return tableMiddleware;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
function getExistingValues(table, req, effectiveKeys) {
|
|
return req.type === "add" ? Promise.resolve([]) : table.getMany({
|
|
trans: req.trans,
|
|
keys: effectiveKeys,
|
|
cache: "immutable"
|
|
});
|
|
}
|
|
function getFromTransactionCache(keys, cache, clone) {
|
|
try {
|
|
if (!cache) return null;
|
|
if (cache.keys.length < keys.length) return null;
|
|
var result = [];
|
|
for(var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i){
|
|
if (cmp(cache.keys[i], keys[j]) !== 0) continue;
|
|
result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);
|
|
++j;
|
|
}
|
|
return result.length === keys.length ? result : null;
|
|
} catch (_a) {
|
|
return null;
|
|
}
|
|
}
|
|
var cacheExistingValuesMiddleware = {
|
|
stack: "dbcore",
|
|
level: -1,
|
|
create: function(core) {
|
|
return {
|
|
table: function(tableName) {
|
|
var table = core.table(tableName);
|
|
return __assign(__assign({}, table), {
|
|
getMany: function(req) {
|
|
if (!req.cache) {
|
|
return table.getMany(req);
|
|
}
|
|
var cachedResult = getFromTransactionCache(req.keys, req.trans["_cache"], req.cache === "clone");
|
|
if (cachedResult) {
|
|
return DexiePromise.resolve(cachedResult);
|
|
}
|
|
return table.getMany(req).then(function(res) {
|
|
req.trans["_cache"] = {
|
|
keys: req.keys,
|
|
values: req.cache === "clone" ? deepClone(res) : res
|
|
};
|
|
return res;
|
|
});
|
|
},
|
|
mutate: function(req) {
|
|
if (req.type !== "add") req.trans["_cache"] = null;
|
|
return table.mutate(req);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
}
|
|
};
|
|
function isCachableContext(ctx, table) {
|
|
return ctx.trans.mode === 'readonly' && !!ctx.subscr && !ctx.trans.explicit && ctx.trans.db._options.cache !== 'disabled' && !table.schema.primaryKey.outbound;
|
|
}
|
|
function isCachableRequest(type, req) {
|
|
switch(type){
|
|
case 'query':
|
|
return req.values && !req.unique;
|
|
case 'get':
|
|
return false;
|
|
case 'getMany':
|
|
return false;
|
|
case 'count':
|
|
return false;
|
|
case 'openCursor':
|
|
return false;
|
|
}
|
|
}
|
|
var observabilityMiddleware = {
|
|
stack: "dbcore",
|
|
level: 0,
|
|
name: "Observability",
|
|
create: function(core) {
|
|
var dbName = core.schema.name;
|
|
var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);
|
|
return __assign(__assign({}, core), {
|
|
transaction: function(stores, mode, options) {
|
|
if (PSD.subscr && mode !== 'readonly') {
|
|
throw new exceptions.ReadOnly("Readwrite transaction in liveQuery context. Querier source: ".concat(PSD.querier));
|
|
}
|
|
return core.transaction(stores, mode, options);
|
|
},
|
|
table: function(tableName) {
|
|
var table = core.table(tableName);
|
|
var schema = table.schema;
|
|
var primaryKey = schema.primaryKey, indexes = schema.indexes;
|
|
var extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;
|
|
var indexesWithAutoIncPK = primaryKey.autoIncrement && indexes.filter(function(index) {
|
|
return index.compound && index.keyPath.includes(primaryKey.keyPath);
|
|
});
|
|
var tableClone = __assign(__assign({}, table), {
|
|
mutate: function(req) {
|
|
var _a, _b;
|
|
var trans = req.trans;
|
|
var mutatedParts = req.mutatedParts || (req.mutatedParts = {});
|
|
var getRangeSet = function(indexName) {
|
|
var part = "idb://".concat(dbName, "/").concat(tableName, "/").concat(indexName);
|
|
return mutatedParts[part] || (mutatedParts[part] = new RangeSet());
|
|
};
|
|
var pkRangeSet = getRangeSet("");
|
|
var delsRangeSet = getRangeSet(":dels");
|
|
var type = req.type;
|
|
var _c = req.type === "deleteRange" ? [
|
|
req.range
|
|
] : req.type === "delete" ? [
|
|
req.keys
|
|
] : req.values.length < 50 ? [
|
|
getEffectiveKeys(primaryKey, req).filter(function(id) {
|
|
return id;
|
|
}),
|
|
req.values
|
|
] : [], keys = _c[0], newObjs = _c[1];
|
|
var oldCache = req.trans["_cache"];
|
|
if (isArray(keys)) {
|
|
pkRangeSet.addKeys(keys);
|
|
var oldObjs = type === 'delete' || keys.length === newObjs.length ? getFromTransactionCache(keys, oldCache) : null;
|
|
if (!oldObjs) {
|
|
delsRangeSet.addKeys(keys);
|
|
}
|
|
if (oldObjs || newObjs) {
|
|
trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);
|
|
}
|
|
} else if (keys) {
|
|
var range = {
|
|
from: (_a = keys.lower) !== null && _a !== void 0 ? _a : core.MIN_KEY,
|
|
to: (_b = keys.upper) !== null && _b !== void 0 ? _b : core.MAX_KEY
|
|
};
|
|
delsRangeSet.add(range);
|
|
pkRangeSet.add(range);
|
|
} else {
|
|
pkRangeSet.add(FULL_RANGE);
|
|
delsRangeSet.add(FULL_RANGE);
|
|
schema.indexes.forEach(function(idx) {
|
|
return getRangeSet(idx.name).add(FULL_RANGE);
|
|
});
|
|
}
|
|
return table.mutate(req).then(function(res) {
|
|
if (keys && (req.type === 'add' || req.type === 'put')) {
|
|
pkRangeSet.addKeys(res.results);
|
|
if (indexesWithAutoIncPK) {
|
|
indexesWithAutoIncPK.forEach(function(idx) {
|
|
var idxVals = req.values.map(function(v) {
|
|
return idx.extractKey(v);
|
|
});
|
|
var pkPos = idx.keyPath.findIndex(function(prop) {
|
|
return prop === primaryKey.keyPath;
|
|
});
|
|
for(var i = 0, len = res.results.length; i < len; ++i){
|
|
idxVals[i][pkPos] = res.results[i];
|
|
}
|
|
getRangeSet(idx.name).addKeys(idxVals);
|
|
});
|
|
}
|
|
}
|
|
trans.mutatedParts = extendObservabilitySet(trans.mutatedParts || {}, mutatedParts);
|
|
return res;
|
|
});
|
|
}
|
|
});
|
|
var getRange = function(_a) {
|
|
var _b, _c;
|
|
var _d = _a.query, index = _d.index, range = _d.range;
|
|
return [
|
|
index,
|
|
new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY)
|
|
];
|
|
};
|
|
var readSubscribers = {
|
|
get: function(req) {
|
|
return [
|
|
primaryKey,
|
|
new RangeSet(req.key)
|
|
];
|
|
},
|
|
getMany: function(req) {
|
|
return [
|
|
primaryKey,
|
|
new RangeSet().addKeys(req.keys)
|
|
];
|
|
},
|
|
count: getRange,
|
|
query: getRange,
|
|
openCursor: getRange
|
|
};
|
|
keys(readSubscribers).forEach(function(method) {
|
|
tableClone[method] = function(req) {
|
|
var subscr = PSD.subscr;
|
|
var isLiveQuery = !!subscr;
|
|
var cachable = isCachableContext(PSD, table) && isCachableRequest(method, req);
|
|
var obsSet = cachable ? req.obsSet = {} : subscr;
|
|
if (isLiveQuery) {
|
|
var getRangeSet = function(indexName) {
|
|
var part = "idb://".concat(dbName, "/").concat(tableName, "/").concat(indexName);
|
|
return obsSet[part] || (obsSet[part] = new RangeSet());
|
|
};
|
|
var pkRangeSet_1 = getRangeSet("");
|
|
var delsRangeSet_1 = getRangeSet(":dels");
|
|
var _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];
|
|
if (method === 'query' && queriedIndex.isPrimaryKey && !req.values) {
|
|
delsRangeSet_1.add(queriedRanges);
|
|
} else {
|
|
getRangeSet(queriedIndex.name || "").add(queriedRanges);
|
|
}
|
|
if (!queriedIndex.isPrimaryKey) {
|
|
if (method === "count") {
|
|
delsRangeSet_1.add(FULL_RANGE);
|
|
} else {
|
|
var keysPromise_1 = method === "query" && outbound && req.values && table.query(__assign(__assign({}, req), {
|
|
values: false
|
|
}));
|
|
return table[method].apply(this, arguments).then(function(res) {
|
|
if (method === "query") {
|
|
if (outbound && req.values) {
|
|
return keysPromise_1.then(function(_a) {
|
|
var resultingKeys = _a.result;
|
|
pkRangeSet_1.addKeys(resultingKeys);
|
|
return res;
|
|
});
|
|
}
|
|
var pKeys = req.values ? res.result.map(extractKey) : res.result;
|
|
if (req.values) {
|
|
pkRangeSet_1.addKeys(pKeys);
|
|
} else {
|
|
delsRangeSet_1.addKeys(pKeys);
|
|
}
|
|
} else if (method === "openCursor") {
|
|
var cursor_1 = res;
|
|
var wantValues_1 = req.values;
|
|
return cursor_1 && Object.create(cursor_1, {
|
|
key: {
|
|
get: function() {
|
|
delsRangeSet_1.addKey(cursor_1.primaryKey);
|
|
return cursor_1.key;
|
|
}
|
|
},
|
|
primaryKey: {
|
|
get: function() {
|
|
var pkey = cursor_1.primaryKey;
|
|
delsRangeSet_1.addKey(pkey);
|
|
return pkey;
|
|
}
|
|
},
|
|
value: {
|
|
get: function() {
|
|
wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);
|
|
return cursor_1.value;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
return res;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
return table[method].apply(this, arguments);
|
|
};
|
|
});
|
|
return tableClone;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
function trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {
|
|
function addAffectedIndex(ix) {
|
|
var rangeSet = getRangeSet(ix.name || "");
|
|
function extractKey(obj) {
|
|
return obj != null ? ix.extractKey(obj) : null;
|
|
}
|
|
var addKeyOrKeys = function(key) {
|
|
return ix.multiEntry && isArray(key) ? key.forEach(function(key) {
|
|
return rangeSet.addKey(key);
|
|
}) : rangeSet.addKey(key);
|
|
};
|
|
(oldObjs || newObjs).forEach(function(_, i) {
|
|
var oldKey = oldObjs && extractKey(oldObjs[i]);
|
|
var newKey = newObjs && extractKey(newObjs[i]);
|
|
if (cmp(oldKey, newKey) !== 0) {
|
|
if (oldKey != null) addKeyOrKeys(oldKey);
|
|
if (newKey != null) addKeyOrKeys(newKey);
|
|
}
|
|
});
|
|
}
|
|
schema.indexes.forEach(addAffectedIndex);
|
|
}
|
|
function adjustOptimisticFromFailures(tblCache, req, res) {
|
|
if (res.numFailures === 0) return req;
|
|
if (req.type === 'deleteRange') {
|
|
return null;
|
|
}
|
|
var numBulkOps = req.keys ? req.keys.length : 'values' in req && req.values ? req.values.length : 1;
|
|
if (res.numFailures === numBulkOps) {
|
|
return null;
|
|
}
|
|
var clone = __assign({}, req);
|
|
if (isArray(clone.keys)) {
|
|
clone.keys = clone.keys.filter(function(_, i) {
|
|
return !(i in res.failures);
|
|
});
|
|
}
|
|
if ('values' in clone && isArray(clone.values)) {
|
|
clone.values = clone.values.filter(function(_, i) {
|
|
return !(i in res.failures);
|
|
});
|
|
}
|
|
return clone;
|
|
}
|
|
function isAboveLower(key, range) {
|
|
return range.lower === undefined ? true : range.lowerOpen ? cmp(key, range.lower) > 0 : cmp(key, range.lower) >= 0;
|
|
}
|
|
function isBelowUpper(key, range) {
|
|
return range.upper === undefined ? true : range.upperOpen ? cmp(key, range.upper) < 0 : cmp(key, range.upper) <= 0;
|
|
}
|
|
function isWithinRange(key, range) {
|
|
return isAboveLower(key, range) && isBelowUpper(key, range);
|
|
}
|
|
function applyOptimisticOps(result, req, ops, table, cacheEntry, immutable) {
|
|
if (!ops || ops.length === 0) return result;
|
|
var index = req.query.index;
|
|
var multiEntry = index.multiEntry;
|
|
var queryRange = req.query.range;
|
|
var primaryKey = table.schema.primaryKey;
|
|
var extractPrimKey = primaryKey.extractKey;
|
|
var extractIndex = index.extractKey;
|
|
var extractLowLevelIndex = (index.lowLevelIndex || index).extractKey;
|
|
var finalResult = ops.reduce(function(result, op) {
|
|
var modifedResult = result;
|
|
var includedValues = [];
|
|
if (op.type === 'add' || op.type === 'put') {
|
|
var includedPKs = new RangeSet();
|
|
for(var i = op.values.length - 1; i >= 0; --i){
|
|
var value = op.values[i];
|
|
var pk = extractPrimKey(value);
|
|
if (includedPKs.hasKey(pk)) continue;
|
|
var key = extractIndex(value);
|
|
if (multiEntry && isArray(key) ? key.some(function(k) {
|
|
return isWithinRange(k, queryRange);
|
|
}) : isWithinRange(key, queryRange)) {
|
|
includedPKs.addKey(pk);
|
|
includedValues.push(value);
|
|
}
|
|
}
|
|
}
|
|
switch(op.type){
|
|
case 'add':
|
|
{
|
|
var existingKeys_1 = new RangeSet().addKeys(req.values ? result.map(function(v) {
|
|
return extractPrimKey(v);
|
|
}) : result);
|
|
modifedResult = result.concat(req.values ? includedValues.filter(function(v) {
|
|
var key = extractPrimKey(v);
|
|
if (existingKeys_1.hasKey(key)) return false;
|
|
existingKeys_1.addKey(key);
|
|
return true;
|
|
}) : includedValues.map(function(v) {
|
|
return extractPrimKey(v);
|
|
}).filter(function(k) {
|
|
if (existingKeys_1.hasKey(k)) return false;
|
|
existingKeys_1.addKey(k);
|
|
return true;
|
|
}));
|
|
break;
|
|
}
|
|
case 'put':
|
|
{
|
|
var keySet_1 = new RangeSet().addKeys(op.values.map(function(v) {
|
|
return extractPrimKey(v);
|
|
}));
|
|
modifedResult = result.filter(function(item) {
|
|
return !keySet_1.hasKey(req.values ? extractPrimKey(item) : item);
|
|
}).concat(req.values ? includedValues : includedValues.map(function(v) {
|
|
return extractPrimKey(v);
|
|
}));
|
|
break;
|
|
}
|
|
case 'delete':
|
|
var keysToDelete_1 = new RangeSet().addKeys(op.keys);
|
|
modifedResult = result.filter(function(item) {
|
|
return !keysToDelete_1.hasKey(req.values ? extractPrimKey(item) : item);
|
|
});
|
|
break;
|
|
case 'deleteRange':
|
|
var range_1 = op.range;
|
|
modifedResult = result.filter(function(item) {
|
|
return !isWithinRange(extractPrimKey(item), range_1);
|
|
});
|
|
break;
|
|
}
|
|
return modifedResult;
|
|
}, result);
|
|
if (finalResult === result) return result;
|
|
finalResult.sort(function(a, b) {
|
|
return cmp(extractLowLevelIndex(a), extractLowLevelIndex(b)) || cmp(extractPrimKey(a), extractPrimKey(b));
|
|
});
|
|
if (req.limit && req.limit < Infinity) {
|
|
if (finalResult.length > req.limit) {
|
|
finalResult.length = req.limit;
|
|
} else if (result.length === req.limit && finalResult.length < req.limit) {
|
|
cacheEntry.dirty = true;
|
|
}
|
|
}
|
|
return immutable ? Object.freeze(finalResult) : finalResult;
|
|
}
|
|
function areRangesEqual(r1, r2) {
|
|
return cmp(r1.lower, r2.lower) === 0 && cmp(r1.upper, r2.upper) === 0 && !!r1.lowerOpen === !!r2.lowerOpen && !!r1.upperOpen === !!r2.upperOpen;
|
|
}
|
|
function compareLowers(lower1, lower2, lowerOpen1, lowerOpen2) {
|
|
if (lower1 === undefined) return lower2 !== undefined ? -1 : 0;
|
|
if (lower2 === undefined) return 1;
|
|
var c = cmp(lower1, lower2);
|
|
if (c === 0) {
|
|
if (lowerOpen1 && lowerOpen2) return 0;
|
|
if (lowerOpen1) return 1;
|
|
if (lowerOpen2) return -1;
|
|
}
|
|
return c;
|
|
}
|
|
function compareUppers(upper1, upper2, upperOpen1, upperOpen2) {
|
|
if (upper1 === undefined) return upper2 !== undefined ? 1 : 0;
|
|
if (upper2 === undefined) return -1;
|
|
var c = cmp(upper1, upper2);
|
|
if (c === 0) {
|
|
if (upperOpen1 && upperOpen2) return 0;
|
|
if (upperOpen1) return -1;
|
|
if (upperOpen2) return 1;
|
|
}
|
|
return c;
|
|
}
|
|
function isSuperRange(r1, r2) {
|
|
return compareLowers(r1.lower, r2.lower, r1.lowerOpen, r2.lowerOpen) <= 0 && compareUppers(r1.upper, r2.upper, r1.upperOpen, r2.upperOpen) >= 0;
|
|
}
|
|
function findCompatibleQuery(dbName, tableName, type, req) {
|
|
var tblCache = cache["idb://".concat(dbName, "/").concat(tableName)];
|
|
if (!tblCache) return [];
|
|
var queries = tblCache.queries[type];
|
|
if (!queries) return [
|
|
null,
|
|
false,
|
|
tblCache,
|
|
null
|
|
];
|
|
var indexName = req.query ? req.query.index.name : null;
|
|
var entries = queries[indexName || ''];
|
|
if (!entries) return [
|
|
null,
|
|
false,
|
|
tblCache,
|
|
null
|
|
];
|
|
switch(type){
|
|
case 'query':
|
|
var equalEntry = entries.find(function(entry) {
|
|
return entry.req.limit === req.limit && entry.req.values === req.values && areRangesEqual(entry.req.query.range, req.query.range);
|
|
});
|
|
if (equalEntry) return [
|
|
equalEntry,
|
|
true,
|
|
tblCache,
|
|
entries
|
|
];
|
|
var superEntry = entries.find(function(entry) {
|
|
var limit = 'limit' in entry.req ? entry.req.limit : Infinity;
|
|
return limit >= req.limit && (req.values ? entry.req.values : true) && isSuperRange(entry.req.query.range, req.query.range);
|
|
});
|
|
return [
|
|
superEntry,
|
|
false,
|
|
tblCache,
|
|
entries
|
|
];
|
|
case 'count':
|
|
var countQuery = entries.find(function(entry) {
|
|
return areRangesEqual(entry.req.query.range, req.query.range);
|
|
});
|
|
return [
|
|
countQuery,
|
|
!!countQuery,
|
|
tblCache,
|
|
entries
|
|
];
|
|
}
|
|
}
|
|
function subscribeToCacheEntry(cacheEntry, container, requery, signal) {
|
|
cacheEntry.subscribers.add(requery);
|
|
signal.addEventListener("abort", function() {
|
|
cacheEntry.subscribers.delete(requery);
|
|
if (cacheEntry.subscribers.size === 0) {
|
|
enqueForDeletion(cacheEntry, container);
|
|
}
|
|
});
|
|
}
|
|
function enqueForDeletion(cacheEntry, container) {
|
|
setTimeout(function() {
|
|
if (cacheEntry.subscribers.size === 0) {
|
|
delArrayItem(container, cacheEntry);
|
|
}
|
|
}, 3000);
|
|
}
|
|
var cacheMiddleware = {
|
|
stack: 'dbcore',
|
|
level: 0,
|
|
name: 'Cache',
|
|
create: function(core) {
|
|
var dbName = core.schema.name;
|
|
var coreMW = __assign(__assign({}, core), {
|
|
transaction: function(stores, mode, options) {
|
|
var idbtrans = core.transaction(stores, mode, options);
|
|
if (mode === 'readwrite') {
|
|
var ac_1 = new AbortController();
|
|
var signal = ac_1.signal;
|
|
var endTransaction = function(wasCommitted) {
|
|
return function() {
|
|
ac_1.abort();
|
|
if (mode === 'readwrite') {
|
|
var affectedSubscribers_1 = new Set();
|
|
for(var _i = 0, stores_1 = stores; _i < stores_1.length; _i++){
|
|
var storeName = stores_1[_i];
|
|
var tblCache = cache["idb://".concat(dbName, "/").concat(storeName)];
|
|
if (tblCache) {
|
|
var table = core.table(storeName);
|
|
var ops = tblCache.optimisticOps.filter(function(op) {
|
|
return op.trans === idbtrans;
|
|
});
|
|
if (idbtrans._explicit && wasCommitted && idbtrans.mutatedParts) {
|
|
for(var _a = 0, _b = Object.values(tblCache.queries.query); _a < _b.length; _a++){
|
|
var entries = _b[_a];
|
|
for(var _c = 0, _d = entries.slice(); _c < _d.length; _c++){
|
|
var entry = _d[_c];
|
|
if (obsSetsOverlap(entry.obsSet, idbtrans.mutatedParts)) {
|
|
delArrayItem(entries, entry);
|
|
entry.subscribers.forEach(function(requery) {
|
|
return affectedSubscribers_1.add(requery);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
} else if (ops.length > 0) {
|
|
tblCache.optimisticOps = tblCache.optimisticOps.filter(function(op) {
|
|
return op.trans !== idbtrans;
|
|
});
|
|
for(var _e = 0, _f = Object.values(tblCache.queries.query); _e < _f.length; _e++){
|
|
var entries = _f[_e];
|
|
for(var _g = 0, _h = entries.slice(); _g < _h.length; _g++){
|
|
var entry = _h[_g];
|
|
if (entry.res != null && idbtrans.mutatedParts) {
|
|
if (wasCommitted && !entry.dirty) {
|
|
var freezeResults = Object.isFrozen(entry.res);
|
|
var modRes = applyOptimisticOps(entry.res, entry.req, ops, table, entry, freezeResults);
|
|
if (entry.dirty) {
|
|
delArrayItem(entries, entry);
|
|
entry.subscribers.forEach(function(requery) {
|
|
return affectedSubscribers_1.add(requery);
|
|
});
|
|
} else if (modRes !== entry.res) {
|
|
entry.res = modRes;
|
|
entry.promise = DexiePromise.resolve({
|
|
result: modRes
|
|
});
|
|
}
|
|
} else {
|
|
if (entry.dirty) {
|
|
delArrayItem(entries, entry);
|
|
}
|
|
entry.subscribers.forEach(function(requery) {
|
|
return affectedSubscribers_1.add(requery);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
affectedSubscribers_1.forEach(function(requery) {
|
|
return requery();
|
|
});
|
|
}
|
|
};
|
|
};
|
|
idbtrans.addEventListener('abort', endTransaction(false), {
|
|
signal: signal
|
|
});
|
|
idbtrans.addEventListener('error', endTransaction(false), {
|
|
signal: signal
|
|
});
|
|
idbtrans.addEventListener('complete', endTransaction(true), {
|
|
signal: signal
|
|
});
|
|
}
|
|
return idbtrans;
|
|
},
|
|
table: function(tableName) {
|
|
var downTable = core.table(tableName);
|
|
var primKey = downTable.schema.primaryKey;
|
|
var tableMW = __assign(__assign({}, downTable), {
|
|
mutate: function(req) {
|
|
var trans = PSD.trans;
|
|
if (primKey.outbound || trans.db._options.cache === 'disabled' || trans.explicit || trans.idbtrans.mode !== 'readwrite') {
|
|
return downTable.mutate(req);
|
|
}
|
|
var tblCache = cache["idb://".concat(dbName, "/").concat(tableName)];
|
|
if (!tblCache) return downTable.mutate(req);
|
|
var promise = downTable.mutate(req);
|
|
if ((req.type === 'add' || req.type === 'put') && (req.values.length >= 50 || getEffectiveKeys(primKey, req).some(function(key) {
|
|
return key == null;
|
|
}))) {
|
|
promise.then(function(res) {
|
|
var reqWithResolvedKeys = __assign(__assign({}, req), {
|
|
values: req.values.map(function(value, i) {
|
|
var _a;
|
|
if (res.failures[i]) return value;
|
|
var valueWithKey = ((_a = primKey.keyPath) === null || _a === void 0 ? void 0 : _a.includes('.')) ? deepClone(value) : __assign({}, value);
|
|
setByKeyPath(valueWithKey, primKey.keyPath, res.results[i]);
|
|
return valueWithKey;
|
|
})
|
|
});
|
|
var adjustedReq = adjustOptimisticFromFailures(tblCache, reqWithResolvedKeys, res);
|
|
tblCache.optimisticOps.push(adjustedReq);
|
|
queueMicrotask(function() {
|
|
return req.mutatedParts && signalSubscribersLazily(req.mutatedParts);
|
|
});
|
|
});
|
|
} else {
|
|
tblCache.optimisticOps.push(req);
|
|
req.mutatedParts && signalSubscribersLazily(req.mutatedParts);
|
|
promise.then(function(res) {
|
|
if (res.numFailures > 0) {
|
|
delArrayItem(tblCache.optimisticOps, req);
|
|
var adjustedReq = adjustOptimisticFromFailures(tblCache, req, res);
|
|
if (adjustedReq) {
|
|
tblCache.optimisticOps.push(adjustedReq);
|
|
}
|
|
req.mutatedParts && signalSubscribersLazily(req.mutatedParts);
|
|
}
|
|
});
|
|
promise.catch(function() {
|
|
delArrayItem(tblCache.optimisticOps, req);
|
|
req.mutatedParts && signalSubscribersLazily(req.mutatedParts);
|
|
});
|
|
}
|
|
return promise;
|
|
},
|
|
query: function(req) {
|
|
var _a;
|
|
if (!isCachableContext(PSD, downTable) || !isCachableRequest("query", req)) return downTable.query(req);
|
|
var freezeResults = ((_a = PSD.trans) === null || _a === void 0 ? void 0 : _a.db._options.cache) === 'immutable';
|
|
var _b = PSD, requery = _b.requery, signal = _b.signal;
|
|
var _c = findCompatibleQuery(dbName, tableName, 'query', req), cacheEntry = _c[0], exactMatch = _c[1], tblCache = _c[2], container = _c[3];
|
|
if (cacheEntry && exactMatch) {
|
|
cacheEntry.obsSet = req.obsSet;
|
|
} else {
|
|
var promise = downTable.query(req).then(function(res) {
|
|
var result = res.result;
|
|
if (cacheEntry) cacheEntry.res = result;
|
|
if (freezeResults) {
|
|
for(var i = 0, l = result.length; i < l; ++i){
|
|
Object.freeze(result[i]);
|
|
}
|
|
Object.freeze(result);
|
|
} else {
|
|
res.result = deepClone(result);
|
|
}
|
|
return res;
|
|
}).catch(function(error) {
|
|
if (container && cacheEntry) delArrayItem(container, cacheEntry);
|
|
return Promise.reject(error);
|
|
});
|
|
cacheEntry = {
|
|
obsSet: req.obsSet,
|
|
promise: promise,
|
|
subscribers: new Set(),
|
|
type: 'query',
|
|
req: req,
|
|
dirty: false
|
|
};
|
|
if (container) {
|
|
container.push(cacheEntry);
|
|
} else {
|
|
container = [
|
|
cacheEntry
|
|
];
|
|
if (!tblCache) {
|
|
tblCache = cache["idb://".concat(dbName, "/").concat(tableName)] = {
|
|
queries: {
|
|
query: {},
|
|
count: {}
|
|
},
|
|
objs: new Map(),
|
|
optimisticOps: [],
|
|
unsignaledParts: {}
|
|
};
|
|
}
|
|
tblCache.queries.query[req.query.index.name || ''] = container;
|
|
}
|
|
}
|
|
subscribeToCacheEntry(cacheEntry, container, requery, signal);
|
|
return cacheEntry.promise.then(function(res) {
|
|
return {
|
|
result: applyOptimisticOps(res.result, req, tblCache === null || tblCache === void 0 ? void 0 : tblCache.optimisticOps, downTable, cacheEntry, freezeResults)
|
|
};
|
|
});
|
|
}
|
|
});
|
|
return tableMW;
|
|
}
|
|
});
|
|
return coreMW;
|
|
}
|
|
};
|
|
function vipify(target, vipDb) {
|
|
return new Proxy(target, {
|
|
get: function(target, prop, receiver) {
|
|
if (prop === 'db') return vipDb;
|
|
return Reflect.get(target, prop, receiver);
|
|
}
|
|
});
|
|
}
|
|
var Dexie$1 = function() {
|
|
function Dexie(name, options) {
|
|
var _this = this;
|
|
this._middlewares = {};
|
|
this.verno = 0;
|
|
var deps = Dexie.dependencies;
|
|
this._options = options = __assign({
|
|
addons: Dexie.addons,
|
|
autoOpen: true,
|
|
indexedDB: deps.indexedDB,
|
|
IDBKeyRange: deps.IDBKeyRange,
|
|
cache: 'cloned'
|
|
}, options);
|
|
this._deps = {
|
|
indexedDB: options.indexedDB,
|
|
IDBKeyRange: options.IDBKeyRange
|
|
};
|
|
var addons = options.addons;
|
|
this._dbSchema = {};
|
|
this._versions = [];
|
|
this._storeNames = [];
|
|
this._allTables = {};
|
|
this.idbdb = null;
|
|
this._novip = this;
|
|
var state = {
|
|
dbOpenError: null,
|
|
isBeingOpened: false,
|
|
onReadyBeingFired: null,
|
|
openComplete: false,
|
|
dbReadyResolve: nop,
|
|
dbReadyPromise: null,
|
|
cancelOpen: nop,
|
|
openCanceller: null,
|
|
autoSchema: true,
|
|
PR1398_maxLoop: 3,
|
|
autoOpen: options.autoOpen
|
|
};
|
|
state.dbReadyPromise = new DexiePromise(function(resolve) {
|
|
state.dbReadyResolve = resolve;
|
|
});
|
|
state.openCanceller = new DexiePromise(function(_, reject) {
|
|
state.cancelOpen = reject;
|
|
});
|
|
this._state = state;
|
|
this.name = name;
|
|
this.on = Events(this, "populate", "blocked", "versionchange", "close", {
|
|
ready: [
|
|
promisableChain,
|
|
nop
|
|
]
|
|
});
|
|
this.once = function(event, callback) {
|
|
var fn = function() {
|
|
var args = [];
|
|
for(var _i = 0; _i < arguments.length; _i++){
|
|
args[_i] = arguments[_i];
|
|
}
|
|
_this.on(event).unsubscribe(fn);
|
|
callback.apply(_this, args);
|
|
};
|
|
return _this.on(event, fn);
|
|
};
|
|
this.on.ready.subscribe = override(this.on.ready.subscribe, function(subscribe) {
|
|
return function(subscriber, bSticky) {
|
|
Dexie.vip(function() {
|
|
var state = _this._state;
|
|
if (state.openComplete) {
|
|
if (!state.dbOpenError) DexiePromise.resolve().then(subscriber);
|
|
if (bSticky) subscribe(subscriber);
|
|
} else if (state.onReadyBeingFired) {
|
|
state.onReadyBeingFired.push(subscriber);
|
|
if (bSticky) subscribe(subscriber);
|
|
} else {
|
|
subscribe(subscriber);
|
|
var db_1 = _this;
|
|
if (!bSticky) subscribe(function unsubscribe() {
|
|
db_1.on.ready.unsubscribe(subscriber);
|
|
db_1.on.ready.unsubscribe(unsubscribe);
|
|
});
|
|
}
|
|
});
|
|
};
|
|
});
|
|
this.Collection = createCollectionConstructor(this);
|
|
this.Table = createTableConstructor(this);
|
|
this.Transaction = createTransactionConstructor(this);
|
|
this.Version = createVersionConstructor(this);
|
|
this.WhereClause = createWhereClauseConstructor(this);
|
|
this.on("versionchange", function(ev) {
|
|
if (ev.newVersion > 0) console.warn("Another connection wants to upgrade database '".concat(_this.name, "'. Closing db now to resume the upgrade."));
|
|
else console.warn("Another connection wants to delete database '".concat(_this.name, "'. Closing db now to resume the delete request."));
|
|
_this.close({
|
|
disableAutoOpen: false
|
|
});
|
|
});
|
|
this.on("blocked", function(ev) {
|
|
if (!ev.newVersion || ev.newVersion < ev.oldVersion) console.warn("Dexie.delete('".concat(_this.name, "') was blocked"));
|
|
else console.warn("Upgrade '".concat(_this.name, "' blocked by other connection holding version ").concat(ev.oldVersion / 10));
|
|
});
|
|
this._maxKey = getMaxKey(options.IDBKeyRange);
|
|
this._createTransaction = function(mode, storeNames, dbschema, parentTransaction) {
|
|
return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction);
|
|
};
|
|
this._fireOnBlocked = function(ev) {
|
|
_this.on("blocked").fire(ev);
|
|
connections.filter(function(c) {
|
|
return c.name === _this.name && c !== _this && !c._state.vcFired;
|
|
}).map(function(c) {
|
|
return c.on("versionchange").fire(ev);
|
|
});
|
|
};
|
|
this.use(cacheExistingValuesMiddleware);
|
|
this.use(cacheMiddleware);
|
|
this.use(observabilityMiddleware);
|
|
this.use(virtualIndexMiddleware);
|
|
this.use(hooksMiddleware);
|
|
var vipDB = new Proxy(this, {
|
|
get: function(_, prop, receiver) {
|
|
if (prop === '_vip') return true;
|
|
if (prop === 'table') return function(tableName) {
|
|
return vipify(_this.table(tableName), vipDB);
|
|
};
|
|
var rv = Reflect.get(_, prop, receiver);
|
|
if (rv instanceof Table) return vipify(rv, vipDB);
|
|
if (prop === 'tables') return rv.map(function(t) {
|
|
return vipify(t, vipDB);
|
|
});
|
|
if (prop === '_createTransaction') return function() {
|
|
var tx = rv.apply(this, arguments);
|
|
return vipify(tx, vipDB);
|
|
};
|
|
return rv;
|
|
}
|
|
});
|
|
this.vip = vipDB;
|
|
addons.forEach(function(addon) {
|
|
return addon(_this);
|
|
});
|
|
}
|
|
Dexie.prototype.version = function(versionNumber) {
|
|
if (isNaN(versionNumber) || versionNumber < 0.1) throw new exceptions.Type("Given version is not a positive number");
|
|
versionNumber = Math.round(versionNumber * 10) / 10;
|
|
if (this.idbdb || this._state.isBeingOpened) throw new exceptions.Schema("Cannot add version when database is open");
|
|
this.verno = Math.max(this.verno, versionNumber);
|
|
var versions = this._versions;
|
|
var versionInstance = versions.filter(function(v) {
|
|
return v._cfg.version === versionNumber;
|
|
})[0];
|
|
if (versionInstance) return versionInstance;
|
|
versionInstance = new this.Version(versionNumber);
|
|
versions.push(versionInstance);
|
|
versions.sort(lowerVersionFirst);
|
|
versionInstance.stores({});
|
|
this._state.autoSchema = false;
|
|
return versionInstance;
|
|
};
|
|
Dexie.prototype._whenReady = function(fn) {
|
|
var _this = this;
|
|
return this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip) ? fn() : new DexiePromise(function(resolve, reject) {
|
|
if (_this._state.openComplete) {
|
|
return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));
|
|
}
|
|
if (!_this._state.isBeingOpened) {
|
|
if (!_this._state.autoOpen) {
|
|
reject(new exceptions.DatabaseClosed());
|
|
return;
|
|
}
|
|
_this.open().catch(nop);
|
|
}
|
|
_this._state.dbReadyPromise.then(resolve, reject);
|
|
}).then(fn);
|
|
};
|
|
Dexie.prototype.use = function(_a) {
|
|
var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;
|
|
if (name) this.unuse({
|
|
stack: stack,
|
|
name: name
|
|
});
|
|
var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);
|
|
middlewares.push({
|
|
stack: stack,
|
|
create: create,
|
|
level: level == null ? 10 : level,
|
|
name: name
|
|
});
|
|
middlewares.sort(function(a, b) {
|
|
return a.level - b.level;
|
|
});
|
|
return this;
|
|
};
|
|
Dexie.prototype.unuse = function(_a) {
|
|
var stack = _a.stack, name = _a.name, create = _a.create;
|
|
if (stack && this._middlewares[stack]) {
|
|
this._middlewares[stack] = this._middlewares[stack].filter(function(mw) {
|
|
return create ? mw.create !== create : name ? mw.name !== name : false;
|
|
});
|
|
}
|
|
return this;
|
|
};
|
|
Dexie.prototype.open = function() {
|
|
var _this = this;
|
|
return usePSD(globalPSD, function() {
|
|
return dexieOpen(_this);
|
|
});
|
|
};
|
|
Dexie.prototype._close = function() {
|
|
this.on.close.fire(new CustomEvent('close'));
|
|
var state = this._state;
|
|
var idx = connections.indexOf(this);
|
|
if (idx >= 0) connections.splice(idx, 1);
|
|
if (this.idbdb) {
|
|
try {
|
|
this.idbdb.close();
|
|
} catch (e) {}
|
|
this.idbdb = null;
|
|
}
|
|
if (!state.isBeingOpened) {
|
|
state.dbReadyPromise = new DexiePromise(function(resolve) {
|
|
state.dbReadyResolve = resolve;
|
|
});
|
|
state.openCanceller = new DexiePromise(function(_, reject) {
|
|
state.cancelOpen = reject;
|
|
});
|
|
}
|
|
};
|
|
Dexie.prototype.close = function(_a) {
|
|
var _b = _a === void 0 ? {
|
|
disableAutoOpen: true
|
|
} : _a, disableAutoOpen = _b.disableAutoOpen;
|
|
var state = this._state;
|
|
if (disableAutoOpen) {
|
|
if (state.isBeingOpened) {
|
|
state.cancelOpen(new exceptions.DatabaseClosed());
|
|
}
|
|
this._close();
|
|
state.autoOpen = false;
|
|
state.dbOpenError = new exceptions.DatabaseClosed();
|
|
} else {
|
|
this._close();
|
|
state.autoOpen = this._options.autoOpen || state.isBeingOpened;
|
|
state.openComplete = false;
|
|
state.dbOpenError = null;
|
|
}
|
|
};
|
|
Dexie.prototype.delete = function(closeOptions) {
|
|
var _this = this;
|
|
if (closeOptions === void 0) {
|
|
closeOptions = {
|
|
disableAutoOpen: true
|
|
};
|
|
}
|
|
var hasInvalidArguments = arguments.length > 0 && typeof arguments[0] !== 'object';
|
|
var state = this._state;
|
|
return new DexiePromise(function(resolve, reject) {
|
|
var doDelete = function() {
|
|
_this.close(closeOptions);
|
|
var req = _this._deps.indexedDB.deleteDatabase(_this.name);
|
|
req.onsuccess = wrap(function() {
|
|
_onDatabaseDeleted(_this._deps, _this.name);
|
|
resolve();
|
|
});
|
|
req.onerror = eventRejectHandler(reject);
|
|
req.onblocked = _this._fireOnBlocked;
|
|
};
|
|
if (hasInvalidArguments) throw new exceptions.InvalidArgument("Invalid closeOptions argument to db.delete()");
|
|
if (state.isBeingOpened) {
|
|
state.dbReadyPromise.then(doDelete);
|
|
} else {
|
|
doDelete();
|
|
}
|
|
});
|
|
};
|
|
Dexie.prototype.backendDB = function() {
|
|
return this.idbdb;
|
|
};
|
|
Dexie.prototype.isOpen = function() {
|
|
return this.idbdb !== null;
|
|
};
|
|
Dexie.prototype.hasBeenClosed = function() {
|
|
var dbOpenError = this._state.dbOpenError;
|
|
return dbOpenError && dbOpenError.name === 'DatabaseClosed';
|
|
};
|
|
Dexie.prototype.hasFailed = function() {
|
|
return this._state.dbOpenError !== null;
|
|
};
|
|
Dexie.prototype.dynamicallyOpened = function() {
|
|
return this._state.autoSchema;
|
|
};
|
|
Object.defineProperty(Dexie.prototype, "tables", {
|
|
get: function() {
|
|
var _this = this;
|
|
return keys(this._allTables).map(function(name) {
|
|
return _this._allTables[name];
|
|
});
|
|
},
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Dexie.prototype.transaction = function() {
|
|
var args = extractTransactionArgs.apply(this, arguments);
|
|
return this._transaction.apply(this, args);
|
|
};
|
|
Dexie.prototype._transaction = function(mode, tables, scopeFunc) {
|
|
var _this = this;
|
|
var parentTransaction = PSD.trans;
|
|
if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1) parentTransaction = null;
|
|
var onlyIfCompatible = mode.indexOf('?') !== -1;
|
|
mode = mode.replace('!', '').replace('?', '');
|
|
var idbMode, storeNames;
|
|
try {
|
|
storeNames = tables.map(function(table) {
|
|
var storeName = table instanceof _this.Table ? table.name : table;
|
|
if (typeof storeName !== 'string') throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");
|
|
return storeName;
|
|
});
|
|
if (mode == "r" || mode === READONLY) idbMode = READONLY;
|
|
else if (mode == "rw" || mode == READWRITE) idbMode = READWRITE;
|
|
else throw new exceptions.InvalidArgument("Invalid transaction mode: " + mode);
|
|
if (parentTransaction) {
|
|
if (parentTransaction.mode === READONLY && idbMode === READWRITE) {
|
|
if (onlyIfCompatible) {
|
|
parentTransaction = null;
|
|
} else throw new exceptions.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");
|
|
}
|
|
if (parentTransaction) {
|
|
storeNames.forEach(function(storeName) {
|
|
if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {
|
|
if (onlyIfCompatible) {
|
|
parentTransaction = null;
|
|
} else throw new exceptions.SubTransaction("Table " + storeName + " not included in parent transaction.");
|
|
}
|
|
});
|
|
}
|
|
if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {
|
|
parentTransaction = null;
|
|
}
|
|
}
|
|
} catch (e) {
|
|
return parentTransaction ? parentTransaction._promise(null, function(_, reject) {
|
|
reject(e);
|
|
}) : rejection(e);
|
|
}
|
|
var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);
|
|
return parentTransaction ? parentTransaction._promise(idbMode, enterTransaction, "lock") : PSD.trans ? usePSD(PSD.transless, function() {
|
|
return _this._whenReady(enterTransaction);
|
|
}) : this._whenReady(enterTransaction);
|
|
};
|
|
Dexie.prototype.table = function(tableName) {
|
|
if (!hasOwn(this._allTables, tableName)) {
|
|
throw new exceptions.InvalidTable("Table ".concat(tableName, " does not exist"));
|
|
}
|
|
return this._allTables[tableName];
|
|
};
|
|
return Dexie;
|
|
}();
|
|
var symbolObservable = typeof Symbol !== "undefined" && "observable" in Symbol ? Symbol.observable : "@@observable";
|
|
var Observable = function() {
|
|
function Observable(subscribe) {
|
|
this._subscribe = subscribe;
|
|
}
|
|
Observable.prototype.subscribe = function(x, error, complete) {
|
|
return this._subscribe(!x || typeof x === "function" ? {
|
|
next: x,
|
|
error: error,
|
|
complete: complete
|
|
} : x);
|
|
};
|
|
Observable.prototype[symbolObservable] = function() {
|
|
return this;
|
|
};
|
|
return Observable;
|
|
}();
|
|
var domDeps;
|
|
try {
|
|
domDeps = {
|
|
indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,
|
|
IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange
|
|
};
|
|
} catch (e) {
|
|
domDeps = {
|
|
indexedDB: null,
|
|
IDBKeyRange: null
|
|
};
|
|
}
|
|
function liveQuery(querier) {
|
|
var hasValue = false;
|
|
var currentValue;
|
|
var observable = new Observable(function(observer) {
|
|
var scopeFuncIsAsync = isAsyncFunction(querier);
|
|
function execute(ctx) {
|
|
var wasRootExec = beginMicroTickScope();
|
|
try {
|
|
if (scopeFuncIsAsync) {
|
|
incrementExpectedAwaits();
|
|
}
|
|
var rv = newScope(querier, ctx);
|
|
if (scopeFuncIsAsync) {
|
|
rv = rv.finally(decrementExpectedAwaits);
|
|
}
|
|
return rv;
|
|
} finally{
|
|
wasRootExec && endMicroTickScope();
|
|
}
|
|
}
|
|
var closed = false;
|
|
var abortController;
|
|
var accumMuts = {};
|
|
var currentObs = {};
|
|
var subscription = {
|
|
get closed () {
|
|
return closed;
|
|
},
|
|
unsubscribe: function() {
|
|
if (closed) return;
|
|
closed = true;
|
|
if (abortController) abortController.abort();
|
|
if (startedListening) globalEvents.storagemutated.unsubscribe(mutationListener);
|
|
}
|
|
};
|
|
observer.start && observer.start(subscription);
|
|
var startedListening = false;
|
|
var doQuery = function() {
|
|
return execInGlobalContext(_doQuery);
|
|
};
|
|
function shouldNotify() {
|
|
return obsSetsOverlap(currentObs, accumMuts);
|
|
}
|
|
var mutationListener = function(parts) {
|
|
extendObservabilitySet(accumMuts, parts);
|
|
if (shouldNotify()) {
|
|
doQuery();
|
|
}
|
|
};
|
|
var _doQuery = function() {
|
|
if (closed || !domDeps.indexedDB) {
|
|
return;
|
|
}
|
|
accumMuts = {};
|
|
var subscr = {};
|
|
if (abortController) abortController.abort();
|
|
abortController = new AbortController();
|
|
var ctx = {
|
|
subscr: subscr,
|
|
signal: abortController.signal,
|
|
requery: doQuery,
|
|
querier: querier,
|
|
trans: null
|
|
};
|
|
var ret = execute(ctx);
|
|
Promise.resolve(ret).then(function(result) {
|
|
hasValue = true;
|
|
currentValue = result;
|
|
if (closed || ctx.signal.aborted) {
|
|
return;
|
|
}
|
|
accumMuts = {};
|
|
currentObs = subscr;
|
|
if (!objectIsEmpty(currentObs) && !startedListening) {
|
|
globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);
|
|
startedListening = true;
|
|
}
|
|
execInGlobalContext(function() {
|
|
return !closed && observer.next && observer.next(result);
|
|
});
|
|
}, function(err) {
|
|
hasValue = false;
|
|
if (![
|
|
'DatabaseClosedError',
|
|
'AbortError'
|
|
].includes(err === null || err === void 0 ? void 0 : err.name)) {
|
|
if (!closed) execInGlobalContext(function() {
|
|
if (closed) return;
|
|
observer.error && observer.error(err);
|
|
});
|
|
}
|
|
});
|
|
};
|
|
setTimeout(doQuery, 0);
|
|
return subscription;
|
|
});
|
|
observable.hasValue = function() {
|
|
return hasValue;
|
|
};
|
|
observable.getValue = function() {
|
|
return currentValue;
|
|
};
|
|
return observable;
|
|
}
|
|
var Dexie = Dexie$1;
|
|
props(Dexie, __assign(__assign({}, fullNameExceptions), {
|
|
delete: function(databaseName) {
|
|
var db = new Dexie(databaseName, {
|
|
addons: []
|
|
});
|
|
return db.delete();
|
|
},
|
|
exists: function(name) {
|
|
return new Dexie(name, {
|
|
addons: []
|
|
}).open().then(function(db) {
|
|
db.close();
|
|
return true;
|
|
}).catch('NoSuchDatabaseError', function() {
|
|
return false;
|
|
});
|
|
},
|
|
getDatabaseNames: function(cb) {
|
|
try {
|
|
return getDatabaseNames(Dexie.dependencies).then(cb);
|
|
} catch (_a) {
|
|
return rejection(new exceptions.MissingAPI());
|
|
}
|
|
},
|
|
defineClass: function() {
|
|
function Class(content) {
|
|
extend(this, content);
|
|
}
|
|
return Class;
|
|
},
|
|
ignoreTransaction: function(scopeFunc) {
|
|
return PSD.trans ? usePSD(PSD.transless, scopeFunc) : scopeFunc();
|
|
},
|
|
vip: vip,
|
|
async: function(generatorFn) {
|
|
return function() {
|
|
try {
|
|
var rv = awaitIterator(generatorFn.apply(this, arguments));
|
|
if (!rv || typeof rv.then !== 'function') return DexiePromise.resolve(rv);
|
|
return rv;
|
|
} catch (e) {
|
|
return rejection(e);
|
|
}
|
|
};
|
|
},
|
|
spawn: function(generatorFn, args, thiz) {
|
|
try {
|
|
var rv = awaitIterator(generatorFn.apply(thiz, args || []));
|
|
if (!rv || typeof rv.then !== 'function') return DexiePromise.resolve(rv);
|
|
return rv;
|
|
} catch (e) {
|
|
return rejection(e);
|
|
}
|
|
},
|
|
currentTransaction: {
|
|
get: function() {
|
|
return PSD.trans || null;
|
|
}
|
|
},
|
|
waitFor: function(promiseOrFunction, optionalTimeout) {
|
|
var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ? Dexie.ignoreTransaction(promiseOrFunction) : promiseOrFunction).timeout(optionalTimeout || 60000);
|
|
return PSD.trans ? PSD.trans.waitFor(promise) : promise;
|
|
},
|
|
Promise: DexiePromise,
|
|
debug: {
|
|
get: function() {
|
|
return debug;
|
|
},
|
|
set: function(value) {
|
|
setDebug(value);
|
|
}
|
|
},
|
|
derive: derive,
|
|
extend: extend,
|
|
props: props,
|
|
override: override,
|
|
Events: Events,
|
|
on: globalEvents,
|
|
liveQuery: liveQuery,
|
|
extendObservabilitySet: extendObservabilitySet,
|
|
getByKeyPath: getByKeyPath,
|
|
setByKeyPath: setByKeyPath,
|
|
delByKeyPath: delByKeyPath,
|
|
shallowClone: shallowClone,
|
|
deepClone: deepClone,
|
|
getObjectDiff: getObjectDiff,
|
|
cmp: cmp,
|
|
asap: asap$1,
|
|
minKey: minKey,
|
|
addons: [],
|
|
connections: connections,
|
|
errnames: errnames,
|
|
dependencies: domDeps,
|
|
cache: cache,
|
|
semVer: DEXIE_VERSION,
|
|
version: DEXIE_VERSION.split('.').map(function(n) {
|
|
return parseInt(n);
|
|
}).reduce(function(p, c, i) {
|
|
return p + c / Math.pow(10, i * 2);
|
|
})
|
|
}));
|
|
Dexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);
|
|
if (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {
|
|
globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function(updatedParts) {
|
|
if (!propagatingLocally) {
|
|
var event_1;
|
|
event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {
|
|
detail: updatedParts
|
|
});
|
|
propagatingLocally = true;
|
|
dispatchEvent(event_1);
|
|
propagatingLocally = false;
|
|
}
|
|
});
|
|
addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function(_a) {
|
|
var detail = _a.detail;
|
|
if (!propagatingLocally) {
|
|
propagateLocally(detail);
|
|
}
|
|
});
|
|
}
|
|
function propagateLocally(updateParts) {
|
|
var wasMe = propagatingLocally;
|
|
try {
|
|
propagatingLocally = true;
|
|
globalEvents.storagemutated.fire(updateParts);
|
|
signalSubscribersNow(updateParts, true);
|
|
} finally{
|
|
propagatingLocally = wasMe;
|
|
}
|
|
}
|
|
var propagatingLocally = false;
|
|
var bc;
|
|
var createBC = function() {};
|
|
if (typeof BroadcastChannel !== 'undefined') {
|
|
createBC = function() {
|
|
bc = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);
|
|
bc.onmessage = function(ev) {
|
|
return ev.data && propagateLocally(ev.data);
|
|
};
|
|
};
|
|
createBC();
|
|
if (typeof bc.unref === 'function') {
|
|
bc.unref();
|
|
}
|
|
globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function(changedParts) {
|
|
if (!propagatingLocally) {
|
|
bc.postMessage(changedParts);
|
|
}
|
|
});
|
|
}
|
|
if (typeof addEventListener !== 'undefined') {
|
|
addEventListener('pagehide', function(event) {
|
|
if (!Dexie$1.disableBfCache && event.persisted) {
|
|
if (debug) console.debug('Dexie: handling persisted pagehide');
|
|
bc === null || bc === void 0 ? void 0 : bc.close();
|
|
for(var _i = 0, connections_1 = connections; _i < connections_1.length; _i++){
|
|
var db = connections_1[_i];
|
|
db.close({
|
|
disableAutoOpen: false
|
|
});
|
|
}
|
|
}
|
|
});
|
|
addEventListener('pageshow', function(event) {
|
|
if (!Dexie$1.disableBfCache && event.persisted) {
|
|
if (debug) console.debug('Dexie: handling persisted pageshow');
|
|
createBC();
|
|
propagateLocally({
|
|
all: new RangeSet(-Infinity, [
|
|
[]
|
|
])
|
|
});
|
|
}
|
|
});
|
|
}
|
|
function add(value) {
|
|
return new PropModification({
|
|
add: value
|
|
});
|
|
}
|
|
function remove(value) {
|
|
return new PropModification({
|
|
remove: value
|
|
});
|
|
}
|
|
function replacePrefix(a, b) {
|
|
return new PropModification({
|
|
replacePrefix: [
|
|
a,
|
|
b
|
|
]
|
|
});
|
|
}
|
|
DexiePromise.rejectionMapper = mapError;
|
|
setDebug(debug);
|
|
var namedExports = /*#__PURE__*/ Object.freeze({
|
|
__proto__: null,
|
|
Dexie: Dexie$1,
|
|
liveQuery: liveQuery,
|
|
Entity: Entity,
|
|
cmp: cmp,
|
|
PropModification: PropModification,
|
|
replacePrefix: replacePrefix,
|
|
add: add,
|
|
remove: remove,
|
|
'default': Dexie$1,
|
|
RangeSet: RangeSet,
|
|
mergeRanges: mergeRanges,
|
|
rangesOverlap: rangesOverlap
|
|
});
|
|
__assign(Dexie$1, namedExports, {
|
|
default: Dexie$1
|
|
});
|
|
return Dexie$1;
|
|
}); //# sourceMappingURL=dexie.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie@4.2.1/node_modules/dexie/import-wrapper.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// Making the module version consumable via require - to prohibit
|
|
// multiple occurrancies of the same module in the same app
|
|
// (dual package hazard, https://nodejs.org/api/packages.html#dual-package-hazard)
|
|
__turbopack_context__.s([
|
|
"Dexie",
|
|
()=>Dexie,
|
|
"DexieYProvider",
|
|
()=>DexieYProvider,
|
|
"Entity",
|
|
()=>Entity,
|
|
"PropModification",
|
|
()=>PropModification,
|
|
"RangeSet",
|
|
()=>RangeSet,
|
|
"add",
|
|
()=>add,
|
|
"cmp",
|
|
()=>cmp,
|
|
"default",
|
|
()=>__TURBOPACK__default__export__,
|
|
"liveQuery",
|
|
()=>liveQuery,
|
|
"mergeRanges",
|
|
()=>mergeRanges,
|
|
"rangesOverlap",
|
|
()=>rangesOverlap,
|
|
"remove",
|
|
()=>remove,
|
|
"replacePrefix",
|
|
()=>replacePrefix
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$dist$2f$dexie$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie@4.2.1/node_modules/dexie/dist/dexie.js [app-ssr] (ecmascript)");
|
|
;
|
|
const DexieSymbol = Symbol.for("Dexie");
|
|
const Dexie = globalThis[DexieSymbol] || (globalThis[DexieSymbol] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$dist$2f$dexie$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]);
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$dist$2f$dexie$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].semVer !== Dexie.semVer) {
|
|
throw new Error(`Two different versions of Dexie loaded in the same app: ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$dist$2f$dexie$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].semVer} and ${Dexie.semVer}`);
|
|
}
|
|
const { liveQuery, mergeRanges, rangesOverlap, RangeSet, cmp, Entity, PropModification, replacePrefix, add, remove, DexieYProvider } = Dexie;
|
|
;
|
|
const __TURBOPACK__default__export__ = Dexie;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie-react-hooks@4.2.0_@types+react@19.2.6_dexie@4.2.1_react@19.2.0/node_modules/dexie-react-hooks/dist/dexie-react-hooks.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useDocument",
|
|
()=>useDocument,
|
|
"useLiveQuery",
|
|
()=>useLiveQuery,
|
|
"useObservable",
|
|
()=>useObservable,
|
|
"usePermissions",
|
|
()=>usePermissions
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/dexie@4.2.1/node_modules/dexie/import-wrapper.mjs [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function useObservable(observableFactory, arg2, arg3) {
|
|
// Resolve vars from overloading variants of this function:
|
|
var deps;
|
|
var defaultResult;
|
|
if (typeof observableFactory === 'function') {
|
|
deps = arg2 || [];
|
|
defaultResult = arg3;
|
|
} else {
|
|
deps = [];
|
|
defaultResult = arg2;
|
|
}
|
|
// Create a ref that keeps the state we need
|
|
var monitor = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef({
|
|
hasResult: false,
|
|
result: defaultResult,
|
|
error: null
|
|
});
|
|
// We control when component should rerender. Make triggerUpdate
|
|
// as examplified on React's docs at:
|
|
// https://reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate
|
|
var _a = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useReducer(function(x) {
|
|
return x + 1;
|
|
}, 0);
|
|
_a[0];
|
|
var triggerUpdate = _a[1];
|
|
// Memoize the observable based on deps
|
|
var observable = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useMemo(function() {
|
|
// Make it remember previous subscription's default value when
|
|
// resubscribing.
|
|
var observable = typeof observableFactory === 'function' ? observableFactory() : observableFactory;
|
|
if (!observable || typeof observable.subscribe !== 'function') {
|
|
if (observableFactory === observable) {
|
|
throw new TypeError("Given argument to useObservable() was neither a valid observable nor a function.");
|
|
} else {
|
|
throw new TypeError("Observable factory given to useObservable() did not return a valid observable.");
|
|
}
|
|
}
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
{
|
|
// Find out if the observable has a current value: try get it by subscribing and
|
|
// unsubscribing synchronously
|
|
var subscription;
|
|
}
|
|
return observable;
|
|
}, deps);
|
|
// Integrate with react devtools:
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useDebugValue(monitor.current.result);
|
|
// Subscribe to the observable
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useEffect(function() {
|
|
var subscription = observable.subscribe(function(val) {
|
|
var current = monitor.current;
|
|
if (current.error !== null || current.result !== val) {
|
|
current.error = null;
|
|
current.result = val;
|
|
current.hasResult = true;
|
|
triggerUpdate();
|
|
}
|
|
}, function(err) {
|
|
var current = monitor.current;
|
|
if (current.error !== err) {
|
|
current.error = err;
|
|
triggerUpdate();
|
|
}
|
|
});
|
|
return typeof subscription === 'function' ? subscription // Support observables that return unsubscribe directly
|
|
: subscription.unsubscribe.bind(subscription);
|
|
}, deps);
|
|
// Throw if observable has emitted error so that
|
|
// an ErrorBoundrary can catch it
|
|
if (monitor.current.error) throw monitor.current.error;
|
|
// Return the current result
|
|
return monitor.current.result;
|
|
}
|
|
function useLiveQuery(querier, deps, defaultResult) {
|
|
return useObservable(function() {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Dexie"].liveQuery(querier);
|
|
}, deps || [], defaultResult);
|
|
}
|
|
function usePermissions(firstArg, table, obj) {
|
|
if (!firstArg) throw new TypeError("Invalid arguments to usePermissions(): undefined or null");
|
|
var db;
|
|
if (arguments.length >= 3) {
|
|
if (!('transaction' in firstArg)) {
|
|
// Using ducktyping instead of instanceof in case there are multiple Dexie modules in app.
|
|
// First arg is ensures first arg is a Dexie instance
|
|
throw new TypeError("Invalid arguments to usePermission(db, table, obj): 1st arg must be a Dexie instance");
|
|
}
|
|
if (typeof table !== 'string') throw new TypeError("Invalid arguments to usePermission(db, table, obj): 2nd arg must be string");
|
|
if (!obj || typeof obj !== 'object') throw new TypeError("Invalid arguments to usePermission(db, table, obj): 3rd arg must be an object");
|
|
db = firstArg;
|
|
} else {
|
|
if (firstArg instanceof __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Dexie"]) throw new TypeError("Invalid arguments to usePermission(db, table, obj): Missing table and obj arguments.");
|
|
if (typeof firstArg.table === 'function' && typeof firstArg.db === 'object') {
|
|
db = firstArg.db;
|
|
obj = firstArg;
|
|
table = firstArg.table();
|
|
} else {
|
|
throw new TypeError("Invalid arguments to usePermissions(). " + "Expected usePermissions(entity: DexieCloudEntity) or " + "usePermissions(db: Dexie, table: string, obj: DexieCloudObject)");
|
|
}
|
|
}
|
|
if (!('cloud' in db)) throw new Error("usePermissions() is only for Dexie Cloud but there's no dexie-cloud-addon active in given db.");
|
|
if (!('permissions' in db.cloud)) throw new Error("usePermissions() requires a newer version of dexie-cloud-addon. Please upgrade it.");
|
|
return useObservable(// @ts-ignore
|
|
function() {
|
|
return db.cloud.permissions(obj, table);
|
|
}, [
|
|
obj.realmId,
|
|
obj.owner,
|
|
table
|
|
]);
|
|
}
|
|
var gracePeriod = 100; // 100 ms = grace period to optimize for unload/reload scenarios
|
|
var fr = typeof FinalizationRegistry !== 'undefined' && new FinalizationRegistry(function(doc) {
|
|
// If coming here, react effect never ran. This is a fallback cleanup mechanism.
|
|
var DexieYProvider = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Dexie"]['DexieYProvider'];
|
|
if (DexieYProvider) DexieYProvider.release(doc);
|
|
});
|
|
function useDocument(doc) {
|
|
var _a, _b;
|
|
if (!fr) throw new TypeError('FinalizationRegistry not supported.');
|
|
var providerRef = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useRef(null);
|
|
var DexieYProvider = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$dexie$40$4$2e$2$2e$1$2f$node_modules$2f$dexie$2f$import$2d$wrapper$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Dexie"]['DexieYProvider'];
|
|
if (!DexieYProvider) {
|
|
throw new Error('DexieYProvider is not available. Make sure `y-dexie` is installed and imported.');
|
|
}
|
|
var unregisterToken = undefined;
|
|
if (doc) {
|
|
if (doc !== ((_a = providerRef.current) === null || _a === void 0 ? void 0 : _a.doc)) {
|
|
providerRef.current = DexieYProvider.load(doc, {
|
|
gracePeriod: gracePeriod
|
|
});
|
|
unregisterToken = Object.create(null);
|
|
fr.register(providerRef, doc, unregisterToken);
|
|
}
|
|
} else if ((_b = providerRef.current) === null || _b === void 0 ? void 0 : _b.doc) {
|
|
providerRef.current = null;
|
|
}
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useEffect(function() {
|
|
if (doc) {
|
|
// Doc is set or changed. Unregister provider from FinalizationRegistry
|
|
// and instead take over from here to release the doc when component is unmounted
|
|
// or when doc is changed. What we're doing here is to avoid relying on FinalizationRegistry
|
|
// in all the normal cases and instead rely on React's lifecycle to release the doc.
|
|
// But there can be situations when react never calls this effect and therefore, we
|
|
// need to rely on FinalizationRegistry to release the doc as a fallback.
|
|
// We cannot wait with loading the document until the effect happens, because the doc
|
|
// could have been destroyed in the meantime.
|
|
if (unregisterToken) fr.unregister(unregisterToken);
|
|
var provider = DexieYProvider.for(doc);
|
|
if (provider) {
|
|
return function() {
|
|
DexieYProvider.release(doc);
|
|
};
|
|
} else {
|
|
// Maybe the doc was destroyed in the meantime.
|
|
// Can not happen if React and FinalizationRegistry works as we expect them to.
|
|
// Except if a user had called DexieYProvider.release() on the doc
|
|
throw new Error("FATAL. DexieYProvider.release() has been called somewhere in application code, making us lose the document.");
|
|
}
|
|
}
|
|
}, [
|
|
doc,
|
|
unregisterToken
|
|
]);
|
|
return providerRef.current;
|
|
}
|
|
;
|
|
//# sourceMappingURL=dexie-react-hooks.mjs.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// packages/react/compose-refs/src/composeRefs.tsx
|
|
__turbopack_context__.s([
|
|
"composeRefs",
|
|
()=>composeRefs,
|
|
"useComposedRefs",
|
|
()=>useComposedRefs
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
;
|
|
function setRef(ref, value) {
|
|
if (typeof ref === "function") {
|
|
return ref(value);
|
|
} else if (ref !== null && ref !== void 0) {
|
|
ref.current = value;
|
|
}
|
|
}
|
|
function composeRefs(...refs) {
|
|
return (node)=>{
|
|
let hasCleanup = false;
|
|
const cleanups = refs.map((ref)=>{
|
|
const cleanup = setRef(ref, node);
|
|
if (!hasCleanup && typeof cleanup == "function") {
|
|
hasCleanup = true;
|
|
}
|
|
return cleanup;
|
|
});
|
|
if (hasCleanup) {
|
|
return ()=>{
|
|
for(let i = 0; i < cleanups.length; i++){
|
|
const cleanup = cleanups[i];
|
|
if (typeof cleanup == "function") {
|
|
cleanup();
|
|
} else {
|
|
setRef(refs[i], null);
|
|
}
|
|
}
|
|
};
|
|
}
|
|
};
|
|
}
|
|
function useComposedRefs(...refs) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"](composeRefs(...refs), refs);
|
|
}
|
|
;
|
|
//# sourceMappingURL=index.mjs.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['react-ssr'].ReactJsxRuntime; //# sourceMappingURL=react-jsx-runtime.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-slot@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-slot/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// packages/react/slot/src/Slot.tsx
|
|
__turbopack_context__.s([
|
|
"Root",
|
|
()=>Root,
|
|
"Slot",
|
|
()=>Slot,
|
|
"Slottable",
|
|
()=>Slottable
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/@radix-ui+react-compose-refs@1.1.1_@types+react@19.2.6_react@19.2.0/node_modules/@radix-ui/react-compose-refs/dist/index.mjs [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
var Slot = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{
|
|
const { children, ...slotProps } = props;
|
|
const childrenArray = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Children"].toArray(children);
|
|
const slottable = childrenArray.find(isSlottable);
|
|
if (slottable) {
|
|
const newElement = slottable.props.children;
|
|
const newChildren = childrenArray.map((child)=>{
|
|
if (child === slottable) {
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Children"].count(newElement) > 1) return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Children"].only(null);
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isValidElement"](newElement) ? newElement.props.children : null;
|
|
} else {
|
|
return child;
|
|
}
|
|
});
|
|
return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SlotClone, {
|
|
...slotProps,
|
|
ref: forwardedRef,
|
|
children: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isValidElement"](newElement) ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cloneElement"](newElement, void 0, newChildren) : null
|
|
});
|
|
}
|
|
return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SlotClone, {
|
|
...slotProps,
|
|
ref: forwardedRef,
|
|
children
|
|
});
|
|
});
|
|
Slot.displayName = "Slot";
|
|
var SlotClone = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"]((props, forwardedRef)=>{
|
|
const { children, ...slotProps } = props;
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isValidElement"](children)) {
|
|
const childrenRef = getElementRef(children);
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cloneElement"](children, {
|
|
...mergeProps(slotProps, children.props),
|
|
// @ts-ignore
|
|
ref: forwardedRef ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f40$radix$2d$ui$2b$react$2d$compose$2d$refs$40$1$2e$1$2e$1_$40$types$2b$react$40$19$2e$2$2e$6_react$40$19$2e$2$2e$0$2f$node_modules$2f40$radix$2d$ui$2f$react$2d$compose$2d$refs$2f$dist$2f$index$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["composeRefs"])(forwardedRef, childrenRef) : childrenRef
|
|
});
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Children"].count(children) > 1 ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Children"].only(null) : null;
|
|
});
|
|
SlotClone.displayName = "SlotClone";
|
|
var Slottable = ({ children })=>{
|
|
return /* @__PURE__ */ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children
|
|
});
|
|
};
|
|
function isSlottable(child) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isValidElement"](child) && child.type === Slottable;
|
|
}
|
|
function mergeProps(slotProps, childProps) {
|
|
const overrideProps = {
|
|
...childProps
|
|
};
|
|
for(const propName in childProps){
|
|
const slotPropValue = slotProps[propName];
|
|
const childPropValue = childProps[propName];
|
|
const isHandler = /^on[A-Z]/.test(propName);
|
|
if (isHandler) {
|
|
if (slotPropValue && childPropValue) {
|
|
overrideProps[propName] = (...args)=>{
|
|
childPropValue(...args);
|
|
slotPropValue(...args);
|
|
};
|
|
} else if (slotPropValue) {
|
|
overrideProps[propName] = slotPropValue;
|
|
}
|
|
} else if (propName === "style") {
|
|
overrideProps[propName] = {
|
|
...slotPropValue,
|
|
...childPropValue
|
|
};
|
|
} else if (propName === "className") {
|
|
overrideProps[propName] = [
|
|
slotPropValue,
|
|
childPropValue
|
|
].filter(Boolean).join(" ");
|
|
}
|
|
}
|
|
return {
|
|
...slotProps,
|
|
...overrideProps
|
|
};
|
|
}
|
|
function getElementRef(element) {
|
|
let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
|
|
let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
if (mayWarn) {
|
|
return element.ref;
|
|
}
|
|
getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
|
|
mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
|
|
if (mayWarn) {
|
|
return element.props.ref;
|
|
}
|
|
return element.props.ref || element.ref;
|
|
}
|
|
var Root = Slot;
|
|
;
|
|
//# sourceMappingURL=index.mjs.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"clsx",
|
|
()=>clsx,
|
|
"default",
|
|
()=>__TURBOPACK__default__export__
|
|
]);
|
|
function r(e) {
|
|
var t, f, n = "";
|
|
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
else if ("object" == typeof e) if (Array.isArray(e)) {
|
|
var o = e.length;
|
|
for(t = 0; t < o; t++)e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
|
|
} else for(f in e)e[f] && (n && (n += " "), n += f);
|
|
return n;
|
|
}
|
|
function clsx() {
|
|
for(var e, t, f = 0, n = "", o = arguments.length; f < o; f++)(e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
return n;
|
|
}
|
|
const __TURBOPACK__default__export__ = clsx;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* Copyright 2022 Joe Bell. All rights reserved.
|
|
*
|
|
* This file is licensed to you under the Apache License, Version 2.0
|
|
* (the "License"); you may not use this file except in compliance with the
|
|
* License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the
|
|
* License for the specific language governing permissions and limitations under
|
|
* the License.
|
|
*/ __turbopack_context__.s([
|
|
"cva",
|
|
()=>cva,
|
|
"cx",
|
|
()=>cx
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs [app-ssr] (ecmascript)");
|
|
;
|
|
const falsyToString = (value)=>typeof value === "boolean" ? `${value}` : value === 0 ? "0" : value;
|
|
const cx = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$clsx$40$2$2e$1$2e$1$2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["clsx"];
|
|
const cva = (base, config)=>(props)=>{
|
|
var _config_compoundVariants;
|
|
if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
const { variants, defaultVariants } = config;
|
|
const getVariantClassNames = Object.keys(variants).map((variant)=>{
|
|
const variantProp = props === null || props === void 0 ? void 0 : props[variant];
|
|
const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];
|
|
if (variantProp === null) return null;
|
|
const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);
|
|
return variants[variant][variantKey];
|
|
});
|
|
const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{
|
|
let [key, value] = param;
|
|
if (value === undefined) {
|
|
return acc;
|
|
}
|
|
acc[key] = value;
|
|
return acc;
|
|
}, {});
|
|
const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{
|
|
let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;
|
|
return Object.entries(compoundVariantOptions).every((param)=>{
|
|
let [key, value] = param;
|
|
return Array.isArray(value) ? value.includes({
|
|
...defaultVariants,
|
|
...propsWithoutUndefined
|
|
}[key]) : ({
|
|
...defaultVariants,
|
|
...propsWithoutUndefined
|
|
})[key] === value;
|
|
}) ? [
|
|
...acc,
|
|
cvClass,
|
|
cvClassName
|
|
] : acc;
|
|
}, []);
|
|
return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);
|
|
};
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createTailwindMerge",
|
|
()=>createTailwindMerge,
|
|
"extendTailwindMerge",
|
|
()=>extendTailwindMerge,
|
|
"fromTheme",
|
|
()=>fromTheme,
|
|
"getDefaultConfig",
|
|
()=>getDefaultConfig,
|
|
"mergeConfigs",
|
|
()=>mergeConfigs,
|
|
"twJoin",
|
|
()=>twJoin,
|
|
"twMerge",
|
|
()=>twMerge,
|
|
"validators",
|
|
()=>validators
|
|
]);
|
|
const CLASS_PART_SEPARATOR = '-';
|
|
const createClassGroupUtils = (config)=>{
|
|
const classMap = createClassMap(config);
|
|
const { conflictingClassGroups, conflictingClassGroupModifiers } = config;
|
|
const getClassGroupId = (className)=>{
|
|
const classParts = className.split(CLASS_PART_SEPARATOR);
|
|
// Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.
|
|
if (classParts[0] === '' && classParts.length !== 1) {
|
|
classParts.shift();
|
|
}
|
|
return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);
|
|
};
|
|
const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier)=>{
|
|
const conflicts = conflictingClassGroups[classGroupId] || [];
|
|
if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
|
|
return [
|
|
...conflicts,
|
|
...conflictingClassGroupModifiers[classGroupId]
|
|
];
|
|
}
|
|
return conflicts;
|
|
};
|
|
return {
|
|
getClassGroupId,
|
|
getConflictingClassGroupIds
|
|
};
|
|
};
|
|
const getGroupRecursive = (classParts, classPartObject)=>{
|
|
if (classParts.length === 0) {
|
|
return classPartObject.classGroupId;
|
|
}
|
|
const currentClassPart = classParts[0];
|
|
const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
|
|
const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;
|
|
if (classGroupFromNextClassPart) {
|
|
return classGroupFromNextClassPart;
|
|
}
|
|
if (classPartObject.validators.length === 0) {
|
|
return undefined;
|
|
}
|
|
const classRest = classParts.join(CLASS_PART_SEPARATOR);
|
|
return classPartObject.validators.find(({ validator })=>validator(classRest))?.classGroupId;
|
|
};
|
|
const arbitraryPropertyRegex = /^\[(.+)\]$/;
|
|
const getGroupIdForArbitraryProperty = (className)=>{
|
|
if (arbitraryPropertyRegex.test(className)) {
|
|
const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];
|
|
const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));
|
|
if (property) {
|
|
// I use two dots here because one dot is used as prefix for class groups in plugins
|
|
return 'arbitrary..' + property;
|
|
}
|
|
}
|
|
};
|
|
/**
|
|
* Exported for testing only
|
|
*/ const createClassMap = (config)=>{
|
|
const { theme, prefix } = config;
|
|
const classMap = {
|
|
nextPart: new Map(),
|
|
validators: []
|
|
};
|
|
const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
|
|
prefixedClassGroupEntries.forEach(([classGroupId, classGroup])=>{
|
|
processClassesRecursively(classGroup, classMap, classGroupId, theme);
|
|
});
|
|
return classMap;
|
|
};
|
|
const processClassesRecursively = (classGroup, classPartObject, classGroupId, theme)=>{
|
|
classGroup.forEach((classDefinition)=>{
|
|
if (typeof classDefinition === 'string') {
|
|
const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);
|
|
classPartObjectToEdit.classGroupId = classGroupId;
|
|
return;
|
|
}
|
|
if (typeof classDefinition === 'function') {
|
|
if (isThemeGetter(classDefinition)) {
|
|
processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
|
|
return;
|
|
}
|
|
classPartObject.validators.push({
|
|
validator: classDefinition,
|
|
classGroupId
|
|
});
|
|
return;
|
|
}
|
|
Object.entries(classDefinition).forEach(([key, classGroup])=>{
|
|
processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);
|
|
});
|
|
});
|
|
};
|
|
const getPart = (classPartObject, path)=>{
|
|
let currentClassPartObject = classPartObject;
|
|
path.split(CLASS_PART_SEPARATOR).forEach((pathPart)=>{
|
|
if (!currentClassPartObject.nextPart.has(pathPart)) {
|
|
currentClassPartObject.nextPart.set(pathPart, {
|
|
nextPart: new Map(),
|
|
validators: []
|
|
});
|
|
}
|
|
currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
|
|
});
|
|
return currentClassPartObject;
|
|
};
|
|
const isThemeGetter = (func)=>func.isThemeGetter;
|
|
const getPrefixedClassGroupEntries = (classGroupEntries, prefix)=>{
|
|
if (!prefix) {
|
|
return classGroupEntries;
|
|
}
|
|
return classGroupEntries.map(([classGroupId, classGroup])=>{
|
|
const prefixedClassGroup = classGroup.map((classDefinition)=>{
|
|
if (typeof classDefinition === 'string') {
|
|
return prefix + classDefinition;
|
|
}
|
|
if (typeof classDefinition === 'object') {
|
|
return Object.fromEntries(Object.entries(classDefinition).map(([key, value])=>[
|
|
prefix + key,
|
|
value
|
|
]));
|
|
}
|
|
return classDefinition;
|
|
});
|
|
return [
|
|
classGroupId,
|
|
prefixedClassGroup
|
|
];
|
|
});
|
|
};
|
|
// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance
|
|
const createLruCache = (maxCacheSize)=>{
|
|
if (maxCacheSize < 1) {
|
|
return {
|
|
get: ()=>undefined,
|
|
set: ()=>{}
|
|
};
|
|
}
|
|
let cacheSize = 0;
|
|
let cache = new Map();
|
|
let previousCache = new Map();
|
|
const update = (key, value)=>{
|
|
cache.set(key, value);
|
|
cacheSize++;
|
|
if (cacheSize > maxCacheSize) {
|
|
cacheSize = 0;
|
|
previousCache = cache;
|
|
cache = new Map();
|
|
}
|
|
};
|
|
return {
|
|
get (key) {
|
|
let value = cache.get(key);
|
|
if (value !== undefined) {
|
|
return value;
|
|
}
|
|
if ((value = previousCache.get(key)) !== undefined) {
|
|
update(key, value);
|
|
return value;
|
|
}
|
|
},
|
|
set (key, value) {
|
|
if (cache.has(key)) {
|
|
cache.set(key, value);
|
|
} else {
|
|
update(key, value);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
const IMPORTANT_MODIFIER = '!';
|
|
const createParseClassName = (config)=>{
|
|
const { separator, experimentalParseClassName } = config;
|
|
const isSeparatorSingleCharacter = separator.length === 1;
|
|
const firstSeparatorCharacter = separator[0];
|
|
const separatorLength = separator.length;
|
|
// parseClassName inspired by https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js
|
|
const parseClassName = (className)=>{
|
|
const modifiers = [];
|
|
let bracketDepth = 0;
|
|
let modifierStart = 0;
|
|
let postfixModifierPosition;
|
|
for(let index = 0; index < className.length; index++){
|
|
let currentCharacter = className[index];
|
|
if (bracketDepth === 0) {
|
|
if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className.slice(index, index + separatorLength) === separator)) {
|
|
modifiers.push(className.slice(modifierStart, index));
|
|
modifierStart = index + separatorLength;
|
|
continue;
|
|
}
|
|
if (currentCharacter === '/') {
|
|
postfixModifierPosition = index;
|
|
continue;
|
|
}
|
|
}
|
|
if (currentCharacter === '[') {
|
|
bracketDepth++;
|
|
} else if (currentCharacter === ']') {
|
|
bracketDepth--;
|
|
}
|
|
}
|
|
const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);
|
|
const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
|
|
const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
|
|
const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;
|
|
return {
|
|
modifiers,
|
|
hasImportantModifier,
|
|
baseClassName,
|
|
maybePostfixModifierPosition
|
|
};
|
|
};
|
|
if (experimentalParseClassName) {
|
|
return (className)=>experimentalParseClassName({
|
|
className,
|
|
parseClassName
|
|
});
|
|
}
|
|
return parseClassName;
|
|
};
|
|
/**
|
|
* Sorts modifiers according to following schema:
|
|
* - Predefined modifiers are sorted alphabetically
|
|
* - When an arbitrary variant appears, it must be preserved which modifiers are before and after it
|
|
*/ const sortModifiers = (modifiers)=>{
|
|
if (modifiers.length <= 1) {
|
|
return modifiers;
|
|
}
|
|
const sortedModifiers = [];
|
|
let unsortedModifiers = [];
|
|
modifiers.forEach((modifier)=>{
|
|
const isArbitraryVariant = modifier[0] === '[';
|
|
if (isArbitraryVariant) {
|
|
sortedModifiers.push(...unsortedModifiers.sort(), modifier);
|
|
unsortedModifiers = [];
|
|
} else {
|
|
unsortedModifiers.push(modifier);
|
|
}
|
|
});
|
|
sortedModifiers.push(...unsortedModifiers.sort());
|
|
return sortedModifiers;
|
|
};
|
|
const createConfigUtils = (config)=>({
|
|
cache: createLruCache(config.cacheSize),
|
|
parseClassName: createParseClassName(config),
|
|
...createClassGroupUtils(config)
|
|
});
|
|
const SPLIT_CLASSES_REGEX = /\s+/;
|
|
const mergeClassList = (classList, configUtils)=>{
|
|
const { parseClassName, getClassGroupId, getConflictingClassGroupIds } = configUtils;
|
|
/**
|
|
* Set of classGroupIds in following format:
|
|
* `{importantModifier}{variantModifiers}{classGroupId}`
|
|
* @example 'float'
|
|
* @example 'hover:focus:bg-color'
|
|
* @example 'md:!pr'
|
|
*/ const classGroupsInConflict = [];
|
|
const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
|
|
let result = '';
|
|
for(let index = classNames.length - 1; index >= 0; index -= 1){
|
|
const originalClassName = classNames[index];
|
|
const { modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition } = parseClassName(originalClassName);
|
|
let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
|
|
let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
|
|
if (!classGroupId) {
|
|
if (!hasPostfixModifier) {
|
|
// Not a Tailwind class
|
|
result = originalClassName + (result.length > 0 ? ' ' + result : result);
|
|
continue;
|
|
}
|
|
classGroupId = getClassGroupId(baseClassName);
|
|
if (!classGroupId) {
|
|
// Not a Tailwind class
|
|
result = originalClassName + (result.length > 0 ? ' ' + result : result);
|
|
continue;
|
|
}
|
|
hasPostfixModifier = false;
|
|
}
|
|
const variantModifier = sortModifiers(modifiers).join(':');
|
|
const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
|
|
const classId = modifierId + classGroupId;
|
|
if (classGroupsInConflict.includes(classId)) {
|
|
continue;
|
|
}
|
|
classGroupsInConflict.push(classId);
|
|
const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
|
|
for(let i = 0; i < conflictGroups.length; ++i){
|
|
const group = conflictGroups[i];
|
|
classGroupsInConflict.push(modifierId + group);
|
|
}
|
|
// Tailwind class not in conflict
|
|
result = originalClassName + (result.length > 0 ? ' ' + result : result);
|
|
}
|
|
return result;
|
|
};
|
|
/**
|
|
* The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.
|
|
*
|
|
* Specifically:
|
|
* - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js
|
|
* - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts
|
|
*
|
|
* Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)
|
|
*/ function twJoin() {
|
|
let index = 0;
|
|
let argument;
|
|
let resolvedValue;
|
|
let string = '';
|
|
while(index < arguments.length){
|
|
if (argument = arguments[index++]) {
|
|
if (resolvedValue = toValue(argument)) {
|
|
string && (string += ' ');
|
|
string += resolvedValue;
|
|
}
|
|
}
|
|
}
|
|
return string;
|
|
}
|
|
const toValue = (mix)=>{
|
|
if (typeof mix === 'string') {
|
|
return mix;
|
|
}
|
|
let resolvedValue;
|
|
let string = '';
|
|
for(let k = 0; k < mix.length; k++){
|
|
if (mix[k]) {
|
|
if (resolvedValue = toValue(mix[k])) {
|
|
string && (string += ' ');
|
|
string += resolvedValue;
|
|
}
|
|
}
|
|
}
|
|
return string;
|
|
};
|
|
function createTailwindMerge(createConfigFirst, ...createConfigRest) {
|
|
let configUtils;
|
|
let cacheGet;
|
|
let cacheSet;
|
|
let functionToCall = initTailwindMerge;
|
|
function initTailwindMerge(classList) {
|
|
const config = createConfigRest.reduce((previousConfig, createConfigCurrent)=>createConfigCurrent(previousConfig), createConfigFirst());
|
|
configUtils = createConfigUtils(config);
|
|
cacheGet = configUtils.cache.get;
|
|
cacheSet = configUtils.cache.set;
|
|
functionToCall = tailwindMerge;
|
|
return tailwindMerge(classList);
|
|
}
|
|
function tailwindMerge(classList) {
|
|
const cachedResult = cacheGet(classList);
|
|
if (cachedResult) {
|
|
return cachedResult;
|
|
}
|
|
const result = mergeClassList(classList, configUtils);
|
|
cacheSet(classList, result);
|
|
return result;
|
|
}
|
|
return function callTailwindMerge() {
|
|
return functionToCall(twJoin.apply(null, arguments));
|
|
};
|
|
}
|
|
const fromTheme = (key)=>{
|
|
const themeGetter = (theme)=>theme[key] || [];
|
|
themeGetter.isThemeGetter = true;
|
|
return themeGetter;
|
|
};
|
|
const arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
|
|
const fractionRegex = /^\d+\/\d+$/;
|
|
const stringLengths = /*#__PURE__*/ new Set([
|
|
'px',
|
|
'full',
|
|
'screen'
|
|
]);
|
|
const tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
|
|
const lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
|
|
const colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
|
|
// Shadow always begins with x and y offset separated by underscore optionally prepended by inset
|
|
const shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
|
|
const imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
|
|
const isLength = (value)=>isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
|
|
const isArbitraryLength = (value)=>getIsArbitraryValue(value, 'length', isLengthOnly);
|
|
const isNumber = (value)=>Boolean(value) && !Number.isNaN(Number(value));
|
|
const isArbitraryNumber = (value)=>getIsArbitraryValue(value, 'number', isNumber);
|
|
const isInteger = (value)=>Boolean(value) && Number.isInteger(Number(value));
|
|
const isPercent = (value)=>value.endsWith('%') && isNumber(value.slice(0, -1));
|
|
const isArbitraryValue = (value)=>arbitraryValueRegex.test(value);
|
|
const isTshirtSize = (value)=>tshirtUnitRegex.test(value);
|
|
const sizeLabels = /*#__PURE__*/ new Set([
|
|
'length',
|
|
'size',
|
|
'percentage'
|
|
]);
|
|
const isArbitrarySize = (value)=>getIsArbitraryValue(value, sizeLabels, isNever);
|
|
const isArbitraryPosition = (value)=>getIsArbitraryValue(value, 'position', isNever);
|
|
const imageLabels = /*#__PURE__*/ new Set([
|
|
'image',
|
|
'url'
|
|
]);
|
|
const isArbitraryImage = (value)=>getIsArbitraryValue(value, imageLabels, isImage);
|
|
const isArbitraryShadow = (value)=>getIsArbitraryValue(value, '', isShadow);
|
|
const isAny = ()=>true;
|
|
const getIsArbitraryValue = (value, label, testValue)=>{
|
|
const result = arbitraryValueRegex.exec(value);
|
|
if (result) {
|
|
if (result[1]) {
|
|
return typeof label === 'string' ? result[1] === label : label.has(result[1]);
|
|
}
|
|
return testValue(result[2]);
|
|
}
|
|
return false;
|
|
};
|
|
const isLengthOnly = (value)=>// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
|
|
// For example, `hsl(0 0% 0%)` would be classified as a length without this check.
|
|
// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
|
|
lengthUnitRegex.test(value) && !colorFunctionRegex.test(value);
|
|
const isNever = ()=>false;
|
|
const isShadow = (value)=>shadowRegex.test(value);
|
|
const isImage = (value)=>imageRegex.test(value);
|
|
const validators = /*#__PURE__*/ Object.defineProperty({
|
|
__proto__: null,
|
|
isAny,
|
|
isArbitraryImage,
|
|
isArbitraryLength,
|
|
isArbitraryNumber,
|
|
isArbitraryPosition,
|
|
isArbitraryShadow,
|
|
isArbitrarySize,
|
|
isArbitraryValue,
|
|
isInteger,
|
|
isLength,
|
|
isNumber,
|
|
isPercent,
|
|
isTshirtSize
|
|
}, Symbol.toStringTag, {
|
|
value: 'Module'
|
|
});
|
|
const getDefaultConfig = ()=>{
|
|
const colors = fromTheme('colors');
|
|
const spacing = fromTheme('spacing');
|
|
const blur = fromTheme('blur');
|
|
const brightness = fromTheme('brightness');
|
|
const borderColor = fromTheme('borderColor');
|
|
const borderRadius = fromTheme('borderRadius');
|
|
const borderSpacing = fromTheme('borderSpacing');
|
|
const borderWidth = fromTheme('borderWidth');
|
|
const contrast = fromTheme('contrast');
|
|
const grayscale = fromTheme('grayscale');
|
|
const hueRotate = fromTheme('hueRotate');
|
|
const invert = fromTheme('invert');
|
|
const gap = fromTheme('gap');
|
|
const gradientColorStops = fromTheme('gradientColorStops');
|
|
const gradientColorStopPositions = fromTheme('gradientColorStopPositions');
|
|
const inset = fromTheme('inset');
|
|
const margin = fromTheme('margin');
|
|
const opacity = fromTheme('opacity');
|
|
const padding = fromTheme('padding');
|
|
const saturate = fromTheme('saturate');
|
|
const scale = fromTheme('scale');
|
|
const sepia = fromTheme('sepia');
|
|
const skew = fromTheme('skew');
|
|
const space = fromTheme('space');
|
|
const translate = fromTheme('translate');
|
|
const getOverscroll = ()=>[
|
|
'auto',
|
|
'contain',
|
|
'none'
|
|
];
|
|
const getOverflow = ()=>[
|
|
'auto',
|
|
'hidden',
|
|
'clip',
|
|
'visible',
|
|
'scroll'
|
|
];
|
|
const getSpacingWithAutoAndArbitrary = ()=>[
|
|
'auto',
|
|
isArbitraryValue,
|
|
spacing
|
|
];
|
|
const getSpacingWithArbitrary = ()=>[
|
|
isArbitraryValue,
|
|
spacing
|
|
];
|
|
const getLengthWithEmptyAndArbitrary = ()=>[
|
|
'',
|
|
isLength,
|
|
isArbitraryLength
|
|
];
|
|
const getNumberWithAutoAndArbitrary = ()=>[
|
|
'auto',
|
|
isNumber,
|
|
isArbitraryValue
|
|
];
|
|
const getPositions = ()=>[
|
|
'bottom',
|
|
'center',
|
|
'left',
|
|
'left-bottom',
|
|
'left-top',
|
|
'right',
|
|
'right-bottom',
|
|
'right-top',
|
|
'top'
|
|
];
|
|
const getLineStyles = ()=>[
|
|
'solid',
|
|
'dashed',
|
|
'dotted',
|
|
'double',
|
|
'none'
|
|
];
|
|
const getBlendModes = ()=>[
|
|
'normal',
|
|
'multiply',
|
|
'screen',
|
|
'overlay',
|
|
'darken',
|
|
'lighten',
|
|
'color-dodge',
|
|
'color-burn',
|
|
'hard-light',
|
|
'soft-light',
|
|
'difference',
|
|
'exclusion',
|
|
'hue',
|
|
'saturation',
|
|
'color',
|
|
'luminosity'
|
|
];
|
|
const getAlign = ()=>[
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'between',
|
|
'around',
|
|
'evenly',
|
|
'stretch'
|
|
];
|
|
const getZeroAndEmpty = ()=>[
|
|
'',
|
|
'0',
|
|
isArbitraryValue
|
|
];
|
|
const getBreaks = ()=>[
|
|
'auto',
|
|
'avoid',
|
|
'all',
|
|
'avoid-page',
|
|
'page',
|
|
'left',
|
|
'right',
|
|
'column'
|
|
];
|
|
const getNumberAndArbitrary = ()=>[
|
|
isNumber,
|
|
isArbitraryValue
|
|
];
|
|
return {
|
|
cacheSize: 500,
|
|
separator: ':',
|
|
theme: {
|
|
colors: [
|
|
isAny
|
|
],
|
|
spacing: [
|
|
isLength,
|
|
isArbitraryLength
|
|
],
|
|
blur: [
|
|
'none',
|
|
'',
|
|
isTshirtSize,
|
|
isArbitraryValue
|
|
],
|
|
brightness: getNumberAndArbitrary(),
|
|
borderColor: [
|
|
colors
|
|
],
|
|
borderRadius: [
|
|
'none',
|
|
'',
|
|
'full',
|
|
isTshirtSize,
|
|
isArbitraryValue
|
|
],
|
|
borderSpacing: getSpacingWithArbitrary(),
|
|
borderWidth: getLengthWithEmptyAndArbitrary(),
|
|
contrast: getNumberAndArbitrary(),
|
|
grayscale: getZeroAndEmpty(),
|
|
hueRotate: getNumberAndArbitrary(),
|
|
invert: getZeroAndEmpty(),
|
|
gap: getSpacingWithArbitrary(),
|
|
gradientColorStops: [
|
|
colors
|
|
],
|
|
gradientColorStopPositions: [
|
|
isPercent,
|
|
isArbitraryLength
|
|
],
|
|
inset: getSpacingWithAutoAndArbitrary(),
|
|
margin: getSpacingWithAutoAndArbitrary(),
|
|
opacity: getNumberAndArbitrary(),
|
|
padding: getSpacingWithArbitrary(),
|
|
saturate: getNumberAndArbitrary(),
|
|
scale: getNumberAndArbitrary(),
|
|
sepia: getZeroAndEmpty(),
|
|
skew: getNumberAndArbitrary(),
|
|
space: getSpacingWithArbitrary(),
|
|
translate: getSpacingWithArbitrary()
|
|
},
|
|
classGroups: {
|
|
// Layout
|
|
/**
|
|
* Aspect Ratio
|
|
* @see https://tailwindcss.com/docs/aspect-ratio
|
|
*/ aspect: [
|
|
{
|
|
aspect: [
|
|
'auto',
|
|
'square',
|
|
'video',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Container
|
|
* @see https://tailwindcss.com/docs/container
|
|
*/ container: [
|
|
'container'
|
|
],
|
|
/**
|
|
* Columns
|
|
* @see https://tailwindcss.com/docs/columns
|
|
*/ columns: [
|
|
{
|
|
columns: [
|
|
isTshirtSize
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Break After
|
|
* @see https://tailwindcss.com/docs/break-after
|
|
*/ 'break-after': [
|
|
{
|
|
'break-after': getBreaks()
|
|
}
|
|
],
|
|
/**
|
|
* Break Before
|
|
* @see https://tailwindcss.com/docs/break-before
|
|
*/ 'break-before': [
|
|
{
|
|
'break-before': getBreaks()
|
|
}
|
|
],
|
|
/**
|
|
* Break Inside
|
|
* @see https://tailwindcss.com/docs/break-inside
|
|
*/ 'break-inside': [
|
|
{
|
|
'break-inside': [
|
|
'auto',
|
|
'avoid',
|
|
'avoid-page',
|
|
'avoid-column'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Box Decoration Break
|
|
* @see https://tailwindcss.com/docs/box-decoration-break
|
|
*/ 'box-decoration': [
|
|
{
|
|
'box-decoration': [
|
|
'slice',
|
|
'clone'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Box Sizing
|
|
* @see https://tailwindcss.com/docs/box-sizing
|
|
*/ box: [
|
|
{
|
|
box: [
|
|
'border',
|
|
'content'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Display
|
|
* @see https://tailwindcss.com/docs/display
|
|
*/ display: [
|
|
'block',
|
|
'inline-block',
|
|
'inline',
|
|
'flex',
|
|
'inline-flex',
|
|
'table',
|
|
'inline-table',
|
|
'table-caption',
|
|
'table-cell',
|
|
'table-column',
|
|
'table-column-group',
|
|
'table-footer-group',
|
|
'table-header-group',
|
|
'table-row-group',
|
|
'table-row',
|
|
'flow-root',
|
|
'grid',
|
|
'inline-grid',
|
|
'contents',
|
|
'list-item',
|
|
'hidden'
|
|
],
|
|
/**
|
|
* Floats
|
|
* @see https://tailwindcss.com/docs/float
|
|
*/ float: [
|
|
{
|
|
float: [
|
|
'right',
|
|
'left',
|
|
'none',
|
|
'start',
|
|
'end'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Clear
|
|
* @see https://tailwindcss.com/docs/clear
|
|
*/ clear: [
|
|
{
|
|
clear: [
|
|
'left',
|
|
'right',
|
|
'both',
|
|
'none',
|
|
'start',
|
|
'end'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Isolation
|
|
* @see https://tailwindcss.com/docs/isolation
|
|
*/ isolation: [
|
|
'isolate',
|
|
'isolation-auto'
|
|
],
|
|
/**
|
|
* Object Fit
|
|
* @see https://tailwindcss.com/docs/object-fit
|
|
*/ 'object-fit': [
|
|
{
|
|
object: [
|
|
'contain',
|
|
'cover',
|
|
'fill',
|
|
'none',
|
|
'scale-down'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Object Position
|
|
* @see https://tailwindcss.com/docs/object-position
|
|
*/ 'object-position': [
|
|
{
|
|
object: [
|
|
...getPositions(),
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Overflow
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/ overflow: [
|
|
{
|
|
overflow: getOverflow()
|
|
}
|
|
],
|
|
/**
|
|
* Overflow X
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/ 'overflow-x': [
|
|
{
|
|
'overflow-x': getOverflow()
|
|
}
|
|
],
|
|
/**
|
|
* Overflow Y
|
|
* @see https://tailwindcss.com/docs/overflow
|
|
*/ 'overflow-y': [
|
|
{
|
|
'overflow-y': getOverflow()
|
|
}
|
|
],
|
|
/**
|
|
* Overscroll Behavior
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/ overscroll: [
|
|
{
|
|
overscroll: getOverscroll()
|
|
}
|
|
],
|
|
/**
|
|
* Overscroll Behavior X
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/ 'overscroll-x': [
|
|
{
|
|
'overscroll-x': getOverscroll()
|
|
}
|
|
],
|
|
/**
|
|
* Overscroll Behavior Y
|
|
* @see https://tailwindcss.com/docs/overscroll-behavior
|
|
*/ 'overscroll-y': [
|
|
{
|
|
'overscroll-y': getOverscroll()
|
|
}
|
|
],
|
|
/**
|
|
* Position
|
|
* @see https://tailwindcss.com/docs/position
|
|
*/ position: [
|
|
'static',
|
|
'fixed',
|
|
'absolute',
|
|
'relative',
|
|
'sticky'
|
|
],
|
|
/**
|
|
* Top / Right / Bottom / Left
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ inset: [
|
|
{
|
|
inset: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Right / Left
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ 'inset-x': [
|
|
{
|
|
'inset-x': [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Top / Bottom
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ 'inset-y': [
|
|
{
|
|
'inset-y': [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Start
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ start: [
|
|
{
|
|
start: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* End
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ end: [
|
|
{
|
|
end: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Top
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ top: [
|
|
{
|
|
top: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Right
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ right: [
|
|
{
|
|
right: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Bottom
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ bottom: [
|
|
{
|
|
bottom: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Left
|
|
* @see https://tailwindcss.com/docs/top-right-bottom-left
|
|
*/ left: [
|
|
{
|
|
left: [
|
|
inset
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Visibility
|
|
* @see https://tailwindcss.com/docs/visibility
|
|
*/ visibility: [
|
|
'visible',
|
|
'invisible',
|
|
'collapse'
|
|
],
|
|
/**
|
|
* Z-Index
|
|
* @see https://tailwindcss.com/docs/z-index
|
|
*/ z: [
|
|
{
|
|
z: [
|
|
'auto',
|
|
isInteger,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
// Flexbox and Grid
|
|
/**
|
|
* Flex Basis
|
|
* @see https://tailwindcss.com/docs/flex-basis
|
|
*/ basis: [
|
|
{
|
|
basis: getSpacingWithAutoAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Flex Direction
|
|
* @see https://tailwindcss.com/docs/flex-direction
|
|
*/ 'flex-direction': [
|
|
{
|
|
flex: [
|
|
'row',
|
|
'row-reverse',
|
|
'col',
|
|
'col-reverse'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Flex Wrap
|
|
* @see https://tailwindcss.com/docs/flex-wrap
|
|
*/ 'flex-wrap': [
|
|
{
|
|
flex: [
|
|
'wrap',
|
|
'wrap-reverse',
|
|
'nowrap'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Flex
|
|
* @see https://tailwindcss.com/docs/flex
|
|
*/ flex: [
|
|
{
|
|
flex: [
|
|
'1',
|
|
'auto',
|
|
'initial',
|
|
'none',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Flex Grow
|
|
* @see https://tailwindcss.com/docs/flex-grow
|
|
*/ grow: [
|
|
{
|
|
grow: getZeroAndEmpty()
|
|
}
|
|
],
|
|
/**
|
|
* Flex Shrink
|
|
* @see https://tailwindcss.com/docs/flex-shrink
|
|
*/ shrink: [
|
|
{
|
|
shrink: getZeroAndEmpty()
|
|
}
|
|
],
|
|
/**
|
|
* Order
|
|
* @see https://tailwindcss.com/docs/order
|
|
*/ order: [
|
|
{
|
|
order: [
|
|
'first',
|
|
'last',
|
|
'none',
|
|
isInteger,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Template Columns
|
|
* @see https://tailwindcss.com/docs/grid-template-columns
|
|
*/ 'grid-cols': [
|
|
{
|
|
'grid-cols': [
|
|
isAny
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Column Start / End
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/ 'col-start-end': [
|
|
{
|
|
col: [
|
|
'auto',
|
|
{
|
|
span: [
|
|
'full',
|
|
isInteger,
|
|
isArbitraryValue
|
|
]
|
|
},
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Column Start
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/ 'col-start': [
|
|
{
|
|
'col-start': getNumberWithAutoAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Grid Column End
|
|
* @see https://tailwindcss.com/docs/grid-column
|
|
*/ 'col-end': [
|
|
{
|
|
'col-end': getNumberWithAutoAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Grid Template Rows
|
|
* @see https://tailwindcss.com/docs/grid-template-rows
|
|
*/ 'grid-rows': [
|
|
{
|
|
'grid-rows': [
|
|
isAny
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Row Start / End
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/ 'row-start-end': [
|
|
{
|
|
row: [
|
|
'auto',
|
|
{
|
|
span: [
|
|
isInteger,
|
|
isArbitraryValue
|
|
]
|
|
},
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Row Start
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/ 'row-start': [
|
|
{
|
|
'row-start': getNumberWithAutoAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Grid Row End
|
|
* @see https://tailwindcss.com/docs/grid-row
|
|
*/ 'row-end': [
|
|
{
|
|
'row-end': getNumberWithAutoAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Grid Auto Flow
|
|
* @see https://tailwindcss.com/docs/grid-auto-flow
|
|
*/ 'grid-flow': [
|
|
{
|
|
'grid-flow': [
|
|
'row',
|
|
'col',
|
|
'dense',
|
|
'row-dense',
|
|
'col-dense'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Auto Columns
|
|
* @see https://tailwindcss.com/docs/grid-auto-columns
|
|
*/ 'auto-cols': [
|
|
{
|
|
'auto-cols': [
|
|
'auto',
|
|
'min',
|
|
'max',
|
|
'fr',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grid Auto Rows
|
|
* @see https://tailwindcss.com/docs/grid-auto-rows
|
|
*/ 'auto-rows': [
|
|
{
|
|
'auto-rows': [
|
|
'auto',
|
|
'min',
|
|
'max',
|
|
'fr',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gap
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/ gap: [
|
|
{
|
|
gap: [
|
|
gap
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gap X
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/ 'gap-x': [
|
|
{
|
|
'gap-x': [
|
|
gap
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gap Y
|
|
* @see https://tailwindcss.com/docs/gap
|
|
*/ 'gap-y': [
|
|
{
|
|
'gap-y': [
|
|
gap
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Justify Content
|
|
* @see https://tailwindcss.com/docs/justify-content
|
|
*/ 'justify-content': [
|
|
{
|
|
justify: [
|
|
'normal',
|
|
...getAlign()
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Justify Items
|
|
* @see https://tailwindcss.com/docs/justify-items
|
|
*/ 'justify-items': [
|
|
{
|
|
'justify-items': [
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'stretch'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Justify Self
|
|
* @see https://tailwindcss.com/docs/justify-self
|
|
*/ 'justify-self': [
|
|
{
|
|
'justify-self': [
|
|
'auto',
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'stretch'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Align Content
|
|
* @see https://tailwindcss.com/docs/align-content
|
|
*/ 'align-content': [
|
|
{
|
|
content: [
|
|
'normal',
|
|
...getAlign(),
|
|
'baseline'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Align Items
|
|
* @see https://tailwindcss.com/docs/align-items
|
|
*/ 'align-items': [
|
|
{
|
|
items: [
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'baseline',
|
|
'stretch'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Align Self
|
|
* @see https://tailwindcss.com/docs/align-self
|
|
*/ 'align-self': [
|
|
{
|
|
self: [
|
|
'auto',
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'stretch',
|
|
'baseline'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Place Content
|
|
* @see https://tailwindcss.com/docs/place-content
|
|
*/ 'place-content': [
|
|
{
|
|
'place-content': [
|
|
...getAlign(),
|
|
'baseline'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Place Items
|
|
* @see https://tailwindcss.com/docs/place-items
|
|
*/ 'place-items': [
|
|
{
|
|
'place-items': [
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'baseline',
|
|
'stretch'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Place Self
|
|
* @see https://tailwindcss.com/docs/place-self
|
|
*/ 'place-self': [
|
|
{
|
|
'place-self': [
|
|
'auto',
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'stretch'
|
|
]
|
|
}
|
|
],
|
|
// Spacing
|
|
/**
|
|
* Padding
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ p: [
|
|
{
|
|
p: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding X
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ px: [
|
|
{
|
|
px: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Y
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ py: [
|
|
{
|
|
py: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Start
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ ps: [
|
|
{
|
|
ps: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding End
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ pe: [
|
|
{
|
|
pe: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Top
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ pt: [
|
|
{
|
|
pt: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Right
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ pr: [
|
|
{
|
|
pr: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Bottom
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ pb: [
|
|
{
|
|
pb: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Padding Left
|
|
* @see https://tailwindcss.com/docs/padding
|
|
*/ pl: [
|
|
{
|
|
pl: [
|
|
padding
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ m: [
|
|
{
|
|
m: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin X
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ mx: [
|
|
{
|
|
mx: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Y
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ my: [
|
|
{
|
|
my: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Start
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ ms: [
|
|
{
|
|
ms: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin End
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ me: [
|
|
{
|
|
me: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Top
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ mt: [
|
|
{
|
|
mt: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Right
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ mr: [
|
|
{
|
|
mr: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Bottom
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ mb: [
|
|
{
|
|
mb: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Margin Left
|
|
* @see https://tailwindcss.com/docs/margin
|
|
*/ ml: [
|
|
{
|
|
ml: [
|
|
margin
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Space Between X
|
|
* @see https://tailwindcss.com/docs/space
|
|
*/ 'space-x': [
|
|
{
|
|
'space-x': [
|
|
space
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Space Between X Reverse
|
|
* @see https://tailwindcss.com/docs/space
|
|
*/ 'space-x-reverse': [
|
|
'space-x-reverse'
|
|
],
|
|
/**
|
|
* Space Between Y
|
|
* @see https://tailwindcss.com/docs/space
|
|
*/ 'space-y': [
|
|
{
|
|
'space-y': [
|
|
space
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Space Between Y Reverse
|
|
* @see https://tailwindcss.com/docs/space
|
|
*/ 'space-y-reverse': [
|
|
'space-y-reverse'
|
|
],
|
|
// Sizing
|
|
/**
|
|
* Width
|
|
* @see https://tailwindcss.com/docs/width
|
|
*/ w: [
|
|
{
|
|
w: [
|
|
'auto',
|
|
'min',
|
|
'max',
|
|
'fit',
|
|
'svw',
|
|
'lvw',
|
|
'dvw',
|
|
isArbitraryValue,
|
|
spacing
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Min-Width
|
|
* @see https://tailwindcss.com/docs/min-width
|
|
*/ 'min-w': [
|
|
{
|
|
'min-w': [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'min',
|
|
'max',
|
|
'fit'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Max-Width
|
|
* @see https://tailwindcss.com/docs/max-width
|
|
*/ 'max-w': [
|
|
{
|
|
'max-w': [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'none',
|
|
'full',
|
|
'min',
|
|
'max',
|
|
'fit',
|
|
'prose',
|
|
{
|
|
screen: [
|
|
isTshirtSize
|
|
]
|
|
},
|
|
isTshirtSize
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Height
|
|
* @see https://tailwindcss.com/docs/height
|
|
*/ h: [
|
|
{
|
|
h: [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'auto',
|
|
'min',
|
|
'max',
|
|
'fit',
|
|
'svh',
|
|
'lvh',
|
|
'dvh'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Min-Height
|
|
* @see https://tailwindcss.com/docs/min-height
|
|
*/ 'min-h': [
|
|
{
|
|
'min-h': [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'min',
|
|
'max',
|
|
'fit',
|
|
'svh',
|
|
'lvh',
|
|
'dvh'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Max-Height
|
|
* @see https://tailwindcss.com/docs/max-height
|
|
*/ 'max-h': [
|
|
{
|
|
'max-h': [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'min',
|
|
'max',
|
|
'fit',
|
|
'svh',
|
|
'lvh',
|
|
'dvh'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Size
|
|
* @see https://tailwindcss.com/docs/size
|
|
*/ size: [
|
|
{
|
|
size: [
|
|
isArbitraryValue,
|
|
spacing,
|
|
'auto',
|
|
'min',
|
|
'max',
|
|
'fit'
|
|
]
|
|
}
|
|
],
|
|
// Typography
|
|
/**
|
|
* Font Size
|
|
* @see https://tailwindcss.com/docs/font-size
|
|
*/ 'font-size': [
|
|
{
|
|
text: [
|
|
'base',
|
|
isTshirtSize,
|
|
isArbitraryLength
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Font Smoothing
|
|
* @see https://tailwindcss.com/docs/font-smoothing
|
|
*/ 'font-smoothing': [
|
|
'antialiased',
|
|
'subpixel-antialiased'
|
|
],
|
|
/**
|
|
* Font Style
|
|
* @see https://tailwindcss.com/docs/font-style
|
|
*/ 'font-style': [
|
|
'italic',
|
|
'not-italic'
|
|
],
|
|
/**
|
|
* Font Weight
|
|
* @see https://tailwindcss.com/docs/font-weight
|
|
*/ 'font-weight': [
|
|
{
|
|
font: [
|
|
'thin',
|
|
'extralight',
|
|
'light',
|
|
'normal',
|
|
'medium',
|
|
'semibold',
|
|
'bold',
|
|
'extrabold',
|
|
'black',
|
|
isArbitraryNumber
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Font Family
|
|
* @see https://tailwindcss.com/docs/font-family
|
|
*/ 'font-family': [
|
|
{
|
|
font: [
|
|
isAny
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-normal': [
|
|
'normal-nums'
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-ordinal': [
|
|
'ordinal'
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-slashed-zero': [
|
|
'slashed-zero'
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-figure': [
|
|
'lining-nums',
|
|
'oldstyle-nums'
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-spacing': [
|
|
'proportional-nums',
|
|
'tabular-nums'
|
|
],
|
|
/**
|
|
* Font Variant Numeric
|
|
* @see https://tailwindcss.com/docs/font-variant-numeric
|
|
*/ 'fvn-fraction': [
|
|
'diagonal-fractions',
|
|
'stacked-fractions'
|
|
],
|
|
/**
|
|
* Letter Spacing
|
|
* @see https://tailwindcss.com/docs/letter-spacing
|
|
*/ tracking: [
|
|
{
|
|
tracking: [
|
|
'tighter',
|
|
'tight',
|
|
'normal',
|
|
'wide',
|
|
'wider',
|
|
'widest',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Line Clamp
|
|
* @see https://tailwindcss.com/docs/line-clamp
|
|
*/ 'line-clamp': [
|
|
{
|
|
'line-clamp': [
|
|
'none',
|
|
isNumber,
|
|
isArbitraryNumber
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Line Height
|
|
* @see https://tailwindcss.com/docs/line-height
|
|
*/ leading: [
|
|
{
|
|
leading: [
|
|
'none',
|
|
'tight',
|
|
'snug',
|
|
'normal',
|
|
'relaxed',
|
|
'loose',
|
|
isLength,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* List Style Image
|
|
* @see https://tailwindcss.com/docs/list-style-image
|
|
*/ 'list-image': [
|
|
{
|
|
'list-image': [
|
|
'none',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* List Style Type
|
|
* @see https://tailwindcss.com/docs/list-style-type
|
|
*/ 'list-style-type': [
|
|
{
|
|
list: [
|
|
'none',
|
|
'disc',
|
|
'decimal',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* List Style Position
|
|
* @see https://tailwindcss.com/docs/list-style-position
|
|
*/ 'list-style-position': [
|
|
{
|
|
list: [
|
|
'inside',
|
|
'outside'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Placeholder Color
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/placeholder-color
|
|
*/ 'placeholder-color': [
|
|
{
|
|
placeholder: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Placeholder Opacity
|
|
* @see https://tailwindcss.com/docs/placeholder-opacity
|
|
*/ 'placeholder-opacity': [
|
|
{
|
|
'placeholder-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Alignment
|
|
* @see https://tailwindcss.com/docs/text-align
|
|
*/ 'text-alignment': [
|
|
{
|
|
text: [
|
|
'left',
|
|
'center',
|
|
'right',
|
|
'justify',
|
|
'start',
|
|
'end'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Color
|
|
* @see https://tailwindcss.com/docs/text-color
|
|
*/ 'text-color': [
|
|
{
|
|
text: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Opacity
|
|
* @see https://tailwindcss.com/docs/text-opacity
|
|
*/ 'text-opacity': [
|
|
{
|
|
'text-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Decoration
|
|
* @see https://tailwindcss.com/docs/text-decoration
|
|
*/ 'text-decoration': [
|
|
'underline',
|
|
'overline',
|
|
'line-through',
|
|
'no-underline'
|
|
],
|
|
/**
|
|
* Text Decoration Style
|
|
* @see https://tailwindcss.com/docs/text-decoration-style
|
|
*/ 'text-decoration-style': [
|
|
{
|
|
decoration: [
|
|
...getLineStyles(),
|
|
'wavy'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Decoration Thickness
|
|
* @see https://tailwindcss.com/docs/text-decoration-thickness
|
|
*/ 'text-decoration-thickness': [
|
|
{
|
|
decoration: [
|
|
'auto',
|
|
'from-font',
|
|
isLength,
|
|
isArbitraryLength
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Underline Offset
|
|
* @see https://tailwindcss.com/docs/text-underline-offset
|
|
*/ 'underline-offset': [
|
|
{
|
|
'underline-offset': [
|
|
'auto',
|
|
isLength,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Decoration Color
|
|
* @see https://tailwindcss.com/docs/text-decoration-color
|
|
*/ 'text-decoration-color': [
|
|
{
|
|
decoration: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Transform
|
|
* @see https://tailwindcss.com/docs/text-transform
|
|
*/ 'text-transform': [
|
|
'uppercase',
|
|
'lowercase',
|
|
'capitalize',
|
|
'normal-case'
|
|
],
|
|
/**
|
|
* Text Overflow
|
|
* @see https://tailwindcss.com/docs/text-overflow
|
|
*/ 'text-overflow': [
|
|
'truncate',
|
|
'text-ellipsis',
|
|
'text-clip'
|
|
],
|
|
/**
|
|
* Text Wrap
|
|
* @see https://tailwindcss.com/docs/text-wrap
|
|
*/ 'text-wrap': [
|
|
{
|
|
text: [
|
|
'wrap',
|
|
'nowrap',
|
|
'balance',
|
|
'pretty'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Text Indent
|
|
* @see https://tailwindcss.com/docs/text-indent
|
|
*/ indent: [
|
|
{
|
|
indent: getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Vertical Alignment
|
|
* @see https://tailwindcss.com/docs/vertical-align
|
|
*/ 'vertical-align': [
|
|
{
|
|
align: [
|
|
'baseline',
|
|
'top',
|
|
'middle',
|
|
'bottom',
|
|
'text-top',
|
|
'text-bottom',
|
|
'sub',
|
|
'super',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Whitespace
|
|
* @see https://tailwindcss.com/docs/whitespace
|
|
*/ whitespace: [
|
|
{
|
|
whitespace: [
|
|
'normal',
|
|
'nowrap',
|
|
'pre',
|
|
'pre-line',
|
|
'pre-wrap',
|
|
'break-spaces'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Word Break
|
|
* @see https://tailwindcss.com/docs/word-break
|
|
*/ break: [
|
|
{
|
|
break: [
|
|
'normal',
|
|
'words',
|
|
'all',
|
|
'keep'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Hyphens
|
|
* @see https://tailwindcss.com/docs/hyphens
|
|
*/ hyphens: [
|
|
{
|
|
hyphens: [
|
|
'none',
|
|
'manual',
|
|
'auto'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Content
|
|
* @see https://tailwindcss.com/docs/content
|
|
*/ content: [
|
|
{
|
|
content: [
|
|
'none',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
// Backgrounds
|
|
/**
|
|
* Background Attachment
|
|
* @see https://tailwindcss.com/docs/background-attachment
|
|
*/ 'bg-attachment': [
|
|
{
|
|
bg: [
|
|
'fixed',
|
|
'local',
|
|
'scroll'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Clip
|
|
* @see https://tailwindcss.com/docs/background-clip
|
|
*/ 'bg-clip': [
|
|
{
|
|
'bg-clip': [
|
|
'border',
|
|
'padding',
|
|
'content',
|
|
'text'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Opacity
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/background-opacity
|
|
*/ 'bg-opacity': [
|
|
{
|
|
'bg-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Origin
|
|
* @see https://tailwindcss.com/docs/background-origin
|
|
*/ 'bg-origin': [
|
|
{
|
|
'bg-origin': [
|
|
'border',
|
|
'padding',
|
|
'content'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Position
|
|
* @see https://tailwindcss.com/docs/background-position
|
|
*/ 'bg-position': [
|
|
{
|
|
bg: [
|
|
...getPositions(),
|
|
isArbitraryPosition
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Repeat
|
|
* @see https://tailwindcss.com/docs/background-repeat
|
|
*/ 'bg-repeat': [
|
|
{
|
|
bg: [
|
|
'no-repeat',
|
|
{
|
|
repeat: [
|
|
'',
|
|
'x',
|
|
'y',
|
|
'round',
|
|
'space'
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Size
|
|
* @see https://tailwindcss.com/docs/background-size
|
|
*/ 'bg-size': [
|
|
{
|
|
bg: [
|
|
'auto',
|
|
'cover',
|
|
'contain',
|
|
isArbitrarySize
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Image
|
|
* @see https://tailwindcss.com/docs/background-image
|
|
*/ 'bg-image': [
|
|
{
|
|
bg: [
|
|
'none',
|
|
{
|
|
'gradient-to': [
|
|
't',
|
|
'tr',
|
|
'r',
|
|
'br',
|
|
'b',
|
|
'bl',
|
|
'l',
|
|
'tl'
|
|
]
|
|
},
|
|
isArbitraryImage
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Color
|
|
* @see https://tailwindcss.com/docs/background-color
|
|
*/ 'bg-color': [
|
|
{
|
|
bg: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops From Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-from-pos': [
|
|
{
|
|
from: [
|
|
gradientColorStopPositions
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops Via Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-via-pos': [
|
|
{
|
|
via: [
|
|
gradientColorStopPositions
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops To Position
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-to-pos': [
|
|
{
|
|
to: [
|
|
gradientColorStopPositions
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops From
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-from': [
|
|
{
|
|
from: [
|
|
gradientColorStops
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops Via
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-via': [
|
|
{
|
|
via: [
|
|
gradientColorStops
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Gradient Color Stops To
|
|
* @see https://tailwindcss.com/docs/gradient-color-stops
|
|
*/ 'gradient-to': [
|
|
{
|
|
to: [
|
|
gradientColorStops
|
|
]
|
|
}
|
|
],
|
|
// Borders
|
|
/**
|
|
* Border Radius
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ rounded: [
|
|
{
|
|
rounded: [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-s': [
|
|
{
|
|
'rounded-s': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-e': [
|
|
{
|
|
'rounded-e': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Top
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-t': [
|
|
{
|
|
'rounded-t': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-r': [
|
|
{
|
|
'rounded-r': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Bottom
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-b': [
|
|
{
|
|
'rounded-b': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-l': [
|
|
{
|
|
'rounded-l': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Start Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-ss': [
|
|
{
|
|
'rounded-ss': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Start End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-se': [
|
|
{
|
|
'rounded-se': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius End End
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-ee': [
|
|
{
|
|
'rounded-ee': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius End Start
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-es': [
|
|
{
|
|
'rounded-es': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Top Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-tl': [
|
|
{
|
|
'rounded-tl': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Top Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-tr': [
|
|
{
|
|
'rounded-tr': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Bottom Right
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-br': [
|
|
{
|
|
'rounded-br': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Radius Bottom Left
|
|
* @see https://tailwindcss.com/docs/border-radius
|
|
*/ 'rounded-bl': [
|
|
{
|
|
'rounded-bl': [
|
|
borderRadius
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w': [
|
|
{
|
|
border: [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width X
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-x': [
|
|
{
|
|
'border-x': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Y
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-y': [
|
|
{
|
|
'border-y': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Start
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-s': [
|
|
{
|
|
'border-s': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width End
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-e': [
|
|
{
|
|
'border-e': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Top
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-t': [
|
|
{
|
|
'border-t': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Right
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-r': [
|
|
{
|
|
'border-r': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Bottom
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-b': [
|
|
{
|
|
'border-b': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Width Left
|
|
* @see https://tailwindcss.com/docs/border-width
|
|
*/ 'border-w-l': [
|
|
{
|
|
'border-l': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Opacity
|
|
* @see https://tailwindcss.com/docs/border-opacity
|
|
*/ 'border-opacity': [
|
|
{
|
|
'border-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Style
|
|
* @see https://tailwindcss.com/docs/border-style
|
|
*/ 'border-style': [
|
|
{
|
|
border: [
|
|
...getLineStyles(),
|
|
'hidden'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Divide Width X
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/ 'divide-x': [
|
|
{
|
|
'divide-x': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Divide Width X Reverse
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/ 'divide-x-reverse': [
|
|
'divide-x-reverse'
|
|
],
|
|
/**
|
|
* Divide Width Y
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/ 'divide-y': [
|
|
{
|
|
'divide-y': [
|
|
borderWidth
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Divide Width Y Reverse
|
|
* @see https://tailwindcss.com/docs/divide-width
|
|
*/ 'divide-y-reverse': [
|
|
'divide-y-reverse'
|
|
],
|
|
/**
|
|
* Divide Opacity
|
|
* @see https://tailwindcss.com/docs/divide-opacity
|
|
*/ 'divide-opacity': [
|
|
{
|
|
'divide-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Divide Style
|
|
* @see https://tailwindcss.com/docs/divide-style
|
|
*/ 'divide-style': [
|
|
{
|
|
divide: getLineStyles()
|
|
}
|
|
],
|
|
/**
|
|
* Border Color
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color': [
|
|
{
|
|
border: [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color X
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-x': [
|
|
{
|
|
'border-x': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color Y
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-y': [
|
|
{
|
|
'border-y': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color S
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-s': [
|
|
{
|
|
'border-s': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color E
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-e': [
|
|
{
|
|
'border-e': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color Top
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-t': [
|
|
{
|
|
'border-t': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color Right
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-r': [
|
|
{
|
|
'border-r': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color Bottom
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-b': [
|
|
{
|
|
'border-b': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Color Left
|
|
* @see https://tailwindcss.com/docs/border-color
|
|
*/ 'border-color-l': [
|
|
{
|
|
'border-l': [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Divide Color
|
|
* @see https://tailwindcss.com/docs/divide-color
|
|
*/ 'divide-color': [
|
|
{
|
|
divide: [
|
|
borderColor
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Outline Style
|
|
* @see https://tailwindcss.com/docs/outline-style
|
|
*/ 'outline-style': [
|
|
{
|
|
outline: [
|
|
'',
|
|
...getLineStyles()
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Outline Offset
|
|
* @see https://tailwindcss.com/docs/outline-offset
|
|
*/ 'outline-offset': [
|
|
{
|
|
'outline-offset': [
|
|
isLength,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Outline Width
|
|
* @see https://tailwindcss.com/docs/outline-width
|
|
*/ 'outline-w': [
|
|
{
|
|
outline: [
|
|
isLength,
|
|
isArbitraryLength
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Outline Color
|
|
* @see https://tailwindcss.com/docs/outline-color
|
|
*/ 'outline-color': [
|
|
{
|
|
outline: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Ring Width
|
|
* @see https://tailwindcss.com/docs/ring-width
|
|
*/ 'ring-w': [
|
|
{
|
|
ring: getLengthWithEmptyAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Ring Width Inset
|
|
* @see https://tailwindcss.com/docs/ring-width
|
|
*/ 'ring-w-inset': [
|
|
'ring-inset'
|
|
],
|
|
/**
|
|
* Ring Color
|
|
* @see https://tailwindcss.com/docs/ring-color
|
|
*/ 'ring-color': [
|
|
{
|
|
ring: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Ring Opacity
|
|
* @see https://tailwindcss.com/docs/ring-opacity
|
|
*/ 'ring-opacity': [
|
|
{
|
|
'ring-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Ring Offset Width
|
|
* @see https://tailwindcss.com/docs/ring-offset-width
|
|
*/ 'ring-offset-w': [
|
|
{
|
|
'ring-offset': [
|
|
isLength,
|
|
isArbitraryLength
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Ring Offset Color
|
|
* @see https://tailwindcss.com/docs/ring-offset-color
|
|
*/ 'ring-offset-color': [
|
|
{
|
|
'ring-offset': [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
// Effects
|
|
/**
|
|
* Box Shadow
|
|
* @see https://tailwindcss.com/docs/box-shadow
|
|
*/ shadow: [
|
|
{
|
|
shadow: [
|
|
'',
|
|
'inner',
|
|
'none',
|
|
isTshirtSize,
|
|
isArbitraryShadow
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Box Shadow Color
|
|
* @see https://tailwindcss.com/docs/box-shadow-color
|
|
*/ 'shadow-color': [
|
|
{
|
|
shadow: [
|
|
isAny
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Opacity
|
|
* @see https://tailwindcss.com/docs/opacity
|
|
*/ opacity: [
|
|
{
|
|
opacity: [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Mix Blend Mode
|
|
* @see https://tailwindcss.com/docs/mix-blend-mode
|
|
*/ 'mix-blend': [
|
|
{
|
|
'mix-blend': [
|
|
...getBlendModes(),
|
|
'plus-lighter',
|
|
'plus-darker'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Background Blend Mode
|
|
* @see https://tailwindcss.com/docs/background-blend-mode
|
|
*/ 'bg-blend': [
|
|
{
|
|
'bg-blend': getBlendModes()
|
|
}
|
|
],
|
|
// Filters
|
|
/**
|
|
* Filter
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/filter
|
|
*/ filter: [
|
|
{
|
|
filter: [
|
|
'',
|
|
'none'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Blur
|
|
* @see https://tailwindcss.com/docs/blur
|
|
*/ blur: [
|
|
{
|
|
blur: [
|
|
blur
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Brightness
|
|
* @see https://tailwindcss.com/docs/brightness
|
|
*/ brightness: [
|
|
{
|
|
brightness: [
|
|
brightness
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Contrast
|
|
* @see https://tailwindcss.com/docs/contrast
|
|
*/ contrast: [
|
|
{
|
|
contrast: [
|
|
contrast
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Drop Shadow
|
|
* @see https://tailwindcss.com/docs/drop-shadow
|
|
*/ 'drop-shadow': [
|
|
{
|
|
'drop-shadow': [
|
|
'',
|
|
'none',
|
|
isTshirtSize,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Grayscale
|
|
* @see https://tailwindcss.com/docs/grayscale
|
|
*/ grayscale: [
|
|
{
|
|
grayscale: [
|
|
grayscale
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Hue Rotate
|
|
* @see https://tailwindcss.com/docs/hue-rotate
|
|
*/ 'hue-rotate': [
|
|
{
|
|
'hue-rotate': [
|
|
hueRotate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Invert
|
|
* @see https://tailwindcss.com/docs/invert
|
|
*/ invert: [
|
|
{
|
|
invert: [
|
|
invert
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Saturate
|
|
* @see https://tailwindcss.com/docs/saturate
|
|
*/ saturate: [
|
|
{
|
|
saturate: [
|
|
saturate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Sepia
|
|
* @see https://tailwindcss.com/docs/sepia
|
|
*/ sepia: [
|
|
{
|
|
sepia: [
|
|
sepia
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Filter
|
|
* @deprecated since Tailwind CSS v3.0.0
|
|
* @see https://tailwindcss.com/docs/backdrop-filter
|
|
*/ 'backdrop-filter': [
|
|
{
|
|
'backdrop-filter': [
|
|
'',
|
|
'none'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Blur
|
|
* @see https://tailwindcss.com/docs/backdrop-blur
|
|
*/ 'backdrop-blur': [
|
|
{
|
|
'backdrop-blur': [
|
|
blur
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Brightness
|
|
* @see https://tailwindcss.com/docs/backdrop-brightness
|
|
*/ 'backdrop-brightness': [
|
|
{
|
|
'backdrop-brightness': [
|
|
brightness
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Contrast
|
|
* @see https://tailwindcss.com/docs/backdrop-contrast
|
|
*/ 'backdrop-contrast': [
|
|
{
|
|
'backdrop-contrast': [
|
|
contrast
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Grayscale
|
|
* @see https://tailwindcss.com/docs/backdrop-grayscale
|
|
*/ 'backdrop-grayscale': [
|
|
{
|
|
'backdrop-grayscale': [
|
|
grayscale
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Hue Rotate
|
|
* @see https://tailwindcss.com/docs/backdrop-hue-rotate
|
|
*/ 'backdrop-hue-rotate': [
|
|
{
|
|
'backdrop-hue-rotate': [
|
|
hueRotate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Invert
|
|
* @see https://tailwindcss.com/docs/backdrop-invert
|
|
*/ 'backdrop-invert': [
|
|
{
|
|
'backdrop-invert': [
|
|
invert
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Opacity
|
|
* @see https://tailwindcss.com/docs/backdrop-opacity
|
|
*/ 'backdrop-opacity': [
|
|
{
|
|
'backdrop-opacity': [
|
|
opacity
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Saturate
|
|
* @see https://tailwindcss.com/docs/backdrop-saturate
|
|
*/ 'backdrop-saturate': [
|
|
{
|
|
'backdrop-saturate': [
|
|
saturate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Backdrop Sepia
|
|
* @see https://tailwindcss.com/docs/backdrop-sepia
|
|
*/ 'backdrop-sepia': [
|
|
{
|
|
'backdrop-sepia': [
|
|
sepia
|
|
]
|
|
}
|
|
],
|
|
// Tables
|
|
/**
|
|
* Border Collapse
|
|
* @see https://tailwindcss.com/docs/border-collapse
|
|
*/ 'border-collapse': [
|
|
{
|
|
border: [
|
|
'collapse',
|
|
'separate'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Spacing
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/ 'border-spacing': [
|
|
{
|
|
'border-spacing': [
|
|
borderSpacing
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Spacing X
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/ 'border-spacing-x': [
|
|
{
|
|
'border-spacing-x': [
|
|
borderSpacing
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Border Spacing Y
|
|
* @see https://tailwindcss.com/docs/border-spacing
|
|
*/ 'border-spacing-y': [
|
|
{
|
|
'border-spacing-y': [
|
|
borderSpacing
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Table Layout
|
|
* @see https://tailwindcss.com/docs/table-layout
|
|
*/ 'table-layout': [
|
|
{
|
|
table: [
|
|
'auto',
|
|
'fixed'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Caption Side
|
|
* @see https://tailwindcss.com/docs/caption-side
|
|
*/ caption: [
|
|
{
|
|
caption: [
|
|
'top',
|
|
'bottom'
|
|
]
|
|
}
|
|
],
|
|
// Transitions and Animation
|
|
/**
|
|
* Tranisition Property
|
|
* @see https://tailwindcss.com/docs/transition-property
|
|
*/ transition: [
|
|
{
|
|
transition: [
|
|
'none',
|
|
'all',
|
|
'',
|
|
'colors',
|
|
'opacity',
|
|
'shadow',
|
|
'transform',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Transition Duration
|
|
* @see https://tailwindcss.com/docs/transition-duration
|
|
*/ duration: [
|
|
{
|
|
duration: getNumberAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Transition Timing Function
|
|
* @see https://tailwindcss.com/docs/transition-timing-function
|
|
*/ ease: [
|
|
{
|
|
ease: [
|
|
'linear',
|
|
'in',
|
|
'out',
|
|
'in-out',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Transition Delay
|
|
* @see https://tailwindcss.com/docs/transition-delay
|
|
*/ delay: [
|
|
{
|
|
delay: getNumberAndArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Animation
|
|
* @see https://tailwindcss.com/docs/animation
|
|
*/ animate: [
|
|
{
|
|
animate: [
|
|
'none',
|
|
'spin',
|
|
'ping',
|
|
'pulse',
|
|
'bounce',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
// Transforms
|
|
/**
|
|
* Transform
|
|
* @see https://tailwindcss.com/docs/transform
|
|
*/ transform: [
|
|
{
|
|
transform: [
|
|
'',
|
|
'gpu',
|
|
'none'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scale
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/ scale: [
|
|
{
|
|
scale: [
|
|
scale
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scale X
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/ 'scale-x': [
|
|
{
|
|
'scale-x': [
|
|
scale
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scale Y
|
|
* @see https://tailwindcss.com/docs/scale
|
|
*/ 'scale-y': [
|
|
{
|
|
'scale-y': [
|
|
scale
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Rotate
|
|
* @see https://tailwindcss.com/docs/rotate
|
|
*/ rotate: [
|
|
{
|
|
rotate: [
|
|
isInteger,
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Translate X
|
|
* @see https://tailwindcss.com/docs/translate
|
|
*/ 'translate-x': [
|
|
{
|
|
'translate-x': [
|
|
translate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Translate Y
|
|
* @see https://tailwindcss.com/docs/translate
|
|
*/ 'translate-y': [
|
|
{
|
|
'translate-y': [
|
|
translate
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Skew X
|
|
* @see https://tailwindcss.com/docs/skew
|
|
*/ 'skew-x': [
|
|
{
|
|
'skew-x': [
|
|
skew
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Skew Y
|
|
* @see https://tailwindcss.com/docs/skew
|
|
*/ 'skew-y': [
|
|
{
|
|
'skew-y': [
|
|
skew
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Transform Origin
|
|
* @see https://tailwindcss.com/docs/transform-origin
|
|
*/ 'transform-origin': [
|
|
{
|
|
origin: [
|
|
'center',
|
|
'top',
|
|
'top-right',
|
|
'right',
|
|
'bottom-right',
|
|
'bottom',
|
|
'bottom-left',
|
|
'left',
|
|
'top-left',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
// Interactivity
|
|
/**
|
|
* Accent Color
|
|
* @see https://tailwindcss.com/docs/accent-color
|
|
*/ accent: [
|
|
{
|
|
accent: [
|
|
'auto',
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Appearance
|
|
* @see https://tailwindcss.com/docs/appearance
|
|
*/ appearance: [
|
|
{
|
|
appearance: [
|
|
'none',
|
|
'auto'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Cursor
|
|
* @see https://tailwindcss.com/docs/cursor
|
|
*/ cursor: [
|
|
{
|
|
cursor: [
|
|
'auto',
|
|
'default',
|
|
'pointer',
|
|
'wait',
|
|
'text',
|
|
'move',
|
|
'help',
|
|
'not-allowed',
|
|
'none',
|
|
'context-menu',
|
|
'progress',
|
|
'cell',
|
|
'crosshair',
|
|
'vertical-text',
|
|
'alias',
|
|
'copy',
|
|
'no-drop',
|
|
'grab',
|
|
'grabbing',
|
|
'all-scroll',
|
|
'col-resize',
|
|
'row-resize',
|
|
'n-resize',
|
|
'e-resize',
|
|
's-resize',
|
|
'w-resize',
|
|
'ne-resize',
|
|
'nw-resize',
|
|
'se-resize',
|
|
'sw-resize',
|
|
'ew-resize',
|
|
'ns-resize',
|
|
'nesw-resize',
|
|
'nwse-resize',
|
|
'zoom-in',
|
|
'zoom-out',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Caret Color
|
|
* @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
|
|
*/ 'caret-color': [
|
|
{
|
|
caret: [
|
|
colors
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Pointer Events
|
|
* @see https://tailwindcss.com/docs/pointer-events
|
|
*/ 'pointer-events': [
|
|
{
|
|
'pointer-events': [
|
|
'none',
|
|
'auto'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Resize
|
|
* @see https://tailwindcss.com/docs/resize
|
|
*/ resize: [
|
|
{
|
|
resize: [
|
|
'none',
|
|
'y',
|
|
'x',
|
|
''
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Behavior
|
|
* @see https://tailwindcss.com/docs/scroll-behavior
|
|
*/ 'scroll-behavior': [
|
|
{
|
|
scroll: [
|
|
'auto',
|
|
'smooth'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-m': [
|
|
{
|
|
'scroll-m': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin X
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-mx': [
|
|
{
|
|
'scroll-mx': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Y
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-my': [
|
|
{
|
|
'scroll-my': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Start
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-ms': [
|
|
{
|
|
'scroll-ms': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin End
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-me': [
|
|
{
|
|
'scroll-me': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Top
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-mt': [
|
|
{
|
|
'scroll-mt': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Right
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-mr': [
|
|
{
|
|
'scroll-mr': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Bottom
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-mb': [
|
|
{
|
|
'scroll-mb': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Margin Left
|
|
* @see https://tailwindcss.com/docs/scroll-margin
|
|
*/ 'scroll-ml': [
|
|
{
|
|
'scroll-ml': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-p': [
|
|
{
|
|
'scroll-p': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding X
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-px': [
|
|
{
|
|
'scroll-px': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Y
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-py': [
|
|
{
|
|
'scroll-py': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Start
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-ps': [
|
|
{
|
|
'scroll-ps': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding End
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-pe': [
|
|
{
|
|
'scroll-pe': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Top
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-pt': [
|
|
{
|
|
'scroll-pt': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Right
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-pr': [
|
|
{
|
|
'scroll-pr': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Bottom
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-pb': [
|
|
{
|
|
'scroll-pb': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Padding Left
|
|
* @see https://tailwindcss.com/docs/scroll-padding
|
|
*/ 'scroll-pl': [
|
|
{
|
|
'scroll-pl': getSpacingWithArbitrary()
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Snap Align
|
|
* @see https://tailwindcss.com/docs/scroll-snap-align
|
|
*/ 'snap-align': [
|
|
{
|
|
snap: [
|
|
'start',
|
|
'end',
|
|
'center',
|
|
'align-none'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Snap Stop
|
|
* @see https://tailwindcss.com/docs/scroll-snap-stop
|
|
*/ 'snap-stop': [
|
|
{
|
|
snap: [
|
|
'normal',
|
|
'always'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Snap Type
|
|
* @see https://tailwindcss.com/docs/scroll-snap-type
|
|
*/ 'snap-type': [
|
|
{
|
|
snap: [
|
|
'none',
|
|
'x',
|
|
'y',
|
|
'both'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Scroll Snap Type Strictness
|
|
* @see https://tailwindcss.com/docs/scroll-snap-type
|
|
*/ 'snap-strictness': [
|
|
{
|
|
snap: [
|
|
'mandatory',
|
|
'proximity'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Touch Action
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/ touch: [
|
|
{
|
|
touch: [
|
|
'auto',
|
|
'none',
|
|
'manipulation'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Touch Action X
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/ 'touch-x': [
|
|
{
|
|
'touch-pan': [
|
|
'x',
|
|
'left',
|
|
'right'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Touch Action Y
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/ 'touch-y': [
|
|
{
|
|
'touch-pan': [
|
|
'y',
|
|
'up',
|
|
'down'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Touch Action Pinch Zoom
|
|
* @see https://tailwindcss.com/docs/touch-action
|
|
*/ 'touch-pz': [
|
|
'touch-pinch-zoom'
|
|
],
|
|
/**
|
|
* User Select
|
|
* @see https://tailwindcss.com/docs/user-select
|
|
*/ select: [
|
|
{
|
|
select: [
|
|
'none',
|
|
'text',
|
|
'all',
|
|
'auto'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Will Change
|
|
* @see https://tailwindcss.com/docs/will-change
|
|
*/ 'will-change': [
|
|
{
|
|
'will-change': [
|
|
'auto',
|
|
'scroll',
|
|
'contents',
|
|
'transform',
|
|
isArbitraryValue
|
|
]
|
|
}
|
|
],
|
|
// SVG
|
|
/**
|
|
* Fill
|
|
* @see https://tailwindcss.com/docs/fill
|
|
*/ fill: [
|
|
{
|
|
fill: [
|
|
colors,
|
|
'none'
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Stroke Width
|
|
* @see https://tailwindcss.com/docs/stroke-width
|
|
*/ 'stroke-w': [
|
|
{
|
|
stroke: [
|
|
isLength,
|
|
isArbitraryLength,
|
|
isArbitraryNumber
|
|
]
|
|
}
|
|
],
|
|
/**
|
|
* Stroke
|
|
* @see https://tailwindcss.com/docs/stroke
|
|
*/ stroke: [
|
|
{
|
|
stroke: [
|
|
colors,
|
|
'none'
|
|
]
|
|
}
|
|
],
|
|
// Accessibility
|
|
/**
|
|
* Screen Readers
|
|
* @see https://tailwindcss.com/docs/screen-readers
|
|
*/ sr: [
|
|
'sr-only',
|
|
'not-sr-only'
|
|
],
|
|
/**
|
|
* Forced Color Adjust
|
|
* @see https://tailwindcss.com/docs/forced-color-adjust
|
|
*/ 'forced-color-adjust': [
|
|
{
|
|
'forced-color-adjust': [
|
|
'auto',
|
|
'none'
|
|
]
|
|
}
|
|
]
|
|
},
|
|
conflictingClassGroups: {
|
|
overflow: [
|
|
'overflow-x',
|
|
'overflow-y'
|
|
],
|
|
overscroll: [
|
|
'overscroll-x',
|
|
'overscroll-y'
|
|
],
|
|
inset: [
|
|
'inset-x',
|
|
'inset-y',
|
|
'start',
|
|
'end',
|
|
'top',
|
|
'right',
|
|
'bottom',
|
|
'left'
|
|
],
|
|
'inset-x': [
|
|
'right',
|
|
'left'
|
|
],
|
|
'inset-y': [
|
|
'top',
|
|
'bottom'
|
|
],
|
|
flex: [
|
|
'basis',
|
|
'grow',
|
|
'shrink'
|
|
],
|
|
gap: [
|
|
'gap-x',
|
|
'gap-y'
|
|
],
|
|
p: [
|
|
'px',
|
|
'py',
|
|
'ps',
|
|
'pe',
|
|
'pt',
|
|
'pr',
|
|
'pb',
|
|
'pl'
|
|
],
|
|
px: [
|
|
'pr',
|
|
'pl'
|
|
],
|
|
py: [
|
|
'pt',
|
|
'pb'
|
|
],
|
|
m: [
|
|
'mx',
|
|
'my',
|
|
'ms',
|
|
'me',
|
|
'mt',
|
|
'mr',
|
|
'mb',
|
|
'ml'
|
|
],
|
|
mx: [
|
|
'mr',
|
|
'ml'
|
|
],
|
|
my: [
|
|
'mt',
|
|
'mb'
|
|
],
|
|
size: [
|
|
'w',
|
|
'h'
|
|
],
|
|
'font-size': [
|
|
'leading'
|
|
],
|
|
'fvn-normal': [
|
|
'fvn-ordinal',
|
|
'fvn-slashed-zero',
|
|
'fvn-figure',
|
|
'fvn-spacing',
|
|
'fvn-fraction'
|
|
],
|
|
'fvn-ordinal': [
|
|
'fvn-normal'
|
|
],
|
|
'fvn-slashed-zero': [
|
|
'fvn-normal'
|
|
],
|
|
'fvn-figure': [
|
|
'fvn-normal'
|
|
],
|
|
'fvn-spacing': [
|
|
'fvn-normal'
|
|
],
|
|
'fvn-fraction': [
|
|
'fvn-normal'
|
|
],
|
|
'line-clamp': [
|
|
'display',
|
|
'overflow'
|
|
],
|
|
rounded: [
|
|
'rounded-s',
|
|
'rounded-e',
|
|
'rounded-t',
|
|
'rounded-r',
|
|
'rounded-b',
|
|
'rounded-l',
|
|
'rounded-ss',
|
|
'rounded-se',
|
|
'rounded-ee',
|
|
'rounded-es',
|
|
'rounded-tl',
|
|
'rounded-tr',
|
|
'rounded-br',
|
|
'rounded-bl'
|
|
],
|
|
'rounded-s': [
|
|
'rounded-ss',
|
|
'rounded-es'
|
|
],
|
|
'rounded-e': [
|
|
'rounded-se',
|
|
'rounded-ee'
|
|
],
|
|
'rounded-t': [
|
|
'rounded-tl',
|
|
'rounded-tr'
|
|
],
|
|
'rounded-r': [
|
|
'rounded-tr',
|
|
'rounded-br'
|
|
],
|
|
'rounded-b': [
|
|
'rounded-br',
|
|
'rounded-bl'
|
|
],
|
|
'rounded-l': [
|
|
'rounded-tl',
|
|
'rounded-bl'
|
|
],
|
|
'border-spacing': [
|
|
'border-spacing-x',
|
|
'border-spacing-y'
|
|
],
|
|
'border-w': [
|
|
'border-w-s',
|
|
'border-w-e',
|
|
'border-w-t',
|
|
'border-w-r',
|
|
'border-w-b',
|
|
'border-w-l'
|
|
],
|
|
'border-w-x': [
|
|
'border-w-r',
|
|
'border-w-l'
|
|
],
|
|
'border-w-y': [
|
|
'border-w-t',
|
|
'border-w-b'
|
|
],
|
|
'border-color': [
|
|
'border-color-s',
|
|
'border-color-e',
|
|
'border-color-t',
|
|
'border-color-r',
|
|
'border-color-b',
|
|
'border-color-l'
|
|
],
|
|
'border-color-x': [
|
|
'border-color-r',
|
|
'border-color-l'
|
|
],
|
|
'border-color-y': [
|
|
'border-color-t',
|
|
'border-color-b'
|
|
],
|
|
'scroll-m': [
|
|
'scroll-mx',
|
|
'scroll-my',
|
|
'scroll-ms',
|
|
'scroll-me',
|
|
'scroll-mt',
|
|
'scroll-mr',
|
|
'scroll-mb',
|
|
'scroll-ml'
|
|
],
|
|
'scroll-mx': [
|
|
'scroll-mr',
|
|
'scroll-ml'
|
|
],
|
|
'scroll-my': [
|
|
'scroll-mt',
|
|
'scroll-mb'
|
|
],
|
|
'scroll-p': [
|
|
'scroll-px',
|
|
'scroll-py',
|
|
'scroll-ps',
|
|
'scroll-pe',
|
|
'scroll-pt',
|
|
'scroll-pr',
|
|
'scroll-pb',
|
|
'scroll-pl'
|
|
],
|
|
'scroll-px': [
|
|
'scroll-pr',
|
|
'scroll-pl'
|
|
],
|
|
'scroll-py': [
|
|
'scroll-pt',
|
|
'scroll-pb'
|
|
],
|
|
touch: [
|
|
'touch-x',
|
|
'touch-y',
|
|
'touch-pz'
|
|
],
|
|
'touch-x': [
|
|
'touch'
|
|
],
|
|
'touch-y': [
|
|
'touch'
|
|
],
|
|
'touch-pz': [
|
|
'touch'
|
|
]
|
|
},
|
|
conflictingClassGroupModifiers: {
|
|
'font-size': [
|
|
'leading'
|
|
]
|
|
}
|
|
};
|
|
};
|
|
/**
|
|
* @param baseConfig Config where other config will be merged into. This object will be mutated.
|
|
* @param configExtension Partial config to merge into the `baseConfig`.
|
|
*/ const mergeConfigs = (baseConfig, { cacheSize, prefix, separator, experimentalParseClassName, extend = {}, override = {} })=>{
|
|
overrideProperty(baseConfig, 'cacheSize', cacheSize);
|
|
overrideProperty(baseConfig, 'prefix', prefix);
|
|
overrideProperty(baseConfig, 'separator', separator);
|
|
overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);
|
|
for(const configKey in override){
|
|
overrideConfigProperties(baseConfig[configKey], override[configKey]);
|
|
}
|
|
for(const key in extend){
|
|
mergeConfigProperties(baseConfig[key], extend[key]);
|
|
}
|
|
return baseConfig;
|
|
};
|
|
const overrideProperty = (baseObject, overrideKey, overrideValue)=>{
|
|
if (overrideValue !== undefined) {
|
|
baseObject[overrideKey] = overrideValue;
|
|
}
|
|
};
|
|
const overrideConfigProperties = (baseObject, overrideObject)=>{
|
|
if (overrideObject) {
|
|
for(const key in overrideObject){
|
|
overrideProperty(baseObject, key, overrideObject[key]);
|
|
}
|
|
}
|
|
};
|
|
const mergeConfigProperties = (baseObject, mergeObject)=>{
|
|
if (mergeObject) {
|
|
for(const key in mergeObject){
|
|
const mergeValue = mergeObject[key];
|
|
if (mergeValue !== undefined) {
|
|
baseObject[key] = (baseObject[key] || []).concat(mergeValue);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
const extendTailwindMerge = (configExtension, ...createConfig)=>typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(()=>mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);
|
|
const twMerge = /*#__PURE__*/ createTailwindMerge(getDefaultConfig);
|
|
;
|
|
//# sourceMappingURL=bundle-mjs.mjs.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/shared/src/utils.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"mergeClasses",
|
|
()=>mergeClasses,
|
|
"toKebabCase",
|
|
()=>toKebabCase
|
|
]);
|
|
const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
const mergeClasses = (...classes)=>classes.filter((className, index, array)=>{
|
|
return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
|
|
}).join(" ").trim();
|
|
;
|
|
//# sourceMappingURL=utils.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/defaultAttributes.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>defaultAttributes
|
|
]);
|
|
var defaultAttributes = {
|
|
xmlns: "http://www.w3.org/2000/svg",
|
|
width: 24,
|
|
height: 24,
|
|
viewBox: "0 0 24 24",
|
|
fill: "none",
|
|
stroke: "currentColor",
|
|
strokeWidth: 2,
|
|
strokeLinecap: "round",
|
|
strokeLinejoin: "round"
|
|
};
|
|
;
|
|
//# sourceMappingURL=defaultAttributes.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/Icon.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>Icon
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/defaultAttributes.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/shared/src/utils.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
const Icon = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"])(({ color = "currentColor", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = "", children, iconNode, ...rest }, ref)=>{
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createElement"])("svg", {
|
|
ref,
|
|
...__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$defaultAttributes$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"],
|
|
width: size,
|
|
height: size,
|
|
stroke: color,
|
|
strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["mergeClasses"])("lucide", className),
|
|
...rest
|
|
}, [
|
|
...iconNode.map(([tag, attrs])=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createElement"])(tag, attrs)),
|
|
...Array.isArray(children) ? children : [
|
|
children
|
|
]
|
|
]);
|
|
});
|
|
;
|
|
//# sourceMappingURL=Icon.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>createLucideIcon
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/shared/src/utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$Icon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/Icon.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
const createLucideIcon = (iconName, iconNode)=>{
|
|
const Component = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["forwardRef"])(({ className, ...props }, ref)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createElement"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$Icon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"], {
|
|
ref,
|
|
iconNode,
|
|
className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["mergeClasses"])(`lucide-${(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$shared$2f$src$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["toKebabCase"])(iconName)}`, className),
|
|
...props
|
|
}));
|
|
Component.displayName = `${iconName}`;
|
|
return Component;
|
|
};
|
|
;
|
|
//# sourceMappingURL=createLucideIcon.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/download.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>Download
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)");
|
|
;
|
|
const Download = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Download", [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
|
|
key: "ih7n3h"
|
|
}
|
|
],
|
|
[
|
|
"polyline",
|
|
{
|
|
points: "7 10 12 15 17 10",
|
|
key: "2ggqvy"
|
|
}
|
|
],
|
|
[
|
|
"line",
|
|
{
|
|
x1: "12",
|
|
x2: "12",
|
|
y1: "15",
|
|
y2: "3",
|
|
key: "1vk2je"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=download.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/download.js [app-ssr] (ecmascript) <export default as Download>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Download",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$download$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$download$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/download.js [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>X
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)");
|
|
;
|
|
const X = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("X", [
|
|
[
|
|
"path",
|
|
{
|
|
d: "M18 6 6 18",
|
|
key: "1bl5f8"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "m6 6 12 12",
|
|
key: "d8bk6v"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=x.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript) <export default as X>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"X",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/x.js [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/smartphone.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* @license lucide-react v0.454.0 - ISC
|
|
*
|
|
* This source code is licensed under the ISC license.
|
|
* See the LICENSE file in the root directory of this source tree.
|
|
*/ __turbopack_context__.s([
|
|
"default",
|
|
()=>Smartphone
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/createLucideIcon.js [app-ssr] (ecmascript)");
|
|
;
|
|
const Smartphone = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$createLucideIcon$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"])("Smartphone", [
|
|
[
|
|
"rect",
|
|
{
|
|
width: "14",
|
|
height: "20",
|
|
x: "5",
|
|
y: "2",
|
|
rx: "2",
|
|
ry: "2",
|
|
key: "1yt0o3"
|
|
}
|
|
],
|
|
[
|
|
"path",
|
|
{
|
|
d: "M12 18h.01",
|
|
key: "mhygvu"
|
|
}
|
|
]
|
|
]);
|
|
;
|
|
//# sourceMappingURL=smartphone.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/smartphone.js [app-ssr] (ecmascript) <export default as Smartphone>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"Smartphone",
|
|
()=>__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$smartphone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$lucide$2d$react$40$0$2e$454$2e$0_react$40$19$2e$2$2e$0$2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$smartphone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/lucide-react@0.454.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/smartphone.js [app-ssr] (ecmascript)");
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ACTION_HMR_REFRESH",
|
|
()=>ACTION_HMR_REFRESH,
|
|
"ACTION_NAVIGATE",
|
|
()=>ACTION_NAVIGATE,
|
|
"ACTION_REFRESH",
|
|
()=>ACTION_REFRESH,
|
|
"ACTION_RESTORE",
|
|
()=>ACTION_RESTORE,
|
|
"ACTION_SERVER_ACTION",
|
|
()=>ACTION_SERVER_ACTION,
|
|
"ACTION_SERVER_PATCH",
|
|
()=>ACTION_SERVER_PATCH,
|
|
"PrefetchKind",
|
|
()=>PrefetchKind
|
|
]);
|
|
const ACTION_REFRESH = 'refresh';
|
|
const ACTION_NAVIGATE = 'navigate';
|
|
const ACTION_RESTORE = 'restore';
|
|
const ACTION_SERVER_PATCH = 'server-patch';
|
|
const ACTION_HMR_REFRESH = 'hmr-refresh';
|
|
const ACTION_SERVER_ACTION = 'server-action';
|
|
var PrefetchKind = /*#__PURE__*/ function(PrefetchKind) {
|
|
PrefetchKind["AUTO"] = "auto";
|
|
PrefetchKind["FULL"] = "full";
|
|
PrefetchKind["TEMPORARY"] = "temporary";
|
|
return PrefetchKind;
|
|
}({}); //# sourceMappingURL=router-reducer-types.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['react-ssr'].ReactDOM; //# sourceMappingURL=react-dom.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
module.exports = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/module.compiled.js [app-ssr] (ecmascript)").vendored['react-ssr'].ReactServerDOMTurbopackClient; //# sourceMappingURL=react-server-dom-turbopack-client.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ACTION_HEADER",
|
|
()=>ACTION_HEADER,
|
|
"FLIGHT_HEADERS",
|
|
()=>FLIGHT_HEADERS,
|
|
"NEXT_ACTION_NOT_FOUND_HEADER",
|
|
()=>NEXT_ACTION_NOT_FOUND_HEADER,
|
|
"NEXT_DID_POSTPONE_HEADER",
|
|
()=>NEXT_DID_POSTPONE_HEADER,
|
|
"NEXT_HMR_REFRESH_HASH_COOKIE",
|
|
()=>NEXT_HMR_REFRESH_HASH_COOKIE,
|
|
"NEXT_HMR_REFRESH_HEADER",
|
|
()=>NEXT_HMR_REFRESH_HEADER,
|
|
"NEXT_HTML_REQUEST_ID_HEADER",
|
|
()=>NEXT_HTML_REQUEST_ID_HEADER,
|
|
"NEXT_IS_PRERENDER_HEADER",
|
|
()=>NEXT_IS_PRERENDER_HEADER,
|
|
"NEXT_REQUEST_ID_HEADER",
|
|
()=>NEXT_REQUEST_ID_HEADER,
|
|
"NEXT_REWRITTEN_PATH_HEADER",
|
|
()=>NEXT_REWRITTEN_PATH_HEADER,
|
|
"NEXT_REWRITTEN_QUERY_HEADER",
|
|
()=>NEXT_REWRITTEN_QUERY_HEADER,
|
|
"NEXT_ROUTER_PREFETCH_HEADER",
|
|
()=>NEXT_ROUTER_PREFETCH_HEADER,
|
|
"NEXT_ROUTER_SEGMENT_PREFETCH_HEADER",
|
|
()=>NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,
|
|
"NEXT_ROUTER_STALE_TIME_HEADER",
|
|
()=>NEXT_ROUTER_STALE_TIME_HEADER,
|
|
"NEXT_ROUTER_STATE_TREE_HEADER",
|
|
()=>NEXT_ROUTER_STATE_TREE_HEADER,
|
|
"NEXT_RSC_UNION_QUERY",
|
|
()=>NEXT_RSC_UNION_QUERY,
|
|
"NEXT_URL",
|
|
()=>NEXT_URL,
|
|
"RSC_CONTENT_TYPE_HEADER",
|
|
()=>RSC_CONTENT_TYPE_HEADER,
|
|
"RSC_HEADER",
|
|
()=>RSC_HEADER
|
|
]);
|
|
const RSC_HEADER = 'rsc';
|
|
const ACTION_HEADER = 'next-action';
|
|
const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree';
|
|
const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch';
|
|
const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER = 'next-router-segment-prefetch';
|
|
const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh';
|
|
const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__';
|
|
const NEXT_URL = 'next-url';
|
|
const RSC_CONTENT_TYPE_HEADER = 'text/x-component';
|
|
const FLIGHT_HEADERS = [
|
|
RSC_HEADER,
|
|
NEXT_ROUTER_STATE_TREE_HEADER,
|
|
NEXT_ROUTER_PREFETCH_HEADER,
|
|
NEXT_HMR_REFRESH_HEADER,
|
|
NEXT_ROUTER_SEGMENT_PREFETCH_HEADER
|
|
];
|
|
const NEXT_RSC_UNION_QUERY = '_rsc';
|
|
const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time';
|
|
const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed';
|
|
const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path';
|
|
const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query';
|
|
const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender';
|
|
const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found';
|
|
const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id';
|
|
const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id'; //# sourceMappingURL=app-router-headers.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/is-thenable.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* Check to see if a value is Thenable.
|
|
*
|
|
* @param promise the maybe-thenable value
|
|
* @returns true if the value is thenable
|
|
*/ __turbopack_context__.s([
|
|
"isThenable",
|
|
()=>isThenable
|
|
]);
|
|
function isThenable(promise) {
|
|
return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';
|
|
} //# sourceMappingURL=is-thenable.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/dev-overlay.shim.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
0 && (module.exports = {
|
|
dispatcher: null,
|
|
renderAppDevOverlay: null,
|
|
renderPagesDevOverlay: null
|
|
});
|
|
function _export(target, all) {
|
|
for(var name in all)Object.defineProperty(target, name, {
|
|
enumerable: true,
|
|
get: all[name]
|
|
});
|
|
}
|
|
_export(exports, {
|
|
dispatcher: function() {
|
|
return dispatcher;
|
|
},
|
|
renderAppDevOverlay: function() {
|
|
return renderAppDevOverlay;
|
|
},
|
|
renderPagesDevOverlay: function() {
|
|
return renderPagesDevOverlay;
|
|
}
|
|
});
|
|
function renderAppDevOverlay() {
|
|
throw Object.defineProperty(new Error("Next DevTools: Can't render in this environment. This is a bug in Next.js"), "__NEXT_ERROR_CODE", {
|
|
value: "E697",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function renderPagesDevOverlay() {
|
|
throw Object.defineProperty(new Error("Next DevTools: Can't render in this environment. This is a bug in Next.js"), "__NEXT_ERROR_CODE", {
|
|
value: "E697",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const dispatcher = new Proxy({}, {
|
|
get: (_, prop)=>{
|
|
return ()=>{
|
|
throw Object.defineProperty(new Error(`Next DevTools: Can't dispatch ${String(prop)} in this environment. This is a bug in Next.js`), "__NEXT_ERROR_CODE", {
|
|
value: "E698",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
};
|
|
}
|
|
});
|
|
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=dev-overlay.shim.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/use-app-dev-rendering-indicator.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useAppDevRenderingIndicator",
|
|
()=>useAppDevRenderingIndicator
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/dev-overlay.shim.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
const useAppDevRenderingIndicator = ()=>{
|
|
const [isPending, startTransition] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useTransition"])();
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
if (isPending) {
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].renderingIndicatorShow();
|
|
} else {
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].renderingIndicatorHide();
|
|
}
|
|
}, [
|
|
isPending
|
|
]);
|
|
return startTransition;
|
|
}; //# sourceMappingURL=use-app-dev-rendering-indicator.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/use-action-queue.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"dispatchAppRouterAction",
|
|
()=>dispatchAppRouterAction,
|
|
"useActionQueue",
|
|
()=>useActionQueue
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$is$2d$thenable$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/is-thenable.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
// The app router state lives outside of React, so we can import the dispatch
|
|
// method directly wherever we need it, rather than passing it around via props
|
|
// or context.
|
|
let dispatch = null;
|
|
function dispatchAppRouterAction(action) {
|
|
if (dispatch === null) {
|
|
throw Object.defineProperty(new Error('Internal Next.js error: Router action dispatched before initialization.'), "__NEXT_ERROR_CODE", {
|
|
value: "E668",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
dispatch(action);
|
|
}
|
|
const __DEV__ = ("TURBOPACK compile-time value", "development") !== 'production';
|
|
const promisesWithDebugInfo = ("TURBOPACK compile-time truthy", 1) ? new WeakMap() : "TURBOPACK unreachable";
|
|
function useActionQueue(actionQueue) {
|
|
const [state, setState] = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].useState(actionQueue.state);
|
|
// Because of a known issue that requires to decode Flight streams inside the
|
|
// render phase, we have to be a bit clever and assign the dispatch method to
|
|
// a module-level variable upon initialization. The useState hook in this
|
|
// module only exists to synchronize state that lives outside of React.
|
|
// Ideally, what we'd do instead is pass the state as a prop to root.render;
|
|
// this is conceptually how we're modeling the app router state, despite the
|
|
// weird implementation details.
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { useAppDevRenderingIndicator } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/use-app-dev-rendering-indicator.js [app-ssr] (ecmascript)");
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
const appDevRenderingIndicator = useAppDevRenderingIndicator();
|
|
dispatch = (action)=>{
|
|
appDevRenderingIndicator(()=>{
|
|
actionQueue.dispatch(action, setState);
|
|
});
|
|
};
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
// When navigating to a non-prefetched route, then App Router state will be
|
|
// blocked until the server responds. We need to transfer the `_debugInfo`
|
|
// from the underlying Flight response onto the top-level promise that is
|
|
// passed to React (via `use`) so that the latency is accurately represented
|
|
// in the React DevTools.
|
|
const stateWithDebugInfo = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"])(()=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$is$2d$thenable$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isThenable"])(state)) {
|
|
// useMemo can't be used to cache a Promise since the memoized value is thrown
|
|
// away when we suspend. So we use a WeakMap to cache the Promise with debug info.
|
|
let promiseWithDebugInfo = promisesWithDebugInfo.get(state);
|
|
if (promiseWithDebugInfo === undefined) {
|
|
const debugInfo = [];
|
|
promiseWithDebugInfo = Promise.resolve(state).then((asyncState)=>{
|
|
if (asyncState.debugInfo !== null) {
|
|
debugInfo.push(...asyncState.debugInfo);
|
|
}
|
|
return asyncState;
|
|
});
|
|
promiseWithDebugInfo._debugInfo = debugInfo;
|
|
promisesWithDebugInfo.set(state, promiseWithDebugInfo);
|
|
}
|
|
return promiseWithDebugInfo;
|
|
}
|
|
return state;
|
|
}, [
|
|
state
|
|
]);
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$is$2d$thenable$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isThenable"])(stateWithDebugInfo) ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(stateWithDebugInfo) : stateWithDebugInfo;
|
|
} //# sourceMappingURL=use-action-queue.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-call-server.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"callServer",
|
|
()=>callServer
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$use$2d$action$2d$queue$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/use-action-queue.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
async function callServer(actionId, actionArgs) {
|
|
return new Promise((resolve, reject)=>{
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["startTransition"])(()=>{
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$use$2d$action$2d$queue$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatchAppRouterAction"])({
|
|
type: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ACTION_SERVER_ACTION"],
|
|
actionId,
|
|
actionArgs,
|
|
resolve,
|
|
reject
|
|
});
|
|
});
|
|
});
|
|
} //# sourceMappingURL=app-call-server.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-find-source-map-url.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"findSourceMapURL",
|
|
()=>findSourceMapURL
|
|
]);
|
|
const basePath = ("TURBOPACK compile-time value", "") || '';
|
|
const pathname = `${basePath}/__nextjs_source-map`;
|
|
const findSourceMapURL = ("TURBOPACK compile-time truthy", 1) ? function findSourceMapURL(filename) {
|
|
if (filename === '') {
|
|
return null;
|
|
}
|
|
if (filename.startsWith(document.location.origin) && filename.includes('/_next/static')) {
|
|
// This is a request for a client chunk. This can only happen when
|
|
// using Turbopack. In this case, since we control how those source
|
|
// maps are generated, we can safely assume that the sourceMappingURL
|
|
// is relative to the filename, with an added `.map` extension. The
|
|
// browser can just request this file, and it gets served through the
|
|
// normal dev server, without the need to route this through
|
|
// the `/__nextjs_source-map` dev middleware.
|
|
return `${filename}.map`;
|
|
}
|
|
const url = new URL(pathname, document.location.origin);
|
|
url.searchParams.set('filename', filename);
|
|
return url.href;
|
|
} : "TURBOPACK unreachable"; //# sourceMappingURL=app-find-source-map-url.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"DEFAULT_SEGMENT_KEY",
|
|
()=>DEFAULT_SEGMENT_KEY,
|
|
"PAGE_SEGMENT_KEY",
|
|
()=>PAGE_SEGMENT_KEY,
|
|
"addSearchParamsIfPageSegment",
|
|
()=>addSearchParamsIfPageSegment,
|
|
"computeSelectedLayoutSegment",
|
|
()=>computeSelectedLayoutSegment,
|
|
"getSegmentValue",
|
|
()=>getSegmentValue,
|
|
"getSelectedLayoutSegmentPath",
|
|
()=>getSelectedLayoutSegmentPath,
|
|
"isGroupSegment",
|
|
()=>isGroupSegment,
|
|
"isParallelRouteSegment",
|
|
()=>isParallelRouteSegment
|
|
]);
|
|
function getSegmentValue(segment) {
|
|
return Array.isArray(segment) ? segment[1] : segment;
|
|
}
|
|
function isGroupSegment(segment) {
|
|
// Use array[0] for performant purpose
|
|
return segment[0] === '(' && segment.endsWith(')');
|
|
}
|
|
function isParallelRouteSegment(segment) {
|
|
return segment.startsWith('@') && segment !== '@children';
|
|
}
|
|
function addSearchParamsIfPageSegment(segment, searchParams) {
|
|
const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);
|
|
if (isPageSegment) {
|
|
const stringifiedQuery = JSON.stringify(searchParams);
|
|
return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;
|
|
}
|
|
return segment;
|
|
}
|
|
function computeSelectedLayoutSegment(segments, parallelRouteKey) {
|
|
if (!segments || segments.length === 0) {
|
|
return null;
|
|
}
|
|
// For 'children', use first segment; for other parallel routes, use last segment
|
|
const rawSegment = parallelRouteKey === 'children' ? segments[0] : segments[segments.length - 1];
|
|
// If the default slot is showing, return null since it's not technically "selected" (it's a fallback)
|
|
// Returning an internal value like `__DEFAULT__` would be confusing
|
|
return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment;
|
|
}
|
|
function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first = true, segmentPath = []) {
|
|
let node;
|
|
if (first) {
|
|
// Use the provided parallel route key on the first parallel route
|
|
node = tree[1][parallelRouteKey];
|
|
} else {
|
|
// After first parallel route prefer children, if there's no children pick the first parallel route.
|
|
const parallelRoutes = tree[1];
|
|
node = parallelRoutes.children ?? Object.values(parallelRoutes)[0];
|
|
}
|
|
if (!node) return segmentPath;
|
|
const segment = node[0];
|
|
let segmentValue = getSegmentValue(segment);
|
|
if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {
|
|
return segmentPath;
|
|
}
|
|
segmentPath.push(segmentValue);
|
|
return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath);
|
|
}
|
|
const PAGE_SEGMENT_KEY = '__PAGE__';
|
|
const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment-cache/segment-value-encoding.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"HEAD_REQUEST_KEY",
|
|
()=>HEAD_REQUEST_KEY,
|
|
"ROOT_SEGMENT_REQUEST_KEY",
|
|
()=>ROOT_SEGMENT_REQUEST_KEY,
|
|
"appendSegmentRequestKeyPart",
|
|
()=>appendSegmentRequestKeyPart,
|
|
"convertSegmentPathToStaticExportFilename",
|
|
()=>convertSegmentPathToStaticExportFilename,
|
|
"createSegmentRequestKeyPart",
|
|
()=>createSegmentRequestKeyPart
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
;
|
|
const ROOT_SEGMENT_REQUEST_KEY = '';
|
|
const HEAD_REQUEST_KEY = '/_head';
|
|
function createSegmentRequestKeyPart(segment) {
|
|
if (typeof segment === 'string') {
|
|
if (segment.startsWith(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"])) {
|
|
// The Flight Router State type sometimes includes the search params in
|
|
// the page segment. However, the Segment Cache tracks this as a separate
|
|
// key. So, we strip the search params here, and then add them back when
|
|
// the cache entry is turned back into a FlightRouterState. This is an
|
|
// unfortunate consequence of the FlightRouteState being used both as a
|
|
// transport type and as a cache key; we'll address this once more of the
|
|
// Segment Cache implementation has settled.
|
|
// TODO: We should hoist the search params out of the FlightRouterState
|
|
// type entirely, This is our plan for dynamic route params, too.
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"];
|
|
}
|
|
const safeName = // But params typically don't include the leading slash. We should use
|
|
// a different encoding to avoid this special case.
|
|
segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment);
|
|
// Since this is not a dynamic segment, it's fully encoded. It does not
|
|
// need to be "hydrated" with a param value.
|
|
return safeName;
|
|
}
|
|
const name = segment[0];
|
|
const paramType = segment[2];
|
|
const safeName = encodeToFilesystemAndURLSafeString(name);
|
|
const encodedName = '$' + paramType + '$' + safeName;
|
|
return encodedName;
|
|
}
|
|
function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) {
|
|
// Aside from being filesystem safe, segment keys are also designed so that
|
|
// each segment and parallel route creates its own subdirectory. Roughly in
|
|
// the same shape as the source app directory. This is mostly just for easier
|
|
// debugging (you can open up the build folder and navigate the output); if
|
|
// we wanted to do we could just use a flat structure.
|
|
// Omit the parallel route key for children, since this is the most
|
|
// common case. Saves some bytes (and it's what the app directory does).
|
|
const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : `@${encodeToFilesystemAndURLSafeString(parallelRouteKey)}/${childRequestKeyPart}`;
|
|
return parentRequestKey + '/' + slotKey;
|
|
}
|
|
// Define a regex pattern to match the most common characters found in a route
|
|
// param. It excludes anything that might not be cross-platform filesystem
|
|
// compatible, like |. It does not need to be precise because the fallback is to
|
|
// just base64url-encode the whole parameter, which is fine; we just don't do it
|
|
// by default for compactness, and for easier debugging.
|
|
const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/;
|
|
function encodeToFilesystemAndURLSafeString(value) {
|
|
if (simpleParamValueRegex.test(value)) {
|
|
return value;
|
|
}
|
|
// If there are any unsafe characters, base64url-encode the entire value.
|
|
// We also add a ! prefix so it doesn't collide with the simple case.
|
|
const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-'
|
|
.replace(/\//g, '_') // Replace '/' with '_'
|
|
.replace(/=+$/, '') // Remove trailing '='
|
|
;
|
|
return '!' + base64url;
|
|
}
|
|
function convertSegmentPathToStaticExportFilename(segmentPath) {
|
|
return `__next${segmentPath.replace(/\//g, '.')}.txt`;
|
|
} //# sourceMappingURL=segment-value-encoding.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/route-params.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"doesStaticSegmentAppearInURL",
|
|
()=>doesStaticSegmentAppearInURL,
|
|
"getCacheKeyForDynamicParam",
|
|
()=>getCacheKeyForDynamicParam,
|
|
"getParamValueFromCacheKey",
|
|
()=>getParamValueFromCacheKey,
|
|
"getRenderedPathname",
|
|
()=>getRenderedPathname,
|
|
"getRenderedSearch",
|
|
()=>getRenderedSearch,
|
|
"parseDynamicParamFromURLPart",
|
|
()=>parseDynamicParamFromURLPart,
|
|
"urlSearchParamsToParsedUrlQuery",
|
|
()=>urlSearchParamsToParsedUrlQuery,
|
|
"urlToUrlWithoutFlightMarker",
|
|
()=>urlToUrlWithoutFlightMarker
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2d$cache$2f$segment$2d$value$2d$encoding$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment-cache/segment-value-encoding.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
function getRenderedSearch(response) {
|
|
// If the server performed a rewrite, the search params used to render the
|
|
// page will be different from the params in the request URL. In this case,
|
|
// the response will include a header that gives the rewritten search query.
|
|
const rewrittenQuery = response.headers.get(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_REWRITTEN_QUERY_HEADER"]);
|
|
if (rewrittenQuery !== null) {
|
|
return rewrittenQuery === '' ? '' : '?' + rewrittenQuery;
|
|
}
|
|
// If the header is not present, there was no rewrite, so we use the search
|
|
// query of the response URL.
|
|
return urlToUrlWithoutFlightMarker(new URL(response.url)).search;
|
|
}
|
|
function getRenderedPathname(response) {
|
|
// If the server performed a rewrite, the pathname used to render the
|
|
// page will be different from the pathname in the request URL. In this case,
|
|
// the response will include a header that gives the rewritten pathname.
|
|
const rewrittenPath = response.headers.get(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_REWRITTEN_PATH_HEADER"]);
|
|
return rewrittenPath ?? urlToUrlWithoutFlightMarker(new URL(response.url)).pathname;
|
|
}
|
|
function parseDynamicParamFromURLPart(paramType, pathnameParts, partIndex) {
|
|
// This needs to match the behavior in get-dynamic-param.ts.
|
|
switch(paramType){
|
|
// Catchalls
|
|
case 'c':
|
|
{
|
|
// Catchalls receive all the remaining URL parts. If there are no
|
|
// remaining pathname parts, return an empty array.
|
|
return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : [];
|
|
}
|
|
// Catchall intercepted
|
|
case 'ci(..)(..)':
|
|
case 'ci(.)':
|
|
case 'ci(..)':
|
|
case 'ci(...)':
|
|
{
|
|
const prefix = paramType.length - 2;
|
|
return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s, i)=>{
|
|
if (i === 0) {
|
|
return encodeURIComponent(s.slice(prefix));
|
|
}
|
|
return encodeURIComponent(s);
|
|
}) : [];
|
|
}
|
|
// Optional catchalls
|
|
case 'oc':
|
|
{
|
|
// Optional catchalls receive all the remaining URL parts, unless this is
|
|
// the end of the pathname, in which case they return null.
|
|
return partIndex < pathnameParts.length ? pathnameParts.slice(partIndex).map((s)=>encodeURIComponent(s)) : null;
|
|
}
|
|
// Dynamic
|
|
case 'd':
|
|
{
|
|
if (partIndex >= pathnameParts.length) {
|
|
// The route tree expected there to be more parts in the URL than there
|
|
// actually are. This could happen if the x-nextjs-rewritten-path header
|
|
// is incorrectly set, or potentially due to bug in Next.js. TODO:
|
|
// Should this be a hard error? During a prefetch, we can just abort.
|
|
// During a client navigation, we could trigger a hard refresh. But if
|
|
// it happens during initial render, we don't really have any
|
|
// recovery options.
|
|
return '';
|
|
}
|
|
return encodeURIComponent(pathnameParts[partIndex]);
|
|
}
|
|
// Dynamic intercepted
|
|
case 'di(..)(..)':
|
|
case 'di(.)':
|
|
case 'di(..)':
|
|
case 'di(...)':
|
|
{
|
|
const prefix = paramType.length - 2;
|
|
if (partIndex >= pathnameParts.length) {
|
|
// The route tree expected there to be more parts in the URL than there
|
|
// actually are. This could happen if the x-nextjs-rewritten-path header
|
|
// is incorrectly set, or potentially due to bug in Next.js. TODO:
|
|
// Should this be a hard error? During a prefetch, we can just abort.
|
|
// During a client navigation, we could trigger a hard refresh. But if
|
|
// it happens during initial render, we don't really have any
|
|
// recovery options.
|
|
return '';
|
|
}
|
|
return encodeURIComponent(pathnameParts[partIndex].slice(prefix));
|
|
}
|
|
default:
|
|
paramType;
|
|
return '';
|
|
}
|
|
}
|
|
function doesStaticSegmentAppearInURL(segment) {
|
|
// This is not a parameterized segment; however, we need to determine
|
|
// whether or not this segment appears in the URL. For example, this route
|
|
// groups do not appear in the URL, so they should be skipped. Any other
|
|
// special cases must be handled here.
|
|
// TODO: Consider encoding this directly into the router tree instead of
|
|
// inferring it on the client based on the segment type. Something like
|
|
// a `doesAppearInURL` flag in FlightRouterState.
|
|
if (segment === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2d$cache$2f$segment$2d$value$2d$encoding$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ROOT_SEGMENT_REQUEST_KEY"] || // For some reason, the loader tree sometimes includes extra __PAGE__
|
|
// "layouts" when part of a parallel route. But it's not a leaf node.
|
|
// Otherwise, we wouldn't need this special case because pages are
|
|
// always leaf nodes.
|
|
// TODO: Investigate why the loader produces these fake page segments.
|
|
segment.startsWith(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"]) || // Route groups.
|
|
segment[0] === '(' && segment.endsWith(')') || segment === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DEFAULT_SEGMENT_KEY"] || segment === '/_not-found') {
|
|
return false;
|
|
} else {
|
|
// All other segment types appear in the URL
|
|
return true;
|
|
}
|
|
}
|
|
function getCacheKeyForDynamicParam(paramValue, renderedSearch) {
|
|
// This needs to match the logic in get-dynamic-param.ts, until we're able to
|
|
// unify the various implementations so that these are always computed on
|
|
// the client.
|
|
if (typeof paramValue === 'string') {
|
|
// TODO: Refactor or remove this helper function to accept a string rather
|
|
// than the whole segment type. Also we can probably just append the
|
|
// search string instead of turning it into JSON.
|
|
const pageSegmentWithSearchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["addSearchParamsIfPageSegment"])(paramValue, Object.fromEntries(new URLSearchParams(renderedSearch)));
|
|
return pageSegmentWithSearchParams;
|
|
} else if (paramValue === null) {
|
|
return '';
|
|
} else {
|
|
return paramValue.join('/');
|
|
}
|
|
}
|
|
function urlToUrlWithoutFlightMarker(url) {
|
|
const urlWithoutFlightParameters = new URL(url);
|
|
urlWithoutFlightParameters.searchParams.delete(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]);
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
return urlWithoutFlightParameters;
|
|
}
|
|
function getParamValueFromCacheKey(paramCacheKey, paramType) {
|
|
// Turn the cache key string sent by the server (as part of FlightRouterState)
|
|
// into a value that can be passed to `useParams` and client components.
|
|
const isCatchAll = paramType === 'c' || paramType === 'oc';
|
|
if (isCatchAll) {
|
|
// Catch-all param keys are a concatenation of the path segments.
|
|
// See equivalent logic in `getSelectedParams`.
|
|
// TODO: We should just pass the array directly, rather than concatenate
|
|
// it to a string and then split it back to an array. It needs to be an
|
|
// array in some places, like when passing a key React, but we can convert
|
|
// it at runtime in those places.
|
|
return paramCacheKey.split('/');
|
|
}
|
|
return paramCacheKey;
|
|
}
|
|
function urlSearchParamsToParsedUrlQuery(searchParams) {
|
|
// Converts a URLSearchParams object to the same type used by the server when
|
|
// creating search params props, i.e. the type returned by Node's
|
|
// "querystring" module.
|
|
const result = {};
|
|
for (const [key, value] of searchParams.entries()){
|
|
if (result[key] === undefined) {
|
|
result[key] = value;
|
|
} else if (Array.isArray(result[key])) {
|
|
result[key].push(value);
|
|
} else {
|
|
result[key] = [
|
|
result[key],
|
|
value
|
|
];
|
|
}
|
|
}
|
|
return result;
|
|
} //# sourceMappingURL=route-params.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createHrefFromUrl",
|
|
()=>createHrefFromUrl
|
|
]);
|
|
function createHrefFromUrl(url, includeHash = true) {
|
|
return url.pathname + url.search + (includeHash ? url.hash : '');
|
|
} //# sourceMappingURL=create-href-from-url.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/flight-data-helpers.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createInitialRSCPayloadFromFallbackPrerender",
|
|
()=>createInitialRSCPayloadFromFallbackPrerender,
|
|
"getFlightDataPartsFromPath",
|
|
()=>getFlightDataPartsFromPath,
|
|
"getNextFlightSegmentPath",
|
|
()=>getNextFlightSegmentPath,
|
|
"normalizeFlightData",
|
|
()=>normalizeFlightData,
|
|
"prepareFlightRouterStateForRequest",
|
|
()=>prepareFlightRouterStateForRequest
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/route-params.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$href$2d$from$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
function getFlightDataPartsFromPath(flightDataPath) {
|
|
// Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].
|
|
const flightDataPathLength = 4;
|
|
// tree, seedData, and head are *always* the last three items in the `FlightDataPath`.
|
|
const [tree, seedData, head, isHeadPartial] = flightDataPath.slice(-flightDataPathLength);
|
|
// The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.
|
|
const segmentPath = flightDataPath.slice(0, -flightDataPathLength);
|
|
return {
|
|
// TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment ("")
|
|
// to the start of the segment path in some places which makes it hard to use solely the segment path.
|
|
// Look for "// TODO-APP: remove ''" in the codebase.
|
|
pathToSegment: segmentPath.slice(0, -1),
|
|
segmentPath,
|
|
// if the `FlightDataPath` corresponds with the root, there'll be no segment path,
|
|
// in which case we default to ''.
|
|
segment: segmentPath[segmentPath.length - 1] ?? '',
|
|
tree,
|
|
seedData,
|
|
head,
|
|
isHeadPartial,
|
|
isRootRender: flightDataPath.length === flightDataPathLength
|
|
};
|
|
}
|
|
function createInitialRSCPayloadFromFallbackPrerender(response, fallbackInitialRSCPayload) {
|
|
// This is a static fallback page. In order to hydrate the page, we need to
|
|
// parse the client params from the URL, but to account for the possibility
|
|
// that the page was rewritten, we need to check the response headers
|
|
// for x-nextjs-rewritten-path or x-nextjs-rewritten-query headers. Since
|
|
// we can't access the headers of the initial document response, the client
|
|
// performs a fetch request to the current location. Since it's possible that
|
|
// the fetch request will be dynamically rewritten to a different path than
|
|
// the initial document, this fetch request delivers _all_ the hydration data
|
|
// for the page; it was not inlined into the document, like it normally
|
|
// would be.
|
|
//
|
|
// TODO: Consider treating the case where fetch is rewritten to a different
|
|
// path from the document as a special deopt case. We should optimistically
|
|
// assume this won't happen, inline the data into the document, and perform
|
|
// a minimal request (like a HEAD or range request) to verify that the
|
|
// response matches. Tricky to get right because we need to account for
|
|
// all the different deployment environments we support, like output:
|
|
// "export" mode, where we currently don't assume that custom response
|
|
// headers are present.
|
|
// Patch the Flight data sent by the server with the correct params parsed
|
|
// from the URL + response object.
|
|
const renderedPathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getRenderedPathname"])(response);
|
|
const renderedSearch = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getRenderedSearch"])(response);
|
|
const canonicalUrl = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$href$2d$from$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createHrefFromUrl"])(new URL(location.href));
|
|
const originalFlightDataPath = fallbackInitialRSCPayload.f[0];
|
|
const originalFlightRouterState = originalFlightDataPath[0];
|
|
return {
|
|
b: fallbackInitialRSCPayload.b,
|
|
c: canonicalUrl.split('/'),
|
|
q: renderedSearch,
|
|
i: fallbackInitialRSCPayload.i,
|
|
f: [
|
|
[
|
|
fillInFallbackFlightRouterState(originalFlightRouterState, renderedPathname, renderedSearch),
|
|
originalFlightDataPath[1],
|
|
originalFlightDataPath[2],
|
|
originalFlightDataPath[2]
|
|
]
|
|
],
|
|
m: fallbackInitialRSCPayload.m,
|
|
G: fallbackInitialRSCPayload.G,
|
|
S: fallbackInitialRSCPayload.S
|
|
};
|
|
}
|
|
function fillInFallbackFlightRouterState(flightRouterState, renderedPathname, renderedSearch) {
|
|
const pathnameParts = renderedPathname.split('/').filter((p)=>p !== '');
|
|
const index = 0;
|
|
return fillInFallbackFlightRouterStateImpl(flightRouterState, renderedSearch, pathnameParts, index);
|
|
}
|
|
function fillInFallbackFlightRouterStateImpl(flightRouterState, renderedSearch, pathnameParts, pathnamePartsIndex) {
|
|
const originalSegment = flightRouterState[0];
|
|
let newSegment;
|
|
let doesAppearInURL;
|
|
if (typeof originalSegment === 'string') {
|
|
newSegment = originalSegment;
|
|
doesAppearInURL = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["doesStaticSegmentAppearInURL"])(originalSegment);
|
|
} else {
|
|
const paramName = originalSegment[0];
|
|
const paramType = originalSegment[2];
|
|
const paramValue = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["parseDynamicParamFromURLPart"])(paramType, pathnameParts, pathnamePartsIndex);
|
|
const cacheKey = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getCacheKeyForDynamicParam"])(paramValue, renderedSearch);
|
|
newSegment = [
|
|
paramName,
|
|
cacheKey,
|
|
paramType
|
|
];
|
|
doesAppearInURL = true;
|
|
}
|
|
// Only increment the index if the segment appears in the URL. If it's a
|
|
// "virtual" segment, like a route group, it remains the same.
|
|
const childPathnamePartsIndex = doesAppearInURL ? pathnamePartsIndex + 1 : pathnamePartsIndex;
|
|
const children = flightRouterState[1];
|
|
const newChildren = {};
|
|
for(let key in children){
|
|
const childFlightRouterState = children[key];
|
|
newChildren[key] = fillInFallbackFlightRouterStateImpl(childFlightRouterState, renderedSearch, pathnameParts, childPathnamePartsIndex);
|
|
}
|
|
const newState = [
|
|
newSegment,
|
|
newChildren,
|
|
null,
|
|
flightRouterState[3],
|
|
flightRouterState[4]
|
|
];
|
|
return newState;
|
|
}
|
|
function getNextFlightSegmentPath(flightSegmentPath) {
|
|
// Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items
|
|
// to get the next segment path.
|
|
return flightSegmentPath.slice(2);
|
|
}
|
|
function normalizeFlightData(flightData) {
|
|
// FlightData can be a string when the server didn't respond with a proper flight response,
|
|
// or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.
|
|
if (typeof flightData === 'string') {
|
|
return flightData;
|
|
}
|
|
return flightData.map((flightDataPath)=>getFlightDataPartsFromPath(flightDataPath));
|
|
}
|
|
function prepareFlightRouterStateForRequest(flightRouterState, isHmrRefresh) {
|
|
// HMR requests need the complete, unmodified state for proper functionality
|
|
if (isHmrRefresh) {
|
|
return encodeURIComponent(JSON.stringify(flightRouterState));
|
|
}
|
|
return encodeURIComponent(JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState)));
|
|
}
|
|
/**
|
|
* Recursively strips client-only data from FlightRouterState while preserving
|
|
* server-needed information for proper rendering decisions.
|
|
*/ function stripClientOnlyDataFromFlightRouterState(flightRouterState) {
|
|
const [segment, parallelRoutes, _url, refreshMarker, isRootLayout, hasLoadingBoundary] = flightRouterState;
|
|
// __PAGE__ segments are always fetched from the server, so there's
|
|
// no need to send them up
|
|
const cleanedSegment = stripSearchParamsFromPageSegment(segment);
|
|
// Recursively process parallel routes
|
|
const cleanedParallelRoutes = {};
|
|
for (const [key, childState] of Object.entries(parallelRoutes)){
|
|
cleanedParallelRoutes[key] = stripClientOnlyDataFromFlightRouterState(childState);
|
|
}
|
|
const result = [
|
|
cleanedSegment,
|
|
cleanedParallelRoutes,
|
|
null,
|
|
shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null
|
|
];
|
|
// Append optional fields if present
|
|
if (isRootLayout !== undefined) {
|
|
result[4] = isRootLayout;
|
|
}
|
|
if (hasLoadingBoundary !== undefined) {
|
|
result[5] = hasLoadingBoundary;
|
|
}
|
|
return result;
|
|
}
|
|
/**
|
|
* Strips search parameters from __PAGE__ segments to prevent sensitive
|
|
* client-side data from being sent to the server.
|
|
*/ function stripSearchParamsFromPageSegment(segment) {
|
|
if (typeof segment === 'string' && segment.startsWith(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"] + '?')) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"];
|
|
}
|
|
return segment;
|
|
}
|
|
/**
|
|
* Determines whether the refresh marker should be sent to the server
|
|
* Client-only markers like 'refresh' are stripped, while server-needed markers
|
|
* like 'refetch' and 'inside-shared-layout' are preserved.
|
|
*/ function shouldPreserveRefreshMarker(refreshMarker) {
|
|
return Boolean(refreshMarker && refreshMarker !== 'refresh');
|
|
} //# sourceMappingURL=flight-data-helpers.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-build-id.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// This gets assigned as a side-effect during app initialization. Because it
|
|
// represents the build used to create the JS bundle, it should never change
|
|
// after being set, so we store it in a global variable.
|
|
//
|
|
// When performing RSC requests, if the incoming data has a different build ID,
|
|
// we perform an MPA navigation/refresh to load the updated build and ensure
|
|
// that the client and server in sync.
|
|
// Starts as an empty string. In practice, because setAppBuildId is called
|
|
// during initialization before hydration starts, this will always get
|
|
// reassigned to the actual build ID before it's ever needed by a navigation.
|
|
// If for some reasons it didn't, due to a bug or race condition, then on
|
|
// navigation the build comparision would fail and trigger an MPA navigation.
|
|
__turbopack_context__.s([
|
|
"getAppBuildId",
|
|
()=>getAppBuildId,
|
|
"setAppBuildId",
|
|
()=>setAppBuildId
|
|
]);
|
|
let globalBuildId = '';
|
|
function setAppBuildId(buildId) {
|
|
globalBuildId = buildId;
|
|
}
|
|
function getAppBuildId() {
|
|
return globalBuildId;
|
|
} //# sourceMappingURL=app-build-id.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/hash.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// http://www.cse.yorku.ca/~oz/hash.html
|
|
// More specifically, 32-bit hash via djbxor
|
|
// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)
|
|
// This is due to number type differences between rust for turbopack to js number types,
|
|
// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching
|
|
// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation
|
|
// as can gaurantee determinstic output from 32bit hash.
|
|
__turbopack_context__.s([
|
|
"djb2Hash",
|
|
()=>djb2Hash,
|
|
"hexHash",
|
|
()=>hexHash
|
|
]);
|
|
function djb2Hash(str) {
|
|
let hash = 5381;
|
|
for(let i = 0; i < str.length; i++){
|
|
const char = str.charCodeAt(i);
|
|
hash = (hash << 5) + hash + char & 0xffffffff;
|
|
}
|
|
return hash >>> 0;
|
|
}
|
|
function hexHash(str) {
|
|
return djb2Hash(str).toString(36).slice(0, 5);
|
|
} //# sourceMappingURL=hash.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/cache-busting-search-param.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"computeCacheBustingSearchParam",
|
|
()=>computeCacheBustingSearchParam
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$hash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/hash.js [app-ssr] (ecmascript)");
|
|
;
|
|
function computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) {
|
|
if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) {
|
|
return '';
|
|
}
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$hash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["hexHash"])([
|
|
prefetchHeader || '0',
|
|
segmentPrefetchHeader || '0',
|
|
stateTreeHeader || '0',
|
|
nextUrlHeader || '0'
|
|
].join(','));
|
|
} //# sourceMappingURL=cache-busting-search-param.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/set-cache-busting-search-param.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"setCacheBustingSearchParam",
|
|
()=>setCacheBustingSearchParam,
|
|
"setCacheBustingSearchParamWithHash",
|
|
()=>setCacheBustingSearchParamWithHash
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/cache-busting-search-param.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
const setCacheBustingSearchParam = (url, headers)=>{
|
|
const uniqueCacheKey = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["computeCacheBustingSearchParam"])(headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_PREFETCH_HEADER"]], headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_SEGMENT_PREFETCH_HEADER"]], headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_STATE_TREE_HEADER"]], headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_URL"]]);
|
|
setCacheBustingSearchParamWithHash(url, uniqueCacheKey);
|
|
};
|
|
const setCacheBustingSearchParamWithHash = (url, hash)=>{
|
|
/**
|
|
* Note that we intentionally do not use `url.searchParams.set` here:
|
|
*
|
|
* const url = new URL('https://example.com/search?q=custom%20spacing');
|
|
* url.searchParams.set('_rsc', 'abc123');
|
|
* console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123
|
|
* ^ <--- this is causing confusion
|
|
* This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but
|
|
* we want to preserve the %20 as %20 if that's what the user passed in, hence the custom
|
|
* logic below.
|
|
*/ const existingSearch = url.search;
|
|
const rawQuery = existingSearch.startsWith('?') ? existingSearch.slice(1) : existingSearch;
|
|
// Always remove any existing cache busting param and add a fresh one to ensure
|
|
// we have the correct value based on current request headers
|
|
const pairs = rawQuery.split('&').filter((pair)=>pair && !pair.startsWith(`${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]}=`));
|
|
if (hash.length > 0) {
|
|
pairs.push(`${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]}=${hash}`);
|
|
} else {
|
|
pairs.push(`${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]}`);
|
|
}
|
|
url.search = pairs.length ? `?${pairs.join('&')}` : '';
|
|
}; //# sourceMappingURL=set-cache-busting-search-param.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createFetch",
|
|
()=>createFetch,
|
|
"createFromNextReadableStream",
|
|
()=>createFromNextReadableStream,
|
|
"fetchServerResponse",
|
|
()=>fetchServerResponse
|
|
]);
|
|
// TODO: Explicitly import from client.browser
|
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$server$2d$dom$2d$turbopack$2d$client$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/app-router-headers.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$call$2d$server$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-call-server.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$find$2d$source$2d$map$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-find-source-map-url.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$flight$2d$data$2d$helpers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/flight-data-helpers.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$build$2d$id$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/app-build-id.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$set$2d$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/set-cache-busting-search-param.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/route-params.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const createFromReadableStream = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$server$2d$dom$2d$turbopack$2d$client$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createFromReadableStream"];
|
|
const createFromFetch = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$server$2d$dom$2d$turbopack$2d$client$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createFromFetch"];
|
|
let createDebugChannel;
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
function doMpaNavigation(url) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["urlToUrlWithoutFlightMarker"])(new URL(url, location.origin)).toString();
|
|
}
|
|
let abortController = new AbortController();
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
async function fetchServerResponse(url, options) {
|
|
const { flightRouterState, nextUrl, prefetchKind } = options;
|
|
const headers = {
|
|
// Enable flight response
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RSC_HEADER"]]: '1',
|
|
// Provide the current router state
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_STATE_TREE_HEADER"]]: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$flight$2d$data$2d$helpers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["prepareFlightRouterStateForRequest"])(flightRouterState, options.isHmrRefresh)
|
|
};
|
|
/**
|
|
* Three cases:
|
|
* - `prefetchKind` is `undefined`, it means it's a normal navigation, so we want to prefetch the page data fully
|
|
* - `prefetchKind` is `full` - we want to prefetch the whole page so same as above
|
|
* - `prefetchKind` is `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully
|
|
*/ if (prefetchKind === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PrefetchKind"].AUTO) {
|
|
headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_PREFETCH_HEADER"]] = '1';
|
|
}
|
|
if (("TURBOPACK compile-time value", "development") === 'development' && options.isHmrRefresh) {
|
|
headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_HMR_REFRESH_HEADER"]] = '1';
|
|
}
|
|
if (nextUrl) {
|
|
headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_URL"]] = nextUrl;
|
|
}
|
|
// In static export mode, we need to modify the URL to request the .txt file,
|
|
// but we should preserve the original URL for the canonical URL and error handling.
|
|
const originalUrl = url;
|
|
try {
|
|
// When creating a "temporary" prefetch (the "on-demand" prefetch that gets created on navigation, if one doesn't exist)
|
|
// we send the request with a "high" priority as it's in response to a user interaction that could be blocking a transition.
|
|
// Otherwise, all other prefetches are sent with a "low" priority.
|
|
// We use "auto" for in all other cases to match the existing default, as this function is shared outside of prefetching.
|
|
const fetchPriority = prefetchKind ? prefetchKind === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PrefetchKind"].TEMPORARY ? 'high' : 'low' : 'auto';
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// Typically, during a navigation, we decode the response using Flight's
|
|
// `createFromFetch` API, which accepts a `fetch` promise.
|
|
// TODO: Remove this check once the old PPR flag is removed
|
|
const isLegacyPPR = ("TURBOPACK compile-time value", false) && !("TURBOPACK compile-time value", false);
|
|
const shouldImmediatelyDecode = !isLegacyPPR;
|
|
const res = await createFetch(url, headers, fetchPriority, shouldImmediatelyDecode, abortController.signal);
|
|
const responseUrl = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["urlToUrlWithoutFlightMarker"])(new URL(res.url));
|
|
const canonicalUrl = res.redirected ? responseUrl : originalUrl;
|
|
const contentType = res.headers.get('content-type') || '';
|
|
const interception = !!res.headers.get('vary')?.includes(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_URL"]);
|
|
const postponed = !!res.headers.get(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_DID_POSTPONE_HEADER"]);
|
|
const staleTimeHeaderSeconds = res.headers.get(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_ROUTER_STALE_TIME_HEADER"]);
|
|
const staleTime = staleTimeHeaderSeconds !== null ? parseInt(staleTimeHeaderSeconds, 10) * 1000 : -1;
|
|
let isFlightResponse = contentType.startsWith(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RSC_CONTENT_TYPE_HEADER"]);
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// If fetch returns something different than flight response handle it like a mpa navigation
|
|
// If the fetch was not 200, we also handle it like a mpa navigation
|
|
if (!isFlightResponse || !res.ok || !res.body) {
|
|
// in case the original URL came with a hash, preserve it before redirecting to the new URL
|
|
if (url.hash) {
|
|
responseUrl.hash = url.hash;
|
|
}
|
|
return doMpaNavigation(responseUrl.toString());
|
|
}
|
|
// We may navigate to a page that requires a different Webpack runtime.
|
|
// In prod, every page will have the same Webpack runtime.
|
|
// In dev, the Webpack runtime is minimal for each page.
|
|
// We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.
|
|
// TODO: This needs to happen in the Flight Client.
|
|
// Or Webpack needs to include the runtime update in the Flight response as
|
|
// a blocking script.
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
let flightResponsePromise = res.flightResponse;
|
|
if (flightResponsePromise === null) {
|
|
// Typically, `createFetch` would have already started decoding the
|
|
// Flight response. If it hasn't, though, we need to decode it now.
|
|
// TODO: This should only be reachable if legacy PPR is enabled (i.e. PPR
|
|
// without Cache Components). Remove this branch once legacy PPR
|
|
// is deleted.
|
|
const flightStream = postponed ? createUnclosingPrefetchStream(res.body) : res.body;
|
|
flightResponsePromise = createFromNextReadableStream(flightStream, headers);
|
|
}
|
|
const flightResponse = await flightResponsePromise;
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$build$2d$id$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAppBuildId"])() !== flightResponse.b) {
|
|
return doMpaNavigation(res.url);
|
|
}
|
|
const normalizedFlightData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$flight$2d$data$2d$helpers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["normalizeFlightData"])(flightResponse.f);
|
|
if (typeof normalizedFlightData === 'string') {
|
|
return doMpaNavigation(normalizedFlightData);
|
|
}
|
|
return {
|
|
flightData: normalizedFlightData,
|
|
canonicalUrl: canonicalUrl,
|
|
renderedSearch: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getRenderedSearch"])(res),
|
|
couldBeIntercepted: interception,
|
|
prerendered: flightResponse.S,
|
|
postponed,
|
|
staleTime,
|
|
debugInfo: flightResponsePromise._debugInfo ?? null
|
|
};
|
|
} catch (err) {
|
|
if (!abortController.signal.aborted) {
|
|
console.error(`Failed to fetch RSC payload for ${originalUrl}. Falling back to browser navigation.`, err);
|
|
}
|
|
// If fetch fails handle it like a mpa navigation
|
|
// TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.
|
|
// See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.
|
|
return originalUrl.toString();
|
|
}
|
|
}
|
|
async function createFetch(url, headers, fetchPriority, shouldImmediatelyDecode, signal) {
|
|
// TODO: In output: "export" mode, the headers do nothing. Omit them (and the
|
|
// cache busting search param) from the request so they're
|
|
// maximally cacheable.
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if (self.__next_r) {
|
|
headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_HTML_REQUEST_ID_HEADER"]] = self.__next_r;
|
|
}
|
|
// Create a new request ID for the server action request. The server uses
|
|
// this to tag debug information sent via WebSocket to the client, which
|
|
// then routes those chunks to the debug channel associated with this ID.
|
|
headers[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_REQUEST_ID_HEADER"]] = crypto.getRandomValues(new Uint32Array(1))[0].toString(16);
|
|
}
|
|
const fetchOptions = {
|
|
// Backwards compat for older browsers. `same-origin` is the default in modern browsers.
|
|
credentials: 'same-origin',
|
|
headers,
|
|
priority: fetchPriority || undefined,
|
|
signal
|
|
};
|
|
// `fetchUrl` is slightly different from `url` because we add a cache-busting
|
|
// search param to it. This should not leak outside of this function, so we
|
|
// track them separately.
|
|
let fetchUrl = new URL(url);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$set$2d$cache$2d$busting$2d$search$2d$param$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["setCacheBustingSearchParam"])(fetchUrl, headers);
|
|
let fetchPromise = fetch(fetchUrl, fetchOptions);
|
|
// Immediately pass the fetch promise to the Flight client so that the debug
|
|
// info includes the latency from the client to the server. The internal timer
|
|
// in React starts as soon as `createFromFetch` is called.
|
|
//
|
|
// The only case where we don't do this is during a prefetch, because we have
|
|
// to do some extra processing of the response stream (see
|
|
// `createUnclosingPrefetchStream`). But this is fine, because a top-level
|
|
// prefetch response never blocks a navigation; if it hasn't already been
|
|
// written into the cache by the time the navigation happens, the router will
|
|
// go straight to a dynamic request.
|
|
let flightResponsePromise = shouldImmediatelyDecode ? createFromNextFetch(fetchPromise, headers) : null;
|
|
let browserResponse = await fetchPromise;
|
|
// If the server responds with a redirect (e.g. 307), and the redirected
|
|
// location does not contain the cache busting search param set in the
|
|
// original request, the response is likely invalid — when following the
|
|
// redirect, the browser forwards the request headers, but since the cache
|
|
// busting search param is missing, the server will reject the request due to
|
|
// a mismatch.
|
|
//
|
|
// Ideally, we would be able to intercept the redirect response and perform it
|
|
// manually, instead of letting the browser automatically follow it, but this
|
|
// is not allowed by the fetch API.
|
|
//
|
|
// So instead, we must "replay" the redirect by fetching the new location
|
|
// again, but this time we'll append the cache busting search param to prevent
|
|
// a mismatch.
|
|
//
|
|
// TODO: We can optimize Next.js's built-in middleware APIs by returning a
|
|
// custom status code, to prevent the browser from automatically following it.
|
|
//
|
|
// This does not affect Server Action-based redirects; those are encoded
|
|
// differently, as part of the Flight body. It only affects redirects that
|
|
// occur in a middleware or a third-party proxy.
|
|
let redirected = browserResponse.redirected;
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// Remove the cache busting search param from the response URL, to prevent it
|
|
// from leaking outside of this function.
|
|
const responseUrl = new URL(browserResponse.url, fetchUrl);
|
|
responseUrl.searchParams.delete(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$app$2d$router$2d$headers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NEXT_RSC_UNION_QUERY"]);
|
|
const rscResponse = {
|
|
url: responseUrl.href,
|
|
// This is true if any redirects occurred, either automatically by the
|
|
// browser, or manually by us. So it's different from
|
|
// `browserResponse.redirected`, which only tells us whether the browser
|
|
// followed a redirect, and only for the last response in the chain.
|
|
redirected,
|
|
// These can be copied from the last browser response we received. We
|
|
// intentionally only expose the subset of fields that are actually used
|
|
// elsewhere in the codebase.
|
|
ok: browserResponse.ok,
|
|
headers: browserResponse.headers,
|
|
body: browserResponse.body,
|
|
status: browserResponse.status,
|
|
// This is the exact promise returned by `createFromFetch`. It contains
|
|
// debug information that we need to transfer to any derived promises that
|
|
// are later rendered by React.
|
|
flightResponse: flightResponsePromise
|
|
};
|
|
return rscResponse;
|
|
}
|
|
function createFromNextReadableStream(flightStream, requestHeaders) {
|
|
return createFromReadableStream(flightStream, {
|
|
callServer: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$call$2d$server$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["callServer"],
|
|
findSourceMapURL: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$find$2d$source$2d$map$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["findSourceMapURL"],
|
|
debugChannel: createDebugChannel && createDebugChannel(requestHeaders)
|
|
});
|
|
}
|
|
function createFromNextFetch(promiseForResponse, requestHeaders) {
|
|
return createFromFetch(promiseForResponse, {
|
|
callServer: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$call$2d$server$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["callServer"],
|
|
findSourceMapURL: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$app$2d$find$2d$source$2d$map$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["findSourceMapURL"],
|
|
debugChannel: createDebugChannel && createDebugChannel(requestHeaders)
|
|
});
|
|
}
|
|
function createUnclosingPrefetchStream(originalFlightStream) {
|
|
// When PPR is enabled, prefetch streams may contain references that never
|
|
// resolve, because that's how we encode dynamic data access. In the decoded
|
|
// object returned by the Flight client, these are reified into hanging
|
|
// promises that suspend during render, which is effectively what we want.
|
|
// The UI resolves when it switches to the dynamic data stream
|
|
// (via useDeferredValue(dynamic, static)).
|
|
//
|
|
// However, the Flight implementation currently errors if the server closes
|
|
// the response before all the references are resolved. As a cheat to work
|
|
// around this, we wrap the original stream in a new stream that never closes,
|
|
// and therefore doesn't error.
|
|
const reader = originalFlightStream.getReader();
|
|
return new ReadableStream({
|
|
async pull (controller) {
|
|
while(true){
|
|
const { done, value } = await reader.read();
|
|
if (!done) {
|
|
// Pass to the target stream and keep consuming the Flight response
|
|
// from the server.
|
|
controller.enqueue(value);
|
|
continue;
|
|
}
|
|
// The server stream has closed. Exit, but intentionally do not close
|
|
// the target stream.
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
} //# sourceMappingURL=fetch-server-response.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unresolved-thenable.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* Create a "Thenable" that does not resolve. This is used to suspend indefinitely when data is not available yet.
|
|
*/ __turbopack_context__.s([
|
|
"unresolvedThenable",
|
|
()=>unresolvedThenable
|
|
]);
|
|
const unresolvedThenable = {
|
|
then: ()=>{}
|
|
}; //# sourceMappingURL=unresolved-thenable.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation-untracked.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useUntrackedPathname",
|
|
()=>useUntrackedPathname
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
/**
|
|
* This checks to see if the current render has any unknown route parameters that
|
|
* would cause the pathname to be dynamic. It's used to trigger a different
|
|
* render path in the error boundary.
|
|
*
|
|
* @returns true if there are any unknown route parameters, false otherwise
|
|
*/ function hasFallbackRouteParams() {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// AsyncLocalStorage should not be included in the client bundle.
|
|
const { workUnitAsyncStorage } = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)");
|
|
const workUnitStore = workUnitAsyncStorage.getStore();
|
|
if (!workUnitStore) return false;
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
return fallbackParams ? fallbackParams.size > 0 : false;
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'prerender-runtime':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
return false;
|
|
}
|
|
//TURBOPACK unreachable
|
|
;
|
|
}
|
|
function useUntrackedPathname() {
|
|
// If there are any unknown route parameters we would typically throw
|
|
// an error, but this internal method allows us to return a null value instead
|
|
// for components that do not propagate the pathname to the static shell (like
|
|
// the error boundary).
|
|
if (hasFallbackRouteParams()) {
|
|
return null;
|
|
}
|
|
// This shouldn't cause any issues related to conditional rendering because
|
|
// the environment will be consistent for the render.
|
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PathnameContext"]);
|
|
} //# sourceMappingURL=navigation-untracked.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"HTTPAccessErrorStatus",
|
|
()=>HTTPAccessErrorStatus,
|
|
"HTTP_ERROR_FALLBACK_ERROR_CODE",
|
|
()=>HTTP_ERROR_FALLBACK_ERROR_CODE,
|
|
"getAccessFallbackErrorTypeByStatus",
|
|
()=>getAccessFallbackErrorTypeByStatus,
|
|
"getAccessFallbackHTTPStatus",
|
|
()=>getAccessFallbackHTTPStatus,
|
|
"isHTTPAccessFallbackError",
|
|
()=>isHTTPAccessFallbackError
|
|
]);
|
|
const HTTPAccessErrorStatus = {
|
|
NOT_FOUND: 404,
|
|
FORBIDDEN: 403,
|
|
UNAUTHORIZED: 401
|
|
};
|
|
const ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));
|
|
const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';
|
|
function isHTTPAccessFallbackError(error) {
|
|
if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {
|
|
return false;
|
|
}
|
|
const [prefix, httpStatus] = error.digest.split(';');
|
|
return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));
|
|
}
|
|
function getAccessFallbackHTTPStatus(error) {
|
|
const httpStatus = error.digest.split(';')[1];
|
|
return Number(httpStatus);
|
|
}
|
|
function getAccessFallbackErrorTypeByStatus(status) {
|
|
switch(status){
|
|
case 401:
|
|
return 'unauthorized';
|
|
case 403:
|
|
return 'forbidden';
|
|
case 404:
|
|
return 'not-found';
|
|
default:
|
|
return;
|
|
}
|
|
} //# sourceMappingURL=http-access-fallback.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-status-code.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"RedirectStatusCode",
|
|
()=>RedirectStatusCode
|
|
]);
|
|
var RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {
|
|
RedirectStatusCode[RedirectStatusCode["SeeOther"] = 303] = "SeeOther";
|
|
RedirectStatusCode[RedirectStatusCode["TemporaryRedirect"] = 307] = "TemporaryRedirect";
|
|
RedirectStatusCode[RedirectStatusCode["PermanentRedirect"] = 308] = "PermanentRedirect";
|
|
return RedirectStatusCode;
|
|
}({}); //# sourceMappingURL=redirect-status-code.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-error.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"REDIRECT_ERROR_CODE",
|
|
()=>REDIRECT_ERROR_CODE,
|
|
"RedirectType",
|
|
()=>RedirectType,
|
|
"isRedirectError",
|
|
()=>isRedirectError
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-status-code.js [app-ssr] (ecmascript)");
|
|
;
|
|
const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';
|
|
var RedirectType = /*#__PURE__*/ function(RedirectType) {
|
|
RedirectType["push"] = "push";
|
|
RedirectType["replace"] = "replace";
|
|
return RedirectType;
|
|
}({});
|
|
function isRedirectError(error) {
|
|
if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {
|
|
return false;
|
|
}
|
|
const digest = error.digest.split(';');
|
|
const [errorCode, type] = digest;
|
|
const destination = digest.slice(2, -2).join(';');
|
|
const status = digest.at(-2);
|
|
const statusCode = Number(status);
|
|
return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectStatusCode"];
|
|
} //# sourceMappingURL=redirect-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/is-next-router-error.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"isNextRouterError",
|
|
()=>isNextRouterError
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function isNextRouterError(error) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isRedirectError"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTTPAccessFallbackError"])(error);
|
|
} //# sourceMappingURL=is-next-router-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/nav-failure-handler.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"handleHardNavError",
|
|
()=>handleHardNavError,
|
|
"useNavFailureHandler",
|
|
()=>useNavFailureHandler
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$href$2d$from$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/create-href-from-url.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function handleHardNavError(error) {
|
|
if (error && ("TURBOPACK compile-time value", "undefined") !== 'undefined' && window.next.__pendingUrl && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$href$2d$from$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createHrefFromUrl"])(new URL(window.location.href)) !== (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$href$2d$from$2d$url$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createHrefFromUrl"])(window.next.__pendingUrl)) //TURBOPACK unreachable
|
|
;
|
|
return false;
|
|
}
|
|
function useNavFailureHandler() {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
} //# sourceMappingURL=nav-failure-handler.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/handle-isr-error.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"HandleISRError",
|
|
()=>HandleISRError
|
|
]);
|
|
const workAsyncStorage = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)").workAsyncStorage : "TURBOPACK unreachable";
|
|
function HandleISRError({ error }) {
|
|
if (workAsyncStorage) {
|
|
const store = workAsyncStorage.getStore();
|
|
if (store?.isStaticGeneration) {
|
|
if (error) {
|
|
console.error(error);
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
return null;
|
|
} //# sourceMappingURL=handle-isr-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/html-bots.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// This regex contains the bots that we need to do a blocking render for and can't safely stream the response
|
|
// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent.
|
|
// Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google)
|
|
// as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool)
|
|
__turbopack_context__.s([
|
|
"HTML_LIMITED_BOT_UA_RE",
|
|
()=>HTML_LIMITED_BOT_UA_RE
|
|
]);
|
|
const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; //# sourceMappingURL=html-bots.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js [app-ssr] (ecmascript) <locals>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"HTML_LIMITED_BOT_UA_RE_STRING",
|
|
()=>HTML_LIMITED_BOT_UA_RE_STRING,
|
|
"getBotType",
|
|
()=>getBotType,
|
|
"isBot",
|
|
()=>isBot
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$html$2d$bots$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/html-bots.js [app-ssr] (ecmascript)");
|
|
;
|
|
// Bot crawler that will spin up a headless browser and execute JS.
|
|
// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers.
|
|
// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
|
|
// This regex specifically matches "Googlebot" but NOT "Mediapartners-Google", "AdsBot-Google", etc.
|
|
const HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i;
|
|
const HTML_LIMITED_BOT_UA_RE_STRING = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$html$2d$bots$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTML_LIMITED_BOT_UA_RE"].source;
|
|
;
|
|
function isDomBotUA(userAgent) {
|
|
return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent);
|
|
}
|
|
function isHtmlLimitedBotUA(userAgent) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$html$2d$bots$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTML_LIMITED_BOT_UA_RE"].test(userAgent);
|
|
}
|
|
function isBot(userAgent) {
|
|
return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent);
|
|
}
|
|
function getBotType(userAgent) {
|
|
if (isDomBotUA(userAgent)) {
|
|
return 'dom';
|
|
}
|
|
if (isHtmlLimitedBotUA(userAgent)) {
|
|
return 'html';
|
|
}
|
|
return undefined;
|
|
} //# sourceMappingURL=is-bot.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/error-boundary.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ErrorBoundary",
|
|
()=>ErrorBoundary,
|
|
"ErrorBoundaryHandler",
|
|
()=>ErrorBoundaryHandler
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2d$untracked$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation-untracked.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$is$2d$next$2d$router$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/is-next-router-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$nav$2d$failure$2d$handler$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/nav-failure-handler.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$handle$2d$isr$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/handle-isr-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$is$2d$bot$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/is-bot.js [app-ssr] (ecmascript) <locals>");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const isBotUserAgent = ("TURBOPACK compile-time value", "undefined") !== 'undefined' && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$is$2d$bot$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["isBot"])(window.navigator.userAgent);
|
|
class ErrorBoundaryHandler extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].Component {
|
|
constructor(props){
|
|
super(props), this.reset = ()=>{
|
|
this.setState({
|
|
error: null
|
|
});
|
|
};
|
|
this.state = {
|
|
error: null,
|
|
previousPathname: this.props.pathname
|
|
};
|
|
}
|
|
static getDerivedStateFromError(error) {
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$is$2d$next$2d$router$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isNextRouterError"])(error)) {
|
|
// Re-throw if an expected internal Next.js router error occurs
|
|
// this means it should be handled by a different boundary (such as a NotFound boundary in a parent segment)
|
|
throw error;
|
|
}
|
|
return {
|
|
error
|
|
};
|
|
}
|
|
static getDerivedStateFromProps(props, state) {
|
|
const { error } = state;
|
|
// if we encounter an error while
|
|
// a navigation is pending we shouldn't render
|
|
// the error boundary and instead should fallback
|
|
// to a hard navigation to attempt recovering
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
/**
|
|
* Handles reset of the error boundary when a navigation happens.
|
|
* Ensures the error boundary does not stay enabled when navigating to a new page.
|
|
* Approach of setState in render is safe as it checks the previous pathname and then overrides
|
|
* it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders
|
|
*/ if (props.pathname !== state.previousPathname && state.error) {
|
|
return {
|
|
error: null,
|
|
previousPathname: props.pathname
|
|
};
|
|
}
|
|
return {
|
|
error: state.error,
|
|
previousPathname: props.pathname
|
|
};
|
|
}
|
|
// Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.
|
|
render() {
|
|
//When it's bot request, segment level error boundary will keep rendering the children,
|
|
// the final error will be caught by the root error boundary and determine wether need to apply graceful degrade.
|
|
if (this.state.error && !isBotUserAgent) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$handle$2d$isr$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HandleISRError"], {
|
|
error: this.state.error
|
|
}),
|
|
this.props.errorStyles,
|
|
this.props.errorScripts,
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(this.props.errorComponent, {
|
|
error: this.state.error,
|
|
reset: this.reset
|
|
})
|
|
]
|
|
});
|
|
}
|
|
return this.props.children;
|
|
}
|
|
}
|
|
function ErrorBoundary({ errorComponent, errorStyles, errorScripts, children }) {
|
|
// When we're rendering the missing params shell, this will return null. This
|
|
// is because we won't be rendering any not found boundaries or error
|
|
// boundaries for the missing params shell. When this runs on the client
|
|
// (where these errors can occur), we will get the correct pathname.
|
|
const pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2d$untracked$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useUntrackedPathname"])();
|
|
if (errorComponent) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(ErrorBoundaryHandler, {
|
|
pathname: pathname,
|
|
errorComponent: errorComponent,
|
|
errorStyles: errorStyles,
|
|
errorScripts: errorScripts,
|
|
children: children
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: children
|
|
});
|
|
} //# sourceMappingURL=error-boundary.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/match-segments.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"matchSegment",
|
|
()=>matchSegment
|
|
]);
|
|
const matchSegment = (existingSegment, segment)=>{
|
|
// segment is either Array or string
|
|
if (typeof existingSegment === 'string') {
|
|
if (typeof segment === 'string') {
|
|
// Common case: segment is just a string
|
|
return existingSegment === segment;
|
|
}
|
|
return false;
|
|
}
|
|
if (typeof segment === 'string') {
|
|
return false;
|
|
}
|
|
return existingSegment[0] === segment[0] && existingSegment[1] === segment[1];
|
|
}; //# sourceMappingURL=match-segments.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/warn-once.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"warnOnce",
|
|
()=>warnOnce
|
|
]);
|
|
let warnOnce = (_)=>{};
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const warnings = new Set();
|
|
warnOnce = (msg)=>{
|
|
if (!warnings.has(msg)) {
|
|
console.warn(msg);
|
|
}
|
|
warnings.add(msg);
|
|
};
|
|
}
|
|
;
|
|
//# sourceMappingURL=warn-once.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/disable-smooth-scroll.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"disableSmoothScrollDuringRouteTransition",
|
|
()=>disableSmoothScrollDuringRouteTransition
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$warn$2d$once$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/warn-once.js [app-ssr] (ecmascript)");
|
|
;
|
|
function disableSmoothScrollDuringRouteTransition(fn, options = {}) {
|
|
// if only the hash is changed, we don't need to disable smooth scrolling
|
|
// we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX
|
|
if (options.onlyHashChange) {
|
|
fn();
|
|
return;
|
|
}
|
|
const htmlElement = document.documentElement;
|
|
const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';
|
|
if (!hasDataAttribute) {
|
|
// Warn if smooth scrolling is detected but no data attribute is present
|
|
if (("TURBOPACK compile-time value", "development") === 'development' && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$warn$2d$once$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["warnOnce"])('Detected `scroll-behavior: smooth` on the `<html>` element. To disable smooth scrolling during route transitions, ' + 'add `data-scroll-behavior="smooth"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');
|
|
}
|
|
// No smooth scrolling configured, run directly without style manipulation
|
|
fn();
|
|
return;
|
|
}
|
|
// Proceed with temporarily disabling smooth scrolling
|
|
const existing = htmlElement.style.scrollBehavior;
|
|
htmlElement.style.scrollBehavior = 'auto';
|
|
if (!options.dontForceLayout) {
|
|
// In Chrome-based browsers we need to force reflow before calling `scrollTo`.
|
|
// Otherwise it will not pickup the change in scrollBehavior
|
|
// More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042
|
|
htmlElement.getClientRects();
|
|
}
|
|
fn();
|
|
htmlElement.style.scrollBehavior = existing;
|
|
} //# sourceMappingURL=disable-smooth-scroll.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* ReadonlyURLSearchParams implementation shared between client and server.
|
|
* This file is intentionally not marked as 'use client' or 'use server'
|
|
* so it can be imported by both environments.
|
|
*/ /** @internal */ __turbopack_context__.s([
|
|
"ReadonlyURLSearchParams",
|
|
()=>ReadonlyURLSearchParams
|
|
]);
|
|
class ReadonlyURLSearchParamsError extends Error {
|
|
constructor(){
|
|
super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams');
|
|
}
|
|
}
|
|
class ReadonlyURLSearchParams extends URLSearchParams {
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
/** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() {
|
|
throw new ReadonlyURLSearchParamsError();
|
|
}
|
|
} //# sourceMappingURL=readonly-url-search-params.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unrecognized-action-error.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"UnrecognizedActionError",
|
|
()=>UnrecognizedActionError,
|
|
"unstable_isUnrecognizedActionError",
|
|
()=>unstable_isUnrecognizedActionError
|
|
]);
|
|
class UnrecognizedActionError extends Error {
|
|
constructor(...args){
|
|
super(...args);
|
|
this.name = 'UnrecognizedActionError';
|
|
}
|
|
}
|
|
function unstable_isUnrecognizedActionError(error) {
|
|
return !!(error && typeof error === 'object' && error instanceof UnrecognizedActionError);
|
|
} //# sourceMappingURL=unrecognized-action-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"getRedirectError",
|
|
()=>getRedirectError,
|
|
"getRedirectStatusCodeFromError",
|
|
()=>getRedirectStatusCodeFromError,
|
|
"getRedirectTypeFromError",
|
|
()=>getRedirectTypeFromError,
|
|
"getURLFromRedirectError",
|
|
()=>getURLFromRedirectError,
|
|
"permanentRedirect",
|
|
()=>permanentRedirect,
|
|
"redirect",
|
|
()=>redirect
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-status-code.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
const actionAsyncStorage = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[externals]/next/dist/server/app-render/action-async-storage.external.js [external] (next/dist/server/app-render/action-async-storage.external.js, cjs)").actionAsyncStorage : "TURBOPACK unreachable";
|
|
function getRedirectError(url, type, statusCode = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectStatusCode"].TemporaryRedirect) {
|
|
const error = Object.defineProperty(new Error(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["REDIRECT_ERROR_CODE"]), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = `${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["REDIRECT_ERROR_CODE"]};${type};${url};${statusCode};`;
|
|
return error;
|
|
}
|
|
function redirect(/** The URL to redirect to */ url, type) {
|
|
type ??= actionAsyncStorage?.getStore()?.isAction ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectType"].push : __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectType"].replace;
|
|
throw getRedirectError(url, type, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectStatusCode"].TemporaryRedirect);
|
|
}
|
|
function permanentRedirect(/** The URL to redirect to */ url, type = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectType"].replace) {
|
|
throw getRedirectError(url, type, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$status$2d$code$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectStatusCode"].PermanentRedirect);
|
|
}
|
|
function getURLFromRedirectError(error) {
|
|
if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isRedirectError"])(error)) return null;
|
|
// Slices off the beginning of the digest that contains the code and the
|
|
// separating ';'.
|
|
return error.digest.split(';').slice(2, -2).join(';');
|
|
}
|
|
function getRedirectTypeFromError(error) {
|
|
if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isRedirectError"])(error)) {
|
|
throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", {
|
|
value: "E260",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return error.digest.split(';', 2)[1];
|
|
}
|
|
function getRedirectStatusCodeFromError(error) {
|
|
if (!(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isRedirectError"])(error)) {
|
|
throw Object.defineProperty(new Error('Not a redirect error'), "__NEXT_ERROR_CODE", {
|
|
value: "E260",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return Number(error.digest.split(';').at(-2));
|
|
} //# sourceMappingURL=redirect.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/not-found.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"notFound",
|
|
()=>notFound
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
;
|
|
/**
|
|
* This function allows you to render the [not-found.js file](https://nextjs.org/docs/app/api-reference/file-conventions/not-found)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `notFound()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
* - In a Server Component, this will insert a `<meta name="robots" content="noindex" />` meta tag and set the status code to 404.
|
|
* - In a Route Handler or Server Action, it will serve a 404 to the caller.
|
|
*
|
|
* Read more: [Next.js Docs: `notFound`](https://nextjs.org/docs/app/api-reference/functions/not-found)
|
|
*/ const DIGEST = `${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTP_ERROR_FALLBACK_ERROR_CODE"]};404`;
|
|
function notFound() {
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
} //# sourceMappingURL=not-found.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/forbidden.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"forbidden",
|
|
()=>forbidden
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
;
|
|
// TODO: Add `forbidden` docs
|
|
/**
|
|
* @experimental
|
|
* This function allows you to render the [forbidden.js file](https://nextjs.org/docs/app/api-reference/file-conventions/forbidden)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `forbidden()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
* Read more: [Next.js Docs: `forbidden`](https://nextjs.org/docs/app/api-reference/functions/forbidden)
|
|
*/ const DIGEST = `${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTP_ERROR_FALLBACK_ERROR_CODE"]};403`;
|
|
function forbidden() {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
throw Object.defineProperty(new Error(`\`forbidden()\` is experimental and only allowed to be enabled when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
|
|
value: "E488",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
} //# sourceMappingURL=forbidden.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unauthorized.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"unauthorized",
|
|
()=>unauthorized
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
;
|
|
// TODO: Add `unauthorized` docs
|
|
/**
|
|
* @experimental
|
|
* This function allows you to render the [unauthorized.js file](https://nextjs.org/docs/app/api-reference/file-conventions/unauthorized)
|
|
* within a route segment as well as inject a tag.
|
|
*
|
|
* `unauthorized()` can be used in
|
|
* [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components),
|
|
* [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and
|
|
* [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations).
|
|
*
|
|
*
|
|
* Read more: [Next.js Docs: `unauthorized`](https://nextjs.org/docs/app/api-reference/functions/unauthorized)
|
|
*/ const DIGEST = `${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTP_ERROR_FALLBACK_ERROR_CODE"]};401`;
|
|
function unauthorized() {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
throw Object.defineProperty(new Error(`\`unauthorized()\` is experimental and only allowed to be used when \`experimental.authInterrupts\` is enabled.`), "__NEXT_ERROR_CODE", {
|
|
value: "E411",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const error = Object.defineProperty(new Error(DIGEST), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = DIGEST;
|
|
throw error;
|
|
} //# sourceMappingURL=unauthorized.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"isHangingPromiseRejectionError",
|
|
()=>isHangingPromiseRejectionError,
|
|
"makeDevtoolsIOAwarePromise",
|
|
()=>makeDevtoolsIOAwarePromise,
|
|
"makeHangingPromise",
|
|
()=>makeHangingPromise
|
|
]);
|
|
function isHangingPromiseRejectionError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err)) {
|
|
return false;
|
|
}
|
|
return err.digest === HANGING_PROMISE_REJECTION;
|
|
}
|
|
const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION';
|
|
class HangingPromiseRejectionError extends Error {
|
|
constructor(route, expression){
|
|
super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION;
|
|
}
|
|
}
|
|
const abortListenersBySignal = new WeakMap();
|
|
function makeHangingPromise(signal, route, expression) {
|
|
if (signal.aborted) {
|
|
return Promise.reject(new HangingPromiseRejectionError(route, expression));
|
|
} else {
|
|
const hangingPromise = new Promise((_, reject)=>{
|
|
const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression));
|
|
let currentListeners = abortListenersBySignal.get(signal);
|
|
if (currentListeners) {
|
|
currentListeners.push(boundRejection);
|
|
} else {
|
|
const listeners = [
|
|
boundRejection
|
|
];
|
|
abortListenersBySignal.set(signal, listeners);
|
|
signal.addEventListener('abort', ()=>{
|
|
for(let i = 0; i < listeners.length; i++){
|
|
listeners[i]();
|
|
}
|
|
}, {
|
|
once: true
|
|
});
|
|
}
|
|
});
|
|
// We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so
|
|
// we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct
|
|
// your own promise out of it you'll need to ensure you handle the error when it rejects.
|
|
hangingPromise.catch(ignoreReject);
|
|
return hangingPromise;
|
|
}
|
|
}
|
|
function ignoreReject() {}
|
|
function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) {
|
|
if (requestStore.stagedRendering) {
|
|
// We resolve each stage in a timeout, so React DevTools will pick this up as IO.
|
|
return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying);
|
|
}
|
|
// in React DevTools if we resolve in a setTimeout we will observe
|
|
// the promise resolution as something that can suspend a boundary or root.
|
|
return new Promise((resolve)=>{
|
|
// Must use setTimeout to be considered IO React DevTools. setImmediate will not work.
|
|
setTimeout(()=>{
|
|
resolve(underlying);
|
|
}, 0);
|
|
});
|
|
} //# sourceMappingURL=dynamic-rendering-utils.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/router-utils/is-postpone.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"isPostpone",
|
|
()=>isPostpone
|
|
]);
|
|
const REACT_POSTPONE_TYPE = Symbol.for('react.postpone');
|
|
function isPostpone(error) {
|
|
return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE;
|
|
} //# sourceMappingURL=is-postpone.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// This has to be a shared module which is shared between client component error boundary and dynamic component
|
|
__turbopack_context__.s([
|
|
"BailoutToCSRError",
|
|
()=>BailoutToCSRError,
|
|
"isBailoutToCSRError",
|
|
()=>isBailoutToCSRError
|
|
]);
|
|
const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';
|
|
class BailoutToCSRError extends Error {
|
|
constructor(reason){
|
|
super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR;
|
|
}
|
|
}
|
|
function isBailoutToCSRError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err)) {
|
|
return false;
|
|
}
|
|
return err.digest === BAILOUT_TO_CSR;
|
|
} //# sourceMappingURL=bailout-to-csr.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/hooks-server-context.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"DynamicServerError",
|
|
()=>DynamicServerError,
|
|
"isDynamicServerError",
|
|
()=>isDynamicServerError
|
|
]);
|
|
const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE';
|
|
class DynamicServerError extends Error {
|
|
constructor(description){
|
|
super(`Dynamic server usage: ${description}`), this.description = description, this.digest = DYNAMIC_ERROR_CODE;
|
|
}
|
|
}
|
|
function isDynamicServerError(err) {
|
|
if (typeof err !== 'object' || err === null || !('digest' in err) || typeof err.digest !== 'string') {
|
|
return false;
|
|
}
|
|
return err.digest === DYNAMIC_ERROR_CODE;
|
|
} //# sourceMappingURL=hooks-server-context.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/static-generation-bailout.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"StaticGenBailoutError",
|
|
()=>StaticGenBailoutError,
|
|
"isStaticGenBailoutError",
|
|
()=>isStaticGenBailoutError
|
|
]);
|
|
const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT';
|
|
class StaticGenBailoutError extends Error {
|
|
constructor(...args){
|
|
super(...args), this.code = NEXT_STATIC_GEN_BAILOUT;
|
|
}
|
|
}
|
|
function isStaticGenBailoutError(error) {
|
|
if (typeof error !== 'object' || error === null || !('code' in error)) {
|
|
return false;
|
|
}
|
|
return error.code === NEXT_STATIC_GEN_BAILOUT;
|
|
} //# sourceMappingURL=static-generation-bailout.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-constants.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"METADATA_BOUNDARY_NAME",
|
|
()=>METADATA_BOUNDARY_NAME,
|
|
"OUTLET_BOUNDARY_NAME",
|
|
()=>OUTLET_BOUNDARY_NAME,
|
|
"ROOT_LAYOUT_BOUNDARY_NAME",
|
|
()=>ROOT_LAYOUT_BOUNDARY_NAME,
|
|
"VIEWPORT_BOUNDARY_NAME",
|
|
()=>VIEWPORT_BOUNDARY_NAME
|
|
]);
|
|
const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__';
|
|
const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__';
|
|
const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__';
|
|
const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'; //# sourceMappingURL=boundary-constants.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* Schedules a function to be called on the next tick after the other promises
|
|
* have been resolved.
|
|
*
|
|
* @param cb the function to schedule
|
|
*/ __turbopack_context__.s([
|
|
"atLeastOneTask",
|
|
()=>atLeastOneTask,
|
|
"scheduleImmediate",
|
|
()=>scheduleImmediate,
|
|
"scheduleOnNextTick",
|
|
()=>scheduleOnNextTick,
|
|
"waitAtLeastOneReactRenderTask",
|
|
()=>waitAtLeastOneReactRenderTask
|
|
]);
|
|
const scheduleOnNextTick = (cb)=>{
|
|
// We use Promise.resolve().then() here so that the operation is scheduled at
|
|
// the end of the promise job queue, we then add it to the next process tick
|
|
// to ensure it's evaluated afterwards.
|
|
//
|
|
// This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255
|
|
//
|
|
Promise.resolve().then(()=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
process.nextTick(cb);
|
|
}
|
|
});
|
|
};
|
|
const scheduleImmediate = (cb)=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
setImmediate(cb);
|
|
}
|
|
};
|
|
function atLeastOneTask() {
|
|
return new Promise((resolve)=>scheduleImmediate(resolve));
|
|
}
|
|
function waitAtLeastOneReactRenderTask() {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
else {
|
|
return new Promise((r)=>setImmediate(r));
|
|
}
|
|
} //# sourceMappingURL=scheduler.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"InvariantError",
|
|
()=>InvariantError
|
|
]);
|
|
class InvariantError extends Error {
|
|
constructor(message, options){
|
|
super(`Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`, options);
|
|
this.name = 'InvariantError';
|
|
}
|
|
} //# sourceMappingURL=invariant-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/promise-with-resolvers.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createPromiseWithResolvers",
|
|
()=>createPromiseWithResolvers
|
|
]);
|
|
function createPromiseWithResolvers() {
|
|
// Shim of Stage 4 Promise.withResolvers proposal
|
|
let resolve;
|
|
let reject;
|
|
const promise = new Promise((res, rej)=>{
|
|
resolve = res;
|
|
reject = rej;
|
|
});
|
|
return {
|
|
resolve: resolve,
|
|
reject: reject,
|
|
promise
|
|
};
|
|
} //# sourceMappingURL=promise-with-resolvers.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"RenderStage",
|
|
()=>RenderStage,
|
|
"StagedRenderingController",
|
|
()=>StagedRenderingController
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/promise-with-resolvers.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
var RenderStage = /*#__PURE__*/ function(RenderStage) {
|
|
RenderStage[RenderStage["Static"] = 1] = "Static";
|
|
RenderStage[RenderStage["Runtime"] = 2] = "Runtime";
|
|
RenderStage[RenderStage["Dynamic"] = 3] = "Dynamic";
|
|
return RenderStage;
|
|
}({});
|
|
class StagedRenderingController {
|
|
constructor(abortSignal = null){
|
|
this.abortSignal = abortSignal;
|
|
this.currentStage = 1;
|
|
this.runtimeStagePromise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createPromiseWithResolvers"])();
|
|
this.dynamicStagePromise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$promise$2d$with$2d$resolvers$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createPromiseWithResolvers"])();
|
|
if (abortSignal) {
|
|
abortSignal.addEventListener('abort', ()=>{
|
|
const { reason } = abortSignal;
|
|
if (this.currentStage < 2) {
|
|
this.runtimeStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections
|
|
;
|
|
this.runtimeStagePromise.reject(reason);
|
|
}
|
|
if (this.currentStage < 3) {
|
|
this.dynamicStagePromise.promise.catch(ignoreReject) // avoid unhandled rejections
|
|
;
|
|
this.dynamicStagePromise.reject(reason);
|
|
}
|
|
}, {
|
|
once: true
|
|
});
|
|
}
|
|
}
|
|
advanceStage(stage) {
|
|
// If we're already at the target stage or beyond, do nothing.
|
|
// (this can happen e.g. if sync IO advanced us to the dynamic stage)
|
|
if (this.currentStage >= stage) {
|
|
return;
|
|
}
|
|
this.currentStage = stage;
|
|
// Note that we might be going directly from Static to Dynamic,
|
|
// so we need to resolve the runtime stage as well.
|
|
if (stage >= 2) {
|
|
this.runtimeStagePromise.resolve();
|
|
}
|
|
if (stage >= 3) {
|
|
this.dynamicStagePromise.resolve();
|
|
}
|
|
}
|
|
getStagePromise(stage) {
|
|
switch(stage){
|
|
case 2:
|
|
{
|
|
return this.runtimeStagePromise.promise;
|
|
}
|
|
case 3:
|
|
{
|
|
return this.dynamicStagePromise.promise;
|
|
}
|
|
default:
|
|
{
|
|
stage;
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"](`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", {
|
|
value: "E881",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
}
|
|
waitForStage(stage) {
|
|
return this.getStagePromise(stage);
|
|
}
|
|
delayUntilStage(stage, displayName, resolvedValue) {
|
|
const ioTriggerPromise = this.getStagePromise(stage);
|
|
const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue);
|
|
// Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked.
|
|
// (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it).
|
|
// We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning.
|
|
if (this.abortSignal) {
|
|
promise.catch(ignoreReject);
|
|
}
|
|
return promise;
|
|
}
|
|
}
|
|
function ignoreReject() {}
|
|
// TODO(restart-on-cache-miss): the layering of `delayUntilStage`,
|
|
// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise`
|
|
// is confusing, we should clean it up.
|
|
function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) {
|
|
// If we create a `new Promise` and give it a displayName
|
|
// (with no userspace code above us in the stack)
|
|
// React Devtools will use it as the IO cause when determining "suspended by".
|
|
// In particular, it should shadow any inner IO that resolved/rejected the promise
|
|
// (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage)
|
|
const promise = new Promise((resolve, reject)=>{
|
|
ioTrigger.then(resolve.bind(null, resolvedValue), reject);
|
|
});
|
|
if (displayName !== undefined) {
|
|
// @ts-expect-error
|
|
promise.displayName = displayName;
|
|
}
|
|
return promise;
|
|
} //# sourceMappingURL=staged-rendering.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* The functions provided by this module are used to communicate certain properties
|
|
* about the currently running code so that Next.js can make decisions on how to handle
|
|
* the current execution in different rendering modes such as pre-rendering, resuming, and SSR.
|
|
*
|
|
* Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.
|
|
* Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts
|
|
* of a React tree as dynamic while still keeping other parts static. There are really two different kinds of
|
|
* Dynamic indications.
|
|
*
|
|
* The first is simply an intention to be dynamic. unstable_noStore is an example of this where
|
|
* the currently executing code simply declares that the current scope is dynamic but if you use it
|
|
* inside unstable_cache it can still be cached. This type of indication can be removed if we ever
|
|
* make the default dynamic to begin with because the only way you would ever be static is inside
|
|
* a cache scope which this indication does not affect.
|
|
*
|
|
* The second is an indication that a dynamic data source was read. This is a stronger form of dynamic
|
|
* because it means that it is inappropriate to cache this at all. using a dynamic data source inside
|
|
* unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should
|
|
* read that data outside the cache and pass it in as an argument to the cached function.
|
|
*/ // Once postpone is in stable we should switch to importing the postpone export directly
|
|
__turbopack_context__.s([
|
|
"Postpone",
|
|
()=>Postpone,
|
|
"PreludeState",
|
|
()=>PreludeState,
|
|
"abortAndThrowOnSynchronousRequestDataAccess",
|
|
()=>abortAndThrowOnSynchronousRequestDataAccess,
|
|
"abortOnSynchronousPlatformIOAccess",
|
|
()=>abortOnSynchronousPlatformIOAccess,
|
|
"accessedDynamicData",
|
|
()=>accessedDynamicData,
|
|
"annotateDynamicAccess",
|
|
()=>annotateDynamicAccess,
|
|
"consumeDynamicAccess",
|
|
()=>consumeDynamicAccess,
|
|
"createDynamicTrackingState",
|
|
()=>createDynamicTrackingState,
|
|
"createDynamicValidationState",
|
|
()=>createDynamicValidationState,
|
|
"createHangingInputAbortSignal",
|
|
()=>createHangingInputAbortSignal,
|
|
"createRenderInBrowserAbortSignal",
|
|
()=>createRenderInBrowserAbortSignal,
|
|
"delayUntilRuntimeStage",
|
|
()=>delayUntilRuntimeStage,
|
|
"formatDynamicAPIAccesses",
|
|
()=>formatDynamicAPIAccesses,
|
|
"getFirstDynamicReason",
|
|
()=>getFirstDynamicReason,
|
|
"isDynamicPostpone",
|
|
()=>isDynamicPostpone,
|
|
"isPrerenderInterruptedError",
|
|
()=>isPrerenderInterruptedError,
|
|
"logDisallowedDynamicError",
|
|
()=>logDisallowedDynamicError,
|
|
"markCurrentScopeAsDynamic",
|
|
()=>markCurrentScopeAsDynamic,
|
|
"postponeWithTracking",
|
|
()=>postponeWithTracking,
|
|
"throwIfDisallowedDynamic",
|
|
()=>throwIfDisallowedDynamic,
|
|
"throwToInterruptStaticGeneration",
|
|
()=>throwToInterruptStaticGeneration,
|
|
"trackAllowedDynamicAccess",
|
|
()=>trackAllowedDynamicAccess,
|
|
"trackDynamicDataInDynamicRender",
|
|
()=>trackDynamicDataInDynamicRender,
|
|
"trackSynchronousPlatformIOAccessInDev",
|
|
()=>trackSynchronousPlatformIOAccessInDev,
|
|
"useDynamicRouteParams",
|
|
()=>useDynamicRouteParams,
|
|
"useDynamicSearchParams",
|
|
()=>useDynamicSearchParams
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/hooks-server-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/static-generation-bailout.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-constants.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/scheduler.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const hasPostpone = typeof __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].unstable_postpone === 'function';
|
|
function createDynamicTrackingState(isDebugDynamicAccesses) {
|
|
return {
|
|
isDebugDynamicAccesses,
|
|
dynamicAccesses: [],
|
|
syncDynamicErrorWithStack: null
|
|
};
|
|
}
|
|
function createDynamicValidationState() {
|
|
return {
|
|
hasSuspenseAboveBody: false,
|
|
hasDynamicMetadata: false,
|
|
hasDynamicViewport: false,
|
|
hasAllowedDynamic: false,
|
|
dynamicErrors: []
|
|
};
|
|
}
|
|
function getFirstDynamicReason(trackingState) {
|
|
var _trackingState_dynamicAccesses_;
|
|
return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression;
|
|
}
|
|
function markCurrentScopeAsDynamic(store, workUnitStore, expression) {
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
// Inside cache scopes, marking a scope as dynamic has no effect,
|
|
// because the outer cache scope creates a cache boundary. This is
|
|
// subtly different from reading a dynamic data source, which is
|
|
// forbidden inside a cache scope.
|
|
return;
|
|
case 'private-cache':
|
|
// A private cache scope is already dynamic by definition.
|
|
return;
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
case 'request':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
// If we're forcing dynamic rendering or we're forcing static rendering, we
|
|
// don't need to do anything here because the entire page is already dynamic
|
|
// or it's static and it should not throw or postpone here.
|
|
if (store.forceDynamic || store.forceStatic) return;
|
|
if (store.dynamicShouldError) {
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", {
|
|
value: "E553",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender-ppr':
|
|
return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking);
|
|
case 'prerender-legacy':
|
|
workUnitStore.revalidate = 0;
|
|
// We aren't prerendering, but we are generating a static page. We need
|
|
// to bail out of static generation.
|
|
const err = Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DynamicServerError"](`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
|
value: "E550",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
store.dynamicUsageDescription = expression;
|
|
store.dynamicUsageStack = err.stack;
|
|
throw err;
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
workUnitStore.usedDynamic = true;
|
|
}
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
}
|
|
function throwToInterruptStaticGeneration(expression, store, prerenderStore) {
|
|
// We aren't prerendering but we are generating a static page. We need to bail out of static generation
|
|
const err = Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["DynamicServerError"](`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", {
|
|
value: "E558",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
prerenderStore.revalidate = 0;
|
|
store.dynamicUsageDescription = expression;
|
|
store.dynamicUsageStack = err.stack;
|
|
throw err;
|
|
}
|
|
function trackDynamicDataInDynamicRender(workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
// Inside cache scopes, marking a scope as dynamic has no effect,
|
|
// because the outer cache scope creates a cache boundary. This is
|
|
// subtly different from reading a dynamic data source, which is
|
|
// forbidden inside a cache scope.
|
|
return;
|
|
case 'private-cache':
|
|
// A private cache scope is already dynamic by definition.
|
|
return;
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
case 'prerender-client':
|
|
break;
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
workUnitStore.usedDynamic = true;
|
|
}
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) {
|
|
const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`;
|
|
const error = createPrerenderInterruptedError(reason);
|
|
prerenderStore.controller.abort(error);
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
// When we aren't debugging, we don't need to create another error for the
|
|
// stack trace.
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
}
|
|
function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) {
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
|
// It is important that we set this tracking value after aborting. Aborts are executed
|
|
// synchronously except for the case where you abort during render itself. By setting this
|
|
// value late we can use it to determine if any of the aborted tasks are the task that
|
|
// called the sync IO expression in the first place.
|
|
if (dynamicTracking) {
|
|
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
|
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
|
}
|
|
}
|
|
}
|
|
function trackSynchronousPlatformIOAccessInDev(requestStore) {
|
|
// We don't actually have a controller to abort but we do the semantic equivalent by
|
|
// advancing the request store out of the prerender stage
|
|
if (requestStore.stagedRendering) {
|
|
// TODO: error for sync IO in the runtime stage
|
|
// (which is not currently covered by the validation render in `spawnDynamicValidationInDev`)
|
|
requestStore.stagedRendering.advanceStage(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RenderStage"].Dynamic);
|
|
}
|
|
}
|
|
function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) {
|
|
const prerenderSignal = prerenderStore.controller.signal;
|
|
if (prerenderSignal.aborted === false) {
|
|
// TODO it would be better to move this aborted check into the callsite so we can avoid making
|
|
// the error object when it isn't relevant to the aborting of the prerender however
|
|
// since we need the throw semantics regardless of whether we abort it is easier to land
|
|
// this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer
|
|
// to ideal implementation
|
|
abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore);
|
|
// It is important that we set this tracking value after aborting. Aborts are executed
|
|
// synchronously except for the case where you abort during render itself. By setting this
|
|
// value late we can use it to determine if any of the aborted tasks are the task that
|
|
// called the sync IO expression in the first place.
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
if (dynamicTracking.syncDynamicErrorWithStack === null) {
|
|
dynamicTracking.syncDynamicErrorWithStack = errorWithStack;
|
|
}
|
|
}
|
|
}
|
|
throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`);
|
|
}
|
|
function Postpone({ reason, route }) {
|
|
const prerenderStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null;
|
|
postponeWithTracking(route, reason, dynamicTracking);
|
|
}
|
|
function postponeWithTracking(route, expression, dynamicTracking) {
|
|
assertPostpone();
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
// When we aren't debugging, we don't need to create another error for the
|
|
// stack trace.
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].unstable_postpone(createPostponeReason(route, expression));
|
|
}
|
|
function createPostponeReason(route, expression) {
|
|
return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`;
|
|
}
|
|
function isDynamicPostpone(err) {
|
|
if (typeof err === 'object' && err !== null && typeof err.message === 'string') {
|
|
return isDynamicPostponeReason(err.message);
|
|
}
|
|
return false;
|
|
}
|
|
function isDynamicPostponeReason(reason) {
|
|
return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error');
|
|
}
|
|
if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {
|
|
throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", {
|
|
value: "E296",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED';
|
|
function createPrerenderInterruptedError(message) {
|
|
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.digest = NEXT_PRERENDER_INTERRUPTED;
|
|
return error;
|
|
}
|
|
function isPrerenderInterruptedError(error) {
|
|
return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error;
|
|
}
|
|
function accessedDynamicData(dynamicAccesses) {
|
|
return dynamicAccesses.length > 0;
|
|
}
|
|
function consumeDynamicAccess(serverDynamic, clientDynamic) {
|
|
// We mutate because we only call this once we are no longer writing
|
|
// to the dynamicTrackingState and it's more efficient than creating a new
|
|
// array.
|
|
serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses);
|
|
return serverDynamic.dynamicAccesses;
|
|
}
|
|
function formatDynamicAPIAccesses(dynamicAccesses) {
|
|
return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{
|
|
stack = stack.split('\n') // Remove the "Error: " prefix from the first line of the stack trace as
|
|
// well as the first 4 lines of the stack trace which is the distance
|
|
// from the user code and the `new Error().stack` call.
|
|
.slice(4).filter((line)=>{
|
|
// Exclude Next.js internals from the stack trace.
|
|
if (line.includes('node_modules/next/')) {
|
|
return false;
|
|
}
|
|
// Exclude anonymous functions from the stack trace.
|
|
if (line.includes(' (<anonymous>)')) {
|
|
return false;
|
|
}
|
|
// Exclude Node.js internals from the stack trace.
|
|
if (line.includes(' (node:')) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}).join('\n');
|
|
return `Dynamic API Usage Debug - ${expression}:\n${stack}`;
|
|
});
|
|
}
|
|
function assertPostpone() {
|
|
if (!hasPostpone) {
|
|
throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", {
|
|
value: "E224",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
}
|
|
function createRenderInBrowserAbortSignal() {
|
|
const controller = new AbortController();
|
|
controller.abort(Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["BailoutToCSRError"]('Render in Browser'), "__NEXT_ERROR_CODE", {
|
|
value: "E721",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
return controller.signal;
|
|
}
|
|
function createHangingInputAbortSignal(workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
const controller = new AbortController();
|
|
if (workUnitStore.cacheSignal) {
|
|
// If we have a cacheSignal it means we're in a prospective render. If
|
|
// the input we're waiting on is coming from another cache, we do want
|
|
// to wait for it so that we can resolve this cache entry too.
|
|
workUnitStore.cacheSignal.inputReady().then(()=>{
|
|
controller.abort();
|
|
});
|
|
} else {
|
|
// Otherwise we're in the final render and we should already have all
|
|
// our caches filled.
|
|
// If the prerender uses stages, we have wait until the runtime stage,
|
|
// at which point all runtime inputs will be resolved.
|
|
// (otherwise, a runtime prerender might consider `cookies()` hanging
|
|
// even though they'd resolve in the next task.)
|
|
//
|
|
// We might still be waiting on some microtasks so we
|
|
// wait one tick before giving up. When we give up, we still want to
|
|
// render the content of this cache as deeply as we can so that we can
|
|
// suspend as deeply as possible in the tree or not at all if we don't
|
|
// end up waiting for the input.
|
|
const runtimeStagePromise = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["getRuntimeStagePromise"])(workUnitStore);
|
|
if (runtimeStagePromise) {
|
|
runtimeStagePromise.then(()=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["scheduleOnNextTick"])(()=>controller.abort()));
|
|
} else {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$scheduler$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["scheduleOnNextTick"])(()=>controller.abort());
|
|
}
|
|
}
|
|
return controller.signal;
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
return undefined;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
function annotateDynamicAccess(expression, prerenderStore) {
|
|
const dynamicTracking = prerenderStore.dynamicTracking;
|
|
if (dynamicTracking) {
|
|
dynamicTracking.dynamicAccesses.push({
|
|
stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined,
|
|
expression
|
|
});
|
|
}
|
|
}
|
|
function useDynamicRouteParams(expression) {
|
|
const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore();
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workStore && workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender-client':
|
|
case 'prerender':
|
|
{
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams && fallbackParams.size > 0) {
|
|
// We are in a prerender with cacheComponents semantics. We are going to
|
|
// hang here and never resolve. This will cause the currently
|
|
// rendering component to effectively be a dynamic hole.
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].use((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, expression));
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-ppr':
|
|
{
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams && fallbackParams.size > 0) {
|
|
return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking);
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E771",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E745",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
case 'unstable-cache':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
}
|
|
function useDynamicSearchParams(expression) {
|
|
const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore();
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (!workStore) {
|
|
// We assume pages router context and just return
|
|
return;
|
|
}
|
|
if (!workUnitStore) {
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwForMissingRequestStore"])(expression);
|
|
}
|
|
switch(workUnitStore.type){
|
|
case 'prerender-client':
|
|
{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].use((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, expression));
|
|
break;
|
|
}
|
|
case 'prerender-legacy':
|
|
case 'prerender-ppr':
|
|
{
|
|
if (workStore.forceStatic) {
|
|
return;
|
|
}
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["BailoutToCSRError"](expression), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
case 'prerender':
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E795",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'unstable-cache':
|
|
case 'private-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"](`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", {
|
|
value: "E745",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
return;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
const hasSuspenseRegex = /\n\s+at Suspense \(<anonymous>\)/;
|
|
// Common implicit body tags that React will treat as body when placed directly in html
|
|
const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6';
|
|
// Detects when RootLayoutBoundary (our framework marker component) appears
|
|
// after Suspense in the component stack, indicating the root layout is wrapped
|
|
// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.
|
|
//
|
|
// Example matches:
|
|
// at Suspense (<anonymous>)
|
|
// at __next_root_layout_boundary__ (<anonymous>)
|
|
//
|
|
// Or with other components in between (but not body/html/implicit-body):
|
|
// at Suspense (<anonymous>)
|
|
// at SomeComponent (<anonymous>)
|
|
// at __next_root_layout_boundary__ (<anonymous>)
|
|
const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(<anonymous>\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(<anonymous>\\))[\\s\\S])*?\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ROOT_LAYOUT_BOUNDARY_NAME"]} \\([^\\n]*\\)`);
|
|
const hasMetadataRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["METADATA_BOUNDARY_NAME"]}[\\n\\s]`);
|
|
const hasViewportRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["VIEWPORT_BOUNDARY_NAME"]}[\\n\\s]`);
|
|
const hasOutletRegex = new RegExp(`\\n\\s+at ${__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["OUTLET_BOUNDARY_NAME"]}[\\n\\s]`);
|
|
function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) {
|
|
if (hasOutletRegex.test(componentStack)) {
|
|
// We don't need to track that this is dynamic. It is only so when something else is also dynamic.
|
|
return;
|
|
} else if (hasMetadataRegex.test(componentStack)) {
|
|
dynamicValidation.hasDynamicMetadata = true;
|
|
return;
|
|
} else if (hasViewportRegex.test(componentStack)) {
|
|
dynamicValidation.hasDynamicViewport = true;
|
|
return;
|
|
} else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) {
|
|
// For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.
|
|
// But if you have Suspense above body, the prelude is empty but we allow that because having Suspense
|
|
// is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.
|
|
dynamicValidation.hasAllowedDynamic = true;
|
|
dynamicValidation.hasSuspenseAboveBody = true;
|
|
return;
|
|
} else if (hasSuspenseRegex.test(componentStack)) {
|
|
// this error had a Suspense boundary above it so we don't need to report it as a source
|
|
// of disallowed
|
|
dynamicValidation.hasAllowedDynamic = true;
|
|
return;
|
|
} else if (clientDynamic.syncDynamicErrorWithStack) {
|
|
// This task was the task that called the sync error.
|
|
dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack);
|
|
return;
|
|
} else {
|
|
const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '<Suspense>. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route';
|
|
const error = createErrorWithComponentOrOwnerStack(message, componentStack);
|
|
dynamicValidation.dynamicErrors.push(error);
|
|
return;
|
|
}
|
|
}
|
|
/**
|
|
* In dev mode, we prefer using the owner stack, otherwise the provided
|
|
* component stack is used.
|
|
*/ function createErrorWithComponentOrOwnerStack(message, componentStack) {
|
|
const ownerStack = ("TURBOPACK compile-time value", "development") !== 'production' && __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].captureOwnerStack ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].captureOwnerStack() : null;
|
|
const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
error.stack = error.name + ': ' + message + (ownerStack ?? componentStack);
|
|
return error;
|
|
}
|
|
var PreludeState = /*#__PURE__*/ function(PreludeState) {
|
|
PreludeState[PreludeState["Full"] = 0] = "Full";
|
|
PreludeState[PreludeState["Empty"] = 1] = "Empty";
|
|
PreludeState[PreludeState["Errored"] = 2] = "Errored";
|
|
return PreludeState;
|
|
}({});
|
|
function logDisallowedDynamicError(workStore, error) {
|
|
console.error(error);
|
|
if (!workStore.dev) {
|
|
if (workStore.hasReadableErrorStacks) {
|
|
console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`);
|
|
} else {
|
|
console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:
|
|
- Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.
|
|
- Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`);
|
|
}
|
|
}
|
|
}
|
|
function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) {
|
|
if (serverDynamic.syncDynamicErrorWithStack) {
|
|
logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack);
|
|
throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"]();
|
|
}
|
|
if (prelude !== 0) {
|
|
if (dynamicValidation.hasSuspenseAboveBody) {
|
|
// This route has opted into allowing fully dynamic rendering
|
|
// by including a Suspense boundary above the body. In this case
|
|
// a lack of a shell is not considered disallowed so we simply return
|
|
return;
|
|
}
|
|
// We didn't have any sync bailouts but there may be user code which
|
|
// blocked the root. We would have captured these during the prerender
|
|
// and can log them here and then terminate the build/validating render
|
|
const dynamicErrors = dynamicValidation.dynamicErrors;
|
|
if (dynamicErrors.length > 0) {
|
|
for(let i = 0; i < dynamicErrors.length; i++){
|
|
logDisallowedDynamicError(workStore, dynamicErrors[i]);
|
|
}
|
|
throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"]();
|
|
}
|
|
// If we got this far then the only other thing that could be blocking
|
|
// the root is dynamic Viewport. If this is dynamic then
|
|
// you need to opt into that by adding a Suspense boundary above the body
|
|
// to indicate your are ok with fully dynamic rendering.
|
|
if (dynamicValidation.hasDynamicViewport) {
|
|
console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`);
|
|
throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"]();
|
|
}
|
|
if (prelude === 1) {
|
|
// If we ever get this far then we messed up the tracking of invalid dynamic.
|
|
// We still adhere to the constraint that you must produce a shell but invite the
|
|
// user to report this as a bug in Next.js.
|
|
console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`);
|
|
throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"]();
|
|
}
|
|
} else {
|
|
if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) {
|
|
console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`);
|
|
throw new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"]();
|
|
}
|
|
}
|
|
}
|
|
function delayUntilRuntimeStage(prerenderStore, result) {
|
|
if (prerenderStore.runtimeStagePromise) {
|
|
return prerenderStore.runtimeStagePromise.then(()=>result);
|
|
}
|
|
return result;
|
|
} //# sourceMappingURL=dynamic-rendering.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unstable-rethrow.server.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"unstable_rethrow",
|
|
()=>unstable_rethrow
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$router$2d$utils$2f$is$2d$postpone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/lib/router-utils/is-postpone.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$is$2d$next$2d$router$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/is-next-router-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/hooks-server-context.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function unstable_rethrow(error) {
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$is$2d$next$2d$router$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isNextRouterError"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$lazy$2d$dynamic$2f$bailout$2d$to$2d$csr$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isBailoutToCSRError"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$hooks$2d$server$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isDynamicServerError"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isDynamicPostpone"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$lib$2f$router$2d$utils$2f$is$2d$postpone$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isPostpone"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHangingPromiseRejectionError"])(error) || (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isPrerenderInterruptedError"])(error)) {
|
|
throw error;
|
|
}
|
|
if (error instanceof Error && 'cause' in error) {
|
|
unstable_rethrow(error.cause);
|
|
}
|
|
} //# sourceMappingURL=unstable-rethrow.server.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unstable-rethrow.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* This function should be used to rethrow internal Next.js errors so that they can be handled by the framework.
|
|
* When wrapping an API that uses errors to interrupt control flow, you should use this function before you do any error handling.
|
|
* This function will rethrow the error if it is a Next.js error so it can be handled, otherwise it will do nothing.
|
|
*
|
|
* Read more: [Next.js Docs: `unstable_rethrow`](https://nextjs.org/docs/app/api-reference/functions/unstable_rethrow)
|
|
*/ __turbopack_context__.s([
|
|
"unstable_rethrow",
|
|
()=>unstable_rethrow
|
|
]);
|
|
const unstable_rethrow = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unstable-rethrow.server.js [app-ssr] (ecmascript)").unstable_rethrow : "TURBOPACK unreachable"; //# sourceMappingURL=unstable-rethrow.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation.react-server.js [app-ssr] (ecmascript) <locals>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"unstable_isUnrecognizedActionError",
|
|
()=>unstable_isUnrecognizedActionError
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$readonly$2d$url$2d$search$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$not$2d$found$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/not-found.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$forbidden$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/forbidden.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$unauthorized$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unauthorized.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$unstable$2d$rethrow$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unstable-rethrow.js [app-ssr] (ecmascript)");
|
|
;
|
|
function unstable_isUnrecognizedActionError() {
|
|
throw Object.defineProperty(new Error('`unstable_isUnrecognizedActionError` can only be used on the client.'), "__NEXT_ERROR_CODE", {
|
|
value: "E776",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
//# sourceMappingURL=navigation.react-server.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation.js [app-ssr] (ecmascript) <locals>", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useParams",
|
|
()=>useParams,
|
|
"usePathname",
|
|
()=>usePathname,
|
|
"useRouter",
|
|
()=>useRouter,
|
|
"useSearchParams",
|
|
()=>useSearchParams,
|
|
"useSelectedLayoutSegment",
|
|
()=>useSelectedLayoutSegment,
|
|
"useSelectedLayoutSegments",
|
|
()=>useSelectedLayoutSegments
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$readonly$2d$url$2d$search$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)");
|
|
// Client components API
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$server$2d$inserted$2d$html$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$unrecognized$2d$action$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unrecognized-action-error.js [app-ssr] (ecmascript)");
|
|
// Shared components APIs
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2e$react$2d$server$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation.react-server.js [app-ssr] (ecmascript) <locals>"); //# sourceMappingURL=navigation.js.map
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const useDynamicRouteParams = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)").useDynamicRouteParams : "TURBOPACK unreachable";
|
|
const useDynamicSearchParams = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)").useDynamicSearchParams : "TURBOPACK unreachable";
|
|
function useSearchParams() {
|
|
useDynamicSearchParams?.('useSearchParams()');
|
|
const searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SearchParamsContext"]);
|
|
// In the case where this is `null`, the compat types added in
|
|
// `next-env.d.ts` will add a new overload that changes the return type to
|
|
// include `null`.
|
|
const readonlySearchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"])(()=>{
|
|
if (!searchParams) {
|
|
// When the router is not ready in pages, we won't have the search params
|
|
// available.
|
|
return null;
|
|
}
|
|
return new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$readonly$2d$url$2d$search$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReadonlyURLSearchParams"](searchParams);
|
|
}, [
|
|
searchParams
|
|
]);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]) {
|
|
const navigationPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
if (navigationPromises) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(navigationPromises.searchParams);
|
|
}
|
|
}
|
|
return readonlySearchParams;
|
|
}
|
|
function usePathname() {
|
|
useDynamicRouteParams?.('usePathname()');
|
|
// In the case where this is `null`, the compat types added in `next-env.d.ts`
|
|
// will add a new overload that changes the return type to include `null`.
|
|
const pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PathnameContext"]);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]) {
|
|
const navigationPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
if (navigationPromises) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(navigationPromises.pathname);
|
|
}
|
|
}
|
|
return pathname;
|
|
}
|
|
;
|
|
function useRouter() {
|
|
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["AppRouterContext"]);
|
|
if (router === null) {
|
|
throw Object.defineProperty(new Error('invariant expected app router to be mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E238",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return router;
|
|
}
|
|
function useParams() {
|
|
useDynamicRouteParams?.('useParams()');
|
|
const params = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PathParamsContext"]);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]) {
|
|
const navigationPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
if (navigationPromises) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(navigationPromises.params);
|
|
}
|
|
}
|
|
return params;
|
|
}
|
|
function useSelectedLayoutSegments(parallelRouteKey = 'children') {
|
|
useDynamicRouteParams?.('useSelectedLayoutSegments()');
|
|
const context = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["LayoutRouterContext"]);
|
|
// @ts-expect-error This only happens in `pages`. Type is overwritten in navigation.d.ts
|
|
if (!context) return null;
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && 'use' in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]) {
|
|
const navigationPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
if (navigationPromises) {
|
|
const promise = navigationPromises.selectedLayoutSegmentsPromises?.get(parallelRouteKey);
|
|
if (promise) {
|
|
// We should always have a promise here, but if we don't, it's not worth erroring over.
|
|
// We just won't be able to instrument it, but can still provide the value.
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(promise);
|
|
}
|
|
}
|
|
}
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSelectedLayoutSegmentPath"])(context.parentTree, parallelRouteKey);
|
|
}
|
|
function useSelectedLayoutSegment(parallelRouteKey = 'children') {
|
|
useDynamicRouteParams?.('useSelectedLayoutSegment()');
|
|
const navigationPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
const selectedLayoutSegments = useSelectedLayoutSegments(parallelRouteKey);
|
|
// Instrument with Suspense DevTools (dev-only)
|
|
if (("TURBOPACK compile-time value", "development") !== 'production' && navigationPromises && 'use' in __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"]) {
|
|
const promise = navigationPromises.selectedLayoutSegmentPromises?.get(parallelRouteKey);
|
|
if (promise) {
|
|
// We should always have a promise here, but if we don't, it's not worth erroring over.
|
|
// We just won't be able to instrument it, but can still provide the value.
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(promise);
|
|
}
|
|
}
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["computeSelectedLayoutSegment"])(selectedLayoutSegments, parallelRouteKey);
|
|
}
|
|
;
|
|
;
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-boundary.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"RedirectBoundary",
|
|
()=>RedirectBoundary,
|
|
"RedirectErrorBoundary",
|
|
()=>RedirectErrorBoundary
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation.js [app-ssr] (ecmascript) <locals>");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-error.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function HandleRedirect({ redirect, reset, redirectType }) {
|
|
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["useRouter"])();
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useEffect"])(()=>{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].startTransition(()=>{
|
|
if (redirectType === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectType"].push) {
|
|
router.push(redirect, {});
|
|
} else {
|
|
router.replace(redirect, {});
|
|
}
|
|
reset();
|
|
});
|
|
}, [
|
|
redirect,
|
|
redirectType,
|
|
reset,
|
|
router
|
|
]);
|
|
return null;
|
|
}
|
|
class RedirectErrorBoundary extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].Component {
|
|
constructor(props){
|
|
super(props);
|
|
this.state = {
|
|
redirect: null,
|
|
redirectType: null
|
|
};
|
|
}
|
|
static getDerivedStateFromError(error) {
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isRedirectError"])(error)) {
|
|
const url = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getURLFromRedirectError"])(error);
|
|
const redirectType = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getRedirectTypeFromError"])(error);
|
|
if ('handled' in error) {
|
|
// The redirect was already handled. We'll still catch the redirect error
|
|
// so that we can remount the subtree, but we don't actually need to trigger the
|
|
// router.push.
|
|
return {
|
|
redirect: null,
|
|
redirectType: null
|
|
};
|
|
}
|
|
return {
|
|
redirect: url,
|
|
redirectType
|
|
};
|
|
}
|
|
// Re-throw if error is not for redirect
|
|
throw error;
|
|
}
|
|
// Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.
|
|
render() {
|
|
const { redirect, redirectType } = this.state;
|
|
if (redirect !== null && redirectType !== null) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(HandleRedirect, {
|
|
redirect: redirect,
|
|
redirectType: redirectType,
|
|
reset: ()=>this.setState({
|
|
redirect: null
|
|
})
|
|
});
|
|
}
|
|
return this.props.children;
|
|
}
|
|
}
|
|
function RedirectBoundary({ children }) {
|
|
const router = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__$3c$locals$3e$__["useRouter"])();
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(RedirectErrorBoundary, {
|
|
router: router,
|
|
children: children
|
|
});
|
|
} //# sourceMappingURL=redirect-boundary.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"HTTPAccessFallbackBoundary",
|
|
()=>HTTPAccessFallbackBoundary
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
/**
|
|
* HTTPAccessFallbackBoundary is a boundary that catches errors and renders a
|
|
* fallback component for HTTP errors.
|
|
*
|
|
* It receives the status code, and determine if it should render fallbacks for few HTTP 4xx errors.
|
|
*
|
|
* e.g. 404
|
|
* 404 represents not found, and the fallback component pair contains the component and its styles.
|
|
*
|
|
*/ var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2d$untracked$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation-untracked.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/http-access-fallback.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$warn$2d$once$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/warn-once.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
class HTTPAccessFallbackErrorBoundary extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].Component {
|
|
constructor(props){
|
|
super(props);
|
|
this.state = {
|
|
triggeredStatus: undefined,
|
|
previousPathname: props.pathname
|
|
};
|
|
}
|
|
componentDidCatch() {
|
|
if (("TURBOPACK compile-time value", "development") === 'development' && this.props.missingSlots && this.props.missingSlots.size > 0 && // A missing children slot is the typical not-found case, so no need to warn
|
|
!this.props.missingSlots.has('children')) {
|
|
let warningMessage = 'No default component was found for a parallel route rendered on this page. Falling back to nearest NotFound boundary.\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/routing/parallel-routes#defaultjs\n\n';
|
|
const formattedSlots = Array.from(this.props.missingSlots).sort((a, b)=>a.localeCompare(b)).map((slot)=>`@${slot}`).join(', ');
|
|
warningMessage += 'Missing slots: ' + formattedSlots;
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$warn$2d$once$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["warnOnce"])(warningMessage);
|
|
}
|
|
}
|
|
static getDerivedStateFromError(error) {
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isHTTPAccessFallbackError"])(error)) {
|
|
const httpStatus = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAccessFallbackHTTPStatus"])(error);
|
|
return {
|
|
triggeredStatus: httpStatus
|
|
};
|
|
}
|
|
// Re-throw if error is not for 404
|
|
throw error;
|
|
}
|
|
static getDerivedStateFromProps(props, state) {
|
|
/**
|
|
* Handles reset of the error boundary when a navigation happens.
|
|
* Ensures the error boundary does not stay enabled when navigating to a new page.
|
|
* Approach of setState in render is safe as it checks the previous pathname and then overrides
|
|
* it as outlined in https://react.dev/reference/react/useState#storing-information-from-previous-renders
|
|
*/ if (props.pathname !== state.previousPathname && state.triggeredStatus) {
|
|
return {
|
|
triggeredStatus: undefined,
|
|
previousPathname: props.pathname
|
|
};
|
|
}
|
|
return {
|
|
triggeredStatus: state.triggeredStatus,
|
|
previousPathname: props.pathname
|
|
};
|
|
}
|
|
render() {
|
|
const { notFound, forbidden, unauthorized, children } = this.props;
|
|
const { triggeredStatus } = this.state;
|
|
const errorComponents = {
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].NOT_FOUND]: notFound,
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].FORBIDDEN]: forbidden,
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].UNAUTHORIZED]: unauthorized
|
|
};
|
|
if (triggeredStatus) {
|
|
const isNotFound = triggeredStatus === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].NOT_FOUND && notFound;
|
|
const isForbidden = triggeredStatus === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].FORBIDDEN && forbidden;
|
|
const isUnauthorized = triggeredStatus === __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessErrorStatus"].UNAUTHORIZED && unauthorized;
|
|
// If there's no matched boundary in this layer, keep throwing the error by rendering the children
|
|
if (!(isNotFound || isForbidden || isUnauthorized)) {
|
|
return children;
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])("meta", {
|
|
name: "robots",
|
|
content: "noindex"
|
|
}),
|
|
("TURBOPACK compile-time value", "development") === 'development' && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])("meta", {
|
|
name: "boundary-next-error",
|
|
content: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$http$2d$access$2d$fallback$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getAccessFallbackErrorTypeByStatus"])(triggeredStatus)
|
|
}),
|
|
errorComponents[triggeredStatus]
|
|
]
|
|
});
|
|
}
|
|
return children;
|
|
}
|
|
}
|
|
function HTTPAccessFallbackBoundary({ notFound, forbidden, unauthorized, children }) {
|
|
// When we're rendering the missing params shell, this will return null. This
|
|
// is because we won't be rendering any not found boundaries or error
|
|
// boundaries for the missing params shell. When this runs on the client
|
|
// (where these error can occur), we will get the correct pathname.
|
|
const pathname = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$navigation$2d$untracked$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useUntrackedPathname"])();
|
|
const missingSlots = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["MissingSlotContext"]);
|
|
const hasErrorFallback = !!(notFound || forbidden || unauthorized);
|
|
if (hasErrorFallback) {
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(HTTPAccessFallbackErrorBoundary, {
|
|
pathname: pathname,
|
|
notFound: notFound,
|
|
forbidden: forbidden,
|
|
unauthorized: unauthorized,
|
|
missingSlots: missingSlots,
|
|
children: children
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: children
|
|
});
|
|
} //# sourceMappingURL=error-boundary.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createRouterCacheKey",
|
|
()=>createRouterCacheKey
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
;
|
|
function createRouterCacheKey(segment, withoutSearchParameters = false) {
|
|
// if the segment is an array, it means it's a dynamic segment
|
|
// for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.
|
|
if (Array.isArray(segment)) {
|
|
return `${segment[0]}|${segment[1]}|${segment[2]}`;
|
|
}
|
|
// Page segments might have search parameters, ie __PAGE__?foo=bar
|
|
// When `withoutSearchParameters` is true, we only want to return the page segment
|
|
if (withoutSearchParameters && segment.startsWith(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"])) {
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["PAGE_SEGMENT_KEY"];
|
|
}
|
|
return segment;
|
|
} //# sourceMappingURL=create-router-cache-key.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
/**
|
|
* For a given page path, this function ensures that there is a leading slash.
|
|
* If there is not a leading slash, one is added, otherwise it is noop.
|
|
*/ __turbopack_context__.s([
|
|
"ensureLeadingSlash",
|
|
()=>ensureLeadingSlash
|
|
]);
|
|
function ensureLeadingSlash(path) {
|
|
return path.startsWith('/') ? path : `/${path}`;
|
|
} //# sourceMappingURL=ensure-leading-slash.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"normalizeAppPath",
|
|
()=>normalizeAppPath,
|
|
"normalizeRscURL",
|
|
()=>normalizeRscURL
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$page$2d$path$2f$ensure$2d$leading$2d$slash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/page-path/ensure-leading-slash.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
function normalizeAppPath(route) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$page$2d$path$2f$ensure$2d$leading$2d$slash$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ensureLeadingSlash"])(route.split('/').reduce((pathname, segment, index, segments)=>{
|
|
// Empty segments are ignored.
|
|
if (!segment) {
|
|
return pathname;
|
|
}
|
|
// Groups are ignored.
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isGroupSegment"])(segment)) {
|
|
return pathname;
|
|
}
|
|
// Parallel segments are ignored.
|
|
if (segment[0] === '@') {
|
|
return pathname;
|
|
}
|
|
// The last segment (if it's a leaf) should be ignored.
|
|
if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {
|
|
return pathname;
|
|
}
|
|
return `${pathname}/${segment}`;
|
|
}, ''));
|
|
}
|
|
function normalizeRscURL(url) {
|
|
return url.replace(/\.rsc($|\?)/, '$1');
|
|
} //# sourceMappingURL=app-paths.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/interception-routes.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"INTERCEPTION_ROUTE_MARKERS",
|
|
()=>INTERCEPTION_ROUTE_MARKERS,
|
|
"extractInterceptionRouteInformation",
|
|
()=>extractInterceptionRouteInformation,
|
|
"isInterceptionRouteAppPath",
|
|
()=>isInterceptionRouteAppPath
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-ssr] (ecmascript)");
|
|
;
|
|
const INTERCEPTION_ROUTE_MARKERS = [
|
|
'(..)(..)',
|
|
'(.)',
|
|
'(..)',
|
|
'(...)'
|
|
];
|
|
function isInterceptionRouteAppPath(path) {
|
|
// TODO-APP: add more serious validation
|
|
return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;
|
|
}
|
|
function extractInterceptionRouteInformation(path) {
|
|
let interceptingRoute;
|
|
let marker;
|
|
let interceptedRoute;
|
|
for (const segment of path.split('/')){
|
|
marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));
|
|
if (marker) {
|
|
;
|
|
[interceptingRoute, interceptedRoute] = path.split(marker, 2);
|
|
break;
|
|
}
|
|
}
|
|
if (!interceptingRoute || !marker || !interceptedRoute) {
|
|
throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`), "__NEXT_ERROR_CODE", {
|
|
value: "E269",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
interceptingRoute = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["normalizeAppPath"])(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed
|
|
;
|
|
switch(marker){
|
|
case '(.)':
|
|
// (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route
|
|
if (interceptingRoute === '/') {
|
|
interceptedRoute = `/${interceptedRoute}`;
|
|
} else {
|
|
interceptedRoute = interceptingRoute + '/' + interceptedRoute;
|
|
}
|
|
break;
|
|
case '(..)':
|
|
// (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route
|
|
if (interceptingRoute === '/') {
|
|
throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`), "__NEXT_ERROR_CODE", {
|
|
value: "E207",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');
|
|
break;
|
|
case '(...)':
|
|
// (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route
|
|
interceptedRoute = '/' + interceptedRoute;
|
|
break;
|
|
case '(..)(..)':
|
|
// (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route
|
|
const splitInterceptingRoute = interceptingRoute.split('/');
|
|
if (splitInterceptingRoute.length <= 2) {
|
|
throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`), "__NEXT_ERROR_CODE", {
|
|
value: "E486",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');
|
|
break;
|
|
default:
|
|
throw Object.defineProperty(new Error('Invariant: unexpected marker'), "__NEXT_ERROR_CODE", {
|
|
value: "E112",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return {
|
|
interceptingRoute,
|
|
interceptedRoute
|
|
};
|
|
} //# sourceMappingURL=interception-routes.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"hasInterceptionRouteInCurrentTree",
|
|
()=>hasInterceptionRouteInCurrentTree
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$interception$2d$routes$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/interception-routes.js [app-ssr] (ecmascript)");
|
|
;
|
|
function hasInterceptionRouteInCurrentTree([segment, parallelRoutes]) {
|
|
// If we have a dynamic segment, it's marked as an interception route by the presence of the `i` suffix.
|
|
if (Array.isArray(segment) && (segment[2] === 'di(..)(..)' || segment[2] === 'ci(..)(..)' || segment[2] === 'di(.)' || segment[2] === 'ci(.)' || segment[2] === 'di(..)' || segment[2] === 'ci(..)' || segment[2] === 'di(...)' || segment[2] === 'ci(...)')) {
|
|
return true;
|
|
}
|
|
// If segment is not an array, apply the existing string-based check
|
|
if (typeof segment === 'string' && (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$interception$2d$routes$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["isInterceptionRouteAppPath"])(segment)) {
|
|
return true;
|
|
}
|
|
// Iterate through parallelRoutes if they exist
|
|
if (parallelRoutes) {
|
|
for(const key in parallelRoutes){
|
|
if (hasInterceptionRouteInCurrentTree(parallelRoutes[key])) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
} //# sourceMappingURL=has-interception-route-in-current-tree.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/bfcache.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"useRouterBFCache",
|
|
()=>useRouterBFCache
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
;
|
|
// When the flag is disabled, only track the currently active tree
|
|
const MAX_BF_CACHE_ENTRIES = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : 1;
|
|
function useRouterBFCache(activeTree, activeStateKey) {
|
|
// The currently active entry. The entries form a linked list, sorted in
|
|
// order of most recently active. This allows us to reuse parts of the list
|
|
// without cloning, unless there's a reordering or removal.
|
|
// TODO: Once we start tracking back/forward history at each route level,
|
|
// we should use the history order instead. In other words, when traversing
|
|
// to an existing entry as a result of a popstate event, we should maintain
|
|
// the existing order instead of moving it to the front of the list. I think
|
|
// an initial implementation of this could be to pass an incrementing id
|
|
// to history.pushState/replaceState, then use that here for ordering.
|
|
const [prevActiveEntry, setPrevActiveEntry] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(()=>{
|
|
const initialEntry = {
|
|
tree: activeTree,
|
|
stateKey: activeStateKey,
|
|
next: null
|
|
};
|
|
return initialEntry;
|
|
});
|
|
if (prevActiveEntry.tree === activeTree) {
|
|
// Fast path. The active tree hasn't changed, so we can reuse the
|
|
// existing state.
|
|
return prevActiveEntry;
|
|
}
|
|
// The route tree changed. Note that this doesn't mean that the tree changed
|
|
// *at this level* — the change may be due to a child route. Either way, we
|
|
// need to either add or update the router tree in the bfcache.
|
|
//
|
|
// The rest of the code looks more complicated than it actually is because we
|
|
// can't mutate the state in place; we have to copy-on-write.
|
|
// Create a new entry for the active cache key. This is the head of the new
|
|
// linked list.
|
|
const newActiveEntry = {
|
|
tree: activeTree,
|
|
stateKey: activeStateKey,
|
|
next: null
|
|
};
|
|
// We need to append the old list onto the new list. If the head of the new
|
|
// list was already present in the cache, then we'll need to clone everything
|
|
// that came before it. Then we can reuse the rest.
|
|
let n = 1;
|
|
let oldEntry = prevActiveEntry;
|
|
let clonedEntry = newActiveEntry;
|
|
while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){
|
|
if (oldEntry.stateKey === activeStateKey) {
|
|
// Fast path. This entry in the old list that corresponds to the key that
|
|
// is now active. We've already placed a clone of this entry at the front
|
|
// of the new list. We can reuse the rest of the old list without cloning.
|
|
// NOTE: We don't need to worry about eviction in this case because we
|
|
// haven't increased the size of the cache, and we assume the max size
|
|
// is constant across renders. If we were to change it to a dynamic limit,
|
|
// then the implementation would need to account for that.
|
|
clonedEntry.next = oldEntry.next;
|
|
break;
|
|
} else {
|
|
// Clone the entry and append it to the list.
|
|
n++;
|
|
const entry = {
|
|
tree: oldEntry.tree,
|
|
stateKey: oldEntry.stateKey,
|
|
next: null
|
|
};
|
|
clonedEntry.next = entry;
|
|
clonedEntry = entry;
|
|
}
|
|
oldEntry = oldEntry.next;
|
|
}
|
|
setPrevActiveEntry(newActiveEntry);
|
|
return newActiveEntry;
|
|
} //# sourceMappingURL=bfcache.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation-devtools.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createLayoutSegmentPromises",
|
|
()=>createLayoutSegmentPromises,
|
|
"createNestedLayoutNavigationPromises",
|
|
()=>createNestedLayoutNavigationPromises,
|
|
"createRootNavigationPromises",
|
|
()=>createRootNavigationPromises
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/segment.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$readonly$2d$url$2d$search$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/readonly-url-search-params.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
const layoutSegmentPromisesCache = new WeakMap();
|
|
function createLayoutSegmentPromises(tree) {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// Check if we already have cached promises for this tree
|
|
const cached = layoutSegmentPromisesCache.get(tree);
|
|
if (cached) {
|
|
return cached;
|
|
}
|
|
// Create new promises and cache them
|
|
const segmentPromises = new Map();
|
|
const segmentsPromises = new Map();
|
|
const parallelRoutes = tree[1];
|
|
for (const parallelRouteKey of Object.keys(parallelRoutes)){
|
|
const segments = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getSelectedLayoutSegmentPath"])(tree, parallelRouteKey);
|
|
// Use the shared logic to compute the segment value
|
|
const segment = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$segment$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["computeSelectedLayoutSegment"])(segments, parallelRouteKey);
|
|
segmentPromises.set(parallelRouteKey, (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDevToolsInstrumentedPromise"])('useSelectedLayoutSegment', segment));
|
|
segmentsPromises.set(parallelRouteKey, (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDevToolsInstrumentedPromise"])('useSelectedLayoutSegments', segments));
|
|
}
|
|
const result = {
|
|
selectedLayoutSegmentPromises: segmentPromises,
|
|
selectedLayoutSegmentsPromises: segmentsPromises
|
|
};
|
|
// Cache the result for future renders
|
|
layoutSegmentPromisesCache.set(tree, result);
|
|
return result;
|
|
}
|
|
const rootNavigationPromisesCache = new WeakMap();
|
|
function createRootNavigationPromises(tree, pathname, searchParams, pathParams) {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
// Create stable cache keys from the values
|
|
const searchParamsString = searchParams.toString();
|
|
const pathParamsString = JSON.stringify(pathParams);
|
|
const cacheKey = `${pathname}:${searchParamsString}:${pathParamsString}`;
|
|
// Get or create the cache for this tree
|
|
let treeCache = rootNavigationPromisesCache.get(tree);
|
|
if (!treeCache) {
|
|
treeCache = new Map();
|
|
rootNavigationPromisesCache.set(tree, treeCache);
|
|
}
|
|
// Check if we have cached promises for this combination
|
|
const cached = treeCache.get(cacheKey);
|
|
if (cached) {
|
|
return cached;
|
|
}
|
|
const readonlySearchParams = new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$readonly$2d$url$2d$search$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReadonlyURLSearchParams"](searchParams);
|
|
const layoutSegmentPromises = createLayoutSegmentPromises(tree);
|
|
const promises = {
|
|
pathname: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDevToolsInstrumentedPromise"])('usePathname', pathname),
|
|
searchParams: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDevToolsInstrumentedPromise"])('useSearchParams', readonlySearchParams),
|
|
params: (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDevToolsInstrumentedPromise"])('useParams', pathParams),
|
|
...layoutSegmentPromises
|
|
};
|
|
treeCache.set(cacheKey, promises);
|
|
return promises;
|
|
}
|
|
const nestedLayoutPromisesCache = new WeakMap();
|
|
function createNestedLayoutNavigationPromises(tree, parentNavPromises) {
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
const parallelRoutes = tree[1];
|
|
const parallelRouteKeys = Object.keys(parallelRoutes);
|
|
// Only create promises if there are parallel routes at this level
|
|
if (parallelRouteKeys.length === 0) {
|
|
return null;
|
|
}
|
|
// Get or create the cache for this tree
|
|
let treeCache = nestedLayoutPromisesCache.get(tree);
|
|
if (!treeCache) {
|
|
treeCache = new Map();
|
|
nestedLayoutPromisesCache.set(tree, treeCache);
|
|
}
|
|
// Check if we have cached promises for this parent combination
|
|
const cached = treeCache.get(parentNavPromises);
|
|
if (cached) {
|
|
return cached;
|
|
}
|
|
// Create merged promises
|
|
const layoutSegmentPromises = createLayoutSegmentPromises(tree);
|
|
const promises = {
|
|
...parentNavPromises,
|
|
...layoutSegmentPromises
|
|
};
|
|
treeCache.set(parentNavPromises, promises);
|
|
return promises;
|
|
} //# sourceMappingURL=navigation-devtools.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE",
|
|
()=>SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE,
|
|
"SegmentBoundaryTriggerNode",
|
|
()=>SegmentBoundaryTriggerNode,
|
|
"SegmentStateProvider",
|
|
()=>SegmentStateProvider,
|
|
"SegmentViewNode",
|
|
()=>SegmentViewNode,
|
|
"SegmentViewStateNode",
|
|
()=>SegmentViewStateNode,
|
|
"useSegmentState",
|
|
()=>useSegmentState
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/next-devtools/dev-overlay.shim.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$not$2d$found$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/not-found.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
const SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE = 'NEXT_DEVTOOLS_SIMULATED_ERROR';
|
|
function SegmentTrieNode({ type, pagePath }) {
|
|
const { boundaryType, setBoundaryType } = useSegmentState();
|
|
const nodeState = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useMemo"])(()=>{
|
|
return {
|
|
type,
|
|
pagePath,
|
|
boundaryType,
|
|
setBoundaryType
|
|
};
|
|
}, [
|
|
type,
|
|
pagePath,
|
|
boundaryType,
|
|
setBoundaryType
|
|
]);
|
|
// Use `useLayoutEffect` to ensure the state is updated during suspense.
|
|
// `useEffect` won't work as the state is preserved during suspense.
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].segmentExplorerNodeAdd(nodeState);
|
|
return ()=>{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].segmentExplorerNodeRemove(nodeState);
|
|
};
|
|
}, [
|
|
nodeState
|
|
]);
|
|
return null;
|
|
}
|
|
function NotFoundSegmentNode() {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$not$2d$found$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["notFound"])();
|
|
}
|
|
function ErrorSegmentNode() {
|
|
throw Object.defineProperty(new Error(SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE), "__NEXT_ERROR_CODE", {
|
|
value: "E394",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const forever = new Promise(()=>{});
|
|
function LoadingSegmentNode() {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(forever);
|
|
return null;
|
|
}
|
|
function SegmentViewStateNode({ page }) {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useLayoutEffect"])(()=>{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].segmentExplorerUpdateRouteState(page);
|
|
return ()=>{
|
|
__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$next$2d$devtools$2f$dev$2d$overlay$2e$shim$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatcher"].segmentExplorerUpdateRouteState('');
|
|
};
|
|
}, [
|
|
page
|
|
]);
|
|
return null;
|
|
}
|
|
function SegmentBoundaryTriggerNode() {
|
|
const { boundaryType } = useSegmentState();
|
|
let segmentNode = null;
|
|
if (boundaryType === 'loading') {
|
|
segmentNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(LoadingSegmentNode, {});
|
|
} else if (boundaryType === 'not-found') {
|
|
segmentNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(NotFoundSegmentNode, {});
|
|
} else if (boundaryType === 'error') {
|
|
segmentNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(ErrorSegmentNode, {});
|
|
}
|
|
return segmentNode;
|
|
}
|
|
function SegmentViewNode({ type, pagePath, children }) {
|
|
const segmentNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SegmentTrieNode, {
|
|
type: type,
|
|
pagePath: pagePath
|
|
}, type);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
segmentNode,
|
|
children
|
|
]
|
|
});
|
|
}
|
|
const SegmentStateContext = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createContext"])({
|
|
boundaryType: null,
|
|
setBoundaryType: ()=>{}
|
|
});
|
|
function SegmentStateProvider({ children }) {
|
|
const [boundaryType, setBoundaryType] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(null);
|
|
const [errorBoundaryKey, setErrorBoundaryKey] = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useState"])(0);
|
|
const reloadBoundary = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])(()=>setErrorBoundaryKey((prev)=>prev + 1), []);
|
|
const setBoundaryTypeAndReload = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useCallback"])((type)=>{
|
|
if (type === null) {
|
|
reloadBoundary();
|
|
}
|
|
setBoundaryType(type);
|
|
}, [
|
|
reloadBoundary
|
|
]);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SegmentStateContext.Provider, {
|
|
value: {
|
|
boundaryType,
|
|
setBoundaryType: setBoundaryTypeAndReload
|
|
},
|
|
children: children
|
|
}, errorBoundaryKey);
|
|
}
|
|
function useSegmentState() {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(SegmentStateContext);
|
|
} //# sourceMappingURL=segment-explorer-node.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/layout-router.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>OuterLayoutRouter
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/router-reducer-types.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$dom$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$fetch$2d$server$2d$response$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/fetch-server-response.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$unresolved$2d$thenable$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/unresolved-thenable.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$error$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/error-boundary.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$match$2d$segments$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/match-segments.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$disable$2d$smooth$2d$scroll$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/disable-smooth-scroll.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/redirect-boundary.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$error$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$router$2d$cache$2d$key$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/create-router-cache-key.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$reducers$2f$has$2d$interception$2d$route$2d$in$2d$current$2d$tree$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$use$2d$action$2d$queue$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/use-action-queue.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$bfcache$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/bfcache.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/router/utils/app-paths.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/route-params.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
/**
|
|
* Add refetch marker to router state at the point of the current layout segment.
|
|
* This ensures the response returned is not further down than the current layout segment.
|
|
*/ function walkAddRefetch(segmentPathToWalk, treeToRecreate) {
|
|
if (segmentPathToWalk) {
|
|
const [segment, parallelRouteKey] = segmentPathToWalk;
|
|
const isLast = segmentPathToWalk.length === 2;
|
|
if ((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$match$2d$segments$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["matchSegment"])(treeToRecreate[0], segment)) {
|
|
if (treeToRecreate[1].hasOwnProperty(parallelRouteKey)) {
|
|
if (isLast) {
|
|
const subTree = walkAddRefetch(undefined, treeToRecreate[1][parallelRouteKey]);
|
|
return [
|
|
treeToRecreate[0],
|
|
{
|
|
...treeToRecreate[1],
|
|
[parallelRouteKey]: [
|
|
subTree[0],
|
|
subTree[1],
|
|
subTree[2],
|
|
'refetch'
|
|
]
|
|
}
|
|
];
|
|
}
|
|
return [
|
|
treeToRecreate[0],
|
|
{
|
|
...treeToRecreate[1],
|
|
[parallelRouteKey]: walkAddRefetch(segmentPathToWalk.slice(2), treeToRecreate[1][parallelRouteKey])
|
|
}
|
|
];
|
|
}
|
|
}
|
|
}
|
|
return treeToRecreate;
|
|
}
|
|
const __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$dom$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;
|
|
// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available
|
|
/**
|
|
* Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning
|
|
*/ function findDOMNode(instance) {
|
|
// Tree-shake for server bundle
|
|
if ("TURBOPACK compile-time truthy", 1) return null;
|
|
//TURBOPACK unreachable
|
|
;
|
|
// __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.
|
|
// We need to lazily reference it.
|
|
const internal_reactDOMfindDOMNode = undefined;
|
|
}
|
|
const rectProperties = [
|
|
'bottom',
|
|
'height',
|
|
'left',
|
|
'right',
|
|
'top',
|
|
'width',
|
|
'x',
|
|
'y'
|
|
];
|
|
/**
|
|
* Check if a HTMLElement is hidden or fixed/sticky position
|
|
*/ function shouldSkipElement(element) {
|
|
// we ignore fixed or sticky positioned elements since they'll likely pass the "in-viewport" check
|
|
// and will result in a situation we bail on scroll because of something like a fixed nav,
|
|
// even though the actual page content is offscreen
|
|
if ([
|
|
'sticky',
|
|
'fixed'
|
|
].includes(getComputedStyle(element).position)) {
|
|
return true;
|
|
}
|
|
// Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`
|
|
// because `offsetParent` doesn't consider document/body
|
|
const rect = element.getBoundingClientRect();
|
|
return rectProperties.every((item)=>rect[item] === 0);
|
|
}
|
|
/**
|
|
* Check if the top corner of the HTMLElement is in the viewport.
|
|
*/ function topOfElementInViewport(element, viewportHeight) {
|
|
const rect = element.getBoundingClientRect();
|
|
return rect.top >= 0 && rect.top <= viewportHeight;
|
|
}
|
|
/**
|
|
* Find the DOM node for a hash fragment.
|
|
* If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.
|
|
* If the hash fragment is an id, the page has to scroll to the element with that id.
|
|
* If the hash fragment is a name, the page has to scroll to the first element with that name.
|
|
*/ function getHashFragmentDomNode(hashFragment) {
|
|
// If the hash fragment is `top` the page has to scroll to the top of the page.
|
|
if (hashFragment === 'top') {
|
|
return document.body;
|
|
}
|
|
// If the hash fragment is an id, the page has to scroll to the element with that id.
|
|
return document.getElementById(hashFragment) ?? // If the hash fragment is a name, the page has to scroll to the first element with that name.
|
|
document.getElementsByName(hashFragment)[0];
|
|
}
|
|
class InnerScrollAndFocusHandler extends __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["default"].Component {
|
|
componentDidMount() {
|
|
this.handlePotentialScroll();
|
|
}
|
|
componentDidUpdate() {
|
|
// Because this property is overwritten in handlePotentialScroll it's fine to always run it when true as it'll be set to false for subsequent renders.
|
|
if (this.props.focusAndScrollRef.apply) {
|
|
this.handlePotentialScroll();
|
|
}
|
|
}
|
|
render() {
|
|
return this.props.children;
|
|
}
|
|
constructor(...args){
|
|
super(...args), this.handlePotentialScroll = ()=>{
|
|
// Handle scroll and focus, it's only applied once in the first useEffect that triggers that changed.
|
|
const { focusAndScrollRef, segmentPath } = this.props;
|
|
if (focusAndScrollRef.apply) {
|
|
// segmentPaths is an array of segment paths that should be scrolled to
|
|
// if the current segment path is not in the array, the scroll is not applied
|
|
// unless the array is empty, in which case the scroll is always applied
|
|
if (focusAndScrollRef.segmentPaths.length !== 0 && !focusAndScrollRef.segmentPaths.some((scrollRefSegmentPath)=>segmentPath.every((segment, index)=>(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$match$2d$segments$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["matchSegment"])(segment, scrollRefSegmentPath[index])))) {
|
|
return;
|
|
}
|
|
let domNode = null;
|
|
const hashFragment = focusAndScrollRef.hashFragment;
|
|
if (hashFragment) {
|
|
domNode = getHashFragmentDomNode(hashFragment);
|
|
}
|
|
// `findDOMNode` is tricky because it returns just the first child if the component is a fragment.
|
|
// This already caused a bug where the first child was a <link/> in head.
|
|
if (!domNode) {
|
|
domNode = findDOMNode(this);
|
|
}
|
|
// If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.
|
|
if (!(domNode instanceof Element)) {
|
|
return;
|
|
}
|
|
// Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.
|
|
// If the element is skipped, try to select the next sibling and try again.
|
|
while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
if (domNode.parentElement?.localName === 'head') {
|
|
// TODO: We enter this state when metadata was rendered as part of the page or via Next.js.
|
|
// This is always a bug in Next.js and caused by React hoisting metadata.
|
|
// We need to replace `findDOMNode` in favor of Fragment Refs (when available) so that we can skip over metadata.
|
|
}
|
|
}
|
|
// No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.
|
|
if (domNode.nextElementSibling === null) {
|
|
return;
|
|
}
|
|
domNode = domNode.nextElementSibling;
|
|
}
|
|
// State is mutated to ensure that the focus and scroll is applied only once.
|
|
focusAndScrollRef.apply = false;
|
|
focusAndScrollRef.hashFragment = null;
|
|
focusAndScrollRef.segmentPaths = [];
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$disable$2d$smooth$2d$scroll$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["disableSmoothScrollDuringRouteTransition"])(()=>{
|
|
// In case of hash scroll, we only need to scroll the element into view
|
|
if (hashFragment) {
|
|
;
|
|
domNode.scrollIntoView();
|
|
return;
|
|
}
|
|
// Store the current viewport height because reading `clientHeight` causes a reflow,
|
|
// and it won't change during this function.
|
|
const htmlElement = document.documentElement;
|
|
const viewportHeight = htmlElement.clientHeight;
|
|
// If the element's top edge is already in the viewport, exit early.
|
|
if (topOfElementInViewport(domNode, viewportHeight)) {
|
|
return;
|
|
}
|
|
// Otherwise, try scrolling go the top of the document to be backward compatible with pages
|
|
// scrollIntoView() called on `<html/>` element scrolls horizontally on chrome and firefox (that shouldn't happen)
|
|
// We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left
|
|
// scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically
|
|
htmlElement.scrollTop = 0;
|
|
// Scroll to domNode if domNode is not in viewport when scrolled to top of document
|
|
if (!topOfElementInViewport(domNode, viewportHeight)) {
|
|
// Scroll into view doesn't scroll horizontally by default when not needed
|
|
;
|
|
domNode.scrollIntoView();
|
|
}
|
|
}, {
|
|
// We will force layout by querying domNode position
|
|
dontForceLayout: true,
|
|
onlyHashChange: focusAndScrollRef.onlyHashChange
|
|
});
|
|
// Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`
|
|
focusAndScrollRef.onlyHashChange = false;
|
|
// Set focus on the element
|
|
domNode.focus();
|
|
}
|
|
};
|
|
}
|
|
}
|
|
function ScrollAndFocusHandler({ segmentPath, children }) {
|
|
const context = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["GlobalLayoutRouterContext"]);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant global layout router not mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E473",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(InnerScrollAndFocusHandler, {
|
|
segmentPath: segmentPath,
|
|
focusAndScrollRef: context.focusAndScrollRef,
|
|
children: children
|
|
});
|
|
}
|
|
/**
|
|
* InnerLayoutRouter handles rendering the provided segment based on the cache.
|
|
*/ function InnerLayoutRouter({ tree, segmentPath, debugNameContext, cacheNode, params, url, isActive }) {
|
|
const context = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["GlobalLayoutRouterContext"]);
|
|
const parentNavPromises = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"]);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant global layout router not mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E473",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const { tree: fullTree } = context;
|
|
// `rsc` represents the renderable node for this segment.
|
|
// If this segment has a `prefetchRsc`, it's the statically prefetched data.
|
|
// We should use that on initial render instead of `rsc`. Then we'll switch
|
|
// to `rsc` when the dynamic response streams in.
|
|
//
|
|
// If no prefetch data is available, then we go straight to rendering `rsc`.
|
|
const resolvedPrefetchRsc = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc;
|
|
// We use `useDeferredValue` to handle switching between the prefetched and
|
|
// final values. The second argument is returned on initial render, then it
|
|
// re-renders with the first argument.
|
|
const rsc = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useDeferredValue"])(cacheNode.rsc, resolvedPrefetchRsc);
|
|
// `rsc` is either a React node or a promise for a React node, except we
|
|
// special case `null` to represent that this segment's data is missing. If
|
|
// it's a promise, we need to unwrap it so we can determine whether or not the
|
|
// data is missing.
|
|
const resolvedRsc = typeof rsc === 'object' && rsc !== null && typeof rsc.then === 'function' ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(rsc) : rsc;
|
|
if (!resolvedRsc) {
|
|
// The data for this segment is not available, and there's no pending
|
|
// navigation that will be able to fulfill it. We need to fetch more from
|
|
// the server and patch the cache.
|
|
// Only fetch data for the active segment. Inactive segments (rendered
|
|
// offscreen for bfcache) should not trigger fetches.
|
|
if (isActive) {
|
|
// Check if there's already a pending request.
|
|
let lazyData = cacheNode.lazyData;
|
|
if (lazyData === null) {
|
|
/**
|
|
* Router state with refetch marker added
|
|
*/ // TODO-APP: remove ''
|
|
const refetchTree = walkAddRefetch([
|
|
'',
|
|
...segmentPath
|
|
], fullTree);
|
|
const includeNextUrl = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$reducers$2f$has$2d$interception$2d$route$2d$in$2d$current$2d$tree$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["hasInterceptionRouteInCurrentTree"])(fullTree);
|
|
const navigatedAt = Date.now();
|
|
cacheNode.lazyData = lazyData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$fetch$2d$server$2d$response$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["fetchServerResponse"])(new URL(url, location.origin), {
|
|
flightRouterState: refetchTree,
|
|
nextUrl: includeNextUrl ? // the next-url after a navigation, but we want the same
|
|
// interception route to be matched that used the last
|
|
// next-url.
|
|
context.previousNextUrl || context.nextUrl : null
|
|
}).then((serverResponse)=>{
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["startTransition"])(()=>{
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$use$2d$action$2d$queue$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["dispatchAppRouterAction"])({
|
|
type: __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$router$2d$reducer$2d$types$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ACTION_SERVER_PATCH"],
|
|
previousTree: fullTree,
|
|
serverResponse,
|
|
navigatedAt
|
|
});
|
|
});
|
|
return serverResponse;
|
|
});
|
|
// Suspend while waiting for lazyData to resolve
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(lazyData);
|
|
}
|
|
}
|
|
// Suspend infinitely as `changeByServerResponse` will cause a different part of the tree to be rendered.
|
|
// A falsey `resolvedRsc` indicates missing data -- we should not commit that branch, and we need to wait for the data to arrive.
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$unresolved$2d$thenable$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["unresolvedThenable"]);
|
|
}
|
|
// If we get to this point, then we know we have something we can render.
|
|
let content = resolvedRsc;
|
|
// In dev, we create a NavigationPromisesContext containing the instrumented promises that provide
|
|
// `useSelectedLayoutSegment` and `useSelectedLayoutSegments`.
|
|
// Promises are cached outside of render to survive suspense retries.
|
|
let navigationPromises = null;
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { createNestedLayoutNavigationPromises } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/navigation-devtools.js [app-ssr] (ecmascript)");
|
|
navigationPromises = createNestedLayoutNavigationPromises(tree, parentNavPromises);
|
|
}
|
|
if (navigationPromises) {
|
|
content = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["NavigationPromisesContext"].Provider, {
|
|
value: navigationPromises,
|
|
children: resolvedRsc
|
|
});
|
|
}
|
|
const subtree = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["LayoutRouterContext"].Provider, {
|
|
value: {
|
|
parentTree: tree,
|
|
parentCacheNode: cacheNode,
|
|
parentSegmentPath: segmentPath,
|
|
parentParams: params,
|
|
debugNameContext: debugNameContext,
|
|
// TODO-APP: overriding of url for parallel routes
|
|
url: url,
|
|
isActive: isActive
|
|
},
|
|
children: content
|
|
});
|
|
// Ensure root layout is not wrapped in a div as the root layout renders `<html>`
|
|
return subtree;
|
|
}
|
|
/**
|
|
* Renders suspense boundary with the provided "loading" property as the fallback.
|
|
* If no loading property is provided it renders the children without a suspense boundary.
|
|
*/ function LoadingBoundary({ name, loading, children }) {
|
|
// If loading is a promise, unwrap it. This happens in cases where we haven't
|
|
// yet received the loading data from the server — which includes whether or
|
|
// not this layout has a loading component at all.
|
|
//
|
|
// It's OK to suspend here instead of inside the fallback because this
|
|
// promise will resolve simultaneously with the data for the segment itself.
|
|
// So it will never suspend for longer than it would have if we didn't use
|
|
// a Suspense fallback at all.
|
|
let loadingModuleData;
|
|
if (typeof loading === 'object' && loading !== null && typeof loading.then === 'function') {
|
|
const promiseForLoading = loading;
|
|
loadingModuleData = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(promiseForLoading);
|
|
} else {
|
|
loadingModuleData = loading;
|
|
}
|
|
if (loadingModuleData) {
|
|
const loadingRsc = loadingModuleData[0];
|
|
const loadingStyles = loadingModuleData[1];
|
|
const loadingScripts = loadingModuleData[2];
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Suspense"], {
|
|
name: name,
|
|
fallback: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: [
|
|
loadingStyles,
|
|
loadingScripts,
|
|
loadingRsc
|
|
]
|
|
}),
|
|
children: children
|
|
});
|
|
}
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: children
|
|
});
|
|
}
|
|
function OuterLayoutRouter({ parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, segmentViewBoundaries }) {
|
|
const context = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["LayoutRouterContext"]);
|
|
if (!context) {
|
|
throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), "__NEXT_ERROR_CODE", {
|
|
value: "E56",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const { parentTree, parentCacheNode, parentSegmentPath, parentParams, url, isActive, debugNameContext } = context;
|
|
// Get the CacheNode for this segment by reading it from the parent segment's
|
|
// child map.
|
|
const parentParallelRoutes = parentCacheNode.parallelRoutes;
|
|
let segmentMap = parentParallelRoutes.get(parallelRouterKey);
|
|
// If the parallel router cache node does not exist yet, create it.
|
|
// This writes to the cache when there is no item in the cache yet. It never *overwrites* existing cache items which is why it's safe in concurrent mode.
|
|
if (!segmentMap) {
|
|
segmentMap = new Map();
|
|
parentParallelRoutes.set(parallelRouterKey, segmentMap);
|
|
}
|
|
const parentTreeSegment = parentTree[0];
|
|
const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.
|
|
[
|
|
parallelRouterKey
|
|
] : parentSegmentPath.concat([
|
|
parentTreeSegment,
|
|
parallelRouterKey
|
|
]);
|
|
// The "state" key of a segment is the one passed to React — it represents the
|
|
// identity of the UI tree. Whenever the state key changes, the tree is
|
|
// recreated and the state is reset. In the App Router model, search params do
|
|
// not cause state to be lost, so two segments with the same segment path but
|
|
// different search params should have the same state key.
|
|
//
|
|
// The "cache" key of a segment, however, *does* include the search params, if
|
|
// it's possible that the segment accessed the search params on the server.
|
|
// (This only applies to page segments; layout segments cannot access search
|
|
// params on the server.)
|
|
const activeTree = parentTree[1][parallelRouterKey];
|
|
const activeSegment = activeTree[0];
|
|
const activeStateKey = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$router$2d$cache$2d$key$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createRouterCacheKey"])(activeSegment, true) // no search params
|
|
;
|
|
// At each level of the route tree, not only do we render the currently
|
|
// active segment — we also render the last N segments that were active at
|
|
// this level inside a hidden <Activity> boundary, to preserve their state
|
|
// if or when the user navigates to them again.
|
|
//
|
|
// bfcacheEntry is a linked list of FlightRouterStates.
|
|
let bfcacheEntry = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$bfcache$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useRouterBFCache"])(activeTree, activeStateKey);
|
|
let children = [];
|
|
do {
|
|
const tree = bfcacheEntry.tree;
|
|
const stateKey = bfcacheEntry.stateKey;
|
|
const segment = tree[0];
|
|
const cacheKey = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$router$2d$reducer$2f$create$2d$router$2d$cache$2d$key$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createRouterCacheKey"])(segment);
|
|
// Read segment path from the parallel router cache node.
|
|
let cacheNode = segmentMap.get(cacheKey);
|
|
if (cacheNode === undefined) {
|
|
// When data is not available during rendering client-side we need to fetch
|
|
// it from the server.
|
|
const newLazyCacheNode = {
|
|
lazyData: null,
|
|
rsc: null,
|
|
prefetchRsc: null,
|
|
head: null,
|
|
prefetchHead: null,
|
|
parallelRoutes: new Map(),
|
|
loading: null,
|
|
navigatedAt: -1
|
|
};
|
|
// Flight data fetch kicked off during render and put into the cache.
|
|
cacheNode = newLazyCacheNode;
|
|
segmentMap.set(cacheKey, newLazyCacheNode);
|
|
}
|
|
/*
|
|
- Error boundary
|
|
- Only renders error boundary if error component is provided.
|
|
- Rendered for each segment to ensure they have their own error state.
|
|
- When gracefully degrade for bots, skip rendering error boundary.
|
|
- Loading boundary
|
|
- Only renders suspense boundary if loading components is provided.
|
|
- Rendered for each segment to ensure they have their own loading state.
|
|
- Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.
|
|
*/ let segmentBoundaryTriggerNode = null;
|
|
let segmentViewStateNode = null;
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { SegmentBoundaryTriggerNode, SegmentViewStateNode } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)");
|
|
const pagePrefix = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$router$2f$utils$2f$app$2d$paths$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["normalizeAppPath"])(url);
|
|
segmentViewStateNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SegmentViewStateNode, {
|
|
page: pagePrefix
|
|
}, pagePrefix);
|
|
segmentBoundaryTriggerNode = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(SegmentBoundaryTriggerNode, {})
|
|
});
|
|
}
|
|
let params = parentParams;
|
|
if (Array.isArray(segment)) {
|
|
// This segment contains a route param. Accumulate these as we traverse
|
|
// down the router tree. The result represents the set of params that
|
|
// the layout/page components are permitted to access below this point.
|
|
const paramName = segment[0];
|
|
const paramCacheKey = segment[1];
|
|
const paramType = segment[2];
|
|
const paramValue = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["getParamValueFromCacheKey"])(paramCacheKey, paramType);
|
|
if (paramValue !== null) {
|
|
params = {
|
|
...parentParams,
|
|
[paramName]: paramValue
|
|
};
|
|
}
|
|
}
|
|
const debugName = getBoundaryDebugNameFromSegment(segment);
|
|
// `debugNameContext` represents the nearest non-"virtual" parent segment.
|
|
// `getBoundaryDebugNameFromSegment` returns undefined for virtual segments.
|
|
// So if `debugName` is undefined, the context is passed through unchanged.
|
|
const childDebugNameContext = debugName ?? debugNameContext;
|
|
// In practical terms, clicking this name in the Suspense DevTools
|
|
// should select the child slots of that layout.
|
|
//
|
|
// So the name we apply to the Activity boundary is actually based on
|
|
// the nearest parent segments.
|
|
//
|
|
// We skip over "virtual" parents, i.e. ones inserted by Next.js that
|
|
// don't correspond to application-defined code.
|
|
const isVirtual = debugName === undefined;
|
|
const debugNameToDisplay = isVirtual ? undefined : debugNameContext;
|
|
// TODO: The loading module data for a segment is stored on the parent, then
|
|
// applied to each of that parent segment's parallel route slots. In the
|
|
// simple case where there's only one parallel route (the `children` slot),
|
|
// this is no different from if the loading module data where stored on the
|
|
// child directly. But I'm not sure this actually makes sense when there are
|
|
// multiple parallel routes. It's not a huge issue because you always have
|
|
// the option to define a narrower loading boundary for a particular slot. But
|
|
// this sort of smells like an implementation accident to me.
|
|
const loadingModuleData = parentCacheNode.loading;
|
|
let child = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TemplateContext"].Provider, {
|
|
value: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(ScrollAndFocusHandler, {
|
|
segmentPath: segmentPath,
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$error$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ErrorBoundary"], {
|
|
errorComponent: error,
|
|
errorStyles: errorStyles,
|
|
errorScripts: errorScripts,
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(LoadingBoundary, {
|
|
name: debugNameToDisplay,
|
|
loading: loadingModuleData,
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$http$2d$access$2d$fallback$2f$error$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["HTTPAccessFallbackBoundary"], {
|
|
notFound: notFound,
|
|
forbidden: forbidden,
|
|
unauthorized: unauthorized,
|
|
children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$redirect$2d$boundary$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RedirectBoundary"], {
|
|
children: [
|
|
/*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(InnerLayoutRouter, {
|
|
url: url,
|
|
tree: tree,
|
|
params: params,
|
|
cacheNode: cacheNode,
|
|
segmentPath: segmentPath,
|
|
debugNameContext: childDebugNameContext,
|
|
isActive: isActive && stateKey === activeStateKey
|
|
}),
|
|
segmentBoundaryTriggerNode
|
|
]
|
|
})
|
|
})
|
|
})
|
|
}),
|
|
segmentViewStateNode
|
|
]
|
|
}),
|
|
children: [
|
|
templateStyles,
|
|
templateScripts,
|
|
template
|
|
]
|
|
}, stateKey);
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { SegmentStateProvider } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js [app-ssr] (ecmascript)");
|
|
child = /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsxs"])(SegmentStateProvider, {
|
|
children: [
|
|
child,
|
|
segmentViewBoundaries
|
|
]
|
|
}, stateKey);
|
|
}
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
children.push(child);
|
|
bfcacheEntry = bfcacheEntry.next;
|
|
}while (bfcacheEntry !== null)
|
|
return children;
|
|
}
|
|
function getBoundaryDebugNameFromSegment(segment) {
|
|
if (segment === '/') {
|
|
// Reached the root
|
|
return '/';
|
|
}
|
|
if (typeof segment === 'string') {
|
|
if (isVirtualLayout(segment)) {
|
|
return undefined;
|
|
} else {
|
|
return segment + '/';
|
|
}
|
|
}
|
|
const paramCacheKey = segment[1];
|
|
return paramCacheKey + '/';
|
|
}
|
|
function isVirtualLayout(segment) {
|
|
return(// in a more special way instead of checking the name, to distinguish them
|
|
// from app-defined groups.
|
|
segment === '(slot)');
|
|
} //# sourceMappingURL=layout-router.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/render-from-template-context.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"default",
|
|
()=>RenderFromTemplateContext
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
function RenderFromTemplateContext() {
|
|
const children = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["useContext"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["TemplateContext"]);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["Fragment"], {
|
|
children: children
|
|
});
|
|
} //# sourceMappingURL=render-from-template-context.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ReflectAdapter",
|
|
()=>ReflectAdapter
|
|
]);
|
|
class ReflectAdapter {
|
|
static get(target, prop, receiver) {
|
|
const value = Reflect.get(target, prop, receiver);
|
|
if (typeof value === 'function') {
|
|
return value.bind(target);
|
|
}
|
|
return value;
|
|
}
|
|
static set(target, prop, value, receiver) {
|
|
return Reflect.set(target, prop, value, receiver);
|
|
}
|
|
static has(target, prop) {
|
|
return Reflect.has(target, prop);
|
|
}
|
|
static deleteProperty(target, prop) {
|
|
return Reflect.deleteProperty(target, prop);
|
|
}
|
|
} //# sourceMappingURL=reflect.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/create-deduped-by-callsite-server-error-logger.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createDedupedByCallsiteServerErrorLoggerDev",
|
|
()=>createDedupedByCallsiteServerErrorLoggerDev
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
;
|
|
const errorRef = {
|
|
current: null
|
|
};
|
|
// React.cache is currently only available in canary/experimental React channels.
|
|
const cache = typeof __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cache"] === 'function' ? __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["cache"] : (fn)=>fn;
|
|
// When Cache Components is enabled, we record these as errors so that they
|
|
// are captured by the dev overlay as it's more critical to fix these
|
|
// when enabled.
|
|
const logErrorOrWarn = ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : console.warn;
|
|
// We don't want to dedupe across requests.
|
|
// The developer might've just attempted to fix the warning so we should warn again if it still happens.
|
|
const flushCurrentErrorIfNew = cache((key)=>{
|
|
try {
|
|
logErrorOrWarn(errorRef.current);
|
|
} finally{
|
|
errorRef.current = null;
|
|
}
|
|
});
|
|
function createDedupedByCallsiteServerErrorLoggerDev(getMessage) {
|
|
return function logDedupedError(...args) {
|
|
const message = getMessage(...args);
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
var _stack;
|
|
const callStackFrames = (_stack = new Error().stack) == null ? void 0 : _stack.split('\n');
|
|
if (callStackFrames === undefined || callStackFrames.length < 4) {
|
|
logErrorOrWarn(message);
|
|
} else {
|
|
// Error:
|
|
// logDedupedError
|
|
// asyncApiBeingAccessedSynchronously
|
|
// <userland callsite>
|
|
// TODO: This breaks if sourcemaps with ignore lists are enabled.
|
|
const key = callStackFrames[4];
|
|
errorRef.current = message;
|
|
flushCurrentErrorIfNew(key);
|
|
}
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
};
|
|
} //# sourceMappingURL=create-deduped-by-callsite-server-error-logger.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/reflect-utils.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
// This regex will have fast negatives meaning valid identifiers may not pass
|
|
// this test. However this is only used during static generation to provide hints
|
|
// about why a page bailed out of some or all prerendering and we can use bracket notation
|
|
// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`
|
|
// even if this would have been fine too `searchParams.ಠ_ಠ`
|
|
__turbopack_context__.s([
|
|
"describeHasCheckingStringProperty",
|
|
()=>describeHasCheckingStringProperty,
|
|
"describeStringPropertyAccess",
|
|
()=>describeStringPropertyAccess,
|
|
"wellKnownProperties",
|
|
()=>wellKnownProperties
|
|
]);
|
|
const isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
function describeStringPropertyAccess(target, prop) {
|
|
if (isDefinitelyAValidIdentifier.test(prop)) {
|
|
return `\`${target}.${prop}\``;
|
|
}
|
|
return `\`${target}[${JSON.stringify(prop)}]\``;
|
|
}
|
|
function describeHasCheckingStringProperty(target, prop) {
|
|
const stringifiedProp = JSON.stringify(prop);
|
|
return `\`Reflect.has(${target}, ${stringifiedProp})\`, \`${stringifiedProp} in ${target}\`, or similar`;
|
|
}
|
|
const wellKnownProperties = new Set([
|
|
'hasOwnProperty',
|
|
'isPrototypeOf',
|
|
'propertyIsEnumerable',
|
|
'toString',
|
|
'valueOf',
|
|
'toLocaleString',
|
|
// Promise prototype
|
|
'then',
|
|
'catch',
|
|
'finally',
|
|
// React Promise extension
|
|
'status',
|
|
// 'value',
|
|
// 'error',
|
|
// React introspection
|
|
'displayName',
|
|
'_debugInfo',
|
|
// Common tested properties
|
|
'toJSON',
|
|
'$$typeof',
|
|
'__esModule'
|
|
]); //# sourceMappingURL=reflect-utils.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/utils.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"isRequestAPICallableInsideAfter",
|
|
()=>isRequestAPICallableInsideAfter,
|
|
"throwForSearchParamsAccessInUseCache",
|
|
()=>throwForSearchParamsAccessInUseCache,
|
|
"throwWithStaticGenerationBailoutErrorWithDynamicError",
|
|
()=>throwWithStaticGenerationBailoutErrorWithDynamicError
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/static-generation-bailout.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$after$2d$task$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$after$2d$task$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/after-task-async-storage.external.js [external] (next/dist/server/app-render/after-task-async-storage.external.js, cjs)");
|
|
;
|
|
;
|
|
function throwWithStaticGenerationBailoutErrorWithDynamicError(route, expression) {
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$components$2f$static$2d$generation$2d$bailout$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["StaticGenBailoutError"](`Route ${route} with \`dynamic = "error"\` couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", {
|
|
value: "E543",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
function throwForSearchParamsAccessInUseCache(workStore, constructorOpt) {
|
|
const error = Object.defineProperty(new Error(`Route ${workStore.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), "__NEXT_ERROR_CODE", {
|
|
value: "E842",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
Error.captureStackTrace(error, constructorOpt);
|
|
workStore.invalidDynamicUsageError ??= error;
|
|
throw error;
|
|
}
|
|
function isRequestAPICallableInsideAfter() {
|
|
const afterTaskStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$after$2d$task$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$after$2d$task$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["afterTaskAsyncStorage"].getStore();
|
|
return (afterTaskStore == null ? void 0 : afterTaskStore.rootTaskSpawnPhase) === 'action';
|
|
} //# sourceMappingURL=utils.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/search-params.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createPrerenderSearchParamsForClientPage",
|
|
()=>createPrerenderSearchParamsForClientPage,
|
|
"createSearchParamsFromClient",
|
|
()=>createSearchParamsFromClient,
|
|
"createServerSearchParamsForMetadata",
|
|
()=>createServerSearchParamsForMetadata,
|
|
"createServerSearchParamsForServerPage",
|
|
()=>createServerSearchParamsForServerPage,
|
|
"makeErroringSearchParamsForUseCache",
|
|
()=>makeErroringSearchParamsForUseCache
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$create$2d$deduped$2d$by$2d$callsite$2d$server$2d$error$2d$logger$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/create-deduped-by-callsite-server-error-logger.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/reflect-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function createSearchParamsFromClient(underlyingSearchParams, workStore) {
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderSearchParams(workStore, workUnitStore);
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createSearchParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E769",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createSearchParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E739",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore);
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
const createServerSearchParamsForMetadata = createServerSearchParamsForServerPage;
|
|
function createServerSearchParamsForServerPage(underlyingSearchParams, workStore) {
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderSearchParams(workStore, workUnitStore);
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createServerSearchParamsForServerPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E747",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
return createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore);
|
|
case 'request':
|
|
return createRenderSearchParams(underlyingSearchParams, workStore, workUnitStore);
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
function createPrerenderSearchParamsForClientPage(workStore) {
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
}
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
// We're prerendering in a mode that aborts (cacheComponents) and should stall
|
|
// the promise to ensure the RSC side is considered dynamic
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, '`searchParams`');
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createPrerenderSearchParamsForClientPage should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E768",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createPrerenderSearchParamsForClientPage should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E746",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'request':
|
|
return Promise.resolve({});
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
function createStaticPrerenderSearchParams(workStore, prerenderStore) {
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
}
|
|
switch(prerenderStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
// We are in a cacheComponents (PPR or otherwise) prerender
|
|
return makeHangingSearchParams(workStore, prerenderStore);
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
// We are in a legacy static generation and need to interrupt the
|
|
// prerender when search params are accessed.
|
|
return makeErroringSearchParams(workStore, prerenderStore);
|
|
default:
|
|
return prerenderStore;
|
|
}
|
|
}
|
|
function createRuntimePrerenderSearchParams(underlyingSearchParams, workUnitStore) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["delayUntilRuntimeStage"])(workUnitStore, makeUntrackedSearchParams(underlyingSearchParams));
|
|
}
|
|
function createRenderSearchParams(underlyingSearchParams, workStore, requestStore) {
|
|
if (workStore.forceStatic) {
|
|
// When using forceStatic we override all other logic and always just return an empty
|
|
// dictionary object.
|
|
return Promise.resolve({});
|
|
} else {
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
}
|
|
}
|
|
const CachedSearchParams = new WeakMap();
|
|
const CachedSearchParamsForUseCache = new WeakMap();
|
|
function makeHangingSearchParams(workStore, prerenderStore) {
|
|
const cachedSearchParams = CachedSearchParams.get(prerenderStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(prerenderStore.renderSignal, workStore.route, '`searchParams`');
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it.
|
|
// We know it isn't a dynamic access because it can only be something
|
|
// that was previously written to the promise and thus not an underlying searchParam value
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
switch(prop){
|
|
case 'then':
|
|
{
|
|
const expression = '`await searchParams`, `searchParams.then`, or similar';
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["annotateDynamicAccess"])(expression, prerenderStore);
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
case 'status':
|
|
{
|
|
const expression = '`use(searchParams)`, `searchParams.status`, or similar';
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["annotateDynamicAccess"])(expression, prerenderStore);
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
default:
|
|
{
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
CachedSearchParams.set(prerenderStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeErroringSearchParams(workStore, prerenderStore) {
|
|
const cachedSearchParams = CachedSearchParams.get(workStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const underlyingSearchParams = {};
|
|
// For search params we don't construct a ReactPromise because we want to interrupt
|
|
// rendering on any property access that was not set from outside and so we only want
|
|
// to have properties like value and status if React sets them.
|
|
const promise = Promise.resolve(underlyingSearchParams);
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it.
|
|
// We know it isn't a dynamic access because it can only be something
|
|
// that was previously written to the promise and thus not an underlying searchParam value
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
if (typeof prop === 'string' && prop === 'then') {
|
|
const expression = '`await searchParams`, `searchParams.then`, or similar';
|
|
if (workStore.dynamicShouldError) {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwWithStaticGenerationBailoutErrorWithDynamicError"])(workStore.route, expression);
|
|
} else if (prerenderStore.type === 'prerender-ppr') {
|
|
// PPR Prerender (no cacheComponents)
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["postponeWithTracking"])(workStore.route, expression, prerenderStore.dynamicTracking);
|
|
} else {
|
|
// Legacy Prerender
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwToInterruptStaticGeneration"])(expression, workStore, prerenderStore);
|
|
}
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
});
|
|
CachedSearchParams.set(workStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeErroringSearchParamsForUseCache(workStore) {
|
|
const cachedSearchParams = CachedSearchParamsForUseCache.get(workStore);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = Promise.resolve({});
|
|
const proxiedPromise = new Proxy(promise, {
|
|
get: function get(target, prop, receiver) {
|
|
if (Object.hasOwn(promise, prop)) {
|
|
// The promise has this property directly. we must return it. We know it
|
|
// isn't a dynamic access because it can only be something that was
|
|
// previously written to the promise and thus not an underlying
|
|
// searchParam value
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
if (typeof prop === 'string' && (prop === 'then' || !__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop))) {
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwForSearchParamsAccessInUseCache"])(workStore, get);
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
});
|
|
CachedSearchParamsForUseCache.set(workStore, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function makeUntrackedSearchParams(underlyingSearchParams) {
|
|
const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingSearchParams);
|
|
CachedSearchParams.set(underlyingSearchParams, promise);
|
|
return promise;
|
|
}
|
|
function makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams, workStore, requestStore) {
|
|
if (requestStore.asyncApiPromises) {
|
|
// Do not cache the resulting promise. If we do, we'll only show the first "awaited at"
|
|
// across all segments that receive searchParams.
|
|
return makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore);
|
|
} else {
|
|
const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);
|
|
if (cachedSearchParams) {
|
|
return cachedSearchParams;
|
|
}
|
|
const promise = makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore);
|
|
CachedSearchParams.set(requestStore, promise);
|
|
return promise;
|
|
}
|
|
}
|
|
function makeUntrackedSearchParamsWithDevWarningsImpl(underlyingSearchParams, workStore, requestStore) {
|
|
const promiseInitialized = {
|
|
current: false
|
|
};
|
|
const proxiedUnderlying = instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized);
|
|
let promise;
|
|
if (requestStore.asyncApiPromises) {
|
|
// We wrap each instance of searchParams in a `new Promise()`.
|
|
// This is important when all awaits are in third party which would otherwise
|
|
// track all the way to the internal params.
|
|
const sharedSearchParamsParent = requestStore.asyncApiPromises.sharedSearchParamsParent;
|
|
promise = new Promise((resolve, reject)=>{
|
|
sharedSearchParamsParent.then(()=>resolve(proxiedUnderlying), reject);
|
|
});
|
|
// @ts-expect-error
|
|
promise.displayName = 'searchParams';
|
|
} else {
|
|
promise = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeDevtoolsIOAwarePromise"])(proxiedUnderlying, requestStore, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RenderStage"].Runtime);
|
|
}
|
|
promise.then(()=>{
|
|
promiseInitialized.current = true;
|
|
}, // is aborted before it can reach the runtime stage.
|
|
// In that case, we have to prevent an unhandled rejection from the promise
|
|
// created by this `.then()` call.
|
|
// This does not affect the `promiseInitialized` logic above,
|
|
// because `proxiedUnderlying` will not be used to resolve the promise,
|
|
// so there's no risk of any of its properties being accessed and triggering
|
|
// an undesireable warning.
|
|
ignoreReject);
|
|
return instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore);
|
|
}
|
|
function ignoreReject() {}
|
|
function instrumentSearchParamsObjectWithDevWarnings(underlyingSearchParams, workStore, promiseInitialized) {
|
|
// We have an unfortunate sequence of events that requires this initialization logic. We want to instrument the underlying
|
|
// searchParams object to detect if you are accessing values in dev. This is used for warnings and for things like the static prerender
|
|
// indicator. However when we pass this proxy to our Promise.resolve() below the VM checks if the resolved value is a promise by looking
|
|
// at the `.then` property. To our dynamic tracking logic this is indistinguishable from a `then` searchParam and so we would normally trigger
|
|
// dynamic tracking. However we know that this .then is not real dynamic access, it's just how thenables resolve in sequence. So we introduce
|
|
// this initialization concept so we omit the dynamic check until after we've constructed our resolved promise.
|
|
return new Proxy(underlyingSearchParams, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string' && promiseInitialized.current) {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeStringPropertyAccess"])('searchParams', prop);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwWithStaticGenerationBailoutErrorWithDynamicError"])(workStore.route, expression);
|
|
}
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string') {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeHasCheckingStringProperty"])('searchParams', prop);
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwWithStaticGenerationBailoutErrorWithDynamicError"])(workStore.route, expression);
|
|
}
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
if (workStore.dynamicShouldError) {
|
|
const expression = '`{...searchParams}`, `Object.keys(searchParams)`, or similar';
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwWithStaticGenerationBailoutErrorWithDynamicError"])(workStore.route, expression);
|
|
}
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
function instrumentSearchParamsPromiseWithDevWarnings(underlyingSearchParams, promise, workStore) {
|
|
// Track which properties we should warn for.
|
|
const proxiedProperties = new Set();
|
|
Object.keys(underlyingSearchParams).forEach((prop)=>{
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
return new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (prop === 'then' && workStore.dynamicShouldError) {
|
|
const expression = '`searchParams.then`';
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$request$2f$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwWithStaticGenerationBailoutErrorWithDynamicError"])(workStore.route, expression);
|
|
}
|
|
if (typeof prop === 'string') {
|
|
if (!__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeStringPropertyAccess"])('searchParams', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return Reflect.set(target, prop, value, receiver);
|
|
},
|
|
has (target, prop) {
|
|
if (typeof prop === 'string') {
|
|
if (!__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor
|
|
// the underlying searchParams.
|
|
Reflect.has(target, prop) === false)) {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeHasCheckingStringProperty"])('searchParams', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return Reflect.has(target, prop);
|
|
},
|
|
ownKeys (target) {
|
|
const expression = '`Object.keys(searchParams)` or similar';
|
|
warnForSyncAccess(workStore.route, expression);
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
const warnForSyncAccess = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$create$2d$deduped$2d$by$2d$callsite$2d$server$2d$error$2d$logger$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDedupedByCallsiteServerErrorLoggerDev"])(createSearchAccessError);
|
|
function createSearchAccessError(route, expression) {
|
|
const prefix = route ? `Route "${route}" ` : 'This route ';
|
|
return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", {
|
|
value: "E848",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
} //# sourceMappingURL=search-params.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/params.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"createParamsFromClient",
|
|
()=>createParamsFromClient,
|
|
"createPrerenderParamsForClientSegment",
|
|
()=>createPrerenderParamsForClientSegment,
|
|
"createServerParamsForMetadata",
|
|
()=>createServerParamsForMetadata,
|
|
"createServerParamsForRoute",
|
|
()=>createServerParamsForRoute,
|
|
"createServerParamsForServerSegment",
|
|
()=>createServerParamsForServerSegment
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/web/spec-extension/adapters/reflect.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/dynamic-rendering.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/work-unit-async-storage.external.js [external] (next/dist/server/app-render/work-unit-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/utils/reflect-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/dynamic-rendering-utils.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$create$2d$deduped$2d$by$2d$callsite$2d$server$2d$error$2d$logger$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/create-deduped-by-callsite-server-error-logger.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$dynamic$2d$access$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$dynamic$2d$access$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/next/dist/server/app-render/dynamic-access-async-storage.external.js [external] (next/dist/server/app-render/dynamic-access-async-storage.external.js, cjs)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/app-render/staged-rendering.js [app-ssr] (ecmascript)");
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function createParamsFromClient(underlyingParams, workStore) {
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createParamsFromClient should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E736",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createParamsFromClient should not be called in a runtime prerender.'), "__NEXT_ERROR_CODE", {
|
|
value: "E770",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const devFallbackParams = workUnitStore.devFallbackParams;
|
|
return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore, workUnitStore);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
const createServerParamsForMetadata = createServerParamsForServerSegment;
|
|
function createServerParamsForRoute(underlyingParams, workStore) {
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createServerParamsForRoute should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E738",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
return createRuntimePrerenderParams(underlyingParams, workUnitStore);
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const devFallbackParams = workUnitStore.devFallbackParams;
|
|
return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore, workUnitStore);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
function createServerParamsForServerSegment(underlyingParams, workStore) {
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
return createStaticPrerenderParams(underlyingParams, workStore, workUnitStore);
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createServerParamsForServerSegment should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E743",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-runtime':
|
|
return createRuntimePrerenderParams(underlyingParams, workUnitStore);
|
|
case 'request':
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
// Semantically we only need the dev tracking when running in `next dev`
|
|
// but since you would never use next dev with production NODE_ENV we use this
|
|
// as a proxy so we can statically exclude this code from production builds.
|
|
const devFallbackParams = workUnitStore.devFallbackParams;
|
|
return createRenderParamsInDev(underlyingParams, devFallbackParams, workStore, workUnitStore);
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
(0, __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["throwInvariantForMissingStore"])();
|
|
}
|
|
function createPrerenderParamsForClientSegment(underlyingParams) {
|
|
const workStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workAsyncStorage"].getStore();
|
|
if (!workStore) {
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('Missing workStore in createPrerenderParamsForClientSegment'), "__NEXT_ERROR_CODE", {
|
|
value: "E773",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const workUnitStore = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$work$2d$unit$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["workUnitAsyncStorage"].getStore();
|
|
if (workUnitStore) {
|
|
switch(workUnitStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
const fallbackParams = workUnitStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(let key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
// This params object has one or more fallback params, so we need
|
|
// to consider the awaiting of this params object "dynamic". Since
|
|
// we are in cacheComponents mode we encode this as a promise that never
|
|
// resolves.
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(workUnitStore.renderSignal, workStore.route, '`params`');
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
case 'cache':
|
|
case 'private-cache':
|
|
case 'unstable-cache':
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('createPrerenderParamsForClientSegment should not be called in cache contexts.'), "__NEXT_ERROR_CODE", {
|
|
value: "E734",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
case 'prerender-ppr':
|
|
case 'prerender-legacy':
|
|
case 'prerender-runtime':
|
|
case 'request':
|
|
break;
|
|
default:
|
|
workUnitStore;
|
|
}
|
|
}
|
|
// We're prerendering in a mode that does not abort. We resolve the promise without
|
|
// any tracking because we're just transporting a value from server to client where the tracking
|
|
// will be applied.
|
|
return Promise.resolve(underlyingParams);
|
|
}
|
|
function createStaticPrerenderParams(underlyingParams, workStore, prerenderStore) {
|
|
switch(prerenderStore.type){
|
|
case 'prerender':
|
|
case 'prerender-client':
|
|
{
|
|
const fallbackParams = prerenderStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(const key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
// This params object has one or more fallback params, so we need
|
|
// to consider the awaiting of this params object "dynamic". Since
|
|
// we are in cacheComponents mode we encode this as a promise that never
|
|
// resolves.
|
|
return makeHangingParams(underlyingParams, workStore, prerenderStore);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-ppr':
|
|
{
|
|
const fallbackParams = prerenderStore.fallbackRouteParams;
|
|
if (fallbackParams) {
|
|
for(const key in underlyingParams){
|
|
if (fallbackParams.has(key)) {
|
|
return makeErroringParams(underlyingParams, fallbackParams, workStore, prerenderStore);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
case 'prerender-legacy':
|
|
break;
|
|
default:
|
|
prerenderStore;
|
|
}
|
|
return makeUntrackedParams(underlyingParams);
|
|
}
|
|
function createRuntimePrerenderParams(underlyingParams, workUnitStore) {
|
|
return (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["delayUntilRuntimeStage"])(workUnitStore, makeUntrackedParams(underlyingParams));
|
|
}
|
|
function createRenderParamsInProd(underlyingParams) {
|
|
return makeUntrackedParams(underlyingParams);
|
|
}
|
|
function createRenderParamsInDev(underlyingParams, devFallbackParams, workStore, requestStore) {
|
|
let hasFallbackParams = false;
|
|
if (devFallbackParams) {
|
|
for(let key in underlyingParams){
|
|
if (devFallbackParams.has(key)) {
|
|
hasFallbackParams = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore, requestStore);
|
|
}
|
|
const CachedParams = new WeakMap();
|
|
const fallbackParamsProxyHandler = {
|
|
get: function get(target, prop, receiver) {
|
|
if (prop === 'then' || prop === 'catch' || prop === 'finally') {
|
|
const originalMethod = __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
return ({
|
|
[prop]: (...args)=>{
|
|
const store = __TURBOPACK__imported__module__$5b$externals$5d2f$next$2f$dist$2f$server$2f$app$2d$render$2f$dynamic$2d$access$2d$async$2d$storage$2e$external$2e$js__$5b$external$5d$__$28$next$2f$dist$2f$server$2f$app$2d$render$2f$dynamic$2d$access$2d$async$2d$storage$2e$external$2e$js$2c$__cjs$29$__["dynamicAccessAsyncStorage"].getStore();
|
|
if (store) {
|
|
store.abortController.abort(Object.defineProperty(new Error(`Accessed fallback \`params\` during prerendering.`), "__NEXT_ERROR_CODE", {
|
|
value: "E691",
|
|
enumerable: false,
|
|
configurable: true
|
|
}));
|
|
}
|
|
return new Proxy(originalMethod.apply(target, args), fallbackParamsProxyHandler);
|
|
}
|
|
})[prop];
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
}
|
|
};
|
|
function makeHangingParams(underlyingParams, workStore, prerenderStore) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = new Proxy((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeHangingPromise"])(prerenderStore.renderSignal, workStore.route, '`params`'), fallbackParamsProxyHandler);
|
|
CachedParams.set(underlyingParams, promise);
|
|
return promise;
|
|
}
|
|
function makeErroringParams(underlyingParams, fallbackParams, workStore, prerenderStore) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const augmentedUnderlying = {
|
|
...underlyingParams
|
|
};
|
|
// We don't use makeResolvedReactPromise here because params
|
|
// supports copying with spread and we don't want to unnecessarily
|
|
// instrument the promise with spreadable properties of ReactPromise.
|
|
const promise = Promise.resolve(augmentedUnderlying);
|
|
CachedParams.set(underlyingParams, promise);
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
if (fallbackParams.has(prop)) {
|
|
Object.defineProperty(augmentedUnderlying, prop, {
|
|
get () {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeStringPropertyAccess"])('params', prop);
|
|
// In most dynamic APIs we also throw if `dynamic = "error"` however
|
|
// for params is only dynamic when we're generating a fallback shell
|
|
// and even when `dynamic = "error"` we still support generating dynamic
|
|
// fallback shells
|
|
// TODO remove this comment when cacheComponents is the default since there
|
|
// will be no `dynamic = "error"`
|
|
if (prerenderStore.type === 'prerender-ppr') {
|
|
// PPR Prerender (no cacheComponents)
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["postponeWithTracking"])(workStore.route, expression, prerenderStore.dynamicTracking);
|
|
} else {
|
|
// Legacy Prerender
|
|
(0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$dynamic$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["throwToInterruptStaticGeneration"])(expression, workStore, prerenderStore);
|
|
}
|
|
},
|
|
enumerable: true
|
|
});
|
|
}
|
|
}
|
|
});
|
|
return promise;
|
|
}
|
|
function makeUntrackedParams(underlyingParams) {
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
const promise = Promise.resolve(underlyingParams);
|
|
CachedParams.set(underlyingParams, promise);
|
|
return promise;
|
|
}
|
|
function makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams, hasFallbackParams, workStore, requestStore) {
|
|
if (requestStore.asyncApiPromises && hasFallbackParams) {
|
|
// We wrap each instance of params in a `new Promise()`, because deduping
|
|
// them across requests doesn't work anyway and this let us show each
|
|
// await a different set of values. This is important when all awaits
|
|
// are in third party which would otherwise track all the way to the
|
|
// internal params.
|
|
const sharedParamsParent = requestStore.asyncApiPromises.sharedParamsParent;
|
|
const promise = new Promise((resolve, reject)=>{
|
|
sharedParamsParent.then(()=>resolve(underlyingParams), reject);
|
|
});
|
|
// @ts-expect-error
|
|
promise.displayName = 'params';
|
|
return instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);
|
|
}
|
|
const cachedParams = CachedParams.get(underlyingParams);
|
|
if (cachedParams) {
|
|
return cachedParams;
|
|
}
|
|
// We don't use makeResolvedReactPromise here because params
|
|
// supports copying with spread and we don't want to unnecessarily
|
|
// instrument the promise with spreadable properties of ReactPromise.
|
|
const promise = hasFallbackParams ? (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$dynamic$2d$rendering$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["makeDevtoolsIOAwarePromise"])(underlyingParams, requestStore, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$app$2d$render$2f$staged$2d$rendering$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["RenderStage"].Runtime) : Promise.resolve(underlyingParams);
|
|
const proxiedPromise = instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore);
|
|
CachedParams.set(underlyingParams, proxiedPromise);
|
|
return proxiedPromise;
|
|
}
|
|
function instrumentParamsPromiseWithDevWarnings(underlyingParams, promise, workStore) {
|
|
// Track which properties we should warn for.
|
|
const proxiedProperties = new Set();
|
|
Object.keys(underlyingParams).forEach((prop)=>{
|
|
if (__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["wellKnownProperties"].has(prop)) {
|
|
// These properties cannot be shadowed because they need to be the
|
|
// true underlying value for Promises to work correctly at runtime
|
|
} else {
|
|
proxiedProperties.add(prop);
|
|
}
|
|
});
|
|
return new Proxy(promise, {
|
|
get (target, prop, receiver) {
|
|
if (typeof prop === 'string') {
|
|
if (proxiedProperties.has(prop)) {
|
|
const expression = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$utils$2f$reflect$2d$utils$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["describeStringPropertyAccess"])('params', prop);
|
|
warnForSyncAccess(workStore.route, expression);
|
|
}
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].get(target, prop, receiver);
|
|
},
|
|
set (target, prop, value, receiver) {
|
|
if (typeof prop === 'string') {
|
|
proxiedProperties.delete(prop);
|
|
}
|
|
return __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$web$2f$spec$2d$extension$2f$adapters$2f$reflect$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ReflectAdapter"].set(target, prop, value, receiver);
|
|
},
|
|
ownKeys (target) {
|
|
const expression = '`...params` or similar expression';
|
|
warnForSyncAccess(workStore.route, expression);
|
|
return Reflect.ownKeys(target);
|
|
}
|
|
});
|
|
}
|
|
const warnForSyncAccess = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$server$2f$create$2d$deduped$2d$by$2d$callsite$2d$server$2d$error$2d$logger$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["createDedupedByCallsiteServerErrorLoggerDev"])(createParamsAccessError);
|
|
function createParamsAccessError(route, expression) {
|
|
const prefix = route ? `Route "${route}" ` : 'This route ';
|
|
return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), "__NEXT_ERROR_CODE", {
|
|
value: "E834",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
} //# sourceMappingURL=params.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-page.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ClientPageRoot",
|
|
()=>ClientPageRoot
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/route-params.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function ClientPageRoot({ Component, serverProvidedParams }) {
|
|
let searchParams;
|
|
let params;
|
|
if (serverProvidedParams !== null) {
|
|
searchParams = serverProvidedParams.searchParams;
|
|
params = serverProvidedParams.params;
|
|
} else {
|
|
// When Cache Components is enabled, the server does not pass the params as
|
|
// props; they are parsed on the client and passed via context.
|
|
const layoutRouterContext = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["LayoutRouterContext"]);
|
|
params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};
|
|
// This is an intentional behavior change: when Cache Components is enabled,
|
|
// client segments receive the "canonical" search params, not the
|
|
// rewritten ones. Users should either call useSearchParams directly or pass
|
|
// the rewritten ones in from a Server Component.
|
|
// TODO: Log a deprecation error when this object is accessed
|
|
searchParams = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$client$2f$route$2d$params$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["urlSearchParamsToParsedUrlQuery"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$hooks$2d$client$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["SearchParamsContext"]));
|
|
}
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { workAsyncStorage } = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)");
|
|
let clientSearchParams;
|
|
let clientParams;
|
|
// We are going to instrument the searchParams prop with tracking for the
|
|
// appropriate context. We wrap differently in prerendering vs rendering
|
|
const store = workAsyncStorage.getStore();
|
|
if (!store) {
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('Expected workStore to exist when handling searchParams in a client Page.'), "__NEXT_ERROR_CODE", {
|
|
value: "E564",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const { createSearchParamsFromClient } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/search-params.js [app-ssr] (ecmascript)");
|
|
clientSearchParams = createSearchParamsFromClient(searchParams, store);
|
|
const { createParamsFromClient } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/params.js [app-ssr] (ecmascript)");
|
|
clientParams = createParamsFromClient(params, store);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(Component, {
|
|
params: clientParams,
|
|
searchParams: clientSearchParams
|
|
});
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
} //# sourceMappingURL=client-page.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/client/components/client-segment.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"ClientSegmentRoot",
|
|
()=>ClientSegmentRoot
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/shared/lib/invariant-error.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js [app-ssr] (ecmascript)");
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
;
|
|
;
|
|
;
|
|
function ClientSegmentRoot({ Component, slots, serverProvidedParams }) {
|
|
let params;
|
|
if (serverProvidedParams !== null) {
|
|
params = serverProvidedParams.params;
|
|
} else {
|
|
// When Cache Components is enabled, the server does not pass the params
|
|
// as props; they are parsed on the client and passed via context.
|
|
const layoutRouterContext = (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["use"])(__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$contexts$2f$app$2d$router$2d$context$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["LayoutRouterContext"]);
|
|
params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};
|
|
}
|
|
if ("TURBOPACK compile-time truthy", 1) {
|
|
const { workAsyncStorage } = __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)");
|
|
let clientParams;
|
|
// We are going to instrument the searchParams prop with tracking for the
|
|
// appropriate context. We wrap differently in prerendering vs rendering
|
|
const store = workAsyncStorage.getStore();
|
|
if (!store) {
|
|
throw Object.defineProperty(new __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$shared$2f$lib$2f$invariant$2d$error$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["InvariantError"]('Expected workStore to exist when handling params in a client segment such as a Layout or Template.'), "__NEXT_ERROR_CODE", {
|
|
value: "E600",
|
|
enumerable: false,
|
|
configurable: true
|
|
});
|
|
}
|
|
const { createParamsFromClient } = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/server/request/params.js [app-ssr] (ecmascript)");
|
|
clientParams = createParamsFromClient(params, store);
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])(Component, {
|
|
...slots,
|
|
params: clientParams
|
|
});
|
|
} else //TURBOPACK unreachable
|
|
;
|
|
} //# sourceMappingURL=client-segment.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"IconMark",
|
|
()=>IconMark
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
const IconMark = ()=>{
|
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
|
;
|
|
return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$server$2f$route$2d$modules$2f$app$2d$page$2f$vendored$2f$ssr$2f$react$2d$jsx$2d$runtime$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["jsx"])("meta", {
|
|
name: "\xabnxt-icon\xbb"
|
|
});
|
|
}; //# sourceMappingURL=icon-mark.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-components.js [app-ssr] (ecmascript)", ((__turbopack_context__) => {
|
|
"use strict";
|
|
|
|
__turbopack_context__.s([
|
|
"MetadataBoundary",
|
|
()=>MetadataBoundary,
|
|
"OutletBoundary",
|
|
()=>OutletBoundary,
|
|
"RootLayoutBoundary",
|
|
()=>RootLayoutBoundary,
|
|
"ViewportBoundary",
|
|
()=>ViewportBoundary
|
|
]);
|
|
var __TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/esm/lib/framework/boundary-constants.js [app-ssr] (ecmascript)");
|
|
'use client';
|
|
;
|
|
// We use a namespace object to allow us to recover the name of the function
|
|
// at runtime even when production bundling/minification is used.
|
|
const NameSpace = {
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["METADATA_BOUNDARY_NAME"]]: function({ children }) {
|
|
return children;
|
|
},
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["VIEWPORT_BOUNDARY_NAME"]]: function({ children }) {
|
|
return children;
|
|
},
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["OUTLET_BOUNDARY_NAME"]]: function({ children }) {
|
|
return children;
|
|
},
|
|
[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ROOT_LAYOUT_BOUNDARY_NAME"]]: function({ children }) {
|
|
return children;
|
|
}
|
|
};
|
|
const MetadataBoundary = // so it retains the name inferred from the namespace object
|
|
NameSpace[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["METADATA_BOUNDARY_NAME"].slice(0)];
|
|
const ViewportBoundary = // so it retains the name inferred from the namespace object
|
|
NameSpace[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["VIEWPORT_BOUNDARY_NAME"].slice(0)];
|
|
const OutletBoundary = // so it retains the name inferred from the namespace object
|
|
NameSpace[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["OUTLET_BOUNDARY_NAME"].slice(0)];
|
|
const RootLayoutBoundary = // so it retains the name inferred from the namespace object
|
|
NameSpace[__TURBOPACK__imported__module__$5b$project$5d2f$Documents$2f$go$2d$new$2f$chinese$2d$family$2d$tree$2f$node_modules$2f2e$pnpm$2f$next$40$16$2e$0$2e$3_react$2d$dom$40$19$2e$2$2e$0_react$40$19$2e$2$2e$0_$5f$react$40$19$2e$2$2e$0$2f$node_modules$2f$next$2f$dist$2f$esm$2f$lib$2f$framework$2f$boundary$2d$constants$2e$js__$5b$app$2d$ssr$5d$__$28$ecmascript$29$__["ROOT_LAYOUT_BOUNDARY_NAME"].slice(0)]; //# sourceMappingURL=boundary-components.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/handle-isr-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, "HandleISRError", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return HandleISRError;
|
|
}
|
|
});
|
|
const workAsyncStorage = ("TURBOPACK compile-time truthy", 1) ? __turbopack_context__.r("[externals]/next/dist/server/app-render/work-async-storage.external.js [external] (next/dist/server/app-render/work-async-storage.external.js, cjs)").workAsyncStorage : "TURBOPACK unreachable";
|
|
function HandleISRError({ error }) {
|
|
if (workAsyncStorage) {
|
|
const store = workAsyncStorage.getStore();
|
|
if (store?.isStaticGeneration) {
|
|
if (error) {
|
|
console.error(error);
|
|
}
|
|
throw error;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
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=handle-isr-error.js.map
|
|
}),
|
|
"[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/builtin/global-error.js [app-ssr] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
|
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
Object.defineProperty(exports, // supplied custom global error signatures.
|
|
"default", {
|
|
enumerable: true,
|
|
get: function() {
|
|
return _default;
|
|
}
|
|
});
|
|
const _jsxruntime = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js [app-ssr] (ecmascript)");
|
|
const _handleisrerror = __turbopack_context__.r("[project]/Documents/go-new/chinese-family-tree/node_modules/.pnpm/next@16.0.3_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/handle-isr-error.js [app-ssr] (ecmascript)");
|
|
const styles = {
|
|
error: {
|
|
// https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52
|
|
fontFamily: 'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',
|
|
height: '100vh',
|
|
textAlign: 'center',
|
|
display: 'flex',
|
|
flexDirection: 'column',
|
|
alignItems: 'center',
|
|
justifyContent: 'center'
|
|
},
|
|
text: {
|
|
fontSize: '14px',
|
|
fontWeight: 400,
|
|
lineHeight: '28px',
|
|
margin: '0 8px'
|
|
}
|
|
};
|
|
function DefaultGlobalError({ error }) {
|
|
const digest = error?.digest;
|
|
return /*#__PURE__*/ (0, _jsxruntime.jsxs)("html", {
|
|
id: "__next_error__",
|
|
children: [
|
|
/*#__PURE__*/ (0, _jsxruntime.jsx)("head", {}),
|
|
/*#__PURE__*/ (0, _jsxruntime.jsxs)("body", {
|
|
children: [
|
|
/*#__PURE__*/ (0, _jsxruntime.jsx)(_handleisrerror.HandleISRError, {
|
|
error: error
|
|
}),
|
|
/*#__PURE__*/ (0, _jsxruntime.jsx)("div", {
|
|
style: styles.error,
|
|
children: /*#__PURE__*/ (0, _jsxruntime.jsxs)("div", {
|
|
children: [
|
|
/*#__PURE__*/ (0, _jsxruntime.jsxs)("h2", {
|
|
style: styles.text,
|
|
children: [
|
|
"Application error: a ",
|
|
digest ? 'server' : 'client',
|
|
"-side exception has occurred while loading ",
|
|
window.location.hostname,
|
|
" (see the",
|
|
' ',
|
|
digest ? 'server logs' : 'browser console',
|
|
" for more information)."
|
|
]
|
|
}),
|
|
digest ? /*#__PURE__*/ (0, _jsxruntime.jsx)("p", {
|
|
style: styles.text,
|
|
children: `Digest: ${digest}`
|
|
}) : null
|
|
]
|
|
})
|
|
})
|
|
]
|
|
})
|
|
]
|
|
});
|
|
}
|
|
const _default = DefaultGlobalError;
|
|
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=global-error.js.map
|
|
}),
|
|
];
|
|
|
|
//# sourceMappingURL=a0629__pnpm_af50bd63._.js.map |