@maka/meteor-sdk 0.2.6 → 0.2.7

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.
Files changed (22) hide show
  1. package/isopackets/combined/npm/node_modules/meteor/babel-compiler/node_modules/.package-lock.json +1 -1
  2. package/isopackets/combined/npm/node_modules/meteor/boilerplate-generator/node_modules/.package-lock.json +1 -1
  3. package/isopackets/combined/npm/node_modules/meteor/constraint-solver/node_modules/.package-lock.json +1 -1
  4. package/isopackets/combined/npm/node_modules/meteor/ddp-client/node_modules/.package-lock.json +1 -1
  5. package/isopackets/combined/npm/node_modules/meteor/ecmascript/node_modules/.package-lock.json +1 -1
  6. package/isopackets/combined/npm/node_modules/meteor/ecmascript-runtime/node_modules/.package-lock.json +1 -1
  7. package/isopackets/combined/npm/node_modules/meteor/ecmascript-runtime-client/node_modules/.package-lock.json +1 -1
  8. package/isopackets/combined/npm/node_modules/meteor/ecmascript-runtime-server/node_modules/.package-lock.json +1 -1
  9. package/isopackets/combined/npm/node_modules/meteor/fetch/node_modules/.package-lock.json +1 -1
  10. package/isopackets/combined/npm/node_modules/meteor/inter-process-messaging/node_modules/.package-lock.json +1 -1
  11. package/isopackets/combined/npm/node_modules/meteor/logging/node_modules/.package-lock.json +1 -1
  12. package/isopackets/combined/npm/node_modules/meteor/logic-solver/node_modules/.package-lock.json +1 -1
  13. package/isopackets/combined/npm/node_modules/meteor/meteor/node_modules/.package-lock.json +1 -1
  14. package/isopackets/combined/npm/node_modules/meteor/modules/node_modules/.package-lock.json +1 -1
  15. package/isopackets/combined/npm/node_modules/meteor/modules-runtime/node_modules/.package-lock.json +1 -1
  16. package/isopackets/combined/npm/node_modules/meteor/npm-mongo/node_modules/.package-lock.json +1 -1
  17. package/isopackets/combined/npm/node_modules/meteor/package-version-parser/node_modules/.package-lock.json +1 -1
  18. package/isopackets/combined/npm/node_modules/meteor/promise/node_modules/.package-lock.json +1 -1
  19. package/isopackets/combined/npm/node_modules/meteor/react-fast-refresh/node_modules/.package-lock.json +1 -1
  20. package/isopackets/combined/npm/node_modules/meteor/socket-stream-client/node_modules/.package-lock.json +1 -1
  21. package/package.json +1 -1
  22. package/tools/isobuild/meteor-npm.js +68 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-19gk8ik1laok",
2
+ "name": "package-new-f7zc3uwzqd",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-1cilc0ofj7n",
2
+ "name": "package-new-11u4nyz3m9h",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-nmm4d6phk2",
2
+ "name": "package-new-19xm9ai37ix",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-1putse4drfa",
2
+ "name": "package-new-v6ef0vjx4rg",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-3yr3ldqleqo",
2
+ "name": "package-new-19jq08w84he",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-g0p3mjd9xem",
2
+ "name": "package-new-2joq5lmn8iv",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-6vlz23amok6",
2
+ "name": "package-new-1b0zb0554sz",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-fjo86g7rsh",
2
+ "name": "package-new-1yhi9f1h0dr",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-do0zmzqfdtv",
2
+ "name": "package-new-g0ym7mkawu",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-ni9wfpqalta",
2
+ "name": "package-new-1qllbsq0y73",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-xlb9mzz4j1",
2
+ "name": "package-new-1v2yf9qqbze",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-af7rda3rf3k",
2
+ "name": "package-new-1o46fz1ku6f",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-fkoxbzqrvrc",
2
+ "name": "package-new-1pc9xzx5fzs",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-cbf3elisryv",
2
+ "name": "package-new-17beqs9hinb",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-14j0m0s71m4",
2
+ "name": "package-new-n8k3j4ylx3",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-wcdgdfqbzqi",
2
+ "name": "package-new-12nqeukaw3u",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-11b302e551qi",
2
+ "name": "package-new-1t0jc7k23ytg",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-gddyphm3avb",
2
+ "name": "package-new-d6edvk3v9nl",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-blaoyieb3zd",
2
+ "name": "package-new-8e8v01oivjc",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "package-new-1c3i33z42bi",
2
+ "name": "package-new-3efvozmolln",
3
3
  "lockfileVersion": 3,
4
4
  "requires": true,
