backfill 6.3.1 → 6.4.1
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/README.md +138 -96
- package/lib/api.d.ts +4 -3
- package/lib/api.js +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +4 -4
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -2,25 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
A JavaScript caching library for reducing build time.
|
|
4
4
|
|
|
5
|
+
> ⚠️ As of 2025, `backfill` is primarily used as the caching layer for
|
|
6
|
+
> [`lage`](https://www.npmjs.com/package/lage). Most information about
|
|
7
|
+
> [options](#options) and [remote cache setup](#set-up-remote-cache) also
|
|
8
|
+
> applies to `lage`'s `cacheOptions` configuration.
|
|
9
|
+
|
|
5
10
|
- **🔌 Easy to install**: Simply wrap your build commands inside
|
|
6
11
|
`backfill -- [command]`
|
|
7
12
|
- **☁️ Remote cache**: Store your cache on Azure Blob or as an npm package
|
|
8
13
|
- **⚙️ Fully configurable**: Smart defaults with cross-package and per-package
|
|
9
14
|
configuration and environment variable overrides
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
production, yet. We will initially focus on stability improvements. We will look
|
|
13
|
-
into various optimization strategies, adding more customization, and introducing
|
|
14
|
-
an API for only running scripts in packages that have changed and skipping
|
|
15
|
-
others altogether._
|
|
16
|
-
|
|
17
|
-
_Current prerequisites:_
|
|
16
|
+
_Prerequisites:_
|
|
18
17
|
|
|
19
18
|
- git
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
These prerequisites can easily be loosened to make backfill work with npm, Rush,
|
|
23
|
-
and Lerna.
|
|
19
|
+
- package manager with lock file (for optimized hashing)
|
|
24
20
|
|
|
25
21
|
## Why
|
|
26
22
|
|
|
@@ -37,14 +33,6 @@ Backfill is based on two concepts:
|
|
|
37
33
|
cache. Otherwise, it will run the build command and persist the output to the
|
|
38
34
|
cache.
|
|
39
35
|
|
|
40
|
-
## Install
|
|
41
|
-
|
|
42
|
-
Install backfill using yarn:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
$ yarn add --dev backfill
|
|
46
|
-
```
|
|
47
|
-
|
|
48
36
|
## Usage - CLI
|
|
49
37
|
|
|
50
38
|
```
|
|
@@ -72,67 +60,119 @@ to all file changes in your repo (it assumes you're in a git repo) while running
|
|
|
72
60
|
the build command and then report on any files that got changed outside of the
|
|
73
61
|
cache folder.
|
|
74
62
|
|
|
75
|
-
|
|
63
|
+
## Configuration
|
|
76
64
|
|
|
77
|
-
Backfill will look for `backfill.config.js` in the package it was
|
|
78
|
-
and
|
|
65
|
+
Backfill will look for `backfill.config.js` (CJS only) in the package it was
|
|
66
|
+
called from and parent folders, then combine those configs together.
|
|
79
67
|
|
|
80
68
|
To configure backfill, simply export a config object with the properties you
|
|
81
|
-
wish to override
|
|
69
|
+
wish to override. All properties in are optional in the config file.
|
|
82
70
|
|
|
83
71
|
```js
|
|
84
|
-
|
|
72
|
+
/** @type {Partial<import("backfill").Config>} */
|
|
73
|
+
const config = {
|
|
85
74
|
cacheStorageConfig: {
|
|
86
75
|
provider: "azure-blob",
|
|
87
76
|
options: { ... }
|
|
88
|
-
}
|
|
77
|
+
},
|
|
78
|
+
outputGlob: ["lib/**/*", "dist/bundles/**/*"]
|
|
89
79
|
};
|
|
80
|
+
module.exports = config;
|
|
90
81
|
```
|
|
91
82
|
|
|
92
|
-
|
|
83
|
+
### Options
|
|
93
84
|
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
cacheStorageConfig: { provider: "local" },
|
|
97
|
-
clearOutputFolder: false,
|
|
98
|
-
internalCacheFolder: "node_modules/.cache/backfill",
|
|
99
|
-
logFolder: "node_modules/.cache/backfill",
|
|
100
|
-
logLevel: "info",
|
|
101
|
-
mode: "READ_WRITE",
|
|
102
|
-
name: "[name-of-package]",
|
|
103
|
-
outputGlob: ["lib/**"],
|
|
104
|
-
packageRoot: "path/to/package",
|
|
105
|
-
producePerformanceLogs: false,
|
|
106
|
-
validateOutput: false
|
|
107
|
-
}
|
|
108
|
-
```
|
|
85
|
+
Notable options:
|
|
109
86
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
`
|
|
114
|
-
|
|
87
|
+
- `outputGlob` (`string[]`): A list of glob patterns for the built/generated
|
|
88
|
+
files that should be hashed and cached, relative to the root of each package.
|
|
89
|
+
For example, if you want to cache `package-a/lib` and
|
|
90
|
+
`package-a/dist/bundles`, you'd write
|
|
91
|
+
`"outputGlob: ["lib/**/*", "dist/bundles/**/*"]`.
|
|
92
|
+
- `cacheStorageConfig`: See [set up remote cache](#set-up-remote-cache) below.
|
|
115
93
|
|
|
116
|
-
|
|
94
|
+
All options:
|
|
117
95
|
|
|
118
96
|
```ts
|
|
119
97
|
export type Config = {
|
|
98
|
+
/**
|
|
99
|
+
* Glob patterns for the built/generated files that should be hashed and
|
|
100
|
+
* cached, relative to the root of each package. (see example above)
|
|
101
|
+
*
|
|
102
|
+
* Defaults to `["lib/**"]`.
|
|
103
|
+
*/
|
|
104
|
+
outputGlob: string[];
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Cache storage provider name and potentially configuration.
|
|
108
|
+
* See below for details.
|
|
109
|
+
* @default { provider: "local" }
|
|
110
|
+
*/
|
|
120
111
|
cacheStorageConfig: CacheStorageConfig;
|
|
121
|
-
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Whether to delete the `outputGlob` files on completion.
|
|
115
|
+
* @default false
|
|
116
|
+
*/
|
|
117
|
+
clearOutput: boolean;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Absolute path to local cache folder.
|
|
121
|
+
* @default "[packageRoot]/node_modules/.cache/backfill"
|
|
122
|
+
*/
|
|
122
123
|
internalCacheFolder: string;
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Absolute path to local log folder.
|
|
127
|
+
* @default "[packageRoot]/node_modules/.cache/backfill"
|
|
128
|
+
*/
|
|
123
129
|
logFolder: string;
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Log level.
|
|
133
|
+
* @default "info"
|
|
134
|
+
*/
|
|
135
|
+
logLevel: "silly" | "verbose" | "info" | "warn" | "error" | "mute";
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Name of the package, used for logging and performance reports.
|
|
139
|
+
* Defaults to name from `package.json`.
|
|
140
|
+
*/
|
|
126
141
|
name: string;
|
|
127
|
-
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Cache operation mode.
|
|
145
|
+
* @default "READ_WRITE"
|
|
146
|
+
*/
|
|
147
|
+
mode: "READ_ONLY" | "WRITE_ONLY" | "READ_WRITE" | "PASS";
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Package root path.
|
|
151
|
+
* Defaults to searching for `package.json` in the current working directory.
|
|
152
|
+
*/
|
|
128
153
|
packageRoot: string;
|
|
129
|
-
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* If true, write performance logs to `logFolder`.
|
|
157
|
+
* @default false
|
|
158
|
+
*/
|
|
130
159
|
producePerformanceLogs: boolean;
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* If true, write the hash of the output files to the performance report.
|
|
163
|
+
* @default false
|
|
164
|
+
*/
|
|
131
165
|
validateOutput: boolean;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Compute hashes to only cache changed files.
|
|
169
|
+
* @default false
|
|
170
|
+
*/
|
|
171
|
+
incrementalCaching: boolean;
|
|
132
172
|
};
|
|
133
173
|
```
|
|
134
174
|
|
|
135
|
-
|
|
175
|
+
### Environment variables
|
|
136
176
|
|
|
137
177
|
You can override configuration with environment variables. Backfill will also
|
|
138
178
|
look for a `.env`-file in the root of your repository, and load those into the
|
|
@@ -141,16 +181,28 @@ to your remote cache, or if you want to commit a read-only cache access key in
|
|
|
141
181
|
the repo and override with a write and read access key in the PR build, for
|
|
142
182
|
instance.
|
|
143
183
|
|
|
144
|
-
|
|
145
|
-
|
|
184
|
+
- `BACKFILL_CACHE_PROVIDER`: Cache provider name
|
|
185
|
+
(`Config.cacheStorageConfig.provider`)
|
|
186
|
+
- `BACKFILL_CACHE_PROVIDER_OPTIONS`: Cache provider options (the rest of
|
|
187
|
+
`Config.cacheStorageConfig`)
|
|
188
|
+
- For other `Config` properties, `BACKFILL_*` snake case version of option, e.g.
|
|
189
|
+
`BACKFILL_LOG_LEVEL` for `Config.logLevel`
|
|
146
190
|
|
|
147
191
|
## Set up remote cache
|
|
148
192
|
|
|
149
|
-
|
|
193
|
+
Backfill supports multiple cache storage providers:
|
|
150
194
|
|
|
151
|
-
|
|
195
|
+
- Local folder (`local`), the default option
|
|
196
|
+
- [Azure blob storage (`azure-blob`)](#azure-blob-storage)
|
|
197
|
+
- [NPM package (`npm`)](#npm-package)
|
|
198
|
+
- [Skip cache locally (`local-skip`)](#skipping-cache-locally)
|
|
199
|
+
- [Custom (`custom`)](#custom-storage-providers)
|
|
200
|
+
|
|
201
|
+
### Azure Blob Storage
|
|
202
|
+
|
|
203
|
+
To cache to Microsoft Azure Blob Storage, you need to provide a connection
|
|
152
204
|
string and the container name. If you are configuring via `backfill.config.js`,
|
|
153
|
-
|
|
205
|
+
use the following syntax:
|
|
154
206
|
|
|
155
207
|
```js
|
|
156
208
|
module.exports = {
|
|
@@ -186,31 +238,22 @@ module.exports = {
|
|
|
186
238
|
|
|
187
239
|
```
|
|
188
240
|
|
|
189
|
-
####
|
|
190
|
-
|
|
191
|
-
<dl>
|
|
192
|
-
<dt>connectionString</dt>
|
|
193
|
-
<dd>retrieve this from the Azure Portal interface</dd>
|
|
241
|
+
#### `azure-blob` options
|
|
194
242
|
|
|
195
|
-
|
|
196
|
-
|
|
243
|
+
- `connectionString`: retrieve this from the Azure Portal interface
|
|
244
|
+
- `container`: the name of the blob storage container
|
|
245
|
+
- `maxSize` (optional): max size of a single package cache, in the number of
|
|
246
|
+
bytes
|
|
247
|
+
- `credential` (optional): one of the credential types from `@azure/identity`.
|
|
197
248
|
|
|
198
|
-
|
|
199
|
-
<dd>
|
|
200
|
-
max size of a single package cache, in the number of bytes
|
|
201
|
-
</dd>
|
|
202
|
-
</dl>
|
|
203
|
-
|
|
204
|
-
You can also configure Microsoft Azure Blob Storage using environment variables.
|
|
249
|
+
You can also use environment variables for configuration.
|
|
205
250
|
|
|
206
251
|
```
|
|
207
|
-
|
|
208
252
|
BACKFILL_CACHE_PROVIDER="azure-blob"
|
|
209
253
|
BACKFILL_CACHE_PROVIDER_OPTIONS='{"connectionString":"...","container":"..."}'
|
|
210
|
-
|
|
211
254
|
```
|
|
212
255
|
|
|
213
|
-
###
|
|
256
|
+
### NPM package
|
|
214
257
|
|
|
215
258
|
To cache to an NPM package you need to provide a package name and the registry
|
|
216
259
|
URL of your package feed. This feed should probably be private. If you are
|
|
@@ -274,35 +317,34 @@ storage strategy:
|
|
|
274
317
|
BACKFILL_CACHE_PROVIDER="local-skip"
|
|
275
318
|
```
|
|
276
319
|
|
|
277
|
-
|
|
320
|
+
### Custom storage providers
|
|
278
321
|
|
|
279
|
-
It is also possible to
|
|
280
|
-
|
|
322
|
+
It is also possible to use a custom storage provider. This allows ultimate
|
|
323
|
+
flexibility in how to handle cache fetching and putting.
|
|
281
324
|
|
|
282
325
|
Configure the custom cache provider this way:
|
|
283
326
|
|
|
284
327
|
```js
|
|
285
|
-
//
|
|
286
|
-
|
|
287
|
-
|
|
328
|
+
// @ts-check
|
|
329
|
+
// See the types for details of the signatures
|
|
330
|
+
/** @implements {import("backfill").ICacheStorage} */
|
|
331
|
+
class CustomStorageProvider {
|
|
332
|
+
constructor(providerOptions, logger, cwd) {
|
|
288
333
|
// do what is needed in regards to the options
|
|
289
334
|
}
|
|
290
335
|
|
|
291
|
-
async fetch(hash
|
|
336
|
+
async fetch(hash) {
|
|
292
337
|
// some fetch logic
|
|
293
338
|
}
|
|
294
339
|
|
|
295
|
-
async put(hash
|
|
340
|
+
async put(hash, filesToCache) {
|
|
296
341
|
// some putting logic
|
|
297
342
|
}
|
|
298
343
|
}
|
|
299
344
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
const CustomStorageProvider = require("./custom-storage-provider");
|
|
304
|
-
|
|
305
|
-
module.exports = {
|
|
345
|
+
// backfill.config.js
|
|
346
|
+
/** @type {Partial<import("backfill").Config>} */
|
|
347
|
+
const config = {
|
|
306
348
|
cacheStorageConfig: {
|
|
307
349
|
provider: (logger, cwd) =>
|
|
308
350
|
new CustomStorageProvider(
|
|
@@ -315,12 +357,13 @@ module.exports = {
|
|
|
315
357
|
),
|
|
316
358
|
},
|
|
317
359
|
};
|
|
360
|
+
module.exports = config;
|
|
318
361
|
```
|
|
319
362
|
|
|
320
363
|
## API
|
|
321
364
|
|
|
322
|
-
Backfill provides an API
|
|
323
|
-
|
|
365
|
+
Backfill provides an API to support more complex scenarios and performance
|
|
366
|
+
optimizations.
|
|
324
367
|
|
|
325
368
|
```js
|
|
326
369
|
const backfill = require("backfill/lib/api");
|
|
@@ -338,9 +381,8 @@ if (!fetchSuccess) {
|
|
|
338
381
|
}
|
|
339
382
|
```
|
|
340
383
|
|
|
341
|
-
## Performance
|
|
384
|
+
## Performance logs
|
|
342
385
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
`producePerformanceLogs: true` in `backfill.config.js`.
|
|
386
|
+
Backfill provides the option to output a JSON log file after each run with
|
|
387
|
+
performance metrics. Enable this by setting `producePerformanceLogs: true` in
|
|
388
|
+
`backfill.config.js`.
|
package/lib/api.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Writable } from "stream";
|
|
3
|
-
import { Config } from "backfill-config";
|
|
4
|
-
import { Logger, LogLevel } from "backfill-logger";
|
|
2
|
+
import type { Writable } from "stream";
|
|
3
|
+
import { type Config, type ICacheStorage } from "backfill-config";
|
|
4
|
+
import { type Logger, type LogLevel } from "backfill-logger";
|
|
5
|
+
export type { Config, ICacheStorage };
|
|
5
6
|
export declare function makeLogger(logLevel: LogLevel, stdout: Writable, stderr: Writable): Logger;
|
|
6
7
|
export declare function computeHash(cwd: string, logger: Logger, hashSalt?: string, config?: Pick<Config, "packageRoot">): Promise<string>;
|
|
7
8
|
export declare function computeHashOfOutput(cwd: string, logger: Logger, config?: Pick<Config, "packageRoot">): Promise<string>;
|
package/lib/api.js
CHANGED
|
@@ -62,4 +62,4 @@ async function put(cwd, hash, logger, config) {
|
|
|
62
62
|
await cacheStorage.put(hash, outputGlob);
|
|
63
63
|
}
|
|
64
64
|
exports.put = put;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQkFBeUI7QUFFekIscURBQWdGO0FBQ2hGLHFEQUt5QjtBQUN6QixxREFBeUM7QUFDekMsbURBQXlEO0FBSXpELFNBQVMsV0FBVyxDQUFDLE1BQWdCLEVBQUUsTUFBZ0I7SUFDckQsT0FBTztRQUNMLElBQUksQ0FBQyxHQUFHLElBQWM7WUFDcEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQUcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxJQUFjO1lBQ3BCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLEdBQUcsSUFBYztZQUNyQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBRyxDQUFDLENBQUM7UUFDckMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsVUFBVSxDQUN4QixRQUFrQixFQUNsQixNQUFnQixFQUNoQixNQUFnQjtJQUVoQixPQUFPLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFORCxnQ0FNQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQy9CLEdBQVcsRUFDWCxNQUFjLEVBQ2QsUUFBaUIsRUFDakIsTUFBb0M7SUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBZEQsa0NBY0M7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLEdBQVcsRUFDWCxNQUFjLEVBQ2QsTUFBb0M7SUFFcEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUFNLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRCxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFaRCxrREFZQztBQUVNLEtBQUssVUFBVSxLQUFLLENBQ3pCLEdBQVcsRUFDWCxJQUFZLEVBQ1osTUFBYyxFQUNkLE1BR0M7SUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxHQUFHLElBQUEsOEJBQVksRUFBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDcEM7SUFDRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsR0FDbkUsTUFBTSxDQUFDO0lBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBQSx3Q0FBdUIsRUFDMUMsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixNQUFNLEVBQ04sR0FBRyxFQUNILGtCQUFrQixDQUNuQixDQUFDO0lBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQXZCRCxzQkF1QkM7QUFFTSxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFXLEVBQ1gsSUFBWSxFQUNaLE1BQWMsRUFDZCxNQU1DO0lBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxJQUFBLDhCQUFZLEVBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDO0lBQ0QsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGtCQUFrQixHQUNuQixHQUFHLE1BQU0sQ0FBQztJQUNYLE1BQU0sWUFBWSxHQUFHLElBQUEsd0NBQXVCLEVBQzFDLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLEdBQUcsRUFDSCxrQkFBa0IsQ0FDbkIsQ0FBQztJQUNGLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQTdCRCxrQkE2QkMifQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Logger } from "backfill-logger";
|
|
2
|
-
import { Config } from "backfill-config";
|
|
3
|
-
export { createDefaultConfig } from "backfill-config";
|
|
1
|
+
import { type Logger } from "backfill-logger";
|
|
2
|
+
import { type Config } from "backfill-config";
|
|
4
3
|
import { BuildCommand } from "./commandRunner";
|
|
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
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.js
CHANGED
|
@@ -4,16 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.main = exports.backfill = exports.createDefaultConfig = void 0;
|
|
7
|
-
const yargs_1 = __importDefault(require("yargs"));
|
|
8
7
|
const backfill_utils_dotenv_1 = require("backfill-utils-dotenv");
|
|
9
8
|
const backfill_logger_1 = require("backfill-logger");
|
|
10
9
|
const backfill_config_1 = require("backfill-config");
|
|
11
|
-
var backfill_config_2 = require("backfill-config");
|
|
12
|
-
Object.defineProperty(exports, "createDefaultConfig", { enumerable: true, get: function () { return backfill_config_2.createDefaultConfig; } });
|
|
13
10
|
const backfill_cache_1 = require("backfill-cache");
|
|
11
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
14
12
|
const commandRunner_1 = require("./commandRunner");
|
|
15
13
|
const audit_1 = require("./audit");
|
|
16
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; } });
|
|
17
17
|
// Load environment variables
|
|
18
18
|
(0, backfill_utils_dotenv_1.loadDotenv)();
|
|
19
19
|
async function backfill(config, buildCommand, hashSalt, logger) {
|
|
@@ -111,4 +111,4 @@ async function main() {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
exports.main = main;
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsaUVBQW1EO0FBQ25ELHFEQUEwRDtBQUMxRCxxREFBNEQ7QUFDNUQsbURBQWtEO0FBQ2xELGtEQUEwQjtBQUMxQixtREFJeUI7QUFDekIsbUNBQTBEO0FBQzFELCtCQUtlO0FBRWYsbURBSXlCO0FBSHZCLHNIQUFBLG1CQUFtQixPQUFBO0FBS3JCLDZCQUE2QjtBQUM3QixJQUFBLGtDQUFVLEdBQUUsQ0FBQztBQUVOLEtBQUssVUFBVSxRQUFRLENBQzVCLE1BQWMsRUFDZCxZQUEwQixFQUMxQixRQUFnQixFQUNoQixNQUFjO0lBRWQsTUFBTSxFQUNKLGtCQUFrQixFQUNsQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLGNBQWMsR0FDZixHQUFHLE1BQU0sQ0FBQztJQUVYLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxNQUFNLENBQUMsZ0JBQWdCLENBQ3JCLElBQUEsaUNBQWdCLEVBQUMsa0JBQWtCLENBQUM7UUFDbEMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSx5QkFBeUI7UUFDdEQsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDaEMsQ0FBQztJQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FDbkMsTUFBTSxJQUFBLGlCQUFXLEVBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FDbkMsTUFBTSxJ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backfill",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.1",
|
|
4
4
|
"description": "Backfill CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Benjamin Weggersen <bewegger@microsoft.com>",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"anymatch": "^3.0.3",
|
|
23
|
-
"backfill-cache": "^5.
|
|
24
|
-
"backfill-config": "^6.
|
|
25
|
-
"backfill-hasher": "^6.6.
|
|
26
|
-
"backfill-logger": "^5.
|
|
27
|
-
"backfill-utils-dotenv": "^5.3.
|
|
23
|
+
"backfill-cache": "^5.11.1",
|
|
24
|
+
"backfill-config": "^6.7.1",
|
|
25
|
+
"backfill-hasher": "^6.6.3",
|
|
26
|
+
"backfill-logger": "^5.4.0",
|
|
27
|
+
"backfill-utils-dotenv": "^5.3.1",
|
|
28
28
|
"chokidar": "^3.2.1",
|
|
29
29
|
"execa": "^5.0.0",
|
|
30
30
|
"find-up": "^5.0.0",
|
|
@@ -34,15 +34,15 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/fs-extra": "^9.0.13",
|
|
37
|
-
"@types/jest": "^
|
|
37
|
+
"@types/jest": "^30.0.0",
|
|
38
38
|
"@types/node": "^14.18.36",
|
|
39
39
|
"@types/yargs": "^15.0.15",
|
|
40
40
|
"backfill-utils-test": "*",
|
|
41
41
|
"backfill-utils-tsconfig": "*",
|
|
42
|
-
"jest": "^
|
|
42
|
+
"jest": "^30.0.0",
|
|
43
43
|
"ts-jest": "^29.0.0",
|
|
44
44
|
"ts-mockito": "^2.6.1",
|
|
45
|
-
"typescript": "~4.
|
|
45
|
+
"typescript": "~4.7.0"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
48
|
"node": ">=14"
|