@@ -414,6 +414,46 @@ update_version() {
414414 return 0
415415}
416416
417+ # Updates the `@stdlib` dependencies in the root package.json to their latest versions.
418+ update_internal_dependencies () {
419+ echo ' Updating `@stdlib` dependency versions...' >&2
420+ echo ' Getting list of `@stdlib` dependencies...' >&2
421+ dependencies=" $(
422+ jq -r '
423+ .dependencies |
424+ to_entries |
425+ map(select(.key | startswith("@stdlib/"))) |
426+ map(.key) |
427+ join(" ")
428+ ' " ${package_json} "
429+ ) "
430+ if [[ " $? " -ne 0 ]]; then
431+ echo ' ' >&2
432+ echo ' Error: unexpected error. Encountered an error when getting list of `@stdlib` dependencies.' >&2
433+ echo ' ' >&2
434+ return 1
435+ fi
436+ echo ' Retrieving latest versions for `@stdlib` dependencies...' >&2
437+ for dependency in ${dependencies} ; do
438+ pkgVersion=" $( npm view " ${dependency} " version) "
439+ echo " Updating ${dependency} to ${pkgVersion} in ${package_json} ..." >&2
440+ echo " s/\" ${dependency} \" :[^,]*/\" ${dependency} \" : \" ${pkgVersion} \" /" >&2
441+ if [[ " $OSTYPE " == " darwin" * ]]; then
442+ sed -i ' ' " s%\" ${dependency} \" :[^,]*%\" ${dependency} \" : \" ${pkgVersion} \" %" " ${package_json} "
443+ else
444+ sed -i " s%\" ${dependency} \" :[^,]*%\" ${dependency} \" : \" ${pkgVersion} \" %" " ${package_json} "
445+ fi
446+ if [[ " $? " -ne 0 ]]; then
447+ echo ' ' >&2
448+ echo " Error: unexpected error. Encountered an error when updating ${dependency} ." >&2
449+ echo ' ' >&2
450+ return 1
451+ fi
452+ echo " Updated version for ${dependency} : ${pkgVersion} " >&2
453+ done
454+ echo ' Successfully updated dependency versions.' >&2
455+ }
456+
417457# Generates and publishes distributable bundles.
418458publish_bundles () {
419459 echo ' Publishing distributable bundles...' >&2
@@ -611,6 +651,11 @@ main() {
611651 revert_changes
612652 on_error 1
613653 fi
654+ update_internal_dependencies
655+ if [[ " $? " -ne 0 ]]; then
656+ revert_changes
657+ on_error 1
658+ fi
614659
615660 # WARNING: at this point, we are at the point of no return and, from this point forward, cannot easily revert changes to the local repository as packages may already be published...
616661
0 commit comments