cici 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +13 -13
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/mile/prompts.body +1 -1
- package/.next/server/app/atom.xml.body +1 -1
- package/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/.next/server/app/editor/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/memos/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/rss.xml.body +1 -1
- package/.next/server/app/sitemap.xml/route.js +4 -4
- package/.next/server/app/sitemap.xml.body +5 -5
- package/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +8 -8
- package/.next/server/chunks/3607.js +1 -1
- package/.next/server/chunks/3844.js +1 -1
- package/.next/server/chunks/719.js +1 -1
- package/.next/server/chunks/9715.js +1 -1
- package/.next/server/functions-config-manifest.json +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +13 -13
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mile/prompts.body +1 -1
- package/.next/standalone/.next/server/app/atom.xml.body +1 -1
- package/.next/standalone/.next/server/app/blog/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/blog/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/editor/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/memos/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/rss.xml.body +1 -1
- package/.next/standalone/.next/server/app/sitemap.xml/route.js +4 -4
- package/.next/standalone/.next/server/app/sitemap.xml.body +5 -5
- package/.next/standalone/.next/server/app/unavailable/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +8 -8
- package/.next/standalone/.next/server/chunks/3607.js +1 -1
- package/.next/standalone/.next/server/chunks/3844.js +1 -1
- package/.next/standalone/.next/server/chunks/719.js +1 -1
- package/.next/standalone/.next/server/chunks/9715.js +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/cache-handler.cjs +66 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/trace +120 -120
- package/package.json +1 -1
- /package/.next/standalone/.next/static/{H78KNQuyrLX6JpnJaQChP → EVdo6WxGjsfWSi0PYx0v3}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{H78KNQuyrLX6JpnJaQChP → EVdo6WxGjsfWSi0PYx0v3}/_ssgManifest.js +0 -0
- /package/.next/static/{H78KNQuyrLX6JpnJaQChP → EVdo6WxGjsfWSi0PYx0v3}/_buildManifest.js +0 -0
- /package/.next/static/{H78KNQuyrLX6JpnJaQChP → EVdo6WxGjsfWSi0PYx0v3}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-a3d722a538b58757.js" defer=""></script><script src="/_next/static/chunks/framework-00a8ba1a63cfdc9e.js" defer=""></script><script src="/_next/static/chunks/main-530e55a5659ae7e4.js" defer=""></script><script src="/_next/static/chunks/pages/_app-15e2daefa259f0b5.js" defer=""></script><script src="/_next/static/chunks/pages/_error-28b803cb2479b966.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-a3d722a538b58757.js" defer=""></script><script src="/_next/static/chunks/framework-00a8ba1a63cfdc9e.js" defer=""></script><script src="/_next/static/chunks/main-530e55a5659ae7e4.js" defer=""></script><script src="/_next/static/chunks/pages/_app-15e2daefa259f0b5.js" defer=""></script><script src="/_next/static/chunks/pages/_error-28b803cb2479b966.js" defer=""></script><script src="/_next/static/EVdo6WxGjsfWSi0PYx0v3/_buildManifest.js" defer=""></script><script src="/_next/static/EVdo6WxGjsfWSi0PYx0v3/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"EVdo6WxGjsfWSi0PYx0v3","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"1a568u2uEY4GGoBa5q/0DfLF2VMBB/JD6J1kU3hginw="}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Custom Next.js 14 CacheHandler that stores ISR/fetch cache entries under the
|
|
5
|
+
* OS temp dir instead of `.next/cache`.
|
|
6
|
+
*
|
|
7
|
+
* On Vercel the standalone server runs from a read-only filesystem
|
|
8
|
+
* (`/var/task`), so Next's default FileSystemCache throws
|
|
9
|
+
* `ENOENT: mkdir '/var/task/.next/cache'`. That error is non-fatal but noisy —
|
|
10
|
+
* routing cache writes to `os.tmpdir()` (writable on the platform) removes it.
|
|
11
|
+
*
|
|
12
|
+
* All filesystem access is wrapped in try/catch: a cache miss or write failure
|
|
13
|
+
* must never throw, or it would take down the request it's caching.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const fs = require('fs')
|
|
17
|
+
const os = require('os')
|
|
18
|
+
const path = require('path')
|
|
19
|
+
const crypto = require('crypto')
|
|
20
|
+
|
|
21
|
+
const CACHE_DIR = path.join(os.tmpdir(), 'cici-next-cache')
|
|
22
|
+
|
|
23
|
+
/** Turn an arbitrary cache key (may contain `/`, `:`, etc.) into a safe filename. */
|
|
24
|
+
function keyToFile(key) {
|
|
25
|
+
const hash = crypto.createHash('sha256').update(String(key)).digest('hex')
|
|
26
|
+
return path.join(CACHE_DIR, `${hash}.json`)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
module.exports = class CacheHandler {
|
|
30
|
+
constructor(options) {
|
|
31
|
+
this.options = options
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async get(key) {
|
|
35
|
+
try {
|
|
36
|
+
const raw = fs.readFileSync(keyToFile(key), 'utf-8')
|
|
37
|
+
const parsed = JSON.parse(raw)
|
|
38
|
+
return {
|
|
39
|
+
value: parsed.value,
|
|
40
|
+
lastModified: parsed.lastModified,
|
|
41
|
+
}
|
|
42
|
+
} catch (_err) {
|
|
43
|
+
// Miss or unreadable entry — treat as no cache.
|
|
44
|
+
return null
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async set(key, data, ctx) {
|
|
49
|
+
try {
|
|
50
|
+
fs.mkdirSync(CACHE_DIR, { recursive: true })
|
|
51
|
+
const payload = JSON.stringify({
|
|
52
|
+
value: data,
|
|
53
|
+
lastModified: Date.now(),
|
|
54
|
+
tags: ctx && ctx.tags ? ctx.tags : [],
|
|
55
|
+
})
|
|
56
|
+
fs.writeFileSync(keyToFile(key), payload, 'utf-8')
|
|
57
|
+
} catch (_err) {
|
|
58
|
+
// Never throw on cache write failure — the cache is best-effort.
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async revalidateTag(_tag) {
|
|
63
|
+
// No-op: entries expire via Next's own revalidation metadata; we don't
|
|
64
|
+
// maintain a tag index. Kept as a stub so the handler satisfies the API.
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cici",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "cici — a git-backed blog CMS (pure tooling; your posts live in a separate content repo). Run `npx cici --dir <dir>` or `--repo <owner/name>` to serve/edit, or `cici build` / `cici start` to deploy.",
|
|
6
6
|
"repository": {
|
|
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
9
9
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
10
10
|
|
|
11
11
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
12
|
-
const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":
|
|
12
|
+
const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheHandler":"../cache-handler.cjs","cacheMaxMemorySize":0,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[{"protocol":"https","hostname":"*"},{"protocol":"http","hostname":"*"}],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":true,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":3,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"outputFileTracingRoot":"/home/runner/work/cici/cici","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"missingSuspenseWithCSRBailout":true,"optimizeServerReact":true,"useEarlyImport":false,"staleTimes":{"dynamic":30,"static":300},"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"configFileName":"next.config.mjs","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/manifest.json","destination":"/manifest.json"}],"fallback":[]}}
|
|
13
13
|
|
|
14
14
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
15
15
|
|