cnpmcore 4.5.2 → 4.6.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/dist/app/common/adapter/binary/ApiBinary.d.ts +1 -1
- package/dist/app/common/adapter/binary/ApiBinary.js +6 -3
- package/dist/app/common/enum/Total.d.ts +4 -0
- package/dist/app/common/enum/Total.js +6 -0
- package/dist/app/core/event/TotalHandler.d.ts +11 -0
- package/dist/app/core/event/TotalHandler.js +36 -0
- package/dist/app/core/event/index.d.ts +2 -0
- package/dist/app/core/event/index.js +2 -1
- package/dist/app/core/service/BinarySyncerService.d.ts +4 -1
- package/dist/app/core/service/BinarySyncerService.js +7 -3
- package/dist/app/core/service/PackageManagerService.js +7 -3
- package/dist/app/port/controller/BinarySyncController.d.ts +2 -2
- package/dist/app/port/controller/BinarySyncController.js +29 -8
- package/dist/app/port/schedule/UpdateTotalData.js +3 -1
- package/dist/app/repository/BinaryRepository.d.ts +5 -1
- package/dist/app/repository/BinaryRepository.js +22 -3
- package/dist/app/repository/PackageRepository.d.ts +1 -2
- package/dist/app/repository/PackageRepository.js +5 -19
- package/dist/app/repository/TaskRepository.js +2 -2
- package/dist/app/repository/TotalRepository.d.ts +15 -0
- package/dist/app/repository/TotalRepository.js +76 -0
- package/dist/app/repository/model/Total.d.ts +8 -0
- package/dist/app/repository/model/Total.js +43 -0
- package/dist/app/repository/util/EntityProperty.js +2 -2
- package/dist/config/config.default.js +10 -10
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ export const cnpmcoreConfig = {
|
|
|
30
30
|
syncDownloadDataMaxDate: '',
|
|
31
31
|
enableChangesStream: false,
|
|
32
32
|
checkChangesStreamInterval: 500,
|
|
33
|
-
changesStreamRegistry: 'https://replicate.npmjs.com',
|
|
33
|
+
changesStreamRegistry: 'https://replicate.npmjs.com/registry',
|
|
34
34
|
changesStreamRegistryMode: ChangesStreamMode.streaming,
|
|
35
35
|
registry: env('CNPMCORE_CONFIG_REGISTRY', 'string', 'http://localhost:7001'),
|
|
36
36
|
alwaysAuth: false,
|
|
@@ -122,10 +122,10 @@ export default function startConfig(appInfo) {
|
|
|
122
122
|
'Cache-Control': 'max-age=0, s-maxage=60',
|
|
123
123
|
},
|
|
124
124
|
};
|
|
125
|
-
assert(ossConfig.bucket, 'require env CNPMCORE_NFS_OSS_BUCKET');
|
|
126
|
-
assert(ossConfig.endpoint, 'require env CNPMCORE_NFS_OSS_ENDPOINT');
|
|
127
|
-
assert(ossConfig.accessKeyId, 'require env CNPMCORE_NFS_OSS_ID');
|
|
128
|
-
assert(ossConfig.accessKeySecret, 'require env CNPMCORE_NFS_OSS_SECRET');
|
|
125
|
+
assert.ok(ossConfig.bucket, 'require env CNPMCORE_NFS_OSS_BUCKET');
|
|
126
|
+
assert.ok(ossConfig.endpoint, 'require env CNPMCORE_NFS_OSS_ENDPOINT');
|
|
127
|
+
assert.ok(ossConfig.accessKeyId, 'require env CNPMCORE_NFS_OSS_ID');
|
|
128
|
+
assert.ok(ossConfig.accessKeySecret, 'require env CNPMCORE_NFS_OSS_SECRET');
|
|
129
129
|
config.nfs.client = new OSSClient(ossConfig);
|
|
130
130
|
}
|
|
131
131
|
else if (nfsType === 's3') {
|
|
@@ -140,10 +140,10 @@ export default function startConfig(appInfo) {
|
|
|
140
140
|
forcePathStyle: env('CNPMCORE_NFS_S3_CLIENT_FORCE_PATH_STYLE', 'boolean', false),
|
|
141
141
|
disableURL: env('CNPMCORE_NFS_S3_CLIENT_DISABLE_URL', 'boolean', false),
|
|
142
142
|
};
|
|
143
|
-
assert(s3Config.endpoint, 'require env CNPMCORE_NFS_S3_CLIENT_ENDPOINT');
|
|
144
|
-
assert(s3Config.credentials.accessKeyId, 'require env CNPMCORE_NFS_S3_CLIENT_ID');
|
|
145
|
-
assert(s3Config.credentials.secretAccessKey, 'require env CNPMCORE_NFS_S3_CLIENT_SECRET');
|
|
146
|
-
assert(s3Config.bucket, 'require env CNPMCORE_NFS_S3_CLIENT_BUCKET');
|
|
143
|
+
assert.ok(s3Config.endpoint, 'require env CNPMCORE_NFS_S3_CLIENT_ENDPOINT');
|
|
144
|
+
assert.ok(s3Config.credentials.accessKeyId, 'require env CNPMCORE_NFS_S3_CLIENT_ID');
|
|
145
|
+
assert.ok(s3Config.credentials.secretAccessKey, 'require env CNPMCORE_NFS_S3_CLIENT_SECRET');
|
|
146
|
+
assert.ok(s3Config.bucket, 'require env CNPMCORE_NFS_S3_CLIENT_BUCKET');
|
|
147
147
|
// @ts-expect-error has no construct signatures
|
|
148
148
|
config.nfs.client = new S3Client(s3Config);
|
|
149
149
|
}
|
|
@@ -201,4 +201,4 @@ export default function startConfig(appInfo) {
|
|
|
201
201
|
}
|
|
202
202
|
return config;
|
|
203
203
|
}
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvY29uZmlnLmRlZmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWpDLE9BQU8sU0FBUyxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLFFBQVEsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsUUFBUSxHQUNULE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQW1CO0lBQzVDLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLEtBQUs7SUFDakIsVUFBVSxFQUFFLEVBQUU7SUFDZCxjQUFjLEVBQUUsR0FBRyxDQUNqQixpQ0FBaUMsRUFDakMsUUFBUSxFQUNSLDRCQUE0QixDQUM3QjtJQUNELG9CQUFvQixFQUFFLEdBQUcsQ0FDdkIseUNBQXlDLEVBQ3pDLFNBQVMsRUFDVCxLQUFLLENBQ047SUFDRCxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCLHlCQUF5QixFQUFFLE9BQU87SUFDbEMsc0JBQXNCLEVBQUUsR0FBRztJQUMzQixRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUk7SUFDdkIsY0FBYyxFQUFFLGNBQWMsQ0FBQyxNQUFNO0lBQ3JDLG1DQUFtQyxFQUFFLEVBQUU7SUFDdkMsbUNBQW1DLEVBQUUsRUFBRTtJ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
|