5
5
  "packages": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maka/meteor-sdk",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "Programmatic Node API over the Meteor build tool (bundle/run/create/etc.) -- for driving Meteor's build system from plain Node code instead of shelling out to a meteor CLI (there isn't one anymore; see README.md). \"dependencies\" is generated by scripts/write-tool-package-json.js from scripts/dev-bundle-tool-package.js at the monorepo root -- do not hand-edit that field, edit that file and re-run the script instead.",
5
5
  "main": "src/index.js",
6
6
  "exports": {
@@ -731,6 +731,8 @@ var updateExistingNpmDirectory = async function (packageName, newPackageNpmDir,
731
731
  npmTree.dependencies[name] = { version };
732
732
  });
733
733
 
734
+ reconcileGitDependencies(npmTree, installedDependenciesTree);
735
+
734
736
  let minInstalledTree;
735
737
  try {
736
738
  minInstalledTree = minimizeDependencyTree(installedDependenciesTree);
@@ -838,6 +840,72 @@ var updateExistingNpmDirectory = async function (packageName, newPackageNpmDir,
838
840
  npmDependencies);
839
841
  };
840
842
 
843
+ // Git-URL dependencies could never satisfy the strict string comparison
844
+ // in updateExistingNpmDirectory: Npm.depends declares the spec the
845
+ // author wrote (e.g. "git+https://github.com/org/repo#v1.2.3") while
846
+ // npm's lockfile records what it resolved (e.g.
847
+ // "git+ssh://git@github.com/org/repo.git#<commit-sha>"). The result was
848
+ // a FULL reinstall of the package's npm deps -- git clone included --
849
+ // on every single build, and during `run` the .npm/package churn could
850
+ // re-fire the file watcher, restarting the app in a loop ("ddp-server:
851
+ // updating npm dependencies ..." flapping forever).
852
+ //
853
+ // Reconcile before comparing: a declared git dep is satisfied by an
854
+ // installed copy from the same repository when the declared ref is
855
+ // consistent with what's installed -- a commit-sha ref must prefix the
856
+ // resolved sha, a "v1.2.3"/"1.2.3" tag must equal the installed
857
+ // package's own version, and a symbolic ref (branch) is accepted as-is
858
+ // (it can move upstream, but reinstalling every build is strictly
859
+ // worse; pin by tag or sha for reproducibility). On a match the
860
+ // declared version is rewritten to the installed resolved URL so the
861
+ // strict subtree comparison passes; on a mismatch (e.g. the tag was
862
+ // bumped) nothing is rewritten and the normal update runs.
863
+ function parseGitUrl(url) {
864
+ if (typeof url !== "string") {
865
+ return null;
866
+ }
867
+ const m = url.match(
868
+ /^git\+(?:https?|ssh|git|file):\/\/(?:[^@/]+@)?([^#?]+?)(?:\.git)?(?:#(.*))?$/i
869
+ );
870
+ if (! m) {
871
+ return null;
872
+ }
873
+ return { repo: m[1].toLowerCase(), ref: m[2] || null };
874
+ }
875
+
876
+ function reconcileGitDependencies(npmTree, installedTree) {
877
+ _.each(npmTree.dependencies, (dep, name) => {
878
+ const declared = parseGitUrl(dep.version);
879
+ if (! declared) {
880
+ return;
881
+ }
882
+ const installed = installedTree.dependencies &&
883
+ installedTree.dependencies[name];
884
+ const resolved = installed && parseGitUrl(installed.resolved);
885
+ if (! resolved || resolved.repo !== declared.repo) {
886
+ return;
887
+ }
888
+ const ref = declared.ref;
889
+ let refSatisfied;
890
+ if (! ref) {
891
+ refSatisfied = true;
892
+ } else if (/^[0-9a-f]{7,40}$/i.test(ref)) {
893
+ refSatisfied = !! resolved.ref &&
894
+ resolved.ref.toLowerCase().startsWith(ref.toLowerCase());
895
+ } else if (/^v?\d+(\.\d+)*([-+.].*)?$/.test(ref)) {
896
+ refSatisfied = !! installed.version &&
897
+ ref.replace(/^v/, "") === installed.version;
898
+ } else {
899
+ refSatisfied = true;
900
+ }
901
+ if (refSatisfied) {
902
+ dep.version = minimizeDependencyTree({
903
+ dependencies: { [name]: installed },
904
+ }).dependencies[name].version;
905
+ }
906
+ });
907
+ }
908
+
841
909
  function isSubtreeOf(subsetTree, supersetTree, predicate) {
842
910
  if (subsetTree === supersetTree) {
843
911
  return true;