ace-compressor 0.25.1 → 0.25.2
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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e1c996e7eab195756890b7054562db27f6c26889dbd877e24bc6b65ecc6dbfee
|
|
4
|
+
data.tar.gz: 19709fefdc5d05514374017e54f0a7b2601ae844fc1e05c894ad1bfd1ce24f05
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ac0cacd03fad49727d70c294d9032f2bba3e08b2055f9cf2d4e907be567f8673426eb5826154b53ba9d34bd7d07a775fb302eb5f93a88208fd2c4eb98440641d
|
|
7
|
+
data.tar.gz: 7252c6067f0c3a19029301f4220e82df8dacd4953970705a44813cf4cf370382199f240d2744259a1a3761dcb3597e5580ad48e2b5deff5cf2128b71d99bdcf4
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.25.2] - 2026-06-30
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Canonicalized exact and compact compressor source labels through real paths so symlinked project files and missing descendants render stable project-relative labels.
|
|
11
|
+
|
|
12
|
+
### Technical
|
|
13
|
+
- Bumped exact, compact, and agent cache contract keys for the source-labeling fix.
|
|
14
|
+
|
|
7
15
|
## [0.25.1] - 2026-04-16
|
|
8
16
|
|
|
9
17
|
### Technical
|
|
@@ -12,9 +12,9 @@ module Ace
|
|
|
12
12
|
PACK_EXTENSION = ".pack"
|
|
13
13
|
METADATA_EXTENSION = ".json"
|
|
14
14
|
SHORT_KEY_LENGTH = 12
|
|
15
|
-
EXACT_CACHE_CONTRACT = "exact-list-shell-
|
|
16
|
-
COMPACT_CACHE_CONTRACT = "compact-list-shell-
|
|
17
|
-
AGENT_CACHE_CONTRACT = "agent-payload-rewrite-
|
|
15
|
+
EXACT_CACHE_CONTRACT = "exact-list-shell-v4"
|
|
16
|
+
COMPACT_CACHE_CONTRACT = "compact-list-shell-v4"
|
|
17
|
+
AGENT_CACHE_CONTRACT = "agent-payload-rewrite-v8"
|
|
18
18
|
|
|
19
19
|
def initialize(cache_root: nil, project_root: Dir.pwd)
|
|
20
20
|
@cache_root = File.expand_path(cache_root || default_cache_root, project_root)
|
|
@@ -445,13 +445,53 @@ module Ace
|
|
|
445
445
|
end
|
|
446
446
|
|
|
447
447
|
def source_label(source)
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
448
|
+
value = source.to_s
|
|
449
|
+
return value if logical_source?(value)
|
|
450
|
+
|
|
451
|
+
source_path = canonical_path(value)
|
|
452
|
+
project_root = canonical_path(Dir.pwd)
|
|
453
|
+
relative = relative_path_under(source_path, project_root)
|
|
454
|
+
return relative if relative
|
|
455
|
+
|
|
456
|
+
value
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
def logical_source?(value)
|
|
460
|
+
return true unless Pathname.new(value).absolute?
|
|
461
|
+
|
|
462
|
+
value.match?(%r{\A[a-z][a-z0-9+\-.]*://}i)
|
|
453
463
|
rescue ArgumentError
|
|
454
|
-
|
|
464
|
+
true
|
|
465
|
+
end
|
|
466
|
+
|
|
467
|
+
def canonical_path(path)
|
|
468
|
+
expanded = File.expand_path(path)
|
|
469
|
+
return File.realpath(expanded) if File.exist?(expanded)
|
|
470
|
+
|
|
471
|
+
canonical_missing_path(expanded)
|
|
472
|
+
rescue
|
|
473
|
+
File.expand_path(path)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
def canonical_missing_path(path)
|
|
477
|
+
parent = path
|
|
478
|
+
suffix = []
|
|
479
|
+
until File.exist?(parent) || parent == File.dirname(parent)
|
|
480
|
+
suffix.unshift(File.basename(parent))
|
|
481
|
+
parent = File.dirname(parent)
|
|
482
|
+
end
|
|
483
|
+
return path unless File.exist?(parent)
|
|
484
|
+
|
|
485
|
+
File.join(File.realpath(parent), *suffix)
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
def relative_path_under(path, root)
|
|
489
|
+
return "." if path == root
|
|
490
|
+
|
|
491
|
+
prefix = "#{root}#{File::SEPARATOR}"
|
|
492
|
+
return path.delete_prefix(prefix) if path.start_with?(prefix)
|
|
493
|
+
|
|
494
|
+
nil
|
|
455
495
|
end
|
|
456
496
|
|
|
457
497
|
def flush_pending_section!(lines, pending_section)
|
|
@@ -164,14 +164,15 @@ module Ace
|
|
|
164
164
|
end
|
|
165
165
|
|
|
166
166
|
def source_label(source)
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
relative = pathname.relative_path_from(project_root).to_s
|
|
170
|
-
return relative unless relative.start_with?("..")
|
|
167
|
+
value = source.to_s
|
|
168
|
+
return value if logical_source?(value)
|
|
171
169
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
170
|
+
source_path = canonical_path(value)
|
|
171
|
+
project_root = canonical_path(Dir.pwd)
|
|
172
|
+
relative = relative_path_under(source_path, project_root)
|
|
173
|
+
return relative if relative
|
|
174
|
+
|
|
175
|
+
value
|
|
175
176
|
end
|
|
176
177
|
|
|
177
178
|
def mode_label
|
|
@@ -181,6 +182,44 @@ module Ace
|
|
|
181
182
|
def mode_title
|
|
182
183
|
mode_label.capitalize
|
|
183
184
|
end
|
|
185
|
+
|
|
186
|
+
def logical_source?(value)
|
|
187
|
+
return true unless Pathname.new(value).absolute?
|
|
188
|
+
|
|
189
|
+
value.match?(%r{\A[a-z][a-z0-9+\-.]*://}i)
|
|
190
|
+
rescue ArgumentError
|
|
191
|
+
true
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
def canonical_path(path)
|
|
195
|
+
expanded = File.expand_path(path)
|
|
196
|
+
return File.realpath(expanded) if File.exist?(expanded)
|
|
197
|
+
|
|
198
|
+
canonical_missing_path(expanded)
|
|
199
|
+
rescue
|
|
200
|
+
File.expand_path(path)
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def canonical_missing_path(path)
|
|
204
|
+
parent = path
|
|
205
|
+
suffix = []
|
|
206
|
+
until File.exist?(parent) || parent == File.dirname(parent)
|
|
207
|
+
suffix.unshift(File.basename(parent))
|
|
208
|
+
parent = File.dirname(parent)
|
|
209
|
+
end
|
|
210
|
+
return path unless File.exist?(parent)
|
|
211
|
+
|
|
212
|
+
File.join(File.realpath(parent), *suffix)
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def relative_path_under(path, root)
|
|
216
|
+
return "." if path == root
|
|
217
|
+
|
|
218
|
+
prefix = "#{root}#{File::SEPARATOR}"
|
|
219
|
+
return path.delete_prefix(prefix) if path.start_with?(prefix)
|
|
220
|
+
|
|
221
|
+
nil
|
|
222
|
+
end
|
|
184
223
|
end
|
|
185
224
|
end
|
|
186
225
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-compressor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.25.
|
|
4
|
+
version: 0.25.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-06-30 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-config
|