@ms-cloudpack/remote-cache 0.0.1 → 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/lib/Task.d.ts +6 -0
- package/lib/Task.d.ts.map +1 -0
- package/lib/Task.js +2 -0
- package/lib/Task.js.map +1 -0
- package/lib/createDownloadTask.d.ts +5 -0
- package/lib/createDownloadTask.d.ts.map +1 -0
- package/lib/createDownloadTask.js +22 -0
- package/lib/createDownloadTask.js.map +1 -0
- package/lib/createRemoteCacheClient.d.ts +11 -0
- package/lib/createRemoteCacheClient.d.ts.map +1 -0
- package/lib/createRemoteCacheClient.js +16 -0
- package/lib/createRemoteCacheClient.js.map +1 -0
- package/lib/createUploadTask.d.ts +5 -0
- package/lib/createUploadTask.d.ts.map +1 -0
- package/lib/createUploadTask.js +18 -0
- package/lib/createUploadTask.js.map +1 -0
- package/lib/getPackagesToSync.d.ts +9 -0
- package/lib/getPackagesToSync.d.ts.map +1 -0
- package/lib/getPackagesToSync.js +18 -0
- package/lib/getPackagesToSync.js.map +1 -0
- package/lib/index.d.ts +3 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/performance/markers.d.ts +13 -0
- package/lib/performance/markers.d.ts.map +1 -0
- package/lib/performance/markers.js +15 -0
- package/lib/performance/markers.js.map +1 -0
- package/lib/syncToLocal.d.ts +3 -0
- package/lib/syncToLocal.d.ts.map +1 -0
- package/lib/syncToLocal.js +21 -0
- package/lib/syncToLocal.js.map +1 -0
- package/lib/syncToRemote.d.ts +9 -0
- package/lib/syncToRemote.d.ts.map +1 -0
- package/lib/syncToRemote.js +27 -0
- package/lib/syncToRemote.js.map +1 -0
- package/lib/types/SyncContext.d.ts +24 -0
- package/lib/types/SyncContext.d.ts.map +1 -0
- package/lib/types/SyncContext.js +2 -0
- package/lib/types/SyncContext.js.map +1 -0
- package/package.json +4 -1
package/lib/Task.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../src/Task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;CAChD"}
|
package/lib/Task.js
ADDED
package/lib/Task.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Task.js","sourceRoot":"","sources":["../src/Task.ts"],"names":[],"mappings":"","sourcesContent":["import type { TaskReporterTaskResult } from '@ms-cloudpack/task-reporter';\n\nexport interface Task {\n name: string;\n execute: () => Promise<TaskReporterTaskResult>;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RemoteCacheClient } from './RemoteCacheClient.js';
|
|
2
|
+
import { type PackageToSync } from './getPackagesToSync.js';
|
|
3
|
+
import type { Task } from './Task.js';
|
|
4
|
+
export declare function createDownloadTask(client: RemoteCacheClient, { folderName, packageName, path, version }: PackageToSync): Task;
|
|
5
|
+
//# sourceMappingURL=createDownloadTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDownloadTask.d.ts","sourceRoot":"","sources":["../src/createDownloadTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAItC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,GACxD,IAAI,CAmBN"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {} from './getPackagesToSync.js';
|
|
2
|
+
import { existsSync } from 'fs';
|
|
3
|
+
import { bulletedList } from '@ms-cloudpack/task-reporter';
|
|
4
|
+
export function createDownloadTask(client, { folderName, packageName, path, version }) {
|
|
5
|
+
return {
|
|
6
|
+
name: `Downloading ${packageName}@${version}`,
|
|
7
|
+
execute: async () => {
|
|
8
|
+
if (existsSync(path)) {
|
|
9
|
+
return { status: 'skip', message: 'Package is already exist in the local cache.' };
|
|
10
|
+
}
|
|
11
|
+
const result = await client.downloadFolder(folderName, path);
|
|
12
|
+
if (!result) {
|
|
13
|
+
return { status: 'skip', message: `not found in the remote cache.` };
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
status: 'complete',
|
|
17
|
+
details: bulletedList([`FolderName: ${folderName}`, `Path: ${path}`, `Version: ${version}`]),
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=createDownloadTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDownloadTask.js","sourceRoot":"","sources":["../src/createDownloadTask.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAiB;IAEzD,OAAO;QACL,IAAI,EAAE,eAAe,WAAW,IAAI,OAAO,EAAE;QAC7C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;aACpF;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;aACtE;YAED,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,YAAY,CAAC,CAAC,eAAe,UAAU,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;aAC7F,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { RemoteCacheClient } from './RemoteCacheClient.js';\nimport { type PackageToSync } from './getPackagesToSync.js';\nimport type { Task } from './Task.js';\nimport { existsSync } from 'fs';\nimport { bulletedList } from '@ms-cloudpack/task-reporter';\n\nexport function createDownloadTask(\n client: RemoteCacheClient,\n { folderName, packageName, path, version }: PackageToSync,\n): Task {\n return {\n name: `Downloading ${packageName}@${version}`,\n execute: async () => {\n if (existsSync(path)) {\n return { status: 'skip', message: 'Package is already exist in the local cache.' };\n }\n\n const result = await client.downloadFolder(folderName, path);\n if (!result) {\n return { status: 'skip', message: `not found in the remote cache.` };\n }\n\n return {\n status: 'complete',\n details: bulletedList([`FolderName: ${folderName}`, `Path: ${path}`, `Version: ${version}`]),\n };\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RemoteCacheClient } from './RemoteCacheClient.js';
|
|
2
|
+
import type { SyncContext } from './types/SyncContext.js';
|
|
3
|
+
export interface ClientOptions {
|
|
4
|
+
permissions: {
|
|
5
|
+
read: boolean;
|
|
6
|
+
write: boolean;
|
|
7
|
+
};
|
|
8
|
+
config: SyncContext['config'];
|
|
9
|
+
}
|
|
10
|
+
export declare function createRemoteCacheClient({ config, permissions }: ClientOptions): Promise<RemoteCacheClient>;
|
|
11
|
+
//# sourceMappingURL=createRemoteCacheClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRemoteCacheClient.d.ts","sourceRoot":"","sources":["../src/createRemoteCacheClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CAC/B;AAED,wBAAsB,uBAAuB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,8BAenF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RemoteCacheClient } from './RemoteCacheClient.js';
|
|
2
|
+
import { getAuthenticatedConnectionString } from './authentication/getAuthenticatedConnectionString.js';
|
|
3
|
+
export async function createRemoteCacheClient({ config, permissions }) {
|
|
4
|
+
const { container, storageAccount } = config;
|
|
5
|
+
const connectionString = await getAuthenticatedConnectionString({
|
|
6
|
+
storageAccount,
|
|
7
|
+
container,
|
|
8
|
+
permissions,
|
|
9
|
+
});
|
|
10
|
+
const client = new RemoteCacheClient({
|
|
11
|
+
container,
|
|
12
|
+
connectionString,
|
|
13
|
+
});
|
|
14
|
+
return client;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=createRemoteCacheClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRemoteCacheClient.js","sourceRoot":"","sources":["../src/createRemoteCacheClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAWxG,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAiB;IAClF,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAE7C,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAAC;QAC9D,cAAc;QACd,SAAS;QACT,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC;QACnC,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { RemoteCacheClient } from './RemoteCacheClient.js';\nimport { getAuthenticatedConnectionString } from './authentication/getAuthenticatedConnectionString.js';\nimport type { SyncContext } from './types/SyncContext.js';\n\nexport interface ClientOptions {\n permissions: {\n read: boolean;\n write: boolean;\n };\n config: SyncContext['config'];\n}\n\nexport async function createRemoteCacheClient({ config, permissions }: ClientOptions) {\n const { container, storageAccount } = config;\n\n const connectionString = await getAuthenticatedConnectionString({\n storageAccount,\n container,\n permissions,\n });\n\n const client = new RemoteCacheClient({\n container,\n connectionString,\n });\n\n return client;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RemoteCacheClient } from './RemoteCacheClient.js';
|
|
2
|
+
import type { PackageToSync } from './getPackagesToSync.js';
|
|
3
|
+
import type { Task } from './Task.js';
|
|
4
|
+
export declare function createUploadTask(client: RemoteCacheClient, { folderName, packageName, path, version }: PackageToSync): Task;
|
|
5
|
+
//# sourceMappingURL=createUploadTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createUploadTask.d.ts","sourceRoot":"","sources":["../src/createUploadTask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAItC,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,aAAa,GACxD,IAAI,CAeN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { bulletedList } from '@ms-cloudpack/task-reporter';
|
|
3
|
+
export function createUploadTask(client, { folderName, packageName, path, version }) {
|
|
4
|
+
return {
|
|
5
|
+
name: `Uploading ${packageName}@${version}`,
|
|
6
|
+
execute: async () => {
|
|
7
|
+
if (!existsSync(path)) {
|
|
8
|
+
return { status: 'skip', message: `Not found in the local cache.` };
|
|
9
|
+
}
|
|
10
|
+
await client.uploadFolder(folderName, path);
|
|
11
|
+
return {
|
|
12
|
+
status: 'complete',
|
|
13
|
+
details: bulletedList([`FolderName: ${folderName}`, `Path: ${path}`, `Version: ${version}`]),
|
|
14
|
+
};
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=createUploadTask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createUploadTask.js","sourceRoot":"","sources":["../src/createUploadTask.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,UAAU,gBAAgB,CAC9B,MAAyB,EACzB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAiB;IAEzD,OAAO;QACL,IAAI,EAAE,aAAa,WAAW,IAAI,OAAO,EAAE;QAC3C,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;aACrE;YAED,MAAM,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO;gBACL,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,YAAY,CAAC,CAAC,eAAe,UAAU,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,YAAY,OAAO,EAAE,CAAC,CAAC;aAC7F,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import type { RemoteCacheClient } from './RemoteCacheClient.js';\nimport type { PackageToSync } from './getPackagesToSync.js';\nimport type { Task } from './Task.js';\nimport { existsSync } from 'fs';\nimport { bulletedList } from '@ms-cloudpack/task-reporter';\n\nexport function createUploadTask(\n client: RemoteCacheClient,\n { folderName, packageName, path, version }: PackageToSync,\n): Task {\n return {\n name: `Uploading ${packageName}@${version}`,\n execute: async () => {\n if (!existsSync(path)) {\n return { status: 'skip', message: `Not found in the local cache.` };\n }\n\n await client.uploadFolder(folderName, path);\n return {\n status: 'complete',\n details: bulletedList([`FolderName: ${folderName}`, `Path: ${path}`, `Version: ${version}`]),\n };\n },\n };\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SyncContext } from './index.js';
|
|
2
|
+
export interface PackageToSync {
|
|
3
|
+
path: string;
|
|
4
|
+
folderName: string;
|
|
5
|
+
packageName: string;
|
|
6
|
+
version: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function getPackagesToSync({ packages, getBundleDetails, resolveMap, }: SyncContext): Promise<PackageToSync[]>;
|
|
9
|
+
//# sourceMappingURL=getPackagesToSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPackagesToSync.d.ts","sourceRoot":"","sources":["../src/getPackagesToSync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CAAC,EACtC,QAAQ,EACR,gBAAgB,EAChB,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAoBxC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { findResolveMapEntry } from '@ms-cloudpack/package-utilities';
|
|
2
|
+
export async function getPackagesToSync({ packages, getBundleDetails, resolveMap, }) {
|
|
3
|
+
const list = [];
|
|
4
|
+
const packageEntries = Object.keys(resolveMap)
|
|
5
|
+
.map((packageName) => findResolveMapEntry({
|
|
6
|
+
packageName,
|
|
7
|
+
resolveMap,
|
|
8
|
+
}))
|
|
9
|
+
.filter((item) => item);
|
|
10
|
+
for (const { path: packagePath, name, version } of packageEntries) {
|
|
11
|
+
const details = await getBundleDetails({ packagePath }, { packages });
|
|
12
|
+
if (details.isExternal) {
|
|
13
|
+
list.push({ ...details.outputLocation, packageName: name, version });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return list;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=getPackagesToSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPackagesToSync.js","sourceRoot":"","sources":["../src/getPackagesToSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iCAAiC,CAAC;AAU5F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,QAAQ,EACR,gBAAgB,EAChB,UAAU,GACE;IACZ,MAAM,IAAI,GAAoB,EAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;SAC3C,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACnB,mBAAmB,CAAC;QAClB,WAAW;QACX,UAAU;KACX,CAAC,CACH;SACA,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAsB,CAAC;IAE/C,KAAK,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE;QACjE,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;SACtE;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { findResolveMapEntry, type ResolveMapEntry } from '@ms-cloudpack/package-utilities';\nimport type { SyncContext } from './index.js';\n\nexport interface PackageToSync {\n path: string;\n folderName: string;\n packageName: string;\n version: string;\n}\n\nexport async function getPackagesToSync({\n packages,\n getBundleDetails,\n resolveMap,\n}: SyncContext): Promise<PackageToSync[]> {\n const list: PackageToSync[] = [];\n\n const packageEntries = Object.keys(resolveMap)\n .map((packageName) =>\n findResolveMapEntry({\n packageName,\n resolveMap,\n }),\n )\n .filter((item) => item) as ResolveMapEntry[];\n\n for (const { path: packagePath, name, version } of packageEntries) {\n const details = await getBundleDetails({ packagePath }, { packages });\n if (details.isExternal) {\n list.push({ ...details.outputLocation, packageName: name, version });\n }\n }\n\n return list;\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
4
|
-
export type { RemoteCacheClientOptions } from './types/RemoteCacheClientOptions.js';
|
|
1
|
+
export { syncToLocal } from './syncToLocal.js';
|
|
2
|
+
export { syncToRemote } from './syncToRemote.js';
|
|
3
|
+
export type { SyncContext } from './types/SyncContext.js';
|
|
5
4
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { syncToLocal } from './syncToLocal.js';
|
|
2
|
+
export { syncToRemote } from './syncToRemote.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { syncToLocal } from './syncToLocal.js';\nexport { syncToRemote } from './syncToRemote.js';\n\nexport type { SyncContext } from './types/SyncContext.js';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marks the start of the sync download/upload operations.
|
|
3
|
+
*/
|
|
4
|
+
export declare const PerfMarkerSyncStart = "SYNC_START";
|
|
5
|
+
/**
|
|
6
|
+
* Measures the time it takes to complete the download sync operation.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PerfMeasurementSyncDownload = "SYNC_DOWNLOAD";
|
|
9
|
+
/**
|
|
10
|
+
* Measures the time it takes to complete the upload sync operation.
|
|
11
|
+
*/
|
|
12
|
+
export declare const PerfMeasurementSyncUpload = "SYNC_UPLOAD";
|
|
13
|
+
//# sourceMappingURL=markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../src/performance/markers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAIhD;;GAEG;AACH,eAAO,MAAM,2BAA2B,kBAAkB,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,yBAAyB,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Markers
|
|
2
|
+
/**
|
|
3
|
+
* Marks the start of the sync download/upload operations.
|
|
4
|
+
*/
|
|
5
|
+
export const PerfMarkerSyncStart = 'SYNC_START';
|
|
6
|
+
// Measurements
|
|
7
|
+
/**
|
|
8
|
+
* Measures the time it takes to complete the download sync operation.
|
|
9
|
+
*/
|
|
10
|
+
export const PerfMeasurementSyncDownload = 'SYNC_DOWNLOAD';
|
|
11
|
+
/**
|
|
12
|
+
* Measures the time it takes to complete the upload sync operation.
|
|
13
|
+
*/
|
|
14
|
+
export const PerfMeasurementSyncUpload = 'SYNC_UPLOAD';
|
|
15
|
+
//# sourceMappingURL=markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markers.js","sourceRoot":"","sources":["../../src/performance/markers.ts"],"names":[],"mappings":"AAAA,UAAU;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAEhD,eAAe;AAEf;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,eAAe,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,aAAa,CAAC","sourcesContent":["// Markers\n\n/**\n * Marks the start of the sync download/upload operations.\n */\nexport const PerfMarkerSyncStart = 'SYNC_START';\n\n// Measurements\n\n/**\n * Measures the time it takes to complete the download sync operation.\n */\nexport const PerfMeasurementSyncDownload = 'SYNC_DOWNLOAD';\n\n/**\n * Measures the time it takes to complete the upload sync operation.\n */\nexport const PerfMeasurementSyncUpload = 'SYNC_UPLOAD';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncToLocal.d.ts","sourceRoot":"","sources":["../src/syncToLocal.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAmBrD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { getPackagesToSync } from './getPackagesToSync.js';
|
|
2
|
+
import { createDownloadTask } from './createDownloadTask.js';
|
|
3
|
+
import { createRemoteCacheClient } from './createRemoteCacheClient.js';
|
|
4
|
+
import { performance } from 'perf_hooks';
|
|
5
|
+
import { PerfMarkerSyncStart, PerfMeasurementSyncDownload } from './performance/markers.js';
|
|
6
|
+
export async function syncToLocal(context) {
|
|
7
|
+
const { config, reporter } = context;
|
|
8
|
+
performance.mark(PerfMarkerSyncStart);
|
|
9
|
+
const client = await createRemoteCacheClient({ config, permissions: { read: true, write: false } });
|
|
10
|
+
if (!client) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const list = await getPackagesToSync(context);
|
|
14
|
+
const downloads = list.map((item) => {
|
|
15
|
+
const { name, execute } = createDownloadTask(client, item);
|
|
16
|
+
return reporter.runTask(name, execute);
|
|
17
|
+
});
|
|
18
|
+
await Promise.all(downloads);
|
|
19
|
+
performance.measure(PerfMeasurementSyncDownload, PerfMarkerSyncStart);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=syncToLocal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncToLocal.js","sourceRoot":"","sources":["../src/syncToLocal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACrC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAE7B,WAAW,CAAC,OAAO,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,CAAC;AACxE,CAAC","sourcesContent":["import { getPackagesToSync } from './getPackagesToSync.js';\nimport { createDownloadTask } from './createDownloadTask.js';\nimport type { SyncContext } from './types/SyncContext.js';\nimport { createRemoteCacheClient } from './createRemoteCacheClient.js';\nimport { performance } from 'perf_hooks';\nimport { PerfMarkerSyncStart, PerfMeasurementSyncDownload } from './performance/markers.js';\n\nexport async function syncToLocal(context: SyncContext) {\n const { config, reporter } = context;\n performance.mark(PerfMarkerSyncStart);\n\n const client = await createRemoteCacheClient({ config, permissions: { read: true, write: false } });\n if (!client) {\n return;\n }\n\n const list = await getPackagesToSync(context);\n\n const downloads = list.map((item) => {\n const { name, execute } = createDownloadTask(client, item);\n return reporter.runTask(name, execute);\n });\n\n await Promise.all(downloads);\n\n performance.measure(PerfMeasurementSyncDownload, PerfMarkerSyncStart);\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SyncContext } from './types/SyncContext.js';
|
|
2
|
+
/**
|
|
3
|
+
* Syncs the packages to the remote cache.
|
|
4
|
+
* @param syncOptions - The options for the sync command.
|
|
5
|
+
* @param context - The task context.
|
|
6
|
+
* @returns The number of packages synced.
|
|
7
|
+
*/
|
|
8
|
+
export declare function syncToRemote(context: SyncContext): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=syncToRemote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncToRemote.d.ts","sourceRoot":"","sources":["../src/syncToRemote.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAK1D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getPackagesToSync } from './getPackagesToSync.js';
|
|
2
|
+
import { createUploadTask } from './createUploadTask.js';
|
|
3
|
+
import { createRemoteCacheClient } from './createRemoteCacheClient.js';
|
|
4
|
+
import { performance } from 'perf_hooks';
|
|
5
|
+
import { PerfMarkerSyncStart, PerfMeasurementSyncUpload } from './performance/markers.js';
|
|
6
|
+
/**
|
|
7
|
+
* Syncs the packages to the remote cache.
|
|
8
|
+
* @param syncOptions - The options for the sync command.
|
|
9
|
+
* @param context - The task context.
|
|
10
|
+
* @returns The number of packages synced.
|
|
11
|
+
*/
|
|
12
|
+
export async function syncToRemote(context) {
|
|
13
|
+
const { config, reporter } = context;
|
|
14
|
+
performance.mark(PerfMarkerSyncStart);
|
|
15
|
+
const client = await createRemoteCacheClient({ config, permissions: { read: false, write: true } });
|
|
16
|
+
if (!client) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const list = await getPackagesToSync(context);
|
|
20
|
+
const uploads = list.map((item) => {
|
|
21
|
+
const { name, execute } = createUploadTask(client, item);
|
|
22
|
+
return reporter.runTask(name, execute);
|
|
23
|
+
});
|
|
24
|
+
await Promise.all(uploads);
|
|
25
|
+
performance.measure(PerfMeasurementSyncUpload, PerfMarkerSyncStart);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=syncToRemote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"syncToRemote.js","sourceRoot":"","sources":["../src/syncToRemote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAE1F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAoB;IACrD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACrC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpG,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,WAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;AACtE,CAAC","sourcesContent":["import { getPackagesToSync } from './getPackagesToSync.js';\nimport { createUploadTask } from './createUploadTask.js';\nimport type { SyncContext } from './types/SyncContext.js';\nimport { createRemoteCacheClient } from './createRemoteCacheClient.js';\nimport { performance } from 'perf_hooks';\nimport { PerfMarkerSyncStart, PerfMeasurementSyncUpload } from './performance/markers.js';\n\n/**\n * Syncs the packages to the remote cache.\n * @param syncOptions - The options for the sync command.\n * @param context - The task context.\n * @returns The number of packages synced.\n */\nexport async function syncToRemote(context: SyncContext): Promise<void> {\n const { config, reporter } = context;\n performance.mark(PerfMarkerSyncStart);\n\n const client = await createRemoteCacheClient({ config, permissions: { read: false, write: true } });\n if (!client) {\n return;\n }\n\n const list = await getPackagesToSync(context);\n\n const uploads = list.map((item) => {\n const { name, execute } = createUploadTask(client, item);\n return reporter.runTask(name, execute);\n });\n\n await Promise.all(uploads);\n\n performance.measure(PerfMeasurementSyncUpload, PerfMarkerSyncStart);\n}\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';
|
|
2
|
+
import type { ResolveMap } from '@ms-cloudpack/package-utilities';
|
|
3
|
+
import type { TaskReporter } from '@ms-cloudpack/task-reporter';
|
|
4
|
+
export interface SyncContext {
|
|
5
|
+
config: {
|
|
6
|
+
storageAccount: string;
|
|
7
|
+
container: string;
|
|
8
|
+
};
|
|
9
|
+
reporter: TaskReporter;
|
|
10
|
+
resolveMap: ResolveMap;
|
|
11
|
+
packages: PackageDefinitionsCache;
|
|
12
|
+
getBundleDetails: (options: {
|
|
13
|
+
packagePath: string;
|
|
14
|
+
}, context: {
|
|
15
|
+
packages: PackageDefinitionsCache;
|
|
16
|
+
}) => Promise<{
|
|
17
|
+
outputLocation: {
|
|
18
|
+
folderName: string;
|
|
19
|
+
path: string;
|
|
20
|
+
};
|
|
21
|
+
isExternal: boolean;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=SyncContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncContext.d.ts","sourceRoot":"","sources":["../../src/types/SyncContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gBAAgB,EAAE,CAChB,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,EAChC,OAAO,EAAE;QAAE,QAAQ,EAAE,uBAAuB,CAAA;KAAE,KAC3C,OAAO,CAAC;QACX,cAAc,EAAE;YAAE,UAAU,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACrD,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncContext.js","sourceRoot":"","sources":["../../src/types/SyncContext.ts"],"names":[],"mappings":"","sourcesContent":["import type { PackageDefinitionsCache } from '@ms-cloudpack/bundler-types';\nimport type { ResolveMap } from '@ms-cloudpack/package-utilities';\nimport type { TaskReporter } from '@ms-cloudpack/task-reporter';\n\nexport interface SyncContext {\n config: {\n storageAccount: string;\n container: string;\n };\n reporter: TaskReporter;\n resolveMap: ResolveMap;\n packages: PackageDefinitionsCache;\n getBundleDetails: (\n options: { packagePath: string },\n context: { packages: PackageDefinitionsCache },\n ) => Promise<{\n outputLocation: { folderName: string; path: string };\n isExternal: boolean;\n }>;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ms-cloudpack/remote-cache",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "Manages syncing the local Cloudpack cached assets to/from a remote storage service.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
"lib/**/!(*.test.*)"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
+
"@ms-cloudpack/bundler-types": "^0.17.0",
|
|
33
|
+
"@ms-cloudpack/package-utilities": "^5.1.0",
|
|
34
|
+
"@ms-cloudpack/task-reporter": "^0.7.1",
|
|
32
35
|
"@azure/identity": "^3.2.3",
|
|
33
36
|
"@azure/storage-blob": "^12.15.0",
|
|
34
37
|
"@napi-rs/keyring": "^1.1.3",
|