@proteinjs/reflection-build 1.4.8 → 1.4.10
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/CHANGELOG.md +13 -0
- package/dist/modules/typescript-parser/node-parser/function-parser.js +2 -1
- package/dist/test/ParseTupleParams.test.d.ts +1 -0
- package/dist/test/ParseTupleParams.test.js +108 -0
- package/dist/test/ParseTupleParams.test.js.map +1 -0
- package/modules/typescript-parser/node-parser/function-parser.js +2 -1
- package/package.json +7 -5
- package/test/ParseTupleParams.test.ts +46 -0
- package/test/examples/source-repository/a/node_modules/.package-lock.json +16 -16
- package/test/examples/source-repository/a/node_modules/@proteinjs/reflection/package.json +2 -2
- package/test/examples/source-repository/a/node_modules/@proteinjs/util/package.json +2 -3
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/CHANGELOG.md +11 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +4 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +3 -0
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/package.json +3 -4
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/PackageUtil.ts +4 -1
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +5 -5
- package/test/examples/source-repository/a/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +106 -100
- package/test/examples/source-repository/a/package-lock.json +20 -20
- package/test/examples/source-repository/a/package.json +4 -4
- package/test/examples/source-repository/b/node_modules/.package-lock.json +12 -12
- package/test/examples/source-repository/b/node_modules/@proteinjs/reflection/package.json +2 -2
- package/test/examples/source-repository/b/node_modules/@proteinjs/util/package.json +2 -3
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/CHANGELOG.md +11 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +4 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +3 -0
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/package.json +3 -4
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/PackageUtil.ts +4 -1
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/Makefile +5 -5
- package/test/examples/source-repository/b/node_modules/glob-watcher/node_modules/fsevents/build/gyp-mac-tool +106 -100
- package/test/examples/source-repository/b/package-lock.json +16 -16
- package/test/examples/source-repository/b/package.json +4 -4
- package/dist/modules/typescript-parser/package-lock.json +0 -16793
- package/dist/modules/typescript-parser/package.json +0 -55
- package/modules/typescript-parser/package-lock.json +0 -16793
- package/modules/typescript-parser/package.json +0 -55
- package/test/examples/source-repository/a/node_modules/@proteinjs/util/LICENSE +0 -21
- package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/LICENSE +0 -21
- package/test/examples/source-repository/b/node_modules/@proteinjs/util/LICENSE +0 -21
- package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/LICENSE +0 -21
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
These functions are executed via gyp-mac-tool when using the Makefile generator.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
import fcntl
|
|
13
14
|
import fnmatch
|
|
14
15
|
import glob
|
|
@@ -25,13 +26,14 @@ import tempfile
|
|
|
25
26
|
|
|
26
27
|
def main(args):
|
|
27
28
|
executor = MacTool()
|
|
28
|
-
|
|
29
|
+
exit_code = executor.Dispatch(args)
|
|
30
|
+
if exit_code is not None:
|
|
29
31
|
sys.exit(exit_code)
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
class MacTool:
|
|
33
35
|
"""This class performs all the Mac tooling steps. The methods can either be
|
|
34
|
-
|
|
36
|
+
executed directly, or dispatched from an argument list."""
|
|
35
37
|
|
|
36
38
|
def Dispatch(self, args):
|
|
37
39
|
"""Dispatches a string command to a method."""
|
|
@@ -47,7 +49,7 @@ class MacTool:
|
|
|
47
49
|
|
|
48
50
|
def ExecCopyBundleResource(self, source, dest, convert_to_binary):
|
|
49
51
|
"""Copies a resource file to the bundle/Resources directory, performing any
|
|
50
|
-
|
|
52
|
+
necessary compilation on each resource."""
|
|
51
53
|
convert_to_binary = convert_to_binary == "True"
|
|
52
54
|
extension = os.path.splitext(source)[1].lower()
|
|
53
55
|
if os.path.isdir(source):
|
|
@@ -58,7 +60,9 @@ class MacTool:
|
|
|
58
60
|
if os.path.exists(dest):
|
|
59
61
|
shutil.rmtree(dest)
|
|
60
62
|
shutil.copytree(source, dest)
|
|
61
|
-
elif extension
|
|
63
|
+
elif extension == ".xib":
|
|
64
|
+
return self._CopyXIBFile(source, dest)
|
|
65
|
+
elif extension == ".storyboard":
|
|
62
66
|
return self._CopyXIBFile(source, dest)
|
|
63
67
|
elif extension == ".strings" and not convert_to_binary:
|
|
64
68
|
self._CopyStringsFile(source, dest)
|
|
@@ -67,7 +71,7 @@ class MacTool:
|
|
|
67
71
|
os.unlink(dest)
|
|
68
72
|
shutil.copy(source, dest)
|
|
69
73
|
|
|
70
|
-
if convert_to_binary and extension in
|
|
74
|
+
if convert_to_binary and extension in (".plist", ".strings"):
|
|
71
75
|
self._ConvertToBinary(dest)
|
|
72
76
|
|
|
73
77
|
def _CopyXIBFile(self, source, dest):
|
|
@@ -141,7 +145,7 @@ class MacTool:
|
|
|
141
145
|
# CFPropertyListCreateFromXMLData(): Old-style plist parser: missing
|
|
142
146
|
# semicolon in dictionary.
|
|
143
147
|
# on invalid files. Do the same kind of validation.
|
|
144
|
-
import CoreFoundation
|
|
148
|
+
import CoreFoundation
|
|
145
149
|
|
|
146
150
|
with open(source, "rb") as in_file:
|
|
147
151
|
s = in_file.read()
|
|
@@ -155,15 +159,17 @@ class MacTool:
|
|
|
155
159
|
|
|
156
160
|
def _DetectInputEncoding(self, file_name):
|
|
157
161
|
"""Reads the first few bytes from file_name and tries to guess the text
|
|
158
|
-
|
|
162
|
+
encoding. Returns None as a guess if it can't detect it."""
|
|
159
163
|
with open(file_name, "rb") as fp:
|
|
160
164
|
try:
|
|
161
165
|
header = fp.read(3)
|
|
162
166
|
except Exception:
|
|
163
167
|
return None
|
|
164
|
-
if header.startswith(
|
|
168
|
+
if header.startswith(b"\xFE\xFF"):
|
|
165
169
|
return "UTF-16"
|
|
166
|
-
elif header.startswith(b"\
|
|
170
|
+
elif header.startswith(b"\xFF\xFE"):
|
|
171
|
+
return "UTF-16"
|
|
172
|
+
elif header.startswith(b"\xEF\xBB\xBF"):
|
|
167
173
|
return "UTF-8"
|
|
168
174
|
else:
|
|
169
175
|
return None
|
|
@@ -254,9 +260,9 @@ class MacTool:
|
|
|
254
260
|
|
|
255
261
|
def ExecFilterLibtool(self, *cmd_list):
|
|
256
262
|
"""Calls libtool and filters out '/path/to/libtool: file: foo.o has no
|
|
257
|
-
|
|
263
|
+
symbols'."""
|
|
258
264
|
libtool_re = re.compile(
|
|
259
|
-
r"^.*libtool: (?:for architecture: \S* )?file: .* has no symbols$"
|
|
265
|
+
r"^.*libtool: (?:for architecture: \S* )?" r"file: .* has no symbols$"
|
|
260
266
|
)
|
|
261
267
|
libtool_re5 = re.compile(
|
|
262
268
|
r"^.*libtool: warning for library: "
|
|
@@ -303,7 +309,7 @@ class MacTool:
|
|
|
303
309
|
|
|
304
310
|
def ExecPackageFramework(self, framework, version):
|
|
305
311
|
"""Takes a path to Something.framework and the Current version of that and
|
|
306
|
-
|
|
312
|
+
sets up all the symlinks."""
|
|
307
313
|
# Find the name of the binary based on the part before the ".framework".
|
|
308
314
|
binary = os.path.basename(framework).split(".")[0]
|
|
309
315
|
|
|
@@ -332,7 +338,7 @@ class MacTool:
|
|
|
332
338
|
|
|
333
339
|
def _Relink(self, dest, link):
|
|
334
340
|
"""Creates a symlink to |dest| named |link|. If |link| already exists,
|
|
335
|
-
|
|
341
|
+
it is overwritten."""
|
|
336
342
|
if os.path.lexists(link):
|
|
337
343
|
os.remove(link)
|
|
338
344
|
os.symlink(dest, link)
|
|
@@ -357,14 +363,14 @@ class MacTool:
|
|
|
357
363
|
def ExecCompileXcassets(self, keys, *inputs):
|
|
358
364
|
"""Compiles multiple .xcassets files into a single .car file.
|
|
359
365
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
366
|
+
This invokes 'actool' to compile all the inputs .xcassets files. The
|
|
367
|
+
|keys| arguments is a json-encoded dictionary of extra arguments to
|
|
368
|
+
pass to 'actool' when the asset catalogs contains an application icon
|
|
369
|
+
or a launch image.
|
|
364
370
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
371
|
+
Note that 'actool' does not create the Assets.car file if the asset
|
|
372
|
+
catalogs does not contains imageset.
|
|
373
|
+
"""
|
|
368
374
|
command_line = [
|
|
369
375
|
"xcrun",
|
|
370
376
|
"actool",
|
|
@@ -437,13 +443,13 @@ class MacTool:
|
|
|
437
443
|
def ExecCodeSignBundle(self, key, entitlements, provisioning, path, preserve):
|
|
438
444
|
"""Code sign a bundle.
|
|
439
445
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
446
|
+
This function tries to code sign an iOS bundle, following the same
|
|
447
|
+
algorithm as Xcode:
|
|
448
|
+
1. pick the provisioning profile that best match the bundle identifier,
|
|
449
|
+
and copy it into the bundle as embedded.mobileprovision,
|
|
450
|
+
2. copy Entitlements.plist from user or SDK next to the bundle,
|
|
451
|
+
3. code sign the bundle.
|
|
452
|
+
"""
|
|
447
453
|
substitutions, overrides = self._InstallProvisioningProfile(
|
|
448
454
|
provisioning, self._GetCFBundleIdentifier()
|
|
449
455
|
)
|
|
@@ -462,16 +468,16 @@ class MacTool:
|
|
|
462
468
|
def _InstallProvisioningProfile(self, profile, bundle_identifier):
|
|
463
469
|
"""Installs embedded.mobileprovision into the bundle.
|
|
464
470
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
471
|
+
Args:
|
|
472
|
+
profile: string, optional, short name of the .mobileprovision file
|
|
473
|
+
to use, if empty or the file is missing, the best file installed
|
|
474
|
+
will be used
|
|
475
|
+
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
|
470
476
|
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
477
|
+
Returns:
|
|
478
|
+
A tuple containing two dictionary: variables substitutions and values
|
|
479
|
+
to overrides when generating the entitlements file.
|
|
480
|
+
"""
|
|
475
481
|
source_path, provisioning_data, team_id = self._FindProvisioningProfile(
|
|
476
482
|
profile, bundle_identifier
|
|
477
483
|
)
|
|
@@ -487,24 +493,24 @@ class MacTool:
|
|
|
487
493
|
def _FindProvisioningProfile(self, profile, bundle_identifier):
|
|
488
494
|
"""Finds the .mobileprovision file to use for signing the bundle.
|
|
489
495
|
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
496
|
+
Checks all the installed provisioning profiles (or if the user specified
|
|
497
|
+
the PROVISIONING_PROFILE variable, only consult it) and select the most
|
|
498
|
+
specific that correspond to the bundle identifier.
|
|
493
499
|
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
500
|
+
Args:
|
|
501
|
+
profile: string, optional, short name of the .mobileprovision file
|
|
502
|
+
to use, if empty or the file is missing, the best file installed
|
|
503
|
+
will be used
|
|
504
|
+
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
|
499
505
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
506
|
+
Returns:
|
|
507
|
+
A tuple of the path to the selected provisioning profile, the data of
|
|
508
|
+
the embedded plist in the provisioning profile and the team identifier
|
|
509
|
+
to use for code signing.
|
|
504
510
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
511
|
+
Raises:
|
|
512
|
+
SystemExit: if no .mobileprovision can be used to sign the bundle.
|
|
513
|
+
"""
|
|
508
514
|
profiles_dir = os.path.join(
|
|
509
515
|
os.environ["HOME"], "Library", "MobileDevice", "Provisioning Profiles"
|
|
510
516
|
)
|
|
@@ -552,12 +558,12 @@ class MacTool:
|
|
|
552
558
|
def _LoadProvisioningProfile(self, profile_path):
|
|
553
559
|
"""Extracts the plist embedded in a provisioning profile.
|
|
554
560
|
|
|
555
|
-
|
|
556
|
-
|
|
561
|
+
Args:
|
|
562
|
+
profile_path: string, path to the .mobileprovision file
|
|
557
563
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
564
|
+
Returns:
|
|
565
|
+
Content of the plist embedded in the provisioning profile as a dictionary.
|
|
566
|
+
"""
|
|
561
567
|
with tempfile.NamedTemporaryFile() as temp:
|
|
562
568
|
subprocess.check_call(
|
|
563
569
|
["security", "cms", "-D", "-i", profile_path, "-o", temp.name]
|
|
@@ -580,16 +586,16 @@ class MacTool:
|
|
|
580
586
|
def _LoadPlistMaybeBinary(self, plist_path):
|
|
581
587
|
"""Loads into a memory a plist possibly encoded in binary format.
|
|
582
588
|
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
589
|
+
This is a wrapper around plistlib.readPlist that tries to convert the
|
|
590
|
+
plist to the XML format if it can't be parsed (assuming that it is in
|
|
591
|
+
the binary format).
|
|
586
592
|
|
|
587
|
-
|
|
588
|
-
|
|
593
|
+
Args:
|
|
594
|
+
plist_path: string, path to a plist file, in XML or binary format
|
|
589
595
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
596
|
+
Returns:
|
|
597
|
+
Content of the plist as a dictionary.
|
|
598
|
+
"""
|
|
593
599
|
try:
|
|
594
600
|
# First, try to read the file using plistlib that only supports XML,
|
|
595
601
|
# and if an exception is raised, convert a temporary copy to XML and
|
|
@@ -605,13 +611,13 @@ class MacTool:
|
|
|
605
611
|
def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix):
|
|
606
612
|
"""Constructs a dictionary of variable substitutions for Entitlements.plist.
|
|
607
613
|
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
614
|
+
Args:
|
|
615
|
+
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
|
616
|
+
app_identifier_prefix: string, value for AppIdentifierPrefix
|
|
611
617
|
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
618
|
+
Returns:
|
|
619
|
+
Dictionary of substitutions to apply when generating Entitlements.plist.
|
|
620
|
+
"""
|
|
615
621
|
return {
|
|
616
622
|
"CFBundleIdentifier": bundle_identifier,
|
|
617
623
|
"AppIdentifierPrefix": app_identifier_prefix,
|
|
@@ -620,9 +626,9 @@ class MacTool:
|
|
|
620
626
|
def _GetCFBundleIdentifier(self):
|
|
621
627
|
"""Extracts CFBundleIdentifier value from Info.plist in the bundle.
|
|
622
628
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
629
|
+
Returns:
|
|
630
|
+
Value of CFBundleIdentifier in the Info.plist located in the bundle.
|
|
631
|
+
"""
|
|
626
632
|
info_plist_path = os.path.join(
|
|
627
633
|
os.environ["TARGET_BUILD_DIR"], os.environ["INFOPLIST_PATH"]
|
|
628
634
|
)
|
|
@@ -632,19 +638,19 @@ class MacTool:
|
|
|
632
638
|
def _InstallEntitlements(self, entitlements, substitutions, overrides):
|
|
633
639
|
"""Generates and install the ${BundleName}.xcent entitlements file.
|
|
634
640
|
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
641
|
+
Expands variables "$(variable)" pattern in the source entitlements file,
|
|
642
|
+
add extra entitlements defined in the .mobileprovision file and the copy
|
|
643
|
+
the generated plist to "${BundlePath}.xcent".
|
|
638
644
|
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
645
|
+
Args:
|
|
646
|
+
entitlements: string, optional, path to the Entitlements.plist template
|
|
647
|
+
to use, defaults to "${SDKROOT}/Entitlements.plist"
|
|
648
|
+
substitutions: dictionary, variable substitutions
|
|
649
|
+
overrides: dictionary, values to add to the entitlements
|
|
644
650
|
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
651
|
+
Returns:
|
|
652
|
+
Path to the generated entitlements file.
|
|
653
|
+
"""
|
|
648
654
|
source_path = entitlements
|
|
649
655
|
target_path = os.path.join(
|
|
650
656
|
os.environ["BUILT_PRODUCTS_DIR"], os.environ["PRODUCT_NAME"] + ".xcent"
|
|
@@ -664,15 +670,15 @@ class MacTool:
|
|
|
664
670
|
def _ExpandVariables(self, data, substitutions):
|
|
665
671
|
"""Expands variables "$(variable)" in data.
|
|
666
672
|
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
673
|
+
Args:
|
|
674
|
+
data: object, can be either string, list or dictionary
|
|
675
|
+
substitutions: dictionary, variable substitutions to perform
|
|
670
676
|
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
677
|
+
Returns:
|
|
678
|
+
Copy of data where each references to "$(variable)" has been replaced
|
|
679
|
+
by the corresponding value found in substitutions, or left intact if
|
|
680
|
+
the key was not found.
|
|
681
|
+
"""
|
|
676
682
|
if isinstance(data, str):
|
|
677
683
|
for key, value in substitutions.items():
|
|
678
684
|
data = data.replace("$(%s)" % key, value)
|
|
@@ -691,15 +697,15 @@ def NextGreaterPowerOf2(x):
|
|
|
691
697
|
def WriteHmap(output_name, filelist):
|
|
692
698
|
"""Generates a header map based on |filelist|.
|
|
693
699
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
700
|
+
Per Mark Mentovai:
|
|
701
|
+
A header map is structured essentially as a hash table, keyed by names used
|
|
702
|
+
in #includes, and providing pathnames to the actual files.
|
|
697
703
|
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
704
|
+
The implementation below and the comment above comes from inspecting:
|
|
705
|
+
http://www.opensource.apple.com/source/distcc/distcc-2503/distcc_dist/include_server/headermap.py?txt
|
|
706
|
+
while also looking at the implementation in clang in:
|
|
707
|
+
https://llvm.org/svn/llvm-project/cfe/trunk/lib/Lex/HeaderMap.cpp
|
|
708
|
+
"""
|
|
703
709
|
magic = 1751998832
|
|
704
710
|
version = 1
|
|
705
711
|
_reserved = 0
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection-build-test-a",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@proteinjs/reflection-build-test-a",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.22",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@dagrejs/graphlib": "2.1.4",
|
|
13
|
-
"@proteinjs/reflection": "^1.1.
|
|
13
|
+
"@proteinjs/reflection": "^1.1.12",
|
|
14
14
|
"@proteinjs/reflection-build-test-b": "file:../b",
|
|
15
|
-
"@proteinjs/util": "^1.6.
|
|
16
|
-
"@proteinjs/util-node": "^1.
|
|
15
|
+
"@proteinjs/util": "^1.6.1",
|
|
16
|
+
"@proteinjs/util-node": "^1.10.1",
|
|
17
17
|
"globby": "11.0.1",
|
|
18
18
|
"gulp": "4.0.2",
|
|
19
19
|
"gulp-shell": "0.8.0",
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
},
|
|
33
33
|
"../b": {
|
|
34
34
|
"name": "@proteinjs/reflection-build-test-b",
|
|
35
|
-
"version": "0.0.
|
|
35
|
+
"version": "0.0.22",
|
|
36
36
|
"license": "ISC",
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@dagrejs/graphlib": "2.1.4",
|
|
39
|
-
"@proteinjs/reflection": "^1.1.
|
|
40
|
-
"@proteinjs/util": "^1.6.
|
|
41
|
-
"@proteinjs/util-node": "^1.
|
|
39
|
+
"@proteinjs/reflection": "^1.1.12",
|
|
40
|
+
"@proteinjs/util": "^1.6.1",
|
|
41
|
+
"@proteinjs/util-node": "^1.10.1",
|
|
42
42
|
"globby": "11.0.1",
|
|
43
43
|
"gulp": "4.0.2",
|
|
44
44
|
"gulp-shell": "0.8.0",
|
|
@@ -1105,13 +1105,13 @@
|
|
|
1105
1105
|
}
|
|
1106
1106
|
},
|
|
1107
1107
|
"node_modules/@proteinjs/reflection": {
|
|
1108
|
-
"version": "1.1.
|
|
1109
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.1.
|
|
1110
|
-
"integrity": "sha512-
|
|
1108
|
+
"version": "1.1.12",
|
|
1109
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.1.12.tgz",
|
|
1110
|
+
"integrity": "sha512-w+sL7Nqppk4DXdFxrfwjEGHSPykCwB3GWaiQXcP6X+8Qtj32BI0wmTvAt6hXvtbXPhvIHPFnTfSs9qlW0FYf9Q==",
|
|
1111
1111
|
"license": "ISC",
|
|
1112
1112
|
"dependencies": {
|
|
1113
1113
|
"@dagrejs/graphlib": "2.1.4",
|
|
1114
|
-
"@proteinjs/util": "^1.6.
|
|
1114
|
+
"@proteinjs/util": "^1.6.1"
|
|
1115
1115
|
}
|
|
1116
1116
|
},
|
|
1117
1117
|
"node_modules/@proteinjs/reflection-build-test-b": {
|
|
@@ -1119,9 +1119,9 @@
|
|
|
1119
1119
|
"link": true
|
|
1120
1120
|
},
|
|
1121
1121
|
"node_modules/@proteinjs/util": {
|
|
1122
|
-
"version": "1.6.
|
|
1123
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.
|
|
1124
|
-
"integrity": "sha512-
|
|
1122
|
+
"version": "1.6.1",
|
|
1123
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.1.tgz",
|
|
1124
|
+
"integrity": "sha512-bFy6++l1u6RtMMeZEDYvMQWg14SAG2gCgUrcPy9M0Ctl0ATVMdQbU3h4IUQOlxwW32mWoni0qDTt9BkmHwAQjg==",
|
|
1125
1125
|
"license": "ISC",
|
|
1126
1126
|
"dependencies": {
|
|
1127
1127
|
"@dagrejs/graphlib": "2.1.4",
|
|
@@ -1129,13 +1129,13 @@
|
|
|
1129
1129
|
}
|
|
1130
1130
|
},
|
|
1131
1131
|
"node_modules/@proteinjs/util-node": {
|
|
1132
|
-
"version": "1.
|
|
1133
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.
|
|
1134
|
-
"integrity": "sha512-
|
|
1132
|
+
"version": "1.10.1",
|
|
1133
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.10.1.tgz",
|
|
1134
|
+
"integrity": "sha512-950BkiO4ccf9Bbt0CpvPj5pUalNH9dV1zqr7Cw1Dh3tg9xny6R02p1QrKvPU7anoZcnSp2Us6lBv0rlutYoSWw==",
|
|
1135
1135
|
"license": "ISC",
|
|
1136
1136
|
"dependencies": {
|
|
1137
1137
|
"@dagrejs/graphlib": "2.1.4",
|
|
1138
|
-
"@proteinjs/util": "^1.6.
|
|
1138
|
+
"@proteinjs/util": "^1.6.1",
|
|
1139
1139
|
"fs-extra": "11.1.1",
|
|
1140
1140
|
"globby": "11.0.1",
|
|
1141
1141
|
"typescript": "5.2.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection-build-test-a",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "Test package a",
|
|
6
6
|
"repository": {
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@dagrejs/graphlib": "2.1.4",
|
|
22
|
-
"@proteinjs/reflection": "^1.1.
|
|
22
|
+
"@proteinjs/reflection": "^1.1.12",
|
|
23
23
|
"@proteinjs/reflection-build-test-b": "file:../b",
|
|
24
|
-
"@proteinjs/util": "^1.6.
|
|
25
|
-
"@proteinjs/util-node": "^1.
|
|
24
|
+
"@proteinjs/util": "^1.6.1",
|
|
25
|
+
"@proteinjs/util-node": "^1.10.1",
|
|
26
26
|
"globby": "11.0.1",
|
|
27
27
|
"gulp": "4.0.2",
|
|
28
28
|
"gulp-shell": "0.8.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection-build-test-b",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.22",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
@@ -1054,19 +1054,19 @@
|
|
|
1054
1054
|
}
|
|
1055
1055
|
},
|
|
1056
1056
|
"node_modules/@proteinjs/reflection": {
|
|
1057
|
-
"version": "1.1.
|
|
1058
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.1.
|
|
1059
|
-
"integrity": "sha512-
|
|
1057
|
+
"version": "1.1.12",
|
|
1058
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.1.12.tgz",
|
|
1059
|
+
"integrity": "sha512-w+sL7Nqppk4DXdFxrfwjEGHSPykCwB3GWaiQXcP6X+8Qtj32BI0wmTvAt6hXvtbXPhvIHPFnTfSs9qlW0FYf9Q==",
|
|
1060
1060
|
"license": "ISC",
|
|
1061
1061
|
"dependencies": {
|
|
1062
1062
|
"@dagrejs/graphlib": "2.1.4",
|
|
1063
|
-
"@proteinjs/util": "^1.6.
|
|
1063
|
+
"@proteinjs/util": "^1.6.1"
|
|
1064
1064
|
}
|
|
1065
1065
|
},
|
|
1066
1066
|
"node_modules/@proteinjs/util": {
|
|
1067
|
-
"version": "1.6.
|
|
1068
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.
|
|
1069
|
-
"integrity": "sha512-
|
|
1067
|
+
"version": "1.6.1",
|
|
1068
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.1.tgz",
|
|
1069
|
+
"integrity": "sha512-bFy6++l1u6RtMMeZEDYvMQWg14SAG2gCgUrcPy9M0Ctl0ATVMdQbU3h4IUQOlxwW32mWoni0qDTt9BkmHwAQjg==",
|
|
1070
1070
|
"license": "ISC",
|
|
1071
1071
|
"dependencies": {
|
|
1072
1072
|
"@dagrejs/graphlib": "2.1.4",
|
|
@@ -1074,13 +1074,13 @@
|
|
|
1074
1074
|
}
|
|
1075
1075
|
},
|
|
1076
1076
|
"node_modules/@proteinjs/util-node": {
|
|
1077
|
-
"version": "1.
|
|
1078
|
-
"resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.
|
|
1079
|
-
"integrity": "sha512-
|
|
1077
|
+
"version": "1.10.1",
|
|
1078
|
+
"resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.10.1.tgz",
|
|
1079
|
+
"integrity": "sha512-950BkiO4ccf9Bbt0CpvPj5pUalNH9dV1zqr7Cw1Dh3tg9xny6R02p1QrKvPU7anoZcnSp2Us6lBv0rlutYoSWw==",
|
|
1080
1080
|
"license": "ISC",
|
|
1081
1081
|
"dependencies": {
|
|
1082
1082
|
"@dagrejs/graphlib": "2.1.4",
|
|
1083
|
-
"@proteinjs/util": "^1.6.
|
|
1083
|
+
"@proteinjs/util": "^1.6.1",
|
|
1084
1084
|
"fs-extra": "11.1.1",
|
|
1085
1085
|
"globby": "11.0.1",
|
|
1086
1086
|
"typescript": "5.2.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.12",
|
|
4
4
|
"description": "Source introspection and loader apis",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@dagrejs/graphlib": "2.1.4",
|
|
27
|
-
"@proteinjs/util": "^1.6.
|
|
27
|
+
"@proteinjs/util": "^1.6.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/graphlib": "2.1.6",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/util",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "Runtime-agnostic util libs",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -36,6 +36,5 @@
|
|
|
36
36
|
"eslint-config-prettier": "9.1.0",
|
|
37
37
|
"eslint-plugin-prettier": "5.1.3",
|
|
38
38
|
"typescript": "5.2.2"
|
|
39
|
-
}
|
|
40
|
-
"gitHead": "44d96f568d374f78c3adc6fa6d130bc5b060220f"
|
|
39
|
+
}
|
|
41
40
|
}
|
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.10.0](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.9.0...@proteinjs/util-node@1.10.0) (2026-07-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* expose PackageUtil.getTransitiveWorkspaceDependencies ([72fa5b8](https://github.com/proteinjs/util/commit/72fa5b8208e38e04ab06a27446e21b549d21b1c9))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [1.9.0](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.8.1...@proteinjs/util-node@1.9.0) (2026-06-24)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -132,9 +132,12 @@ export declare class PackageUtil {
|
|
|
132
132
|
* filters to file:/relative/workspace deps in `addDependencies`, but we filter
|
|
133
133
|
* again here so the result is exactly the set of linkable packages).
|
|
134
134
|
*
|
|
135
|
+
* Public: WorkspaceDoctor (@proteinjs/build) diagnoses the same closure this method links —
|
|
136
|
+
* verification and repair must agree on the set of packages that ought to be symlinked.
|
|
137
|
+
*
|
|
135
138
|
* @returns workspace package names this package transitively depends on
|
|
136
139
|
*/
|
|
137
|
-
|
|
140
|
+
static getTransitiveWorkspaceDependencies(localPackage: LocalPackage, localPackageMap: LocalPackageMap): Promise<string[]>;
|
|
138
141
|
/**
|
|
139
142
|
* Symlink a single workspace package into `nodeModulesPath`, and create
|
|
140
143
|
* `node_modules/.bin/<name>` shims for any `bin` it declares.
|
package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js
CHANGED
|
@@ -507,6 +507,9 @@ var PackageUtil = /** @class */ (function () {
|
|
|
507
507
|
* filters to file:/relative/workspace deps in `addDependencies`, but we filter
|
|
508
508
|
* again here so the result is exactly the set of linkable packages).
|
|
509
509
|
*
|
|
510
|
+
* Public: WorkspaceDoctor (@proteinjs/build) diagnoses the same closure this method links —
|
|
511
|
+
* verification and repair must agree on the set of packages that ought to be symlinked.
|
|
512
|
+
*
|
|
510
513
|
* @returns workspace package names this package transitively depends on
|
|
511
514
|
*/
|
|
512
515
|
PackageUtil.getTransitiveWorkspaceDependencies = function (localPackage, localPackageMap) {
|