backfill 6.4.3 → 6.4.5

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/lib/api.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import type { Writable } from "stream";
3
2
  import { type Config, type ICacheStorage } from "backfill-config";
4
3
  import { type Logger, type LogLevel } from "backfill-logger";
@@ -8,4 +7,3 @@ export declare function computeHash(cwd: string, logger: Logger, hashSalt?: stri
8
7
  export declare function computeHashOfOutput(cwd: string, logger: Logger, config?: Pick<Config, "packageRoot">): Promise<string>;
9
8
  export declare function fetch(cwd: string, hash: string, logger: Logger, config?: Pick<Config, "cacheStorageConfig" | "internalCacheFolder" | "incrementalCaching">): Promise<boolean>;
10
9
  export declare function put(cwd: string, hash: string, logger: Logger, config?: Pick<Config, "cacheStorageConfig" | "internalCacheFolder" | "outputGlob" | "incrementalCaching">): Promise<void>;
11
- //# sourceMappingURL=api.d.ts.map
package/lib/api.js CHANGED
@@ -1,64 +1,88 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.put = exports.fetch = exports.computeHashOfOutput = exports.computeHash = exports.makeLogger = void 0;
4
- const os_1 = require("os");
5
- const backfill_config_1 = require("backfill-config");
6
- const backfill_logger_1 = require("backfill-logger");
7
- const backfill_hasher_1 = require("backfill-hasher");
8
- const backfill_cache_1 = require("backfill-cache");
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get computeHash () {
13
+ return computeHash;
14
+ },
15
+ get computeHashOfOutput () {
16
+ return computeHashOfOutput;
17
+ },
18
+ get fetch () {
19
+ return fetch;
20
+ },
21
+ get makeLogger () {
22
+ return makeLogger;
23
+ },
24
+ get put () {
25
+ return put;
26
+ }
27
+ });
28
+ const _os = require("os");
29
+ const _backfillconfig = require("backfill-config");
30
+ const _backfilllogger = require("backfill-logger");
31
+ const _backfillhasher = require("backfill-hasher");
32
+ const _backfillcache = require("backfill-cache");
9
33
  function makeConsole(stdout, stderr) {
10
34
  return {
11
- info(...args) {
12
- stdout.write(args.join(" ") + os_1.EOL);
13
- },
14
- warn(...args) {
15
- stderr.write(args.join(" ") + os_1.EOL);
35
+ info (...args) {
36
+ stdout.write(args.join(" ") + _os.EOL);
16
37
  },
17
- error(...args) {
18
- stderr.write(args.join(" ") + os_1.EOL);
38
+ warn (...args) {
39
+ stderr.write(args.join(" ") + _os.EOL);
19
40
  },
41
+ error (...args) {
42
+ stderr.write(args.join(" ") + _os.EOL);
43
+ }
20
44
  };
21
45
  }
22
46
  function makeLogger(logLevel, stdout, stderr) {
23
- return (0, backfill_logger_1.makeLogger)(logLevel, { console: makeConsole(stdout, stderr) });
47
+ return (0, _backfilllogger.makeLogger)(logLevel, {
48
+ console: makeConsole(stdout, stderr)
49
+ });
24
50
  }
25
- exports.makeLogger = makeLogger;
26
51
  async function computeHash(cwd, logger, hashSalt, config) {
27
52
  if (!config) {
28
- config = (0, backfill_config_1.createConfig)(logger, cwd);
53
+ config = (0, _backfillconfig.createConfig)(logger, cwd);
29
54
  }
30
55
  const { packageRoot } = config;
31
- const hasher = new backfill_hasher_1.Hasher({ packageRoot }, logger);
56
+ const hasher = new _backfillhasher.Hasher({
57
+ packageRoot
58
+ }, logger);
32
59
  const hash = await hasher.createPackageHash(hashSalt || "");
33
60
  return hash;
34
61
  }
35
- exports.computeHash = computeHash;
36
62
  async function computeHashOfOutput(cwd, logger, config) {
37
63
  if (!config) {
38
- config = (0, backfill_config_1.createConfig)(logger, cwd);
64
+ config = (0, _backfillconfig.createConfig)(logger, cwd);
39
65
  }
40
66
  const { packageRoot } = config;
41
- const hasher = new backfill_hasher_1.Hasher({ packageRoot }, logger);
67
+ const hasher = new _backfillhasher.Hasher({
68
+ packageRoot
69
+ }, logger);
42
70
  const hash = await hasher.hashOfOutput();
43
71
  return hash;
44
72
  }
45
- exports.computeHashOfOutput = computeHashOfOutput;
46
73
  async function fetch(cwd, hash, logger, config) {
47
74
  if (!config) {
48
- config = (0, backfill_config_1.createConfig)(logger, cwd);
75
+ config = (0, _backfillconfig.createConfig)(logger, cwd);
49
76
  }
50
77
  const { cacheStorageConfig, internalCacheFolder, incrementalCaching } = config;
51
- const cacheStorage = (0, backfill_cache_1.getCacheStorageProvider)(cacheStorageConfig, internalCacheFolder, logger, cwd, incrementalCaching);
78
+ const cacheStorage = (0, _backfillcache.getCacheStorageProvider)(cacheStorageConfig, internalCacheFolder, logger, cwd, incrementalCaching);
52
79
  return await cacheStorage.fetch(hash);
53
80
  }
54
- exports.fetch = fetch;
55
81
  async function put(cwd, hash, logger, config) {
56
82
  if (!config) {
57
- config = (0, backfill_config_1.createConfig)(logger, cwd);
83
+ config = (0, _backfillconfig.createConfig)(logger, cwd);
58
84
  }
59
- const { cacheStorageConfig, internalCacheFolder, outputGlob, incrementalCaching, } = config;
60
- const cacheStorage = (0, backfill_cache_1.getCacheStorageProvider)(cacheStorageConfig, internalCacheFolder, logger, cwd, incrementalCaching);
85
+ const { cacheStorageConfig, internalCacheFolder, outputGlob, incrementalCaching } = config;
86
+ const cacheStorage = (0, _backfillcache.getCacheStorageProvider)(cacheStorageConfig, internalCacheFolder, logger, cwd, incrementalCaching);
61
87
  await cacheStorage.put(hash, outputGlob);
62
88
  }
63
- exports.put = put;
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQkFBeUI7QUFFekIscURBQWdGO0FBQ2hGLHFEQUt5QjtBQUN6QixxREFBeUM7QUFDekMsbURBQXlEO0FBSXpELFNBQVMsV0FBVyxDQUFDLE1BQWdCLEVBQUUsTUFBZ0I7SUFDckQsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLElBQWM7WUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQUcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxJQUFjO1lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLEdBQUcsSUFBYztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixRQUFrQixFQUNsQixNQUFnQixFQUNoQixNQUFnQjtJQUVoQixPQUFPLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFORCxnQ0FNQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQy9CLEdBQVcsRUFDWCxNQUFjLEVBQ2QsUUFBaUIsRUFDakIsTUFBb0M7SUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBZEQsa0NBY0M7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLEdBQVcsRUFDWCxNQUFjLEVBQ2QsTUFBb0M7SUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFaRCxrREFZQztBQUVNLEtBQUssVUFBVSxLQUFLLENBQ3pCLEdBQVcsRUFDWCxJQUFZLEVBQ1osTUFBYyxFQUNkLE1BR0M7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxHQUFHLElBQUEsOEJBQVksRUFBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDcEM7SUFDRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsR0FDbkUsTUFBTSxDQUFDO0lBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBQSx3Q0FBdUIsRUFDMUMsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sR0FBRyxFQUNILGtCQUFrQixDQUNuQixDQUFDO0lBQ0YsT0FBTyxNQUFNLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQXRCRCxzQkFzQkM7QUFFTSxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFXLEVBQ1gsSUFBWSxFQUNaLE1BQWMsRUFDZCxNQU1DO0lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixHQUFHLE1BQU0sQ0FBQztJQUNYLE1BQU0sWUFBWSxHQUFHLElBQUEsd0NBQXVCLEVBQzFDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLEdBQUcsRUFDSCxrQkFBa0IsQ0FDbkIsQ0FBQztJQUNGLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQTdCRCxrQkE2QkMifQ==
package/lib/api.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api.ts"],"sourcesContent":["import type { Writable } from \"stream\";\nimport { EOL } from \"os\";\n\nimport { createConfig, type Config, type ICacheStorage } from \"backfill-config\";\nimport {\n type Logger,\n makeLogger as makeLoggerInternal,\n type Console,\n type LogLevel,\n} from \"backfill-logger\";\nimport { Hasher } from \"backfill-hasher\";\nimport { getCacheStorageProvider } from \"backfill-cache\";\n\nexport type { Config, ICacheStorage };\n\nfunction makeConsole(stdout: Writable, stderr: Writable): Console {\n return {\n info(...args: string[]): void {\n stdout.write(args.join(\" \") + EOL);\n },\n warn(...args: string[]): void {\n stderr.write(args.join(\" \") + EOL);\n },\n error(...args: string[]): void {\n stderr.write(args.join(\" \") + EOL);\n },\n };\n}\n\nexport function makeLogger(\n logLevel: LogLevel,\n stdout: Writable,\n stderr: Writable\n): Logger {\n return makeLoggerInternal(logLevel, { console: makeConsole(stdout, stderr) });\n}\n\nexport async function computeHash(\n cwd: string,\n logger: Logger,\n hashSalt?: string,\n config?: Pick<Config, \"packageRoot\">\n): Promise<string> {\n if (!config) {\n config = createConfig(logger, cwd);\n }\n const { packageRoot } = config;\n const hasher = new Hasher({ packageRoot }, logger);\n\n const hash = await hasher.createPackageHash(hashSalt || \"\");\n return hash;\n}\n\nexport async function computeHashOfOutput(\n cwd: string,\n logger: Logger,\n config?: Pick<Config, \"packageRoot\">\n): Promise<string> {\n if (!config) {\n config = createConfig(logger, cwd);\n }\n const { packageRoot } = config;\n const hasher = new Hasher({ packageRoot }, logger);\n const hash = await hasher.hashOfOutput();\n return hash;\n}\n\nexport async function fetch(\n cwd: string,\n hash: string,\n logger: Logger,\n config?: Pick<\n Config,\n \"cacheStorageConfig\" | \"internalCacheFolder\" | \"incrementalCaching\"\n >\n): Promise<boolean> {\n if (!config) {\n config = createConfig(logger, cwd);\n }\n const { cacheStorageConfig, internalCacheFolder, incrementalCaching } =\n config;\n const cacheStorage = getCacheStorageProvider(\n cacheStorageConfig,\n internalCacheFolder,\n logger,\n cwd,\n incrementalCaching\n );\n return await cacheStorage.fetch(hash);\n}\n\nexport async function put(\n cwd: string,\n hash: string,\n logger: Logger,\n config?: Pick<\n Config,\n | \"cacheStorageConfig\"\n | \"internalCacheFolder\"\n | \"outputGlob\"\n | \"incrementalCaching\"\n >\n): Promise<void> {\n if (!config) {\n config = createConfig(logger, cwd);\n }\n const {\n cacheStorageConfig,\n internalCacheFolder,\n outputGlob,\n incrementalCaching,\n } = config;\n const cacheStorage = getCacheStorageProvider(\n cacheStorageConfig,\n internalCacheFolder,\n logger,\n cwd,\n incrementalCaching\n );\n await cacheStorage.put(hash, outputGlob);\n}\n"],"names":["computeHash","computeHashOfOutput","fetch","makeLogger","put","makeConsole","stdout","stderr","info","args","write","join","EOL","warn","error","logLevel","makeLoggerInternal","console","cwd","logger","hashSalt","config","createConfig","packageRoot","hasher","Hasher","hash","createPackageHash","hashOfOutput","cacheStorageConfig","internalCacheFolder","incrementalCaching","cacheStorage","getCacheStorageProvider","outputGlob"],"mappings":";;;;;;;;;;;QAqCsBA;eAAAA;;QAgBAC;eAAAA;;QAcAC;eAAAA;;QAtCNC;eAAAA;;QA8DMC;eAAAA;;;oBA1FF;gCAE0C;gCAMvD;gCACgB;+BACiB;AAIxC,SAASC,YAAYC,MAAgB,EAAEC,MAAgB;IACrD,OAAO;QACLC,MAAK,GAAGC,IAAc;YACpBH,OAAOI,KAAK,CAACD,KAAKE,IAAI,CAAC,OAAOC,OAAG;QACnC;QACAC,MAAK,GAAGJ,IAAc;YACpBF,OAAOG,KAAK,CAACD,KAAKE,IAAI,CAAC,OAAOC,OAAG;QACnC;QACAE,OAAM,GAAGL,IAAc;YACrBF,OAAOG,KAAK,CAACD,KAAKE,IAAI,CAAC,OAAOC,OAAG;QACnC;IACF;AACF;AAEO,SAAST,WACdY,QAAkB,EAClBT,MAAgB,EAChBC,MAAgB;IAEhB,OAAOS,IAAAA,0BAAkB,EAACD,UAAU;QAAEE,SAASZ,YAAYC,QAAQC;IAAQ;AAC7E;AAEO,eAAeP,YACpBkB,GAAW,EACXC,MAAc,EACdC,QAAiB,EACjBC,MAAoC;IAEpC,IAAI,CAACA,QAAQ;QACXA,SAASC,IAAAA,4BAAY,EAACH,QAAQD;IAChC;IACA,MAAM,EAAEK,WAAW,EAAE,GAAGF;IACxB,MAAMG,SAAS,IAAIC,sBAAM,CAAC;QAAEF;IAAY,GAAGJ;IAE3C,MAAMO,OAAO,MAAMF,OAAOG,iBAAiB,CAACP,YAAY;IACxD,OAAOM;AACT;AAEO,eAAezB,oBACpBiB,GAAW,EACXC,MAAc,EACdE,MAAoC;IAEpC,IAAI,CAACA,QAAQ;QACXA,SAASC,IAAAA,4BAAY,EAACH,QAAQD;IAChC;IACA,MAAM,EAAEK,WAAW,EAAE,GAAGF;IACxB,MAAMG,SAAS,IAAIC,sBAAM,CAAC;QAAEF;IAAY,GAAGJ;IAC3C,MAAMO,OAAO,MAAMF,OAAOI,YAAY;IACtC,OAAOF;AACT;AAEO,eAAexB,MACpBgB,GAAW,EACXQ,IAAY,EACZP,MAAc,EACdE,MAGC;IAED,IAAI,CAACA,QAAQ;QACXA,SAASC,IAAAA,4BAAY,EAACH,QAAQD;IAChC;IACA,MAAM,EAAEW,kBAAkB,EAAEC,mBAAmB,EAAEC,kBAAkB,EAAE,GACnEV;IACF,MAAMW,eAAeC,IAAAA,sCAAuB,EAC1CJ,oBACAC,qBACAX,QACAD,KACAa;IAEF,OAAO,MAAMC,aAAa9B,KAAK,CAACwB;AAClC;AAEO,eAAetB,IACpBc,GAAW,EACXQ,IAAY,EACZP,MAAc,EACdE,MAMC;IAED,IAAI,CAACA,QAAQ;QACXA,SAASC,IAAAA,4BAAY,EAACH,QAAQD;IAChC;IACA,MAAM,EACJW,kBAAkB,EAClBC,mBAAmB,EACnBI,UAAU,EACVH,kBAAkB,EACnB,GAAGV;IACJ,MAAMW,eAAeC,IAAAA,sCAAuB,EAC1CJ,oBACAC,qBACAX,QACAD,KACAa;IAEF,MAAMC,aAAa5B,GAAG,CAACsB,MAAMQ;AAC/B"}
package/lib/audit.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- import { Logger } from "backfill-logger";
1
+ import type { Logger } from "backfill-logger";
2
2
  export declare function initializeWatcher(packageRoot: string, internalCacheFolder: string, logFolder: string, outputGlob: string[], logger: Logger): void;
