@nx-ddd/common 17.3.5 → 17.5.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.
@@ -0,0 +1,24 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import dayjs from 'dayjs';
3
+ export interface BackupConfig {
4
+ projectId: string;
5
+ bucketName: string;
6
+ databaseName?: string;
7
+ credentials?: any;
8
+ }
9
+ export declare const BACKUP_CONFIG: InjectionToken<BackupConfig>;
10
+ export declare function provideBackupConfig(config: BackupConfig): {
11
+ provide: InjectionToken<BackupConfig>;
12
+ useValue: BackupConfig;
13
+ };
14
+ export declare function injectBackupConfig(): BackupConfig;
15
+ export declare class BackupService {
16
+ private config;
17
+ private opts;
18
+ private client;
19
+ export(name?: string): Promise<string>;
20
+ import(name: string): Promise<string>;
21
+ clean(date?: dayjs.Dayjs): Promise<void>;
22
+ private get databaseName();
23
+ private get bucketName();
24
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BackupService = exports.injectBackupConfig = exports.provideBackupConfig = exports.BACKUP_CONFIG = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const firestore_1 = tslib_1.__importDefault(require("@google-cloud/firestore"));
6
+ const core_1 = require("@angular/core");
7
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
8
+ const firebase_admin_1 = tslib_1.__importDefault(require("firebase-admin"));
9
+ exports.BACKUP_CONFIG = new core_1.InjectionToken('[@nx-ddd/common/backup] Backup Config');
10
+ function provideBackupConfig(config) {
11
+ return { provide: exports.BACKUP_CONFIG, useValue: config };
12
+ }
13
+ exports.provideBackupConfig = provideBackupConfig;
14
+ function injectBackupConfig() {
15
+ return (0, core_1.inject)(exports.BACKUP_CONFIG);
16
+ }
17
+ exports.injectBackupConfig = injectBackupConfig;
18
+ let BackupService = class BackupService {
19
+ constructor() {
20
+ var _a, _b;
21
+ this.config = injectBackupConfig();
22
+ this.opts = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.credentials) ? { credentials: (_b = this.config) === null || _b === void 0 ? void 0 : _b.credentials } : undefined;
23
+ this.client = new firestore_1.default.v1.FirestoreAdminClient(this.opts);
24
+ }
25
+ export(name) {
26
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
27
+ return this.client.exportDocuments({
28
+ name: this.databaseName,
29
+ outputUriPrefix: `gs://${this.bucketName}/_backups/${name !== null && name !== void 0 ? name : (0, dayjs_1.default)().toISOString()}`,
30
+ collectionIds: [],
31
+ }).then((responses) => responses[0].name);
32
+ });
33
+ }
34
+ import(name) {
35
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
+ return this.client.importDocuments({
37
+ name: this.databaseName,
38
+ inputUriPrefix: `gs://${this.bucketName}/_backups/${name}`,
39
+ collectionIds: [],
40
+ }).then((responses) => responses[0].name);
41
+ });
42
+ }
43
+ clean(date = (0, dayjs_1.default)().add(-30, 'day')) {
44
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
+ const bucket = firebase_admin_1.default.storage().bucket(`${this.config.projectId}.appspot.com`);
46
+ const [files] = yield bucket.getFiles({ prefix: '_backups', autoPaginate: true });
47
+ const promises = files
48
+ .filter(file => (0, dayjs_1.default)(file.name.split('/')[1]).isBefore(date))
49
+ .map(file => file.delete());
50
+ yield Promise.all(promises);
51
+ });
52
+ }
53
+ get databaseName() {
54
+ if (this.config.databaseName) {
55
+ return this.config.databaseName;
56
+ }
57
+ return this.client.databasePath(this.config.projectId, '(default)');
58
+ }
59
+ get bucketName() {
60
+ return this.config.bucketName;
61
+ }
62
+ };
63
+ exports.BackupService = BackupService;
64
+ exports.BackupService = BackupService = tslib_1.__decorate([
65
+ (0, core_1.Injectable)({ providedIn: 'root' })
66
+ ], BackupService);
67
+ //# sourceMappingURL=backup.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.service.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/backup/backup.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './backup.service';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./backup.service"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/backup/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC"}
@@ -7,10 +7,10 @@ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
7
7
  const synchronizer_1 = require("../synchronizer");
8
8
  const rxjs_1 = require("rxjs");
