larkup 0.4.49 → 0.4.51
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/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/app-path-routes-manifest.json +19 -19
- package/.next/standalone/apps/web/.next/build-manifest.json +2 -2
- package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/add/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/add.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/add.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/add.segments/add/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/widget-demo.segments/widget-demo/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app-paths-manifest.json +19 -19
- package/.next/standalone/apps/web/.next/server/chunks/309.js +1 -1
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/server/preview-props.json +3 -3
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/app/{layout-17b5cc21e07aaced.js → layout-72c0f3f6723d5c44.js} +1 -1
- package/.next/standalone/apps/web/bin/larkup.js +59 -14
- package/.next/standalone/apps/web/lib/release-metadata.test.ts +10 -2
- package/.next/standalone/apps/web/package.json +1 -1
- package/.next/standalone/apps/web/server.js +1 -1
- package/bin/larkup.js +59 -14
- package/package.json +2 -2
- /package/.next/standalone/apps/web/.next/static/{E9oVcl1TzrqM5bS9F3BrN → 65ELnOs_x6XQ7dO3mtxDx}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{E9oVcl1TzrqM5bS9F3BrN → 65ELnOs_x6XQ7dO3mtxDx}/_ssgManifest.js +0 -0
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"0.4.
|
|
18
|
+
const nextConfig = {"env":{"NEXT_PUBLIC_APP_VERSION":"0.4.51"},"typescript":{"ignoreBuildErrors":true},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"instrumentationClientInject":[],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup","enablePrerenderSourceMaps":true,"cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"deprecated":{},"experimental":{"agentUpgrade":"security","agentFeedback":false,"coldCacheBadge":false,"collapseAdapterRoutes":true,"devValidationWorker":true,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"parallelRouteMetadata":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"dynamicOnHover":false,"reactBrowserBailout":true,"useOffline":false,"varyParams":true,"optimisticRouting":true,"concurrentRouterQueue":false,"instrumentationClientRouterTransitionEvents":false,"prefetchInlining":{"maxSize":2048,"maxBundleSize":10240},"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":9,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptOperationCache":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptMozjpeg":true,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"devMemoryThresholdRestart":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"requestInsights":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"useTypeScriptCli":true,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":true,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"serverComponentsHmrCancellation":false,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"useCacheStaticRootParamTracking":false,"globalNotFound":false,"explicitParallelRouteChildren":true,"strictRouteMatching":true,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"disableResumeDataCacheCompression":false,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"exposeRuntimeErrorsToHMR":false,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":true,"turbopackStaleOutputMaxAge":604800000,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","turbopackSharedRuntime":true,"turbopackMemoryEvictionMode":"auto","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","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@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"],"useCacheTimeout":54,"instantInsights":{"validationLevel":"warning"},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\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","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","transpilePackages":["@larkup/workspace-ui","@larkup/workspace-app","@larkup/workspace-server","@larkup/connections","@larkup/core","@larkup/vector-stores","@larkup/scraper","@larkup/marketplace","@larkup/sandbox","@larkup/integrations"],"serverExternalPackages":["@lancedb/lancedb","@ffmpeg-installer/ffmpeg","@ffprobe-installer/ffprobe","chromadb","@chroma-core/default-embed","dockerode","node-ssh","nodejs-whisper","@napi-rs/canvas","pdf-parse"],"outputFileTracingExcludes":{"/*":[".next/dev/**/*",".next/standalone/**/*","../desktop/src-tauri/target/**/*"]},"turbopack":{"ignoreIssue":[{"path":"**/ffmpeg-spawn.js","title":"Module not found"}],"root":"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup"},"repoRoot":"/Users/abdelrahmanabounida/Desktop/my-ai-startup/larkup/larkup","distDirRoot":".next","supportsImmutableAssets":false,"_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/uploads/:path*","destination":"/api/uploads/:path*"}],"fallback":[]}}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|
package/bin/larkup.js
CHANGED
|
@@ -19,6 +19,9 @@ process.env.LARKUP_DATA_DIR = larkupDataDir;
|
|
|
19
19
|
|
|
20
20
|
const args = process.argv.slice(2);
|
|
21
21
|
const command = args[0];
|
|
22
|
+
// Windows exposes npm through npm.cmd. Spawning the extensionless Unix name
|
|
23
|
+
// fails with ENOENT even though npm works when entered directly in cmd.exe.
|
|
24
|
+
const npmExecutable = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
22
25
|
|
|
23
26
|
if (command === '--version' || command === '-v') {
|
|
24
27
|
console.log(pkg.version);
|
|
@@ -31,7 +34,6 @@ if (command === '--version' || command === '-v') {
|
|
|
31
34
|
process.exit(1);
|
|
32
35
|
}
|
|
33
36
|
await migrateLegacyRuntimeState();
|
|
34
|
-
await prepareLocalAnalysisRuntime();
|
|
35
37
|
const child = spawn(process.execPath, [standaloneServer], {
|
|
36
38
|
cwd: packageDir,
|
|
37
39
|
stdio: 'inherit',
|
|
@@ -44,6 +46,11 @@ if (command === '--version' || command === '-v') {
|
|
|
44
46
|
});
|
|
45
47
|
child.once('exit', (code) => process.exit(code ?? 0));
|
|
46
48
|
|
|
49
|
+
// Start the browser-facing application immediately. The local analysis
|
|
50
|
+
// environment is warmed through the running server so an analysis request
|
|
51
|
+
// can share that same in-process setup instead of starting a second install.
|
|
52
|
+
void prepareLocalAnalysisRuntime(url);
|
|
53
|
+
|
|
47
54
|
if (process.env.CI !== 'true' && process.env.LARKUP_NO_OPEN !== '1') {
|
|
48
55
|
void openWhenReady(url);
|
|
49
56
|
}
|
|
@@ -81,7 +88,7 @@ if (command === '--version' || command === '-v') {
|
|
|
81
88
|
console.log('');
|
|
82
89
|
await migrateLegacyRuntimeState();
|
|
83
90
|
const child = spawn(
|
|
84
|
-
|
|
91
|
+
npmExecutable,
|
|
85
92
|
[
|
|
86
93
|
'install',
|
|
87
94
|
'-g',
|
|
@@ -196,20 +203,43 @@ async function migrateLegacyRuntimeState() {
|
|
|
196
203
|
}
|
|
197
204
|
|
|
198
205
|
/**
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
* chat request can outlive the model step even though installation succeeds.
|
|
206
|
+
* Warm the managed Python environment after the application starts. A fresh
|
|
207
|
+
* Windows install may need several minutes to fetch pandas, numpy, and the
|
|
208
|
+
* other pinned wheels, but that work must not block the UI from opening.
|
|
203
209
|
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
* and
|
|
210
|
+
* Going through the existing sandbox API keeps setup in the server process.
|
|
211
|
+
* If chat analysis starts while warmup is running, both calls share the same
|
|
212
|
+
* cached setup promise. Managed Cloud and configured remote backends are
|
|
213
|
+
* detected by the health response and never enter the local setup path.
|
|
207
214
|
*/
|
|
208
|
-
async function prepareLocalAnalysisRuntime() {
|
|
209
|
-
console.log(`\x1b[38;2;223;156;32mPreparing local analysis runtime…\x1b[0m`);
|
|
215
|
+
async function prepareLocalAnalysisRuntime(url) {
|
|
210
216
|
try {
|
|
211
|
-
const
|
|
212
|
-
|
|
217
|
+
const health = await waitForSandboxApi(url);
|
|
218
|
+
if (!health || health.backend !== 'local') return;
|
|
219
|
+
|
|
220
|
+
console.log(`\x1b[38;2;223;156;32mPreparing local analysis runtime in the background…\x1b[0m`);
|
|
221
|
+
console.log('Larkup is ready to open; analysis tools will activate when setup finishes.');
|
|
222
|
+
|
|
223
|
+
const startedAt = Date.now();
|
|
224
|
+
const progress = setInterval(() => {
|
|
225
|
+
const elapsedSeconds = Math.floor((Date.now() - startedAt) / 1_000);
|
|
226
|
+
const elapsed =
|
|
227
|
+
elapsedSeconds < 60 ? `${elapsedSeconds}s` : `${Math.floor(elapsedSeconds / 60)} min`;
|
|
228
|
+
console.log(`Still preparing local analysis runtime (${elapsed})…`);
|
|
229
|
+
}, 30_000);
|
|
230
|
+
|
|
231
|
+
try {
|
|
232
|
+
const response = await fetch(new URL('/api/sandbox?action=setup', url), {
|
|
233
|
+
method: 'POST',
|
|
234
|
+
});
|
|
235
|
+
const result = await response.json().catch(() => ({}));
|
|
236
|
+
if (!response.ok) {
|
|
237
|
+
throw new Error(result.error || `setup request failed with HTTP ${response.status}`);
|
|
238
|
+
}
|
|
239
|
+
} finally {
|
|
240
|
+
clearInterval(progress);
|
|
241
|
+
}
|
|
242
|
+
|
|
213
243
|
console.log(`\x1b[32mLocal analysis runtime ready.\x1b[0m`);
|
|
214
244
|
} catch (error) {
|
|
215
245
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -218,6 +248,19 @@ async function prepareLocalAnalysisRuntime() {
|
|
|
218
248
|
}
|
|
219
249
|
}
|
|
220
250
|
|
|
251
|
+
async function waitForSandboxApi(url) {
|
|
252
|
+
for (let attempt = 0; attempt < 120; attempt += 1) {
|
|
253
|
+
try {
|
|
254
|
+
const response = await fetch(new URL('/api/sandbox', url));
|
|
255
|
+
if (response.ok) return await response.json();
|
|
256
|
+
} catch {
|
|
257
|
+
// The standalone server is still starting.
|
|
258
|
+
}
|
|
259
|
+
await new Promise((resolve) => setTimeout(resolve, 250));
|
|
260
|
+
}
|
|
261
|
+
return undefined;
|
|
262
|
+
}
|
|
263
|
+
|
|
221
264
|
async function activeProjectConfig() {
|
|
222
265
|
const root = projectRoot();
|
|
223
266
|
const entries = await fs.readdir(root, { withFileTypes: true }).catch(() => []);
|
|
@@ -506,7 +549,9 @@ async function removeLocalPathEntries(localRoot) {
|
|
|
506
549
|
|
|
507
550
|
function uninstallGlobalPackage() {
|
|
508
551
|
return new Promise((resolve, reject) => {
|
|
509
|
-
const child = spawn(
|
|
552
|
+
const child = spawn(npmExecutable, ['uninstall', '-g', 'larkup', '@larkup/cli'], {
|
|
553
|
+
stdio: 'inherit',
|
|
554
|
+
});
|
|
510
555
|
child.once('error', reject);
|
|
511
556
|
child.once('exit', (code) => {
|
|
512
557
|
if (code === 0) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "larkup",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.51",
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22"
|
|
6
6
|
},
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
|
|
71
71
|
"zod": "^4.4.3",
|
|
72
72
|
"zustand": "^5.0.14",
|
|
73
|
-
"@larkup/workspace-server": "0.2.30",
|
|
74
73
|
"@larkup/workspace-ui": "0.2.0",
|
|
75
74
|
"@larkup/runtime-kit": "0.3.0",
|
|
75
|
+
"@larkup/workspace-server": "0.2.30",
|
|
76
76
|
"@larkup/workspace-app": "0.2.12"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
File without changes
|
|
File without changes
|