s3-ship 0.1.0
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/LICENSE +21 -0
- package/README.md +196 -0
- package/dist/aws/cloudfront-client.d.ts +10 -0
- package/dist/aws/cloudfront-client.d.ts.map +1 -0
- package/dist/aws/s3-client.d.ts +11 -0
- package/dist/aws/s3-client.d.ts.map +1 -0
- package/dist/cli/init.d.ts +11 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/run.d.ts +6 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +1000 -0
- package/dist/config/define.d.ts +3 -0
- package/dist/config/define.d.ts.map +1 -0
- package/dist/config/load.d.ts +10 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/merge.d.ts +28 -0
- package/dist/config/merge.d.ts.map +1 -0
- package/dist/config/schema.d.ts +348 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/deploy.d.ts +32 -0
- package/dist/deploy.d.ts.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +707 -0
- package/dist/reporter.d.ts +8 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/stages/delete-stale.d.ts +10 -0
- package/dist/stages/delete-stale.d.ts.map +1 -0
- package/dist/stages/diff.d.ts +34 -0
- package/dist/stages/diff.d.ts.map +1 -0
- package/dist/stages/execute.d.ts +28 -0
- package/dist/stages/execute.d.ts.map +1 -0
- package/dist/stages/invalidate.d.ts +8 -0
- package/dist/stages/invalidate.d.ts.map +1 -0
- package/dist/stages/list-remote.d.ts +13 -0
- package/dist/stages/list-remote.d.ts.map +1 -0
- package/dist/stages/redirects.d.ts +11 -0
- package/dist/stages/redirects.d.ts.map +1 -0
- package/dist/stages/scan.d.ts +12 -0
- package/dist/stages/scan.d.ts.map +1 -0
- package/dist/stages/upload.d.ts +12 -0
- package/dist/stages/upload.d.ts.map +1 -0
- package/dist/util/content-type.d.ts +2 -0
- package/dist/util/content-type.d.ts.map +1 -0
- package/dist/util/glob-match.d.ts +3 -0
- package/dist/util/glob-match.d.ts.map +1 -0
- package/dist/util/parallel-limit.d.ts +10 -0
- package/dist/util/parallel-limit.d.ts.map +1 -0
- package/dist/util/retry.d.ts +6 -0
- package/dist/util/retry.d.ts.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAI1D,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AA0BD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAqDhF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAuBzF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { S3Like } from '../aws/s3-client.js';
|
|
2
|
+
import { type RetryOptions } from '../util/retry.js';
|
|
3
|
+
export interface DeleteStaleInput {
|
|
4
|
+
client: S3Like;
|
|
5
|
+
bucket: string;
|
|
6
|
+
keys: string[];
|
|
7
|
+
retry: RetryOptions;
|
|
8
|
+
}
|
|
9
|
+
export declare function deleteStale(input: DeleteStaleInput): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=delete-stale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-stale.d.ts","sourceRoot":"","sources":["../../src/stages/delete-stale.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,kBAAkB,CAAA;AAI/D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { RedirectRule } from '../config/schema.js';
|
|
2
|
+
import type { RemoteObject } from './list-remote.js';
|
|
3
|
+
import type { LocalFile } from './scan.js';
|
|
4
|
+
export interface PlannedFile extends LocalFile {
|
|
5
|
+
key: string;
|
|
6
|
+
}
|
|
7
|
+
export interface PlannedRedirect extends RedirectRule {
|
|
8
|
+
fullKey: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ResolvedCloudFront {
|
|
11
|
+
distributionId: string;
|
|
12
|
+
invalidationPaths: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface DiffInput {
|
|
15
|
+
bucket: string;
|
|
16
|
+
target: string;
|
|
17
|
+
localFiles: LocalFile[];
|
|
18
|
+
remoteObjects: RemoteObject[];
|
|
19
|
+
redirects: RedirectRule[];
|
|
20
|
+
syncDelete: boolean;
|
|
21
|
+
cloudfront?: ResolvedCloudFront;
|
|
22
|
+
}
|
|
23
|
+
export interface UploadPlan {
|
|
24
|
+
bucket: string;
|
|
25
|
+
target: string;
|
|
26
|
+
toUpload: PlannedFile[];
|
|
27
|
+
toUpdate: PlannedFile[];
|
|
28
|
+
toSkip: PlannedFile[];
|
|
29
|
+
toDelete: string[];
|
|
30
|
+
redirects: PlannedRedirect[];
|
|
31
|
+
cloudfront?: ResolvedCloudFront;
|
|
32
|
+
}
|
|
33
|
+
export declare function computeDiff(input: DiffInput): UploadPlan;
|
|
34
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/stages/diff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,SAAS,EAAE,YAAY,EAAE,CAAA;IACzB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,UAAU,CAAC,EAAE,kBAAkB,CAAA;CAChC;AAUD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CA0DxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CloudFrontLike } from '../aws/cloudfront-client.js';
|
|
2
|
+
import type { S3Like } from '../aws/s3-client.js';
|
|
3
|
+
import type { RetryOptions } from '../util/retry.js';
|
|
4
|
+
import type { UploadPlan } from './diff.js';
|
|
5
|
+
export interface ExecuteInput {
|
|
6
|
+
plan: UploadPlan;
|
|
7
|
+
s3Client: S3Like;
|
|
8
|
+
cfClient?: CloudFrontLike;
|
|
9
|
+
cacheControlFor: (key: string) => string | undefined;
|
|
10
|
+
retry: RetryOptions;
|
|
11
|
+
concurrency: number;
|
|
12
|
+
skipInvalidate?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ExecutionFailure {
|
|
15
|
+
key: string;
|
|
16
|
+
error: unknown;
|
|
17
|
+
}
|
|
18
|
+
export interface ExecutionReport {
|
|
19
|
+
uploaded: number;
|
|
20
|
+
updated: number;
|
|
21
|
+
skipped: number;
|
|
22
|
+
deleted: number;
|
|
23
|
+
redirected: number;
|
|
24
|
+
invalidationId?: string;
|
|
25
|
+
failures: ExecutionFailure[];
|
|
26
|
+
}
|
|
27
|
+
export declare function executePlan(input: ExecuteInput): Promise<ExecutionReport>;
|
|
28
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/stages/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,WAAW,CAAA;AAKxD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,KAAK,EAAE,YAAY,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAsBD,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CA6D/E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CloudFrontLike } from '../aws/cloudfront-client.js';
|
|
2
|
+
export interface InvalidateInput {
|
|
3
|
+
client: CloudFrontLike;
|
|
4
|
+
distributionId: string;
|
|
5
|
+
paths: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare function invalidateCloudFront(input: InvalidateInput): Promise<string | undefined>;
|
|
8
|
+
//# sourceMappingURL=invalidate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidate.d.ts","sourceRoot":"","sources":["../../src/stages/invalidate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc9F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type S3Like } from '../aws/s3-client.js';
|
|
2
|
+
export interface ListRemoteInput {
|
|
3
|
+
client: S3Like;
|
|
4
|
+
bucket: string;
|
|
5
|
+
target: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RemoteObject {
|
|
8
|
+
key: string;
|
|
9
|
+
size: number;
|
|
10
|
+
etag: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function listRemoteFiles(input: ListRemoteInput): Promise<RemoteObject[]>;
|
|
13
|
+
//# sourceMappingURL=list-remote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-remote.d.ts","sourceRoot":"","sources":["../../src/stages/list-remote.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAyB,MAAM,qBAAqB,CAAA;AAExE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAwBrF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { S3Like } from '../aws/s3-client.js';
|
|
2
|
+
import { type RetryOptions } from '../util/retry.js';
|
|
3
|
+
import type { PlannedRedirect } from './diff.js';
|
|
4
|
+
export interface PutRedirectInput {
|
|
5
|
+
client: S3Like;
|
|
6
|
+
bucket: string;
|
|
7
|
+
redirect: PlannedRedirect;
|
|
8
|
+
retry: RetryOptions;
|
|
9
|
+
}
|
|
10
|
+
export declare function putRedirect(input: PutRedirectInput): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=redirects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redirects.d.ts","sourceRoot":"","sources":["../../src/stages/redirects.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface ScanInput {
|
|
2
|
+
source: string;
|
|
3
|
+
ignore: string[];
|
|
4
|
+
}
|
|
5
|
+
export interface LocalFile {
|
|
6
|
+
key: string;
|
|
7
|
+
localPath: string;
|
|
8
|
+
size: number;
|
|
9
|
+
hash: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function scanLocalFiles(input: ScanInput): Promise<LocalFile[]>;
|
|
12
|
+
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/stages/scan.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAID,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA2B3E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { S3Like } from '../aws/s3-client.js';
|
|
2
|
+
import { type RetryOptions } from '../util/retry.js';
|
|
3
|
+
import type { PlannedFile } from './diff.js';
|
|
4
|
+
export interface UploadInput {
|
|
5
|
+
client: S3Like;
|
|
6
|
+
bucket: string;
|
|
7
|
+
file: PlannedFile;
|
|
8
|
+
cacheControlFor: (key: string) => string | undefined;
|
|
9
|
+
retry: RetryOptions;
|
|
10
|
+
}
|
|
11
|
+
export declare function uploadFile(input: UploadInput): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/stages/upload.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,kBAAkB,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,WAAW,CAAA;IACjB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACpD,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,wBAAsB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAelE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type.d.ts","sourceRoot":"","sources":["../../src/util/content-type.ts"],"names":[],"mappings":"AAsCA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glob-match.d.ts","sourceRoot":"","sources":["../../src/util/glob-match.ts"],"names":[],"mappings":"AA6BA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAEvE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAE/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function parallelLimit<T, R>(items: T[], limit: number, worker: (item: T, index: number) => Promise<R>): Promise<Array<{
|
|
2
|
+
ok: true;
|
|
3
|
+
value: R;
|
|
4
|
+
item: T;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
error: unknown;
|
|
8
|
+
item: T;
|
|
9
|
+
}>>;
|
|
10
|
+
//# sourceMappingURL=parallel-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parallel-limit.d.ts","sourceRoot":"","sources":["../../src/util/parallel-limit.ts"],"names":[],"mappings":"AAAA,wBAAsB,aAAa,CAAC,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC,CAsB1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/util/retry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAa1F"}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "s3-ship",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Deploy static sites to AWS S3 with redirects, CloudFront invalidation, and multi-environment support",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"s3-ship": "./dist/cli.js"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "bun build src/cli.ts src/index.ts --outdir dist --target node --format esm --external @aws-sdk/* --external cac --external yaml --external zod --external tinyglobby && bun run build:types",
|
|
25
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
26
|
+
"test": "bun test",
|
|
27
|
+
"test:watch": "bun test --watch",
|
|
28
|
+
"test:coverage": "bun test --coverage",
|
|
29
|
+
"typecheck": "tsc --noEmit",
|
|
30
|
+
"lint": "biome check src tests",
|
|
31
|
+
"lint:fix": "biome check --write src tests",
|
|
32
|
+
"prepublishOnly": "bun run typecheck && bun test && bun run build"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"aws",
|
|
36
|
+
"s3",
|
|
37
|
+
"deploy",
|
|
38
|
+
"cli",
|
|
39
|
+
"cloudfront",
|
|
40
|
+
"static-site",
|
|
41
|
+
"redirect"
|
|
42
|
+
],
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"repository": {
|
|
45
|
+
"type": "git",
|
|
46
|
+
"url": "git+https://github.com/yfxie/s3-ship.git"
|
|
47
|
+
},
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=18"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@aws-sdk/client-cloudfront": "^3.620.0",
|
|
53
|
+
"@aws-sdk/client-s3": "^3.620.0",
|
|
54
|
+
"@aws-sdk/credential-providers": "^3.620.0",
|
|
55
|
+
"cac": "^6.7.14",
|
|
56
|
+
"tinyglobby": "^0.2.10",
|
|
57
|
+
"yaml": "^2.9.0",
|
|
58
|
+
"zod": "^3.23.8"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@biomejs/biome": "^1.9.4",
|
|
62
|
+
"@types/bun": "^1.1.13",
|
|
63
|
+
"@types/node": "^22.10.0",
|
|
64
|
+
"typescript": "^5.7.2"
|
|
65
|
+
}
|
|
66
|
+
}
|