@kodrunhq/claudefy 1.3.3 → 1.3.4
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/README.md +135 -111
- package/dist/commands/push.d.ts +1 -0
- package/dist/commands/push.js +41 -17
- package/dist/commands/push.js.map +1 -1
- package/dist/sync-filter/sync-filter.js +5 -0
- package/dist/sync-filter/sync-filter.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,149 +1,183 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://img.shields.io/npm/v/@kodrunhq/claudefy?color=blue&label=npm" alt="npm version" />
|
|
3
|
+
<img src="https://img.shields.io/github/actions/workflow/status/kodrunhq/claudefy/ci.yml?branch=main&label=CI" alt="CI" />
|
|
4
|
+
<img src="https://img.shields.io/node/v/@kodrunhq/claudefy" alt="node version" />
|
|
5
|
+
<img src="https://img.shields.io/github/license/kodrunhq/claudefy" alt="license" />
|
|
6
|
+
<img src="https://img.shields.io/badge/TypeScript-strict-blue?logo=typescript&logoColor=white" alt="TypeScript" />
|
|
7
|
+
</p>
|
|
2
8
|
|
|
3
|
-
|
|
9
|
+
<h1 align="center">claudefy</h1>
|
|
4
10
|
|
|
5
|
-
|
|
11
|
+
<p align="center">
|
|
12
|
+
<strong>Sync your Claude Code environment across every machine you work on.</strong><br/>
|
|
13
|
+
Git-backed • Encrypted • Automatic
|
|
14
|
+
</p>
|
|
6
15
|
|
|
7
|
-
|
|
16
|
+
---
|
|
8
17
|
|
|
9
|
-
|
|
10
|
-
- **Encryption** — sensitive and unknown files encrypted with AES-256-SIV before push
|
|
11
|
-
- **Path remapping** — machine-specific paths normalized to canonical IDs
|
|
12
|
-
- **Deep merge** — settings.json merged at the key level; other files use last-write-wins
|
|
13
|
-
- **Override** — wipe remote and push local as source of truth when needed
|
|
18
|
+
claudefy keeps your `~/.claude` directory — commands, skills, agents, hooks, rules, plans, plugins, settings, and project configs — in sync across all your machines through a private git repository. It encrypts sensitive content with AES-256-SIV, normalizes machine-specific paths, deep-merges settings, and can run fully automatically via Claude Code hooks.
|
|
14
19
|
|
|
15
|
-
##
|
|
20
|
+
## Why claudefy?
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
- **One config, every machine.** Stop manually copying files between your laptop, desktop, and servers.
|
|
23
|
+
- **Safe by design.** Credentials never leave your machine. Secrets are detected and encrypted before push. Remote hooks are stripped on pull to prevent injection.
|
|
24
|
+
- **Set it and forget it.** With auto-sync hooks, `pull` runs when Claude Code starts and `push` runs when it ends. No manual steps.
|
|
25
|
+
- **Conflict-free.** Per-machine git branches prevent collisions. Deep merge resolves settings.json at the key level.
|
|
18
26
|
|
|
19
|
-
|
|
20
|
-
- Each machine syncs to its own branch: `machines/<machineId>`
|
|
21
|
-
- `main` holds the merged state from all machines
|
|
27
|
+
## Quick Start
|
|
22
28
|
|
|
23
|
-
**
|
|
24
|
-
Commits local `~/.claude` changes to the machine branch, merges into `main`, and pushes both.
|
|
29
|
+
**Install:**
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g @kodrunhq/claudefy
|
|
33
|
+
```
|
|
28
34
|
|
|
29
|
-
**
|
|
30
|
-
Wipes `main` and force-updates it to match your machine's current state. Useful when one machine should become the canonical source of truth.
|
|
35
|
+
**First machine — initialize:**
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
```bash
|
|
38
|
+
# Point to an existing private repo
|
|
39
|
+
claudefy init --backend git@github.com:you/claude-sync.git --hooks
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| **Never synced** | cache, backups, file-history, shell-snapshots, paste-cache, session-env, tasks, .credentials.json | Machine-local or sensitive data |
|
|
38
|
-
| **Unknown** | Anything not in either list | Encrypted by default before commit |
|
|
41
|
+
# Or auto-create a GitHub repo
|
|
42
|
+
claudefy init --create-repo --hooks
|
|
43
|
+
```
|
|
39
44
|
|
|
40
|
-
|
|
45
|
+
**Other machines — join:**
|
|
41
46
|
|
|
42
47
|
```bash
|
|
43
|
-
|
|
48
|
+
claudefy join --backend git@github.com:you/claude-sync.git --hooks
|
|
44
49
|
```
|
|
45
50
|
|
|
46
|
-
|
|
51
|
+
That's it. With `--hooks`, sync is automatic from now on.
|
|
47
52
|
|
|
48
|
-
**
|
|
53
|
+
**Manual sync (if you skip hooks):**
|
|
49
54
|
|
|
50
55
|
```bash
|
|
51
|
-
#
|
|
52
|
-
claudefy
|
|
56
|
+
claudefy push # push local changes
|
|
57
|
+
claudefy pull # pull remote changes
|
|
58
|
+
claudefy status # see what would sync
|
|
59
|
+
```
|
|
53
60
|
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
## How It Works
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
┌────────────────┐
|
|
65
|
+
│ Private Git │
|
|
66
|
+
│ Repository │
|
|
67
|
+
└──────┬─────────┘
|
|
68
|
+
│
|
|
69
|
+
┌────────────────┼────────────────┐
|
|
70
|
+
│ │ │
|
|
71
|
+
┌───────▼──────┐ ┌──────▼───────┐ ┌──────▼───────┐
|
|
72
|
+
│ Machine A │ │ Machine B │ │ Machine C │
|
|
73
|
+
│ branch: m/A │ │ branch: m/B │ │ branch: m/C │
|
|
74
|
+
└───────┬──────┘ └──────┬───────┘ └──────┬───────┘
|
|
75
|
+
│ │ │
|
|
76
|
+
~/.claude ~/.claude ~/.claude
|
|
56
77
|
```
|
|
57
78
|
|
|
58
|
-
|
|
79
|
+
Each machine gets its own git branch (`machines/<id>`). Push merges into `main`; pull merges `main` back into the machine branch. No conflicts, no data loss.
|
|
59
80
|
|
|
60
|
-
|
|
61
|
-
|
|
81
|
+
### Push pipeline
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
~/.claude → SyncFilter → PathMapper → SecretScanner → Encryptor → Git push
|
|
85
|
+
(allow/deny) (normalize) (detect secrets) (AES-SIV)
|
|
62
86
|
```
|
|
63
87
|
|
|
64
|
-
|
|
88
|
+
### Pull pipeline
|
|
65
89
|
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
claudefy status # Show sync status
|
|
90
|
+
```
|
|
91
|
+
Git pull → Decrypt → PathMapper → Merger → SecurityFilter → ~/.claude
|
|
92
|
+
(remap) (deep merge) (strip hooks)
|
|
70
93
|
```
|
|
71
94
|
|
|
72
|
-
##
|
|
95
|
+
## What Gets Synced
|
|
73
96
|
|
|
74
|
-
|
|
97
|
+
| | Items | Notes |
|
|
98
|
+
|---|-------|-------|
|
|
99
|
+
| **Synced** | commands, agents, skills, hooks, rules, plans, plugins, agent-memory, projects, settings.json, history.jsonl, package.json | Core config that travels with you |
|
|
100
|
+
| **Never synced** | cache, backups, file-history, shell-snapshots, paste-cache, session-env, tasks, .credentials.json | Machine-local or sensitive |
|
|
101
|
+
| **Unknown** | Anything else | Synced to separate dir, always encrypted when encryption is enabled |
|
|
75
102
|
|
|
76
|
-
|
|
77
|
-
|---------|-------------|
|
|
78
|
-
| `claudefy init --backend <url>` | Initialize store on first machine |
|
|
79
|
-
| `claudefy join --backend <url>` | Join store from another machine |
|
|
80
|
-
| `claudefy push` | Push local state to remote |
|
|
81
|
-
| `claudefy pull` | Pull remote state to local |
|
|
82
|
-
| `claudefy override --confirm` | Wipe remote, push local as source of truth |
|
|
83
|
-
| `claudefy status` | Show file classification and sync state |
|
|
103
|
+
## Commands
|
|
84
104
|
|
|
85
|
-
###
|
|
105
|
+
### Core
|
|
86
106
|
|
|
87
107
|
| Command | Description |
|
|
88
108
|
|---------|-------------|
|
|
89
|
-
| `claudefy
|
|
90
|
-
| `claudefy
|
|
91
|
-
| `claudefy
|
|
109
|
+
| `claudefy init --backend <url>` | Initialize on the first machine |
|
|
110
|
+
| `claudefy join --backend <url>` | Join from another machine |
|
|
111
|
+
| `claudefy push` | Push local changes to remote |
|
|
112
|
+
| `claudefy pull` | Pull remote changes to local |
|
|
113
|
+
| `claudefy override --confirm` | Wipe remote, push local as source of truth |
|
|
114
|
+
| `claudefy status` | Show file classification |
|
|
92
115
|
|
|
93
|
-
###
|
|
116
|
+
### Project Links
|
|
94
117
|
|
|
95
118
|
| Command | Description |
|
|
96
119
|
|---------|-------------|
|
|
97
|
-
| `claudefy
|
|
98
|
-
| `claudefy
|
|
99
|
-
| `claudefy
|
|
100
|
-
| `claudefy machines` | List registered machines |
|
|
120
|
+
| `claudefy link <alias> <path>` | Map a local project path to a portable ID |
|
|
121
|
+
| `claudefy unlink <alias>` | Remove a mapping |
|
|
122
|
+
| `claudefy links` | List all mappings |
|
|
101
123
|
|
|
102
|
-
###
|
|
124
|
+
### Management
|
|
103
125
|
|
|
104
126
|
| Command | Description |
|
|
105
127
|
|---------|-------------|
|
|
106
|
-
| `claudefy hooks install` | Install auto-sync hooks
|
|
128
|
+
| `claudefy hooks install` | Install auto-sync hooks |
|
|
107
129
|
| `claudefy hooks remove` | Remove auto-sync hooks |
|
|
130
|
+
| `claudefy machines` | List registered machines |
|
|
131
|
+
| `claudefy restore` | Restore from a backup |
|
|
132
|
+
| `claudefy doctor` | Diagnose sync health |
|
|
133
|
+
| `claudefy config get/set` | View or update config |
|
|
108
134
|
|
|
109
|
-
### Options
|
|
110
|
-
|
|
111
|
-
Pass `--hooks` to `init` or `join` to install auto-sync hooks automatically.
|
|
112
|
-
|
|
113
|
-
## Global Options
|
|
135
|
+
### Global Options
|
|
114
136
|
|
|
115
137
|
| Option | Description |
|
|
116
138
|
|--------|-------------|
|
|
117
139
|
| `-q, --quiet` | Suppress output |
|
|
118
|
-
| `--skip-encryption` | Skip encryption (
|
|
119
|
-
| `--
|
|
140
|
+
| `--skip-encryption` | Skip encryption (testing only) |
|
|
141
|
+
| `--skip-secret-scan` | Skip secret scanning on push |
|
|
120
142
|
|
|
121
143
|
## Encryption
|
|
122
144
|
|
|
123
|
-
claudefy
|
|
145
|
+
claudefy uses **AES-256-SIV** deterministic encryption via `@noble/ciphers`.
|
|
124
146
|
|
|
125
|
-
**
|
|
126
|
-
|
|
127
|
-
**
|
|
128
|
-
- **
|
|
129
|
-
- **
|
|
130
|
-
- **Size overhead:** ~38% from base64 encoding
|
|
147
|
+
- **Deterministic** — same plaintext always produces the same ciphertext, so unchanged files produce zero git diff.
|
|
148
|
+
- **JSONL files** — encrypted line-by-line, preserving git's ability to diff and merge individual lines.
|
|
149
|
+
- **Other files** — encrypted as whole files.
|
|
150
|
+
- **Key derivation** — PBKDF2-SHA256 with 600,000 iterations. Salt is derived from the backend URL, so SSH and HTTPS URLs for the same repo produce the same key.
|
|
151
|
+
- **Reactive** — only files where the secret scanner detects a match are encrypted. Clean files stay in plaintext for easy inspection.
|
|
131
152
|
|
|
132
153
|
**Passphrase resolution order:**
|
|
133
|
-
1.
|
|
134
|
-
2.
|
|
135
|
-
3. OS keychain (requires `keytar`: `npm install -g keytar`)
|
|
154
|
+
1. `CLAUDEFY_PASSPHRASE` environment variable (recommended)
|
|
155
|
+
2. OS keychain (if configured)
|
|
136
156
|
|
|
137
|
-
|
|
138
|
-
- Files in the "unknown" tier (not in allowlist or denylist) are always encrypted
|
|
139
|
-
- Allowlisted files can optionally be encrypted via config
|
|
157
|
+
Interactive prompts only occur during `claudefy init` and `claudefy join` setup.
|
|
140
158
|
|
|
141
|
-
|
|
159
|
+
> See [docs/encryption.md](docs/encryption.md) for the full technical deep-dive.
|
|
160
|
+
|
|
161
|
+
## Security
|
|
142
162
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
163
|
+
- `.credentials.json` is **never** synced (hardcoded deny).
|
|
164
|
+
- Remote `hooks`, `mcpServers`, `env`, `permissions`, `allowedTools`, and `apiKeyHelper` keys are **stripped** from settings.json on pull — prevents code injection from the remote.
|
|
165
|
+
- Secret scanner checks 15 patterns (API keys, tokens, credentials) before push. Secrets trigger encryption; if encryption is disabled, the push is blocked.
|
|
166
|
+
- Symlinks are validated against path traversal.
|
|
167
|
+
- Passphrases are never stored in plaintext on disk.
|
|
168
|
+
|
|
169
|
+
> See [docs/security.md](docs/security.md) for the full security model.
|
|
170
|
+
|
|
171
|
+
## Documentation
|
|
172
|
+
|
|
173
|
+
| Document | Description |
|
|
174
|
+
|----------|-------------|
|
|
175
|
+
| [Architecture](docs/architecture.md) | System design, module map, data flows |
|
|
176
|
+
| [Encryption](docs/encryption.md) | AES-SIV, PBKDF2, line-level encryption |
|
|
177
|
+
| [Security](docs/security.md) | Threat model, hook stripping, secret scanning |
|
|
178
|
+
| [Hooks & Auto-Sync](docs/hooks.md) | SessionStart/SessionEnd hooks, automatic sync |
|
|
179
|
+
| [Override & Restore](docs/override-and-restore.md) | Override flow, backup system, restore |
|
|
180
|
+
| [Path Mapping](docs/path-mapping.md) | Cross-machine path normalization |
|
|
147
181
|
|
|
148
182
|
## Configuration
|
|
149
183
|
|
|
@@ -154,36 +188,26 @@ Config lives at `~/.claudefy/config.json`:
|
|
|
154
188
|
"version": 1,
|
|
155
189
|
"backend": { "type": "git", "url": "git@github.com:you/claude-sync.git" },
|
|
156
190
|
"encryption": { "enabled": true, "useKeychain": false, "cacheDuration": "0" },
|
|
157
|
-
"sync": { "lfsThreshold": 524288 },
|
|
158
|
-
"filter": {},
|
|
159
191
|
"machineId": "hostname-abc12345"
|
|
160
192
|
}
|
|
161
193
|
```
|
|
162
194
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
claudefy config set encryption.enabled false
|
|
167
|
-
claudefy config set encryption.useKeychain true
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
## Security Model
|
|
195
|
+
## Multi-Machine Workflow
|
|
171
196
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
- Passphrases never stored in plain text on disk
|
|
177
|
-
- Unknown files always encrypted — never pushed in cleartext
|
|
178
|
-
- `--passphrase` CLI flag warns about process list exposure
|
|
197
|
+
1. **First machine:** `claudefy init --backend <url> --hooks`
|
|
198
|
+
2. **Other machines:** `claudefy join --backend <url> --hooks`
|
|
199
|
+
3. **Auto-sync:** hooks handle push/pull at session boundaries
|
|
200
|
+
4. **Override:** `claudefy override --confirm` when one machine should be the source of truth (other machines auto-detect and create a backup before applying)
|
|
179
201
|
|
|
180
|
-
##
|
|
202
|
+
## Contributing
|
|
181
203
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
204
|
+
```bash
|
|
205
|
+
git clone https://github.com/kodrunhq/claudefy.git
|
|
206
|
+
cd claudefy
|
|
207
|
+
npm install
|
|
208
|
+
npm run lint && npm run format:check && npm run build && npm test
|
|
209
|
+
```
|
|
186
210
|
|
|
187
211
|
## License
|
|
188
212
|
|
|
189
|
-
MIT
|
|
213
|
+
[MIT](LICENSE)
|
package/dist/commands/push.d.ts
CHANGED
package/dist/commands/push.js
CHANGED
|
@@ -79,6 +79,7 @@ export class PushCommand {
|
|
|
79
79
|
await this.removeDeleted(configDir, syncedConfigItems);
|
|
80
80
|
await this.removeDeleted(unknownDir, syncedUnknownItems);
|
|
81
81
|
// 7. Scan for secrets and encrypt files that contain them
|
|
82
|
+
const filesToEncrypt = new Set();
|
|
82
83
|
if (!options.skipSecretScan && changedFiles.length > 0) {
|
|
83
84
|
const scanner = new SecretScanner();
|
|
84
85
|
const findings = await scanner.scanFiles(changedFiles);
|
|
@@ -87,26 +88,35 @@ export class PushCommand {
|
|
|
87
88
|
const details = findings.map((f) => ` ${f.file}:${f.line} [${f.pattern}]`).join("\n");
|
|
88
89
|
throw new Error(`Secret scan detected ${findings.length} potential secret(s):\n${details}\n\nEnable encryption or use --skip-secret-scan to bypass scanning.`);
|
|
89
90
|
}
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
for (const f of findings) {
|
|
92
|
+
filesToEncrypt.add(f.file);
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (!
|
|
107
|
-
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// 7b. Always encrypt unknown-tier files when encryption is enabled
|
|
97
|
+
if (config.encryption.enabled && !options.skipEncryption) {
|
|
98
|
+
await this.collectFilesRecursive(unknownDir, filesToEncrypt);
|
|
99
|
+
}
|
|
100
|
+
// 7c. Perform encryption on all files that need it
|
|
101
|
+
if (filesToEncrypt.size > 0) {
|
|
102
|
+
if (!options.passphrase) {
|
|
103
|
+
throw new Error("Encryption is required but no passphrase found. Set CLAUDEFY_PASSPHRASE or ensure your passphrase is stored in your OS keychain (configured during 'claudefy init' or 'claudefy join').");
|
|
104
|
+
}
|
|
105
|
+
const encryptor = new Encryptor(options.passphrase, config.backend.url);
|
|
106
|
+
for (const filePath of filesToEncrypt) {
|
|
107
|
+
if (existsSync(filePath) && !filePath.endsWith(".age")) {
|
|
108
|
+
const ad = (filePath.startsWith(configDir)
|
|
109
|
+
? relative(configDir, filePath)
|
|
110
|
+
: relative(unknownDir, filePath))
|
|
111
|
+
.split(sep)
|
|
112
|
+
.join("/");
|
|
113
|
+
await encryptor.encryptFile(filePath, filePath + ".age", ad);
|
|
114
|
+
await rm(filePath);
|
|
108
115
|
}
|
|
109
116
|
}
|
|
117
|
+
if (!options.quiet) {
|
|
118
|
+
output.info(`Encrypted ${filesToEncrypt.size} file(s).`);
|
|
119
|
+
}
|
|
110
120
|
}
|
|
111
121
|
// 8. Conditional manifest update
|
|
112
122
|
const hasRealChanges = !(await gitAdapter.isClean());
|
|
@@ -282,6 +292,20 @@ export class PushCommand {
|
|
|
282
292
|
}
|
|
283
293
|
}
|
|
284
294
|
}
|
|
295
|
+
async collectFilesRecursive(dirPath, files) {
|
|
296
|
+
if (!existsSync(dirPath))
|
|
297
|
+
return;
|
|
298
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
299
|
+
for (const entry of entries) {
|
|
300
|
+
const fullPath = join(dirPath, entry.name);
|
|
301
|
+
if (entry.isDirectory()) {
|
|
302
|
+
await this.collectFilesRecursive(fullPath, files);
|
|
303
|
+
}
|
|
304
|
+
else if (!entry.isSymbolicLink() && !entry.name.endsWith(".age")) {
|
|
305
|
+
files.add(fullPath);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
285
309
|
async removeDeleted(storeDir, currentItems) {
|
|
286
310
|
if (!existsSync(storeDir))
|
|
287
311
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { readdir, lstat } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
|
+
// Items that are always denied regardless of user configuration.
|
|
4
|
+
// These contain sensitive credentials and must never be synced.
|
|
5
|
+
const HARDCODED_DENYLIST = [".credentials.json"];
|
|
3
6
|
export class SyncFilter {
|
|
4
7
|
config;
|
|
5
8
|
constructor(config) {
|
|
@@ -27,6 +30,8 @@ export class SyncFilter {
|
|
|
27
30
|
};
|
|
28
31
|
}
|
|
29
32
|
getTier(name) {
|
|
33
|
+
if (HARDCODED_DENYLIST.includes(name))
|
|
34
|
+
return "deny";
|
|
30
35
|
if (this.config.allowlist.includes(name))
|
|
31
36
|
return "allow";
|
|
32
37
|
if (this.config.denylist.includes(name))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-filter.js","sourceRoot":"","sources":["../../src/sync-filter/sync-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;gBAChC,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAClD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"sync-filter.js","sourceRoot":"","sources":["../../src/sync-filter/sync-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,iEAAiE;AACjE,gEAAgE;AAChE,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAEjD,MAAM,OAAO,UAAU;IACb,MAAM,CAAmB;IAEjC,YAAY,MAAwB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,KAAK,GAAqB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpC,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI;gBACJ,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE;gBAChC,SAAS,EAAE,KAAK,CAAC,IAAI;aACtB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,KAAK;YACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;YAClD,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;SACnD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|