9
9
  function getLastUpdatedAt(items) {
10
- return items.reduce((acc, facility) => {
11
- if (!(facility === null || facility === void 0 ? void 0 : facility.updatedAt))
10
+ return items.reduce((acc, entity) => {
11
+ if (!(entity === null || entity === void 0 ? void 0 : entity.updatedAt))
12
12
  return acc;
13
- return facility.updatedAt.isAfter(acc) ? facility.updatedAt : acc;
13
+ return entity.updatedAt.isAfter(acc) ? entity.updatedAt : acc;
14
14
  }, (0, dayjs_1.default)('1997-01-01'));
15
15
  }
16
16
  exports.getLastUpdatedAt = getLastUpdatedAt;
@@ -31,7 +31,7 @@ class CachedQuery {
31
31
  });
32
32
  }
33
33
  list() {
34
- return this.synchronizer.sync().pipe((0, rxjs_1.switchMap)(() => this.indexedDb.listChanges()), (0, rxjs_1.throttleTime)(this.options.debounceTime), (0, rxjs_1.tap)(() => console.debug('FLAG 0001')));
34
+ return this.synchronizer.sync().pipe((0, rxjs_1.switchMap)(() => this.indexedDb.listChanges()), (0, rxjs_1.throttleTime)(this.options.debounceTime));
35
35
  }
36
36
  }
37
37
  exports.CachedQuery = CachedQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"cached-query.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/common/src/infrastructure/queries/cached-query.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,0DAA0B;AAC1B,kDAAyD;AACzD,+BAAyF;AAEzF,SAAgB,gBAAgB,CAAqC,KAAU;IAC7E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACpC,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA;YAAE,OAAO,GAAG,CAAC;QACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC,EAAE,IAAA,eAAK,EAAC,YAAY,CAAC,CAAC,CAAC;AAC1B,CAAC;AALD,4CAKC;AAeD,MAAa,WAAW;IACtB,YACY,UAA4B,EAC5B,SAA4B,EAC5B,UAGN;QACF,YAAY,EAAE,IAAK;QACnB,SAAS,EAAE,GAAG;KACf;QARS,eAAU,GAAV,UAAU,CAAkB;QAC5B,cAAS,GAAT,SAAS,CAAmB;QAC5B,YAAO,GAAP,OAAO,CAMhB;QAEM,iBAAY,GAAG,IAAI,qCAAsB,CAAC;YACjD,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,gBAAgB,CAAC,CAAC;YACpF,QAAQ,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxD,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,CAAC;YACnH,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC7C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;SACxC,CAAC,CAAC;IAPC,CAAC;IASL,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAClC,IAAA,gBAAS,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAC7C,IAAA,mBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EACvC,IAAA,UAAG,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CACtC,CAAC;IACJ,CAAC;CACF;AA3BD,kCA2BC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,MAAM,CACJ,UAA4B,EAC5B,SAA4B;QAE5B,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAPY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,iBAAU,EAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;GACpB,kBAAkB,CAO9B"}
1
+ {"version":3,"file":"cached-query.js","sourceRoot":"","sources":["../../../../../../packages/@nx-ddd/common/src/infrastructure/queries/cached-query.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAC3C,0DAA0B;AAC1B,kDAAyD;AACzD,+BAAyF;AAEzF,SAAgB,gBAAgB,CAAqC,KAAU;IAC7E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAClC,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;YAAE,OAAO,GAAG,CAAC;QACnC,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAChE,CAAC,EAAE,IAAA,eAAK,EAAC,YAAY,CAAC,CAAC,CAAC;AAC1B,CAAC;AALD,4CAKC;AAeD,MAAa,WAAW;IACtB,YACY,UAA4B,EAC5B,SAA4B,EAC5B,UAGN;QACF,YAAY,EAAE,IAAK;QACnB,SAAS,EAAE,GAAG;KACf;QARS,eAAU,GAAV,UAAU,CAAkB;QAC5B,cAAS,GAAT,SAAS,CAAmB;QAC5B,YAAO,GAAP,OAAO,CAMhB;QAEM,iBAAY,GAAG,IAAI,qCAAsB,CAAC;YACjD,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,gBAAgB,CAAC,CAAC;YACpF,QAAQ,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxD,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAC,CAAC;YACnH,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC7C,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;SACxC,CAAC,CAAC;IAPC,CAAC;IASL,IAAI;QACF,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAClC,IAAA,gBAAS,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAC7C,IAAA,mBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CACxC,CAAC;IACJ,CAAC;CACF;AA1BD,kCA0BC;AAGM,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,MAAM,CACJ,UAA4B,EAC5B,SAA4B;QAE5B,OAAO,IAAI,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;CACF,CAAA;AAPY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,iBAAU,EAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;GACpB,kBAAkB,CAO9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx-ddd/common",
3
- "version": "17.3.5",
3
+ "version": "17.5.0",
4
4
  "main": "./src/index.js",
5
5
  "types": "./index.d.ts",
6
6
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@nx-ddd/common",