nano-git 0.2.3 → 0.3.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/package.json CHANGED
@@ -1,214 +1,175 @@
1
1
  {
2
2
  "name": "nano-git",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
7
7
  "type": "module",
8
8
  "sideEffects": false,
9
+ "main": "./dist/index.mjs",
10
+ "module": "./dist/index.mjs",
11
+ "types": "./dist/index.d.mts",
9
12
  "exports": {
10
- ".": "./src/index.ts",
11
- "./backend": "./src/backend/index.ts",
12
- "./backend/file": "./src/backend/file.ts",
13
- "./backend/memory": "./src/backend/memory.ts",
14
- "./backend/sqlite": "./src/backend/sqlite.ts",
15
- "./errors": "./src/errors.ts",
16
- "./hash-file": "./src/hash-file.ts",
17
- "./log": "./src/log/index.ts",
18
- "./objects": "./src/objects/index.ts",
19
- "./odb/file": "./src/odb/file.ts",
20
- "./odb/memory": "./src/odb/memory.ts",
21
- "./odb/sqlite": "./src/odb/sqlite.ts",
22
- "./pack": "./src/pack/index.ts",
23
- "./refs/file": "./src/refs/file.ts",
24
- "./refs/memory": "./src/refs/memory.ts",
25
- "./refs/names": "./src/refs/names.ts",
26
- "./refs/resolve": "./src/refs/resolve.ts",
27
- "./refs/shallow/file": "./src/refs/shallow/file.ts",
28
- "./refs/shallow/memory": "./src/refs/shallow/memory.ts",
29
- "./refs/shallow/sqlite": "./src/refs/shallow/sqlite.ts",
30
- "./refs/sqlite": "./src/refs/sqlite.ts",
31
- "./remote/http": "./src/remote/http.ts",
32
- "./repository/core": "./src/repository/core.ts",
33
- "./repository/file": "./src/repository/file.ts",
34
- "./repository/memory": "./src/repository/memory.ts",
35
- "./repository/sqlite": "./src/repository/sqlite.ts",
36
- "./repository/tree/tree-patch": "./src/repository/tree/tree-patch.ts",
37
- "./repository/tree/tree-walk": "./src/repository/tree/tree-walk.ts",
38
- "./sha1": "./src/sha1.ts",
39
- "./transport": "./src/transport/index.ts",
40
- "./transport/http": "./src/transport/http/index.ts",
41
- "./transport/receive-pack": "./src/transport/receive-pack.ts",
42
- "./transport/server/receive-pack": "./src/transport/server/receive-pack/index.ts",
43
- "./transport/server/upload-pack": "./src/transport/server/upload-pack/index.ts",
44
- "./transport/upload-pack": "./src/transport/upload-pack.ts",
45
- "./workdir/core": "./src/workdir/core.ts",
46
- "./workdir/file": "./src/workdir/file.ts",
47
- "./workdir/memory": "./src/workdir/memory.ts",
48
- "./workdir/sqlite": "./src/workdir/sqlite.ts"
49
- },
50
- "publishConfig": {
51
- "exports": {
52
- ".": {
53
- "types": "./dist/index.d.mts",
54
- "default": "./dist/index.mjs"
55
- },
56
- "./backend": {
57
- "types": "./dist/backend/index.d.mts",
58
- "default": "./dist/backend/index.mjs"
59
- },
60
- "./backend/file": {
61
- "types": "./dist/backend/file.d.mts",
62
- "default": "./dist/backend/file.mjs"
63
- },
64
- "./backend/memory": {
65
- "types": "./dist/backend/memory.d.mts",
66
- "default": "./dist/backend/memory.mjs"
67
- },
68
- "./backend/sqlite": {
69
- "types": "./dist/backend/sqlite.d.mts",
70
- "default": "./dist/backend/sqlite.mjs"
71
- },
72
- "./errors": {
73
- "types": "./dist/errors.d.mts",
74
- "default": "./dist/errors.mjs"
75
- },
76
- "./hash-file": {
77
- "types": "./dist/hash-file.d.mts",
78
- "default": "./dist/hash-file.mjs"
79
- },
80
- "./log": {
81
- "types": "./dist/log/index.d.mts",
82
- "default": "./dist/log/index.mjs"
83
- },
84
- "./objects": {
85
- "types": "./dist/objects/index.d.mts",
86
- "default": "./dist/objects/index.mjs"
87
- },
88
- "./odb/file": {
89
- "types": "./dist/odb/file.d.mts",
90
- "default": "./dist/odb/file.mjs"
91
- },
92
- "./odb/memory": {
93
- "types": "./dist/odb/memory.d.mts",
94
- "default": "./dist/odb/memory.mjs"
95
- },
96
- "./odb/sqlite": {
97
- "types": "./dist/odb/sqlite.d.mts",
98
- "default": "./dist/odb/sqlite.mjs"
99
- },
100
- "./pack": {
101
- "types": "./dist/pack/index.d.mts",
102
- "default": "./dist/pack/index.mjs"
103
- },
104
- "./refs/file": {
105
- "types": "./dist/refs/file.d.mts",
106
- "default": "./dist/refs/file.mjs"
107
- },
108
- "./refs/memory": {
109
- "types": "./dist/refs/memory.d.mts",
110
- "default": "./dist/refs/memory.mjs"
111
- },
112
- "./refs/names": {
113
- "types": "./dist/refs/names.d.mts",
114
- "default": "./dist/refs/names.mjs"
115
- },
116
- "./refs/resolve": {
117
- "types": "./dist/refs/resolve.d.mts",
118
- "default": "./dist/refs/resolve.mjs"
119
- },
120
- "./refs/shallow/file": {
121
- "types": "./dist/refs/shallow/file.d.mts",
122
- "default": "./dist/refs/shallow/file.mjs"
123
- },
124
- "./refs/shallow/memory": {
125
- "types": "./dist/refs/shallow/memory.d.mts",
126
- "default": "./dist/refs/shallow/memory.mjs"
127
- },
128
- "./refs/shallow/sqlite": {
129
- "types": "./dist/refs/shallow/sqlite.d.mts",
130
- "default": "./dist/refs/shallow/sqlite.mjs"
131
- },
132
- "./refs/sqlite": {
133
- "types": "./dist/refs/sqlite.d.mts",
134
- "default": "./dist/refs/sqlite.mjs"
135
- },
136
- "./remote/http": {
137
- "types": "./dist/remote/http.d.mts",
138
- "default": "./dist/remote/http.mjs"
139
- },
140
- "./repository/core": {
141
- "types": "./dist/repository/core.d.mts",
142
- "default": "./dist/repository/core.mjs"
143
- },
144
- "./repository/file": {
145
- "types": "./dist/repository/file.d.mts",
146
- "default": "./dist/repository/file.mjs"
147
- },
148
- "./repository/memory": {
149
- "types": "./dist/repository/memory.d.mts",
150
- "default": "./dist/repository/memory.mjs"
151
- },
152
- "./repository/sqlite": {
153
- "types": "./dist/repository/sqlite.d.mts",
154
- "default": "./dist/repository/sqlite.mjs"
155
- },
156
- "./repository/tree/tree-patch": {
157
- "types": "./dist/repository/tree/tree-patch.d.mts",
158
- "default": "./dist/repository/tree/tree-patch.mjs"
159
- },
160
- "./repository/tree/tree-walk": {
161
- "types": "./dist/repository/tree/tree-walk.d.mts",
162
- "default": "./dist/repository/tree/tree-walk.mjs"
163
- },
164
- "./sha1": {
165
- "types": "./dist/sha1.d.mts",
166
- "default": "./dist/sha1.mjs"
167
- },
168
- "./transport": {
169
- "types": "./dist/transport/index.d.mts",
170
- "default": "./dist/transport/index.mjs"
171
- },
172
- "./transport/http": {
173
- "types": "./dist/transport/http/index.d.mts",
174
- "default": "./dist/transport/http/index.mjs"
175
- },
176
- "./transport/receive-pack": {
177
- "types": "./dist/transport/receive-pack.d.mts",
178
- "default": "./dist/transport/receive-pack.mjs"
179
- },
180
- "./transport/server/receive-pack": {
181
- "types": "./dist/transport/server/receive-pack/index.d.mts",
182
- "default": "./dist/transport/server/receive-pack/index.mjs"
183
- },
184
- "./transport/server/upload-pack": {
185
- "types": "./dist/transport/server/upload-pack/index.d.mts",
186
- "default": "./dist/transport/server/upload-pack/index.mjs"
187
- },
188
- "./transport/upload-pack": {
189
- "types": "./dist/transport/upload-pack.d.mts",
190
- "default": "./dist/transport/upload-pack.mjs"
191
- },
192
- "./workdir/core": {
193
- "types": "./dist/workdir/core.d.mts",
194
- "default": "./dist/workdir/core.mjs"
195
- },
196
- "./workdir/file": {
197
- "types": "./dist/workdir/file.d.mts",
198
- "default": "./dist/workdir/file.mjs"
199
- },
200
- "./workdir/memory": {
201
- "types": "./dist/workdir/memory.d.mts",
202
- "default": "./dist/workdir/memory.mjs"
203
- },
204
- "./workdir/sqlite": {
205
- "types": "./dist/workdir/sqlite.d.mts",
206
- "default": "./dist/workdir/sqlite.mjs"
207
- }
13
+ ".": {
14
+ "types": "./dist/index.d.mts",
15
+ "default": "./dist/index.mjs"
16
+ },
17
+ "./backend": {
18
+ "types": "./dist/backend/index.d.mts",
19
+ "default": "./dist/backend/index.mjs"
20
+ },
21
+ "./backend/file": {
22
+ "types": "./dist/backend/file.d.mts",
23
+ "default": "./dist/backend/file.mjs"
24
+ },
25
+ "./backend/memory": {
26
+ "types": "./dist/backend/memory.d.mts",
27
+ "default": "./dist/backend/memory.mjs"
28
+ },
29
+ "./backend/sqlite": {
30
+ "types": "./dist/backend/sqlite.d.mts",
31
+ "default": "./dist/backend/sqlite.mjs"
32
+ },
33
+ "./errors": {
34
+ "types": "./dist/errors.d.mts",
35
+ "default": "./dist/errors.mjs"
36
+ },
37
+ "./hash-file": {
38
+ "types": "./dist/hash-file.d.mts",
39
+ "default": "./dist/hash-file.mjs"
40
+ },
41
+ "./log": {
42
+ "types": "./dist/log/index.d.mts",
43
+ "default": "./dist/log/index.mjs"
44
+ },
45
+ "./objects": {
46
+ "types": "./dist/objects/index.d.mts",
47
+ "default": "./dist/objects/index.mjs"
48
+ },
49
+ "./odb/file": {
50
+ "types": "./dist/odb/file.d.mts",
51
+ "default": "./dist/odb/file.mjs"
52
+ },
53
+ "./odb/memory": {
54
+ "types": "./dist/odb/memory.d.mts",
55
+ "default": "./dist/odb/memory.mjs"
56
+ },
57
+ "./odb/sqlite": {
58
+ "types": "./dist/odb/sqlite.d.mts",
59
+ "default": "./dist/odb/sqlite.mjs"
60
+ },
61
+ "./pack": {
62
+ "types": "./dist/pack/index.d.mts",
63
+ "default": "./dist/pack/index.mjs"
64
+ },
65
+ "./refs/file": {
66
+ "types": "./dist/refs/file.d.mts",
67
+ "default": "./dist/refs/file.mjs"
68
+ },
69
+ "./refs/memory": {
70
+ "types": "./dist/refs/memory.d.mts",
71
+ "default": "./dist/refs/memory.mjs"
72
+ },
73
+ "./refs/names": {
74
+ "types": "./dist/refs/names.d.mts",
75
+ "default": "./dist/refs/names.mjs"
76
+ },
77
+ "./refs/resolve": {
78
+ "types": "./dist/refs/resolve.d.mts",
79
+ "default": "./dist/refs/resolve.mjs"
80
+ },
81
+ "./refs/shallow/file": {
82
+ "types": "./dist/refs/shallow/file.d.mts",
83
+ "default": "./dist/refs/shallow/file.mjs"
84
+ },
85
+ "./refs/shallow/memory": {
86
+ "types": "./dist/refs/shallow/memory.d.mts",
87
+ "default": "./dist/refs/shallow/memory.mjs"
88
+ },
89
+ "./refs/shallow/sqlite": {
90
+ "types": "./dist/refs/shallow/sqlite.d.mts",
91
+ "default": "./dist/refs/shallow/sqlite.mjs"
92
+ },
93
+ "./refs/sqlite": {
94
+ "types": "./dist/refs/sqlite.d.mts",
95
+ "default": "./dist/refs/sqlite.mjs"
96
+ },
97
+ "./remote/http": {
98
+ "types": "./dist/remote/http.d.mts",
99
+ "default": "./dist/remote/http.mjs"
100
+ },
101
+ "./repository/core": {
102
+ "types": "./dist/repository/core.d.mts",
103
+ "default": "./dist/repository/core.mjs"
104
+ },
105
+ "./repository/file": {
106
+ "types": "./dist/repository/file.d.mts",
107
+ "default": "./dist/repository/file.mjs"
108
+ },
109
+ "./repository/memory": {
110
+ "types": "./dist/repository/memory.d.mts",
111
+ "default": "./dist/repository/memory.mjs"
112
+ },
113
+ "./repository/sqlite": {
114
+ "types": "./dist/repository/sqlite.d.mts",
115
+ "default": "./dist/repository/sqlite.mjs"
116
+ },
117
+ "./repository/tree/tree-patch": {
118
+ "types": "./dist/repository/tree/tree-patch.d.mts",
119
+ "default": "./dist/repository/tree/tree-patch.mjs"
120
+ },
121
+ "./repository/tree/tree-walk": {
122
+ "types": "./dist/repository/tree/tree-walk.d.mts",
123
+ "default": "./dist/repository/tree/tree-walk.mjs"
124
+ },
125
+ "./sha1": {
126
+ "types": "./dist/sha1.d.mts",
127
+ "default": "./dist/sha1.mjs"
128
+ },
129
+ "./transport": {
130
+ "types": "./dist/transport/index.d.mts",
131
+ "default": "./dist/transport/index.mjs"
132
+ },
133
+ "./transport/http": {
134
+ "types": "./dist/transport/http/index.d.mts",
135
+ "default": "./dist/transport/http/index.mjs"
136
+ },
137
+ "./transport/receive-pack": {
138
+ "types": "./dist/transport/receive-pack.d.mts",
139
+ "default": "./dist/transport/receive-pack.mjs"
140
+ },
141
+ "./transport/server/receive-pack": {
142
+ "types": "./dist/transport/server/receive-pack/index.d.mts",
143
+ "default": "./dist/transport/server/receive-pack/index.mjs"
144
+ },
145
+ "./transport/server/upload-pack": {
146
+ "types": "./dist/transport/server/upload-pack/index.d.mts",
147
+ "default": "./dist/transport/server/upload-pack/index.mjs"
148
+ },
149
+ "./transport/upload-pack": {
150
+ "types": "./dist/transport/upload-pack.d.mts",
151
+ "default": "./dist/transport/upload-pack.mjs"
152
+ },
153
+ "./workdir/core": {
154
+ "types": "./dist/workdir/core.d.mts",
155
+ "default": "./dist/workdir/core.mjs"
156
+ },
157
+ "./workdir/file": {
158
+ "types": "./dist/workdir/file.d.mts",
159
+ "default": "./dist/workdir/file.mjs"
160
+ },
161
+ "./workdir/memory": {
162
+ "types": "./dist/workdir/memory.d.mts",
163
+ "default": "./dist/workdir/memory.mjs"
164
+ },
165
+ "./workdir/sqlite": {
166
+ "types": "./dist/workdir/sqlite.d.mts",
167
+ "default": "./dist/workdir/sqlite.mjs"
208
168
  }
209
169
  },
210
170
  "scripts": {
211
171
  "build": "tsdown",
172
+ "bench:workdir-diff": "bun run examples/workdir-diff-benchmark.ts",
212
173
  "lint": "oxlint .",
213
174
  "format": "oxfmt .",
214
175
  "format:check": "oxfmt --check .",
@@ -1,25 +0,0 @@
1
- //#region src/workdir/change-log.d.ts
2
- /** 内部变更操作(含 revert,公开 API 暂不暴露 revert) */
3
- type InternalChangeRecord = {
4
- readonly op: "add";
5
- readonly path: string;
6
- } | {
7
- readonly op: "modify";
8
- readonly path: string;
9
- } | {
10
- readonly op: "delete";
11
- readonly path: string;
12
- } | {
13
- readonly op: "rename";
14
- readonly from: string;
15
- readonly to: string;
16
- } | {
17
- readonly op: "copy";
18
- readonly from: string;
19
- readonly to: string;
20
- } | {
21
- readonly op: "revert";
22
- readonly path: string;
23
- };
24
- //#endregion
25
- export { InternalChangeRecord };
@@ -1,69 +0,0 @@
1
- //#region src/workdir/change-log.ts
2
- /**
3
- * 创建空的变更日志
4
- *
5
- * @example
6
- * ```ts
7
- * const log = createVirtualChangeLog();
8
- * log.append({ op: "add", path: "a.txt" });
9
- * expect(log.toVirtualChanges()).toEqual([{ path: "a.txt", type: "add" }]);
10
- * ```
11
- */
12
- function createVirtualChangeLog() {
13
- const records = [];
14
- return {
15
- append(record) {
16
- records.push(record);
17
- },
18
- clear() {
19
- records.length = 0;
20
- },
21
- snapshot() {
22
- return records.slice();
23
- },
24
- toVirtualChanges() {
25
- return mapInternalChangesToVirtualChanges(records);
26
- }
27
- };
28
- }
29
- /**
30
- * 将内部变更记录映射为公开 VirtualChange 列表
31
- */
32
- function mapInternalChangesToVirtualChanges(records) {
33
- const out = [];
34
- for (const record of records) {
35
- const mapped = mapInternalToVirtual(record);
36
- if (mapped !== null) out.push(mapped);
37
- }
38
- return out;
39
- }
40
- function mapInternalToVirtual(record) {
41
- switch (record.op) {
42
- case "add": return {
43
- path: record.path,
44
- type: "add"
45
- };
46
- case "modify": return {
47
- path: record.path,
48
- type: "modify"
49
- };
50
- case "delete": return {
51
- path: record.path,
52
- type: "delete"
53
- };
54
- case "rename": return {
55
- path: record.to,
56
- type: "rename",
57
- oldPath: record.from
58
- };
59
- case "copy": return {
60
- path: record.to,
61
- type: "copy",
62
- oldPath: record.from
63
- };
64
- case "revert": return null;
65
- default: return record;
66
- }
67
- }
68
- //#endregion
69
- export { createVirtualChangeLog, mapInternalChangesToVirtualChanges };