fyn 1.1.39 → 1.1.40

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 (2) hide show
  1. package/dist/fyn.js +182 -59
  2. package/package.json +1 -1
package/dist/fyn.js CHANGED
@@ -2690,8 +2690,8 @@ class FynCentral {
2690
2690
  return info.mutates ? false : true;
2691
2691
  }
2692
2692
 
2693
- async get(integrity) {
2694
- return await this.getInfo(integrity).contentPath;
2693
+ async getContentPath(integrity) {
2694
+ return (await this.getInfo(integrity)).contentPath;
2695
2695
  }
2696
2696
 
2697
2697
  async getInfo(integrity) {
@@ -2707,21 +2707,10 @@ class FynCentral {
2707
2707
 
2708
2708
  return info;
2709
2709
  }
2710
- /**
2711
- * Get the hash of a npm package's extracted content.
2712
- * - only consider the file names and their mtime and size because npm tar files
2713
- * with a fixed timestamp to publish, so the mtime give us some assurance
2714
- * to know if file changed.
2715
- *
2716
- * @param {*} integrity - shasum integrity for the package
2717
- * @returns void
2718
- */
2719
2710
 
2720
-
2721
- async getContentShasum(integrity) {
2711
+ async _calcContentShasum(info, pkgDir = undefined) {
2722
2712
  try {
2723
- const info = await this.getInfo(integrity);
2724
- const packageDir = Path.join(info.contentPath, "package");
2713
+ const packageDir = pkgDir || Path.join(info.contentPath, "package");
2725
2714
 
2726
2715
  const filter = (_file, _path, extras) => {
2727
2716
  const {
@@ -2751,11 +2740,40 @@ class FynCentral {
2751
2740
  return undefined;
2752
2741
  }
2753
2742
  }
2743
+ /**
2744
+ * Get the hash of a npm package's extracted content.
2745
+ * - only consider the file names and their mtime and size because npm tar files
2746
+ * with a fixed timestamp to publish, so the mtime give us some assurance
2747
+ * to know if file changed.
2748
+ *
2749
+ * @param {*} integrity - shasum integrity for the package
2750
+ * @returns void
2751
+ */
2752
+
2753
+
2754
+ async getContentShasum(integrity) {
2755
+ try {
2756
+ const info = await this.getInfo(integrity);
2757
+ return this._calcContentShasum(info);
2758
+ } catch (_err) {
2759
+ return undefined;
2760
+ }
2761
+ }
2754
2762
 
2755
2763
  async getMutation(integrity) {
2756
2764
  const info = this._map.has(integrity) ? this._map.get(integrity) : await this._loadTree(integrity);
2757
2765
  return info.mutates;
2758
2766
  }
2767
+
2768
+ async delete(integrity) {
2769
+ const info = this._map.get(integrity);
2770
+
2771
+ if (info && info.exist && info.contentPath) {
2772
+ await Fs.$.rimraf(info.contentPath);
2773
+
2774
+ this._map.delete(integrity);
2775
+ }
2776
+ }
2759
2777
  /**
2760
2778
  * Read the content dir tree from file into into
2761
2779
  *
@@ -2776,6 +2794,7 @@ class FynCentral {
2776
2794
  }
2777
2795
 
2778
2796
  info.tree = tree.$;
2797
+ info.shaSum = tree.shaSum;
2779
2798
  } else {
2780
2799
  info.tree = tree;
2781
2800
  }
@@ -2794,6 +2813,7 @@ class FynCentral {
2794
2813
  async saveInfoTree(info, path) {
2795
2814
  await Fs.writeFile(Path.join(path || info.contentPath, "tree.json"), JSON.stringify({
2796
2815
  $: info.tree,
2816
+ shaSum: info.shaSum,
2797
2817
  mutates: info.mutates,
2798
2818
  _: 1
2799
2819
  }));
@@ -2899,7 +2919,7 @@ class FynCentral {
2899
2919
  return tmpLock;
2900
2920
  }
2901
2921
 
2902
- async _storeTarStream(info, _stream) {
2922
+ async _storeTarStream(info, integrity, _stream) {
2903
2923
  let stream = _stream;
2904
2924
  const tmp = `${info.contentPath}.tmp`;
2905
2925
  await Fs.$.rimraf(tmp); // in case there was any remnant left from an interrupted install
@@ -2917,10 +2937,40 @@ class FynCentral {
2917
2937
 
2918
2938
 
2919
2939
  info.tree = await this._untarStream(stream, targetDir, info);
2940
+ info.shaSum = await this._calcContentShasum(info, targetDir);
2920
2941
  await this.saveInfoTree(info, tmp);
2921
2942
  await Fs.rename(tmp, info.contentPath);
2922
2943
  info.exist = true;
2923
2944
  }
2945
+ /**
2946
+ * Validate the central store package content by file size and timestamp
2947
+ *
2948
+ * @param {*} integrity - package integrity
2949
+ *
2950
+ * @returns true or false
2951
+ */
2952
+
2953
+
2954
+ async validate(integrity) {
2955
+ const info = this._map.get(integrity);
2956
+
2957
+ if (info === undefined || !info.exist) {
2958
+ return false;
2959
+ }
2960
+
2961
+ if (info.validated === undefined) {
2962
+ const sum = await this.getContentShasum(integrity);
2963
+
2964
+ if (!info.shaSum) {
2965
+ info.shaSum = sum;
2966
+ await this.saveInfoTree(info);
2967
+ }
2968
+
2969
+ info.validated = info.shaSum === sum;
2970
+ }
2971
+
2972
+ return info.validated;
2973
+ }
2924
2974
 
2925
2975
  async storeTarStream(pkgId, integrity, stream) {
2926
2976
  let tmpLock = false;
@@ -2948,7 +2998,7 @@ class FynCentral {
2948
2998
  }
2949
2999
  } else {
2950
3000
  logger.debug("storing tar to central store", pkgId, integrity);
2951
- await this._storeTarStream(info, stream);
3001
+ await this._storeTarStream(info, integrity, stream);
2952
3002
  stream = undefined; // eslint-disable-line
2953
3003
 
2954
3004
  this._map.set(integrity, info);
@@ -3319,6 +3369,15 @@ class Fyn {
3319
3369
  return semv === false || semv && semv.includes("no-fyn-local");
3320
3370
  });
3321
3371
  return Boolean(noFynLocal);
3372
+ } // are we installing modules for the top level fynpo dir
3373
+
3374
+
3375
+ isTopLevelFynpoInstall() {
3376
+ if (this._fynpo.config) {
3377
+ return this._fynpo.dir === this._cwd;
3378
+ }
3379
+
3380
+ return false;
3322
3381
  }
3323
3382
 
3324
3383
  async _initializePkg() {
@@ -4319,8 +4378,7 @@ module.exports = LifecycleScripts;
4319
4378
  *
4320
4379
  * - TODO: impl timestamp check so if no files updated then don't run
4321
4380
  */
4322
-
4323
- const assert = __webpack_require__("assert");
4381
+ // const assert = require("assert");
4324
4382
 
4325
4383
  const Path = __webpack_require__("path");
4326
4384
 
@@ -4455,13 +4513,12 @@ class LocalPkgBuilder {
4455
4513
  }
4456
4514
 
4457
4515
  async waitForItem(fullPath) {
4458
- if (this._waitItems[fullPath] === undefined) {
4516
+ if (this._waitItems[fullPath] === undefined && this._started.promise) {
4459
4517
  logger.debug("waiting for local build item start, fullPath:", fullPath);
4460
4518
  await this._started.promise;
4461
4519
  }
4462
4520
 
4463
- const x = this._waitItems[fullPath];
4464
- assert(x !== undefined, `No local pkg build job started for pkg at ${fullPath}`);
4521
+ const x = this._waitItems[fullPath]; // assert(x !== undefined, `No local pkg build job started for pkg at ${fullPath}`);
4465
4522
 
4466
4523
  if (x && x.promise) {
4467
4524
  logger.debug("waiting for build local item", fullPath, x);
@@ -4469,7 +4526,7 @@ class LocalPkgBuilder {
4469
4526
  logger.debug("build local item awaited", fullPath);
4470
4527
  return localBuildResult;
4471
4528
  } else {
4472
- logger.debug("status is false => no build local job for pkg at", fullPath, x);
4529
+ logger.debug("no build local job for pkg at", fullPath, x);
4473
4530
  }
4474
4531
 
4475
4532
  return {};
@@ -5921,7 +5978,7 @@ const {
5921
5978
  const {
5922
5979
  getDepSection,
5923
5980
  makeDepStep
5924
- } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/index.js");
5981
+ } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/index.js");
5925
5982
 
5926
5983
  const xaa = __webpack_require__("./lib/util/xaa.js");
5927
5984
 
@@ -6186,7 +6243,22 @@ class PkgDepResolver {
6186
6243
  const depthPkgs = Object.keys(depthInfo); // TODO: create test scenario for build-local
6187
6244
 
6188
6245
  if (this._options.buildLocal) {
6189
- const locals = depthPkgs.map(x => depthInfo[x].items.find(it => it.localType)).filter(x => x); // logger.info("adding depth pkgs", depthPkgs.join(", "), locals);
6246
+ const locals = depthPkgs.map(x => depthInfo[x].items.find(it => it.localType)).filter(x => {
6247
+ // if fynpo top level depends on a local package that's part of the monorepo, then
6248
+ // we should not try to build the package while installing top level modules, because
6249
+ // building a local package would likely require build tools that are typically
6250
+ // installed as part of the top level packages
6251
+ if (x && this._fyn.isTopLevelFynpoInstall()) {
6252
+ const t1 = this._fyn._fynpo.graph.getPackageAtDir(Path.normalize(x.semverPath));
6253
+
6254
+ if (t1) {
6255
+ logger.info("installing fynpo top level modules - skip build local for package at", x.semverPath);
6256
+ return false;
6257
+ }
6258
+ }
6259
+
6260
+ return x;
6261
+ }); // logger.info("adding depth pkgs", depthPkgs.join(", "), locals);
6190
6262
 
6191
6263
  if (locals.length > 0) {
6192
6264
  if (!this._localsByDepth) {
@@ -8979,7 +9051,7 @@ const {
8979
9051
 
8980
9052
  const {
8981
9053
  PackageRef
8982
- } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/index.js");
9054
+ } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/index.js");
8983
9055
 
8984
9056
  const WATCH_TIME = 5000; // consider meta cache stale after this much time (30 minutes)
8985
9057
 
@@ -9165,7 +9237,7 @@ class PkgSrcManager {
9165
9237
  return readPkgJson(fullPath, true, true).then(json => {
9166
9238
  const publishUtilConfig = this.getPublishUtil(json, fullPath);
9167
9239
 
9168
- if (publishUtilConfig) {
9240
+ if (publishUtilConfig && !publishUtilConfig.fynIgnore) {
9169
9241
  logger.debug(`processing local package.json at ${fullPath} with https://www.npmjs.com/package/publish-util prePackObj`);
9170
9242
  prePackObj(json, _objectSpread(_objectSpread({}, publishUtilConfig), {}, {
9171
9243
  silent: true
@@ -9246,6 +9318,7 @@ class PkgSrcManager {
9246
9318
 
9247
9319
 
9248
9320
  const pacoteRequest = () => {
9321
+ logger.debug(`pacote.packument ${qItem.packumentUrl}`);
9249
9322
  return pacote.packument(pkgName, this.getPacoteOpts({
9250
9323
  "full-metadata": true,
9251
9324
  "fetch-retries": 3,
@@ -9466,6 +9539,7 @@ class PkgSrcManager {
9466
9539
  type: "meta",
9467
9540
  cacheKey,
9468
9541
  item,
9542
+ packumentUrl,
9469
9543
  defer: createDefer()
9470
9544
  };
9471
9545
 
@@ -9631,7 +9705,23 @@ class PkgSrcManager {
9631
9705
  } else if (!(await central.allow(integrity))) {
9632
9706
  logger.info(`copying pkg ${dispId} in central store mode because it mutates in postinstall step.`);
9633
9707
  } else {
9634
- const hasCentral = await central.has(integrity);
9708
+ let hasCentral = await central.has(integrity);
9709
+
9710
+ if (hasCentral) {
9711
+ const valid = await central.validate(integrity);
9712
+
9713
+ if (!valid) {
9714
+ const contentPath = await central.getContentPath(integrity);
9715
+ logger.error(`Corrupted central store package detected
9716
+ -- CORRUPTED CENTRAL STORE PACKAGE DETECTED, removing --
9717
+ ID: ${verId}
9718
+ integrity: ${integrity}
9719
+ path: '${contentPath}'
9720
+ `);
9721
+ await central.delete(integrity);
9722
+ hasCentral = false;
9723
+ }
9724
+ }
9635
9725
 
9636
9726
  if (!hasCentral) {
9637
9727
  await central.storeTarStream(tarId, integrity, tarStream);
@@ -9997,7 +10087,7 @@ const {
9997
10087
  const {
9998
10088
  FynpoConfigManager,
9999
10089
  FynpoDepGraph
10000
- } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/index.js");
10090
+ } = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/index.js");
10001
10091
  /* eslint-disable no-magic-numbers, max-statements, no-empty, complexity, no-eval */
10002
10092
 
10003
10093
 
@@ -11518,7 +11608,7 @@ module.exports = __webpack_require__("./node_modules/.f/_/xaa/1.7.0/xaa/dist/xaa
11518
11608
 
11519
11609
  /***/ }),
11520
11610
 
11521
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/caching.js":
11611
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/caching.js":
11522
11612
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11523
11613
 
11524
11614
  "use strict";
@@ -11539,7 +11629,7 @@ const fs_1 = (0, tslib_1.__importDefault)(__webpack_require__("fs"));
11539
11629
  const path_1 = (0, tslib_1.__importDefault)(__webpack_require__("path"));
11540
11630
  const crypto_1 = (0, tslib_1.__importDefault)(__webpack_require__("crypto"));
11541
11631
 
11542
- const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11632
+ const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11543
11633
  /**
11544
11634
  * create a sha256 hash for some data
11545
11635
  *
@@ -11807,7 +11897,7 @@ exports.processOutput = processOutput;
11807
11897
 
11808
11898
  /***/ }),
11809
11899
 
11810
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/fynpo-config.js":
11900
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/fynpo-config.js":
11811
11901
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11812
11902
 
11813
11903
  "use strict";
@@ -11957,7 +12047,7 @@ exports.FynpoConfigManager = FynpoConfigManager;
11957
12047
 
11958
12048
  /***/ }),
11959
12049
 
11960
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/fynpo-dep-graph.js":
12050
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/fynpo-dep-graph.js":
11961
12051
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11962
12052
 
11963
12053
  "use strict";
@@ -11987,9 +12077,9 @@ const minimatch_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_mod
11987
12077
  const lodash_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11988
12078
  const semver_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_modules/.f/_/semver/7.3.5/semver/index.js"));
11989
12079
 
11990
- const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
12080
+ const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11991
12081
 
11992
- const util_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/util.js");
12082
+ const util_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/util.js");
11993
12083
 
11994
12084
  const is_path_inside_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_modules/.f/_/is-path-inside/3.0.3/is-path-inside/index.js"));
11995
12085
  const DepSectionMap = {
@@ -12170,18 +12260,23 @@ class FynpoDepGraph {
12170
12260
  };
12171
12261
  }
12172
12262
  /**
12173
- * resolve packages from fynpo
12263
+ * resolve packages from fynpo and resolve their dependency relations
12264
+ *
12265
+ * @param indirects - set true to resolve indirect deps also
12174
12266
  */
12175
12267
 
12176
12268
 
12177
- async resolve() {
12269
+ async resolve(indirects = false) {
12178
12270
  if (lodash_1.default.isEmpty(this.packages.byName)) {
12179
12271
  await this.readPackages();
12180
12272
  }
12181
12273
 
12182
- this.resolveDirectDeps(); // we don't need indirect deps
12183
- // topo sort works with only direct deps
12184
- // this.resolveIndirectDeps();
12274
+ this.resolveDirectDeps(); // default indirects to false because
12275
+ // topo sort requires only direct deps to work
12276
+
12277
+ if (indirects) {
12278
+ this.resolveIndirectDeps();
12279
+ }
12185
12280
  }
12186
12281
  /**
12187
12282
  * update package depdencies map
@@ -12200,16 +12295,30 @@ class FynpoDepGraph {
12200
12295
  * @returns array of paths of package dep data
12201
12296
  */
12202
12297
 
12298
+ /**
12299
+ * Return array of dep data sorted by dependency topological order
12300
+ *
12301
+ * @param avoidCircs - don't consider circular deps if `true`
12302
+ *
12303
+ * @returns array of paths of package dep data
12304
+ */
12305
+
12203
12306
 
12204
- getTopoSortPackagePaths() {
12307
+ getTopoSortPackagePaths(avoidCircs = false) {
12205
12308
  const depRecords = {};
12206
- const changed = []; //
12309
+ const changed = []; // don't take optionalDependecies or peerDependencies into consideration
12310
+ // TODO: also do not consider devDependencies
12311
+ // - should calculate detail circular dep info and return that for logging
12312
+ // - when fyn is about to do local build for a dep, it should check if there's
12313
+ // circular dep and avoid it.
12314
+
12315
+ const ignoreDepSections = ["opt", "peer"]; //
12207
12316
  // first start with packages that has zero local dependencies
12208
12317
  //
12209
12318
 
12210
12319
  for (const path in this.depMapByPath) {
12211
12320
  const depData = this.depMapByPath[path];
12212
- const count = Object.keys(depData.localDepsByPath).length;
12321
+ const count = Object.keys(depData.localDepsByPath).filter(k => !ignoreDepSections.includes(depData.localDepsByPath[k].depSection) && (!avoidCircs || !this.depMapByPath[depData.localDepsByPath[k].path].hasCircular)).length;
12213
12322
  depRecords[path] = {
12214
12323
  depData,
12215
12324
  count
@@ -12247,9 +12356,21 @@ class FynpoDepGraph {
12247
12356
  }
12248
12357
  }
12249
12358
 
12359
+ const circulars = Object.keys(depRecords).filter(path => depRecords[path].count > 0);
12360
+ let avoidCircSorted = [];
12361
+
12362
+ if (!avoidCircs && circulars.length > 0) {
12363
+ for (const p of circulars) {
12364
+ this.depMapByPath[p].hasCircular = true;
12365
+ }
12366
+
12367
+ avoidCircSorted = this.getTopoSortPackagePaths(true).sorted;
12368
+ }
12369
+
12250
12370
  return {
12251
12371
  sorted,
12252
- circulars: Object.keys(depRecords).filter(path => depRecords[path].count > 0)
12372
+ avoidCircSorted,
12373
+ circulars
12253
12374
  };
12254
12375
  }
12255
12376
  /**
@@ -12263,6 +12384,7 @@ class FynpoDepGraph {
12263
12384
  const topo = this.getTopoSortPackagePaths();
12264
12385
  return {
12265
12386
  sorted: topo.sorted.map(p => this.depMapByPath[p]),
12387
+ avoidCircSorted: topo.avoidCircSorted.map(p => this.depMapByPath[p]),
12266
12388
  circulars: topo.circulars.map(p => this.depMapByPath[p])
12267
12389
  };
12268
12390
  }
@@ -12718,7 +12840,7 @@ exports.FynpoDepGraph = FynpoDepGraph;
12718
12840
 
12719
12841
  /***/ }),
12720
12842
 
12721
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/index.js":
12843
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/index.js":
12722
12844
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12723
12845
 
12724
12846
  "use strict";
@@ -12740,12 +12862,12 @@ const filter_scan_dir_1 = __webpack_require__("./node_modules/.f/_/filter-scan-d
12740
12862
  const minimatch_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_modules/.f/_/minimatch/3.0.4/minimatch/minimatch.js"));
12741
12863
  const lodash_1 = (0, tslib_1.__importDefault)(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
12742
12864
 
12743
- const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
12865
+ const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
12744
12866
 
12745
- (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/fynpo-dep-graph.js"), exports);
12746
- (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/fynpo-config.js"), exports);
12747
- (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/util.js"), exports);
12748
- exports.caching = (0, tslib_1.__importStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/caching.js"));
12867
+ (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/fynpo-dep-graph.js"), exports);
12868
+ (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/fynpo-config.js"), exports);
12869
+ (0, tslib_1.__exportStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/util.js"), exports);
12870
+ exports.caching = (0, tslib_1.__importStar)(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/caching.js"));
12749
12871
  /**
12750
12872
  * Take an array of packages and figure out their dependencies on each other
12751
12873
  *
@@ -13001,7 +13123,7 @@ exports.makePkgDeps = makePkgDeps;
13001
13123
 
13002
13124
  /***/ }),
13003
13125
 
13004
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/minimatch-group.js":
13126
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/minimatch-group.js":
13005
13127
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13006
13128
 
13007
13129
  "use strict";
@@ -13140,7 +13262,7 @@ exports.unrollMmMatch = unrollMmMatch;
13140
13262
 
13141
13263
  /***/ }),
13142
13264
 
13143
- /***/ "./node_modules/.f/_/@fynpo/base/1.1.15-fynlocal_h/@fynpo/base/dist/util.js":
13265
+ /***/ "./node_modules/.f/_/@fynpo/base/1.1.16-fynlocal_h/@fynpo/base/dist/util.js":
13144
13266
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13145
13267
 
13146
13268
  "use strict";
@@ -50236,7 +50358,7 @@ var gitHosts = module.exports = {
50236
50358
  'treepath': 'tree',
50237
50359
  'filetemplate': 'https://{auth@}raw.githubusercontent.com/{user}/{project}/{committish}/{path}',
50238
50360
  'bugstemplate': 'https://{domain}/{user}/{project}/issues',
50239
- 'gittemplate': 'git://{auth@}{domain}/{user}/{project}.git{#committish}',
50361
+ 'gittemplate': 'https://{auth@}{domain}/{user}/{project}.git{#committish}',
50240
50362
  'tarballtemplate': 'https://codeload.{domain}/{user}/{project}/tar.gz/{committish}'
50241
50363
  },
50242
50364
  bitbucket: {
@@ -82853,18 +82975,19 @@ Fetcher.impl(fetchGit, {
82853
82975
  });
82854
82976
 
82855
82977
  function hostedManifest(spec, opts) {
82978
+ // try https:// first before git://
82856
82979
  return BB.resolve(null).then(() => {
82857
- if (!spec.hosted.git()) {
82858
- throw new Error(`No git url for ${spec}`);
82859
- }
82860
-
82861
- return plainManifest(spec.hosted.git(), spec, opts);
82862
- }).catch(err => {
82863
82980
  if (!spec.hosted.https()) {
82864
82981
  throw err;
82865
82982
  }
82866
82983
 
82867
82984
  return plainManifest(spec.hosted.https(), spec, opts);
82985
+ }).catch(err => {
82986
+ if (!spec.hosted.git()) {
82987
+ throw new Error(`No git url for ${spec}`);
82988
+ }
82989
+
82990
+ return plainManifest(spec.hosted.git(), spec, opts);
82868
82991
  }).catch(err => {
82869
82992
  if (!spec.hosted.sshurl()) {
82870
82993
  throw err;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fyn",
3
- "version": "1.1.39",
3
+ "version": "1.1.40",
4
4
  "description": "The package manager for fynpo, a zero setup monorepo manager",
5
5
  "main": "./bin/fyn.js",
6
6
  "homepage": "https://jchip.github.io/fynpo/",