3
3
  export declare const sideEffectWarningString = "[audit] The following files got changed outside of the scope of the folder to be cached:";
4
4
  export declare const sideEffectCallToActionString = "[audit] You should make sure that these changes are non-essential, as they would not be brought back on a cache-hit.";
5
5
  export declare const noSideEffectString = "[audit] All observed file changes were within the scope of the folder to be cached.";
6
6
  export declare function closeWatcher(logger: Logger): Promise<void>;
7
- //# sourceMappingURL=audit.d.ts.map
package/lib/audit.js CHANGED
@@ -1,30 +1,64 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.closeWatcher = exports.noSideEffectString = exports.sideEffectCallToActionString = exports.sideEffectWarningString = exports.initializeWatcher = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const chokidar_1 = __importDefault(require("chokidar"));
9
- const find_up_1 = __importDefault(require("find-up"));
10
- const anymatch_1 = __importDefault(require("anymatch"));
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get closeWatcher () {
13
+ return closeWatcher;
14
+ },
15
+ get initializeWatcher () {
16
+ return initializeWatcher;
17
+ },
18
+ get noSideEffectString () {
19
+ return noSideEffectString;
20
+ },
21
+ get sideEffectCallToActionString () {
22
+ return sideEffectCallToActionString;
23
+ },
24
+ get sideEffectWarningString () {
25
+ return sideEffectWarningString;
26
+ }
27
+ });
28
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
29
+ const _chokidar = /*#__PURE__*/ _interop_require_default(require("chokidar"));
30
+ const _findup = /*#__PURE__*/ _interop_require_default(require("find-up"));
31
+ const _anymatch = /*#__PURE__*/ _interop_require_default(require("anymatch"));
32
+ function _interop_require_default(obj) {
33
+ return obj && obj.__esModule ? obj : {
34
+ default: obj
35
+ };
36
+ }
11
37
  let changedFilesOutsideScope = [];
