TidGi-Desktop/packages/tidgi-shared
lin onetwo f682fd154c feat(gitServer): add generateFullArchive for fast mobile clone
- Add generateFullArchive() to IGitServerService interface
- Implement tar archive generation: git archive + system tar append
- Archives working tree + minimal .git metadata (HEAD, refs, objects)
- Cache by HEAD commit hash, auto-cleanup old archives
- Bump tidgi-shared to 0.1.5
2026-03-31 23:51:48 +08:00
..
src Expose TidGi services to $tw.tidgi and add types 2026-02-10 02:41:32 +08:00
.gitignore feat: publish tidgi-shared npm for types, and place tidgi.service 2026-02-09 23:16:49 +08:00
package.json feat(gitServer): add generateFullArchive for fast mobile clone 2026-03-31 23:51:48 +08:00
README.md chore: release tidgi-shared 0.1.3 2026-03-26 23:32:09 +08:00
tsconfig.json Expose TidGi services to $tw.tidgi and add types 2026-02-10 02:41:32 +08:00
tsup.config.ts feat: publish tidgi-shared npm for types, and place tidgi.service 2026-02-09 23:16:49 +08:00

tidgi-shared

Shared service interfaces, IPC descriptors, and constants for TidGi plugins.

This package re-exports all TidGi Desktop service interface types so that external TiddlyWiki plugins and projects can reference them without depending on the full TidGi-Desktop codebase.

Install

pnpm add tidgi-shared

Usage

import type { IGitServerService, IGitService, ITidGiGlobalService, IWorkspaceService } from 'tidgi-shared';

For TiddlyWiki route modules running in TidGi's wiki worker, access services via $tw.tidgi.service:

import type { IGitServerService, IGitService, ITidGiGlobalService, IWorkspaceService } from 'tidgi-shared';

const tidgiService = ($tw as typeof $tw & { tidgi?: { service?: ITidGiGlobalService } }).tidgi?.service;

Building

pnpm run build

Releasing

tidgi-shared is built from the live interfaces in TidGi-Desktop/src via the aliases in tsup.config.ts, so release it only after the upstream service interfaces are already updated.

  1. Update the source interfaces in TidGi-Desktop/src/services/**/interface.ts.
  2. Bump the version in packages/tidgi-shared/package.json.
  3. From the TidGi-Desktop repo root, run:
pnpm --filter tidgi-shared run check
pnpm --filter tidgi-shared run build
  1. Optionally verify the tarball contents before publishing:
cd packages/tidgi-shared
npm pack --dry-run
  1. Publish from packages/tidgi-shared:
npm publish --access public
  1. Verify the published version:
npm view tidgi-shared version

If a plugin starts using a new TidGi service method and TypeScript cannot see it yet, that usually means the desktop source was updated but tidgi-shared has not been republished since that interface change.

What's Included

  • All TidGi service interfaces (25 services)
  • IPC descriptors for electron-ipc-cat proxy
  • Channel constants for IPC communication
  • Shared types (IService, SupportedStorageServices, etc.)
  • Window properties and metadata types