12
38
  let changedFilesInsideScope = [];
13
39
  let watcher;
14
40
  function getGitRepositoryRoot(packageRoot) {
15
41
  // .git is typically a folder but will be a file in a worktree
16
- const nearestGitInfo = find_up_1.default.sync(".git", { cwd: packageRoot, type: "directory" }) ||
17
- find_up_1.default.sync(".git", { cwd: packageRoot, type: "file" });
42
+ const nearestGitInfo = _findup.default.sync(".git", {
43
+ cwd: packageRoot,
44
+ type: "directory"
45
+ }) || _findup.default.sync(".git", {
46
+ cwd: packageRoot,
47
+ type: "file"
48
+ });
18
49
  if (nearestGitInfo) {
19
50
  // Return the parent folder of some/path/.git
20
- return path_1.default.join(nearestGitInfo, "..");
51
+ return _path.default.join(nearestGitInfo, "..");
21
52
  }
22
53
  return packageRoot;
23
54
  }
24
55
  function addGlobstars(globPatterns) {
25
- const folders = globPatterns.map((p) => path_1.default.posix.join("**", p, "**", "*"));
26
- const files = globPatterns.map((p) => path_1.default.posix.join("**", p));
27
- return [...folders, ...files];
56
+ const folders = globPatterns.map((p)=>_path.default.posix.join("**", p, "**", "*"));
57
+ const files = globPatterns.map((p)=>_path.default.posix.join("**", p));
58
+ return [
59
+ ...folders,
60
+ ...files
61
+ ];
28
62
  }
29
63
  function initializeWatcher(packageRoot, internalCacheFolder, logFolder, outputGlob, logger) {
30
64
  // Trying to find the git root and using it as an approximation of code boundary
@@ -40,34 +74,30 @@ function initializeWatcher(packageRoot, internalCacheFolder, logFolder, outputGl
40
74
  ".git",
41
75
  ".cache",
42
76
  logFolder,
43
- internalCacheFolder,
77
+ internalCacheFolder
44
78
  ]);
45
- watcher = chokidar_1.default
46
- .watch("**", {
79
+ watcher = _chokidar.default.watch("**", {
47
80
  ignored: ignoreGlobs,
48
81
  cwd: repositoryRoot,
49
82
  persistent: true,
50
83
  ignoreInitial: true,
51
84
  followSymlinks: false,
52
- usePolling: true,
53
- })
54
- .on("all", (event, filePath) => {
85
+ usePolling: true
86
+ }).on("all", (event, filePath)=>{
55
87
  const logLine = `${filePath} (${event})`;
56
88
  logger.silly(`[audit] File change: ${logLine}`);
57
- if (!(0, anymatch_1.default)(outputGlob.map((glob) => path_1.default.posix.join("**", glob)), filePath)) {
89
+ if (!(0, _anymatch.default)(outputGlob.map((glob)=>_path.default.posix.join("**", glob)), filePath)) {
58
90
  changedFilesOutsideScope.push(logLine);
59
- }
60
- else {
91
+ } else {
61
92
  changedFilesInsideScope.push(logLine);
62
93
  }
63
94
  });
64
95
  }
65
- exports.initializeWatcher = initializeWatcher;
66
- exports.sideEffectWarningString = "[audit] The following files got changed outside of the scope of the folder to be cached:";
67
- exports.sideEffectCallToActionString = "[audit] You should make sure that these changes are non-essential, as they would not be brought back on a cache-hit.";
68
- exports.noSideEffectString = "[audit] All observed file changes were within the scope of the folder to be cached.";
96
+ const sideEffectWarningString = "[audit] The following files got changed outside of the scope of the folder to be cached:";
97
+ const sideEffectCallToActionString = "[audit] You should make sure that these changes are non-essential, as they would not be brought back on a cache-hit.";
98
+ const noSideEffectString = "[audit] All observed file changes were within the scope of the folder to be cached.";
69
99
  async function delay(time) {
70
- return new Promise((resolve) => {
100
+ return new Promise((resolve)=>{
71
101
  setTimeout(resolve, time);
72
102
  });
73
103
  }
@@ -75,14 +105,11 @@ async function closeWatcher(logger) {
75
105
  // Wait for one second before closing, giving time for file changes to propagate
76
106
  await delay(1000);
77
107
  if (changedFilesOutsideScope.length > 0) {
78
- logger.warn(exports.sideEffectWarningString);
79
- changedFilesOutsideScope.forEach((file) => logger.warn(`- ${file}`));
80
- logger.warn(exports.sideEffectCallToActionString);
81
- }
82
- else {
83
- logger.info(exports.noSideEffectString);
108
+ logger.warn(sideEffectWarningString);
109
+ changedFilesOutsideScope.forEach((file)=>logger.warn(`- ${file}`));
110
+ logger.warn(sideEffectCallToActionString);
111
+ } else {
112
+ logger.info(noSideEffectString);
84
113
  }
85
- watcher.close();
114
+ await watcher.close();
86
115
  }
87
- exports.closeWatcher = closeWatcher;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXVkaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLHdEQUFnQztBQUNoQyxzREFBNkI7QUFDN0Isd0RBQWdDO0FBSWhDLElBQUksd0JBQXdCLEdBQWEsRUFBRSxDQUFDO0FBQzVDLElBQUksdUJBQXVCLEdBQWEsRUFBRSxDQUFDO0FBRTNDLElBQUksT0FBMkIsQ0FBQztBQUVoQyxTQUFTLG9CQUFvQixDQUFDLFdBQW1CO0lBQy9DLDhEQUE4RDtJQUM5RCxNQUFNLGNBQWMsR0FDbEIsaUJBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDNUQsaUJBQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUUxRCxJQUFJLGNBQWMsRUFBRTtRQUNsQiw2Q0FBNkM7UUFDN0MsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxZQUFzQjtJQUMxQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxjQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWhFLE9BQU8sQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsV0FBbUIsRUFDbkIsbUJBQTJCLEVBQzNCLFNBQWlCLEVBQ2pCLFVBQW9CLEVBQ3BCLE1BQWM7SUFFZCxnRkFBZ0Y7SUFDaEYsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFekQsbUJBQW1CO0lBQ25CLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztJQUM5Qix1QkFBdUIsR0FBRyxFQUFFLENBQUM7SUFFN0IsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUNBQXFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkUsTUFBTSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUVqRSxlQUFlO0lBQ2YsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO1FBQy9CLE1BQU07UUFDTixRQUFRO1FBQ1IsU0FBUztRQUNULG1CQUFtQjtLQUNwQixDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsa0JBQVE7U0FDZixLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ1gsT0FBTyxFQUFFLFdBQVc7UUFDcEIsR0FBRyxFQUFFLGNBQWM7UUFDbkIsVUFBVSxFQUFFLElBQUk7UUFDaEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsY0FBYyxFQUFFLEtBQUs7UUFDckIsVUFBVSxFQUFFLElBQUk7S0FDakIsQ0FBQztTQUNELEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7UUFDN0IsTUFBTSxPQUFPLEdBQUcsR0FBRyxRQUFRLEtBQUssS0FBSyxHQUFHLENBQUM7UUFDekMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVoRCxJQUNFLENBQUMsSUFBQSxrQkFBUSxFQUNQLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUNyRCxRQUFRLENBQ1QsRUFDRDtZQUNBLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBakRELDhDQWlEQztBQUVZLFFBQUEsdUJBQXVCLEdBQ2xDLDBGQUEwRixDQUFDO0FBQ2hGLFFBQUEsNEJBQTRCLEdBQ3ZDLHNIQUFzSCxDQUFDO0FBQzVHLFFBQUEsa0JBQWtCLEdBQzdCLHFGQUFxRixDQUFDO0FBRXhGLEtBQUssVUFBVSxLQUFLLENBQUMsSUFBWTtJQUMvQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDL0MsZ0ZBQWdGO0lBQ2hGLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxCLElBQUksd0JBQXdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUF1QixDQUFDLENBQUM7UUFDckMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0NBQTRCLENBQUMsQ0FBQztLQUMzQztTQUFNO1FBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBa0IsQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFiRCxvQ0FhQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/audit.ts"],"sourcesContent":["import path from \"path\";\nimport chokidar from \"chokidar\";\nimport findUp from \"find-up\";\nimport anymatch from \"anymatch\";\n\nimport type { Logger } from \"backfill-logger\";\n\nlet changedFilesOutsideScope: string[] = [];\nlet changedFilesInsideScope: string[] = [];\n\nlet watcher: chokidar.FSWatcher;\n\nfunction getGitRepositoryRoot(packageRoot: string) {\n // .git is typically a folder but will be a file in a worktree\n const nearestGitInfo =\n findUp.sync(\".git\", { cwd: packageRoot, type: \"directory\" }) ||\n findUp.sync(\".git\", { cwd: packageRoot, type: \"file\" });\n\n if (nearestGitInfo) {\n // Return the parent folder of some/path/.git\n return path.join(nearestGitInfo, \"..\");\n }\n\n return packageRoot;\n}\n\nfunction addGlobstars(globPatterns: string[]): string[] {\n const folders = globPatterns.map((p) => path.posix.join(\"**\", p, \"**\", \"*\"));\n const files = globPatterns.map((p) => path.posix.join(\"**\", p));\n\n return [...folders, ...files];\n}\n\nexport function initializeWatcher(\n packageRoot: string,\n internalCacheFolder: string,\n logFolder: string,\n outputGlob: string[],\n logger: Logger\n): void {\n // Trying to find the git root and using it as an approximation of code boundary\n const repositoryRoot = getGitRepositoryRoot(packageRoot);\n\n // Empty the arrays\n changedFilesOutsideScope = [];\n changedFilesInsideScope = [];\n\n logger.info(\"Running in AUDIT mode\");\n logger.info(`[audit] Watching file changes in: ${repositoryRoot}`);\n logger.info(`[audit] Backfill will cache folder: ${outputGlob}`);\n\n // Define globs\n const ignoreGlobs = addGlobstars([\n \".git\",\n \".cache\",\n logFolder,\n internalCacheFolder,\n ]);\n watcher = chokidar\n .watch(\"**\", {\n ignored: ignoreGlobs,\n cwd: repositoryRoot,\n persistent: true,\n ignoreInitial: true,\n followSymlinks: false,\n usePolling: true,\n })\n .on(\"all\", (event, filePath) => {\n const logLine = `${filePath} (${event})`;\n logger.silly(`[audit] File change: ${logLine}`);\n\n if (\n !anymatch(\n outputGlob.map((glob) => path.posix.join(\"**\", glob)),\n filePath\n )\n ) {\n changedFilesOutsideScope.push(logLine);\n } else {\n changedFilesInsideScope.push(logLine);\n }\n });\n}\n\nexport const sideEffectWarningString =\n \"[audit] The following files got changed outside of the scope of the folder to be cached:\";\nexport const sideEffectCallToActionString =\n \"[audit] You should make sure that these changes are non-essential, as they would not be brought back on a cache-hit.\";\nexport const noSideEffectString =\n \"[audit] All observed file changes were within the scope of the folder to be cached.\";\n\nasync function delay(time: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, time);\n });\n}\n\nexport async function closeWatcher(logger: Logger): Promise<void> {\n // Wait for one second before closing, giving time for file changes to propagate\n await delay(1000);\n\n if (changedFilesOutsideScope.length > 0) {\n logger.warn(sideEffectWarningString);\n changedFilesOutsideScope.forEach((file) => logger.warn(`- ${file}`));\n logger.warn(sideEffectCallToActionString);\n } else {\n logger.info(noSideEffectString);\n }\n\n await watcher.close();\n}\n"],"names":["closeWatcher","initializeWatcher","noSideEffectString","sideEffectCallToActionString","sideEffectWarningString","changedFilesOutsideScope","changedFilesInsideScope","watcher","getGitRepositoryRoot","packageRoot","nearestGitInfo","findUp","sync","cwd","type","path","join","addGlobstars","globPatterns","folders","map","p","posix","files","internalCacheFolder","logFolder","outputGlob","logger","repositoryRoot","info","ignoreGlobs","chokidar","watch","ignored","persistent","ignoreInitial","followSymlinks","usePolling","on","event","filePath","logLine","silly","anymatch","glob","push","delay","time","Promise","resolve","setTimeout","length","warn","forEach","file","close"],"mappings":";;;;;;;;;;;QAiGsBA;eAAAA;;QAhENC;eAAAA;;QAuDHC;eAAAA;;QAFAC;eAAAA;;QAFAC;eAAAA;;;6DApFI;iEACI;+DACF;iEACE;;;;;;AAIrB,IAAIC,2BAAqC,EAAE;AAC3C,IAAIC,0BAAoC,EAAE;AAE1C,IAAIC;AAEJ,SAASC,qBAAqBC,WAAmB;IAC/C,8DAA8D;IAC9D,MAAMC,iBACJC,eAAM,CAACC,IAAI,CAAC,QAAQ;QAAEC,KAAKJ;QAAaK,MAAM;IAAY,MAC1DH,eAAM,CAACC,IAAI,CAAC,QAAQ;QAAEC,KAAKJ;QAAaK,MAAM;IAAO;IAEvD,IAAIJ,gBAAgB;QAClB,6CAA6C;QAC7C,OAAOK,aAAI,CAACC,IAAI,CAACN,gBAAgB;IACnC;IAEA,OAAOD;AACT;AAEA,SAASQ,aAAaC,YAAsB;IAC1C,MAAMC,UAAUD,aAAaE,GAAG,CAAC,CAACC,IAAMN,aAAI,CAACO,KAAK,CAACN,IAAI,CAAC,MAAMK,GAAG,MAAM;IACvE,MAAME,QAAQL,aAAaE,GAAG,CAAC,CAACC,IAAMN,aAAI,CAACO,KAAK,CAACN,IAAI,CAAC,MAAMK;IAE5D,OAAO;WAAIF;WAAYI;KAAM;AAC/B;AAEO,SAAStB,kBACdQ,WAAmB,EACnBe,mBAA2B,EAC3BC,SAAiB,EACjBC,UAAoB,EACpBC,MAAc;IAEd,gFAAgF;IAChF,MAAMC,iBAAiBpB,qBAAqBC;IAE5C,mBAAmB;IACnBJ,2BAA2B,EAAE;IAC7BC,0BAA0B,EAAE;IAE5BqB,OAAOE,IAAI,CAAC;IACZF,OAAOE,IAAI,CAAC,CAAC,kCAAkC,EAAED,gBAAgB;IACjED,OAAOE,IAAI,CAAC,CAAC,oCAAoC,EAAEH,YAAY;IAE/D,eAAe;IACf,MAAMI,cAAcb,aAAa;QAC/B;QACA;QACAQ;QACAD;KACD;IACDjB,UAAUwB,iBAAQ,CACfC,KAAK,CAAC,MAAM;QACXC,SAASH;QACTjB,KAAKe;QACLM,YAAY;QACZC,eAAe;QACfC,gBAAgB;QAChBC,YAAY;IACd,GACCC,EAAE,CAAC,OAAO,CAACC,OAAOC;QACjB,MAAMC,UAAU,GAAGD,SAAS,EAAE,EAAED,MAAM,CAAC,CAAC;QACxCZ,OAAOe,KAAK,CAAC,CAAC,qBAAqB,EAAED,SAAS;QAE9C,IACE,CAACE,IAAAA,iBAAQ,EACPjB,WAAWN,GAAG,CAAC,CAACwB,OAAS7B,aAAI,CAACO,KAAK,CAACN,IAAI,CAAC,MAAM4B,QAC/CJ,WAEF;YACAnC,yBAAyBwC,IAAI,CAACJ;QAChC,OAAO;YACLnC,wBAAwBuC,IAAI,CAACJ;QAC/B;IACF;AACJ;AAEO,MAAMrC,0BACX;AACK,MAAMD,+BACX;AACK,MAAMD,qBACX;AAEF,eAAe4C,MAAMC,IAAY;IAC/B,OAAO,IAAIC,QAAQ,CAACC;QAClBC,WAAWD,SAASF;IACtB;AACF;AAEO,eAAe/C,aAAa2B,MAAc;IAC/C,gFAAgF;IAChF,MAAMmB,MAAM;IAEZ,IAAIzC,yBAAyB8C,MAAM,GAAG,GAAG;QACvCxB,OAAOyB,IAAI,CAAChD;QACZC,yBAAyBgD,OAAO,CAAC,CAACC,OAAS3B,OAAOyB,IAAI,CAAC,CAAC,EAAE,EAAEE,MAAM;QAClE3B,OAAOyB,IAAI,CAACjD;IACd,OAAO;QACLwB,OAAOE,IAAI,CAAC3B;IACd;IAEA,MAAMK,QAAQgD,KAAK;AACrB"}
@@ -1,7 +1,6 @@
1
1
  import execa from "execa";
2
- import { Logger } from "backfill-logger";
3
- export declare type ExecaReturns = execa.ExecaChildProcess;
4
- export declare type BuildCommand = () => Promise<ExecaReturns | void>;
2
+ import type { Logger } from "backfill-logger";
3
+ export type ExecaReturns = execa.ExecaChildProcess;
4
+ export type BuildCommand = () => Promise<ExecaReturns | void>;
5
5
  export declare function getRawBuildCommand(): string;
6
6
  export declare function createBuildCommand(buildCommand: (string | number)[], clearOutput: boolean, outputGlob: string[], logger: Logger): () => Promise<ExecaReturns | void>;
7
- //# sourceMappingURL=commandRunner.d.ts.map
@@ -1,41 +1,54 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createBuildCommand = exports.getRawBuildCommand = void 0;
7
- const execa_1 = __importDefault(require("execa"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const globby_1 = __importDefault(require("globby"));
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get createBuildCommand () {
13
+ return createBuildCommand;
14
+ },
15
+ get getRawBuildCommand () {
16
+ return getRawBuildCommand;
17
+ }
18
+ });
19
+ const _execa = /*#__PURE__*/ _interop_require_default(require("execa"));
20
+ const _fsextra = /*#__PURE__*/ _interop_require_default(require("fs-extra"));
21
+ const _globby = require("@lage-run/globby");
22
+ function _interop_require_default(obj) {
23
+ return obj && obj.__esModule ? obj : {
24
+ default: obj
25
+ };
26
+ }
10
27
  function getRawBuildCommand() {
11
28
  return process.argv.slice(2).join(" ");
12
29
  }
13
- exports.getRawBuildCommand = getRawBuildCommand;
14
30
  function createBuildCommand(buildCommand, clearOutput, outputGlob, logger) {
15
- return async () => {
31
+ return async ()=>{
16
32
  const parsedBuildCommand = buildCommand.join(" ");
17
33
  if (!parsedBuildCommand) {
18
34
  throw new Error("Command not provided");
19
35
  }
20
36
  if (clearOutput) {
21
- const filesToClear = globby_1.default.sync(outputGlob);
22
- await Promise.all(filesToClear.map(async (file) => await fs_extra_1.default.remove(file)));
37
+ const filesToClear = (0, _globby.glob)(outputGlob);
38
+ await Promise.all(filesToClear.map(async (file)=>await _fsextra.default.remove(file)));
23
39
  }
24
40
  try {
25
41
  // Set up runner
26
42
  const tracer = logger.setTime("buildTime");
27
- const runner = (0, execa_1.default)(parsedBuildCommand, {
28
- shell: true,
43
+ const runner = (0, _execa.default)(parsedBuildCommand, {
44
+ shell: true
29
45
  });
30
46
  logger.pipeProcessOutput(runner.stdout, runner.stderr);
31
47
  await runner;
32
48
  tracer.stop();
33
- }
34
- catch (e) {
49
+ } catch (e) {
35
50
  logger.error(`Failed while running: "${parsedBuildCommand}"`);
36
51
  throw e;
37
52
  }
38
53
  };
39
54
  }
40
- exports.createBuildCommand = createBuildCommand;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZFJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kUnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQix3REFBMEI7QUFDMUIsb0RBQTRCO0FBTzVCLFNBQWdCLGtCQUFrQjtJQUNoQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsZ0RBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsWUFBaUMsRUFDakMsV0FBb0IsRUFDcEIsVUFBb0IsRUFDcEIsTUFBYztJQUVkLE9BQU8sS0FBSyxJQUFrQyxFQUFFO1FBQzlDLE1BQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLFlBQVksR0FBRyxnQkFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLGtCQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUM7U0FDSDtRQUVELElBQUk7WUFDRixnQkFBZ0I7WUFDaEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLGVBQUssRUFBQyxrQkFBa0IsRUFBRTtnQkFDdkMsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFdkQsTUFBTSxNQUFNLENBQUM7WUFDYixNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQzlELE1BQU0sQ0FBQyxDQUFDO1NBQ1Q7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBcENELGdEQW9DQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commandRunner.ts"],"sourcesContent":["import execa from \"execa\";\nimport fs from \"fs-extra\";\nimport { glob } from \"@lage-run/globby\";\n\nimport type { Logger } from \"backfill-logger\";\n\nexport type ExecaReturns = execa.ExecaChildProcess;\nexport type BuildCommand = () => Promise<ExecaReturns | void>;\n\nexport function getRawBuildCommand(): string {\n return process.argv.slice(2).join(\" \");\n}\n\nexport function createBuildCommand(\n buildCommand: (string | number)[],\n clearOutput: boolean,\n outputGlob: string[],\n logger: Logger\n): () => Promise<ExecaReturns | void> {\n return async (): Promise<ExecaReturns | void> => {\n const parsedBuildCommand = buildCommand.join(\" \");\n\n if (!parsedBuildCommand) {\n throw new Error(\"Command not provided\");\n }\n\n if (clearOutput) {\n const filesToClear = glob(outputGlob);\n await Promise.all(\n filesToClear.map(async (file) => await fs.remove(file))\n );\n }\n\n try {\n // Set up runner\n const tracer = logger.setTime(\"buildTime\");\n const runner = execa(parsedBuildCommand, {\n shell: true,\n });\n\n logger.pipeProcessOutput(runner.stdout, runner.stderr);\n\n await runner;\n tracer.stop();\n } catch (e) {\n logger.error(`Failed while running: \"${parsedBuildCommand}\"`);\n throw e;\n }\n };\n}\n"],"names":["createBuildCommand","getRawBuildCommand","process","argv","slice","join","buildCommand","clearOutput","outputGlob","logger","parsedBuildCommand","Error","filesToClear","glob","Promise","all","map","file","fs","remove","tracer","setTime","runner","execa","shell","pipeProcessOutput","stdout","stderr","stop","e","error"],"mappings":";;;;;;;;;;;QAagBA;eAAAA;;QAJAC;eAAAA;;;8DATE;gEACH;wBACM;;;;;;AAOd,SAASA;IACd,OAAOC,QAAQC,IAAI,CAACC,KAAK,CAAC,GAAGC,IAAI,CAAC;AACpC;AAEO,SAASL,mBACdM,YAAiC,EACjCC,WAAoB,EACpBC,UAAoB,EACpBC,MAAc;IAEd,OAAO;QACL,MAAMC,qBAAqBJ,aAAaD,IAAI,CAAC;QAE7C,IAAI,CAACK,oBAAoB;YACvB,MAAM,IAAIC,MAAM;QAClB;QAEA,IAAIJ,aAAa;YACf,MAAMK,eAAeC,IAAAA,YAAI,EAACL;YAC1B,MAAMM,QAAQC,GAAG,CACfH,aAAaI,GAAG,CAAC,OAAOC,OAAS,MAAMC,gBAAE,CAACC,MAAM,CAACF;QAErD;QAEA,IAAI;YACF,gBAAgB;YAChB,MAAMG,SAASX,OAAOY,OAAO,CAAC;YAC9B,MAAMC,SAASC,IAAAA,cAAK,EAACb,oBAAoB;gBACvCc,OAAO;YACT;YAEAf,OAAOgB,iBAAiB,CAACH,OAAOI,MAAM,EAAEJ,OAAOK,MAAM;YAErD,MAAML;YACNF,OAAOQ,IAAI;QACb,EAAE,OAAOC,GAAG;YACVpB,OAAOqB,KAAK,CAAC,CAAC,uBAAuB,EAAEpB,mBAAmB,CAAC,CAAC;YAC5D,MAAMmB;QACR;IACF;AACF"}
package/lib/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { type Logger } from "backfill-logger";
2
2
  import { type Config } from "backfill-config";
3
- import { BuildCommand } from "./commandRunner";
3
+ import { type BuildCommand } from "./commandRunner.js";
4
4
  export { createDefaultConfig, type Config, type ICacheStorage, } from "backfill-config";
5
5
  export declare function backfill(config: Config, buildCommand: BuildCommand, hashSalt: string, logger: Logger): Promise<void>;
6
6
  export declare function main(): Promise<void>;
7
- //# sourceMappingURL=index.d.ts.map
package/lib/index.js CHANGED
@@ -1,114 +1,123 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.main = exports.backfill = exports.createDefaultConfig = void 0;
7
- const backfill_utils_dotenv_1 = require("backfill-utils-dotenv");
8
- const backfill_logger_1 = require("backfill-logger");
9
- const backfill_config_1 = require("backfill-config");
10
- const backfill_cache_1 = require("backfill-cache");
11
- const yargs_1 = __importDefault(require("yargs"));
12
- const commandRunner_1 = require("./commandRunner");
13
- const audit_1 = require("./audit");
14
- const api_1 = require("./api");
15
- var backfill_config_2 = require("backfill-config");
16
- Object.defineProperty(exports, "createDefaultConfig", { enumerable: true, get: function () { return backfill_config_2.createDefaultConfig; } });
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get backfill () {
13
+ return backfill;
14
+ },
15
+ get createDefaultConfig () {
16
+ return _backfillconfig.createDefaultConfig;
17
+ },
18
+ get main () {
19
+ return main;
20
+ }
21
+ });
22
+ const _backfillutilsdotenv = require("backfill-utils-dotenv");
23
+ const _backfilllogger = require("backfill-logger");
24
+ const _backfillconfig = require("backfill-config");
25
+ const _backfillcache = require("backfill-cache");
26
+ const _yargs = /*#__PURE__*/ _interop_require_default(require("yargs"));
27
+ const _commandRunner = require("./commandRunner.js");
28
+ const _audit = require("./audit.js");
29
+ const _api = require("./api.js");
30
+ function _interop_require_default(obj) {
31
+ return obj && obj.__esModule ? obj : {
32
+ default: obj
33
+ };
34
+ }
17
35
  // Load environment variables
18
- (0, backfill_utils_dotenv_1.loadDotenv)();
36
+ (0, _backfillutilsdotenv.loadDotenv)();
19
37
  async function backfill(config, buildCommand, hashSalt, logger) {
20
- const { cacheStorageConfig, name, mode, logFolder, packageRoot, producePerformanceLogs, validateOutput, } = config;
38
+ const { cacheStorageConfig, name, mode, logFolder, packageRoot, producePerformanceLogs, validateOutput } = config;
21
39
  logger.setName(name);
22
40
  logger.setMode(mode, mode === "READ_WRITE" ? "info" : "verbose");
23
- logger.setCacheProvider((0, backfill_cache_1.isCustomProvider)(cacheStorageConfig)
24
- ? cacheStorageConfig.name || "custom-storage-provider"
25
- : cacheStorageConfig.provider);
26
- const createPackageHash = async () => await (0, api_1.computeHash)(packageRoot, logger, hashSalt);
27
- const fetch = async (hash) => await (0, api_1.fetch)(packageRoot, hash, logger, config);
28
- const run = async () => {
41
+ logger.setCacheProvider((0, _backfillcache.isCustomProvider)(cacheStorageConfig) ? cacheStorageConfig.name || "custom-storage-provider" : cacheStorageConfig.provider);
42
+ const createPackageHash = async ()=>await (0, _api.computeHash)(packageRoot, logger, hashSalt);
43
+ const fetch = async (hash)=>await (0, _api.fetch)(packageRoot, hash, logger, config);
44
+ const run = async ()=>{
29
45
  try {
30
46
  await buildCommand();
31
- }
32
- catch (err) {
47
+ } catch (err) {
33
48
  throw new Error(`Command failed with the following error:\n\n${err}`);
34
49
  }
35
50
  };
36
- const put = async (hash) => {
51
+ const put = async (hash)=>{
37
52
  try {
38
- await (0, api_1.put)(packageRoot, hash, logger, config);
39
- }
40
- catch (err) {
53
+ await (0, _api.put)(packageRoot, hash, logger, config);
54
+ } catch (err) {
41
55
  logger.error(`Failed to persist the cache with the following error:\n\n${err}`);
42
56
  }
43
57
  };
44
- switch (mode) {
45
- case "READ_WRITE": {
46
- const hash = await createPackageHash();
47
- if (!(await fetch(hash))) {
58
+ switch(mode){
59
+ case "READ_WRITE":
60
+ {
61
+ const hash = await createPackageHash();
62
+ if (!await fetch(hash)) {
63
+ await run();
64
+ await put(hash);
65
+ }
66
+ break;
67
+ }
68
+ case "READ_ONLY":
69
+ {
70
+ const hash = await createPackageHash();
71
+ if (!await fetch(hash)) {
72
+ await run();
73
+ }
74
+ break;
75
+ }
76
+ case "WRITE_ONLY":
77
+ {
48
78
  await run();
79
+ const hash = await createPackageHash();
49
80
  await put(hash);
81
+ break;
50
82
  }
51
- break;
52
- }
53
- case "READ_ONLY": {
54
- const hash = await createPackageHash();
55
- if (!(await fetch(hash))) {
83
+ case "PASS":
84
+ {
56
85
  await run();
86
+ break;
57
87
  }
58
- break;
59
- }
60
- case "WRITE_ONLY": {
61
- await run();
62
- const hash = await createPackageHash();
63
- await put(hash);
64
- break;
65
- }
66
- case "PASS": {
67
- await run();
68
- break;
69
- }
70
88
  }
71
89
  if (validateOutput) {
72
- const hashOfOutput = await (0, api_1.computeHashOfOutput)(packageRoot, logger);
90
+ const hashOfOutput = await (0, _api.computeHashOfOutput)(packageRoot, logger);
73
91
  logger.setHashOfOutput(hashOfOutput);
74
92
  }
75
93
  if (producePerformanceLogs) {
76
94
  await logger.toFile(logFolder);
77
95
  }
78
96
  }
79
- exports.backfill = backfill;
80
97
  async function main() {
81
- let logger = (0, backfill_logger_1.makeLogger)("info");
98
+ let logger = (0, _backfilllogger.makeLogger)("info");
82
99
  const cwd = process.cwd();
83
100
  try {
84
- const config = (0, backfill_config_1.createConfig)(logger, cwd);
85
- const { clearOutput, internalCacheFolder, logFolder, logLevel, outputGlob, packageRoot, } = config;
101
+ const config = (0, _backfillconfig.createConfig)(logger, cwd);
102
+ const { clearOutput, internalCacheFolder, logFolder, logLevel, outputGlob, packageRoot } = config;
86
103
  if (logLevel) {
87
- logger = (0, backfill_logger_1.makeLogger)(logLevel);
104
+ logger = (0, _backfilllogger.makeLogger)(logLevel);
88
105
  }
89
106
  const helpString = "Backfills unchanged packages.";
90
- const argv = yargs_1.default
91
- .strict()
92
- .usage(helpString)
93
- .alias("h", "help")
94
- .version(false)
95
- .option("audit", {
107
+ const argv = _yargs.default.strict().usage(helpString).alias("h", "help").version(false).option("audit", {
96
108
  description: "Compare files changed with those cached",
97
- type: "boolean",
109
+ type: "boolean"
98
110
  }).argv;
99
- const buildCommand = (0, commandRunner_1.createBuildCommand)(argv["_"], clearOutput, outputGlob, logger);
111
+ const buildCommand = (0, _commandRunner.createBuildCommand)(argv["_"], clearOutput, outputGlob, logger);
100
112
  if (argv["audit"]) {
101
- (0, audit_1.initializeWatcher)(packageRoot, internalCacheFolder, logFolder, outputGlob, logger);
113
+ (0, _audit.initializeWatcher)(packageRoot, internalCacheFolder, logFolder, outputGlob, logger);
102
114
  }
103
- await backfill(config, buildCommand, (0, commandRunner_1.getRawBuildCommand)(), logger);
115
+ await backfill(config, buildCommand, (0, _commandRunner.getRawBuildCommand)(), logger);
104
116
  if (argv["audit"]) {
105
- await (0, audit_1.closeWatcher)(logger);
117
+ await (0, _audit.closeWatcher)(logger);
106
118
  }
107
- }
108
- catch (err) {
119
+ } catch (err) {
109
120
  logger.error(err);
110
121
  process.exit(1);
111
122
  }
112
123
  }
113
- exports.main = main;
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUVBQW1EO0FBQ25ELHFEQUEwRDtBQUMxRCxxREFBNEQ7QUFDNUQsbURBQWtEO0FBQ2xELGtEQUEwQjtBQUMxQixtREFJeUI7QUFDekIsbUNBQTBEO0FBQzFELCtCQUtlO0FBRWYsbURBSXlCO0FBSHZCLHNIQUFBLG1CQUFtQixPQUFBO0FBS3JCLDZCQUE2QjtBQUM3QixJQUFBLGtDQUFVLEdBQUUsQ0FBQztBQUVOLEtBQUssVUFBVSxRQUFRLENBQzVCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixRQUFnQixFQUNoQixNQUFjO0lBRWQsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixHQUFHLE1BQU0sQ0FBQztJQUVYLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLElBQUEsaUNBQWdCLEVBQUMsa0JBQWtCLENBQUM7UUFDbEMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSx5QkFBeUI7UUFDdEQsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDaEMsQ0FBQztJQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FDbkMsTUFBTSxJQUFBLGlCQUFXLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FDbkMsTUFBTSxJ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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { loadDotenv } from \"backfill-utils-dotenv\";\nimport { type Logger, makeLogger } from \"backfill-logger\";\nimport { createConfig, type Config } from \"backfill-config\";\nimport { isCustomProvider } from \"backfill-cache\";\nimport yargs from \"yargs\";\nimport {\n getRawBuildCommand,\n createBuildCommand,\n type BuildCommand,\n} from \"./commandRunner.js\";\nimport { initializeWatcher, closeWatcher } from \"./audit.js\";\nimport {\n put as put_api,\n fetch as fetch_api,\n computeHash,\n computeHashOfOutput,\n} from \"./api.js\";\n\nexport {\n createDefaultConfig,\n type Config,\n type ICacheStorage,\n} from \"backfill-config\";\n\n// Load environment variables\nloadDotenv();\n\nexport async function backfill(\n config: Config,\n buildCommand: BuildCommand,\n hashSalt: string,\n logger: Logger\n): Promise<void> {\n const {\n cacheStorageConfig,\n name,\n mode,\n logFolder,\n packageRoot,\n producePerformanceLogs,\n validateOutput,\n } = config;\n\n logger.setName(name);\n logger.setMode(mode, mode === \"READ_WRITE\" ? \"info\" : \"verbose\");\n logger.setCacheProvider(\n isCustomProvider(cacheStorageConfig)\n ? cacheStorageConfig.name || \"custom-storage-provider\"\n : cacheStorageConfig.provider\n );\n\n const createPackageHash = async () =>\n await computeHash(packageRoot, logger, hashSalt);\n const fetch = async (hash: string) =>\n await fetch_api(packageRoot, hash, logger, config);\n const run = async () => {\n try {\n await buildCommand();\n } catch (err) {\n throw new Error(`Command failed with the following error:\\n\\n${err}`);\n }\n };\n const put = async (hash: string) => {\n try {\n await put_api(packageRoot, hash, logger, config);\n } catch (err) {\n logger.error(\n `Failed to persist the cache with the following error:\\n\\n${err}`\n );\n }\n };\n\n switch (mode) {\n case \"READ_WRITE\": {\n const hash = await createPackageHash();\n if (!(await fetch(hash))) {\n await run();\n await put(hash);\n }\n\n break;\n }\n case \"READ_ONLY\": {\n const hash = await createPackageHash();\n if (!(await fetch(hash))) {\n await run();\n }\n\n break;\n }\n case \"WRITE_ONLY\": {\n await run();\n\n const hash = await createPackageHash();\n await put(hash);\n\n break;\n }\n case \"PASS\": {\n await run();\n break;\n }\n }\n\n if (validateOutput) {\n const hashOfOutput = await computeHashOfOutput(packageRoot, logger);\n logger.setHashOfOutput(hashOfOutput);\n }\n\n if (producePerformanceLogs) {\n await logger.toFile(logFolder);\n }\n}\n\nexport async function main(): Promise<void> {\n let logger = makeLogger(\"info\");\n const cwd = process.cwd();\n\n try {\n const config = createConfig(logger, cwd);\n const {\n clearOutput,\n internalCacheFolder,\n logFolder,\n logLevel,\n outputGlob,\n packageRoot,\n } = config;\n\n if (logLevel) {\n logger = makeLogger(logLevel);\n }\n\n const helpString = \"Backfills unchanged packages.\";\n\n const argv = yargs\n .strict()\n .usage(helpString)\n .alias(\"h\", \"help\")\n .version(false)\n .option(\"audit\", {\n description: \"Compare files changed with those cached\",\n type: \"boolean\",\n }).argv;\n\n const buildCommand = createBuildCommand(\n argv[\"_\"],\n clearOutput,\n outputGlob,\n logger\n );\n\n if (argv[\"audit\"]) {\n initializeWatcher(\n packageRoot,\n internalCacheFolder,\n logFolder,\n outputGlob,\n logger\n );\n }\n\n await backfill(config, buildCommand, getRawBuildCommand(), logger);\n\n if (argv[\"audit\"]) {\n await closeWatcher(logger);\n }\n } catch (err) {\n logger.error(err as any);\n process.exit(1);\n }\n}\n"],"names":["backfill","createDefaultConfig","main","loadDotenv","config","buildCommand","hashSalt","logger","cacheStorageConfig","name","mode","logFolder","packageRoot","producePerformanceLogs","validateOutput","setName","setMode","setCacheProvider","isCustomProvider","provider","createPackageHash","computeHash","fetch","hash","fetch_api","run","err","Error","put","put_api","error","hashOfOutput","computeHashOfOutput","setHashOfOutput","toFile","makeLogger","cwd","process","createConfig","clearOutput","internalCacheFolder","logLevel","outputGlob","helpString","argv","yargs","strict","usage","alias","version","option","description","type","createBuildCommand","initializeWatcher","getRawBuildCommand","closeWatcher","exit"],"mappings":"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"}
package/package.json CHANGED
@@ -1,49 +1,48 @@
1
1
  {
2
2
  "name": "backfill",
3
- "version": "6.4.3",
3
+ "version": "6.4.5",
4
4
  "description": "Backfill CLI",
5
5
  "license": "MIT",
6
6
  "author": "Benjamin Weggersen <bewegger@microsoft.com>",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "https://github.com/microsoft/backfill"
9
+ "url": "https://github.com/microsoft/lage"
10
10
  },
11
11
  "main": "lib/index.js",
12
- "bin": {
13
- "backfill": "./bin/backfill.js"
14
- },
12
+ "types": "lib/index.d.ts",
13
+ "bin": "./bin/backfill.js",
15
14
  "scripts": {
16
- "build": "tsc -b --pretty",
17
- "test": "jest",
18
- "watch": "tsc -b -w"
15
+ "build": "yarn types && yarn transpile",
16
+ "transpile": "monorepo-scripts transpile",
17
+ "types": "yarn run -T tsc",
18
+ "lint": "monorepo-scripts lint",
19
+ "test": "yarn run -T jest"
19
20
  },
20
21
  "dependencies": {
21
- "anymatch": "^3.0.3",
22
- "backfill-cache": "^5.11.3",
23
- "backfill-config": "^6.7.1",
24
- "backfill-hasher": "^6.7.0",
25
- "backfill-logger": "^5.4.0",
26
- "backfill-utils-dotenv": "^5.3.1",
27
- "chokidar": "^3.2.1",
28
- "execa": "^5.0.0",
22
+ "@lage-run/globby": "^13.0.1",
23
+ "anymatch": "^3.1.3",
24
+ "backfill-cache": "^5.12.0",
25
+ "backfill-config": "^6.7.2",
26
+ "backfill-hasher": "^6.7.2",
27
+ "backfill-logger": "^5.4.1",
28
+ "backfill-utils-dotenv": "^5.3.2",
29
+ "chokidar": "^3.6.0",
30
+ "execa": "^5.1.1",
29
31
  "find-up": "^5.0.0",
30
32
  "fs-extra": "^8.1.0",
31
- "globby": "^11.0.0",
32
- "yargs": "^16.1.1"
33
+ "yargs": "^16.2.0"
33
34
  },
34
35
  "devDependencies": {
36
+ "@lage-run/monorepo-scripts": "^1.0.0",
37
+ "@lage-run/test-utilities": "^0.1.0",
35
38
  "@types/fs-extra": "^8.0.0",
36
- "@types/jest": "^30.0.0",
37
- "@types/node": "^14.18.36",
38
- "@types/yargs": "^15.0.15",
39
- "backfill-utils-test": "*",
40
- "backfill-utils-tsconfig": "*",
41
- "jest": "^30.0.0",
42
- "ts-jest": "^29.0.0",
43
- "ts-mockito": "^2.6.1",
44
- "typescript": "~4.7.0"
39
+ "@types/yargs": "^15.0.15"
45
40
  },
46
41
  "engines": {
47
42
  "node": ">=14"
48
- }
43
+ },
44
+ "files": [
45
+ "lib/!(__*)",
46
+ "lib/!(__*)/**"
47
+ ]
49
48
  }