@nx-ddd/common 19.0.0-preview.3 → 19.0.0-preview.30
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/domain/index.d.ts +1 -0
- package/domain/models.d.ts +1 -0
- package/domain/repository.d.ts +24 -5
- package/fesm2022/nx-ddd-common-domain.mjs +180 -0
- package/fesm2022/nx-ddd-common-domain.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs +59 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs +46 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs +16 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs +13 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs +37 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs +14 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs +33 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs +13 -0
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-queries.mjs +54 -0
- package/fesm2022/nx-ddd-common-infrastructure-queries.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-impl.mjs +63 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-impl.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-token.mjs +10 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-token.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel.mjs +160 -0
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel.mjs.map +1 -0
- package/fesm2022/nx-ddd-common-infrastructure.mjs +25 -0
- package/fesm2022/nx-ddd-common-infrastructure.mjs.map +1 -0
- package/fesm2022/nx-ddd-common.mjs +57 -0
- package/fesm2022/nx-ddd-common.mjs.map +1 -0
- package/infrastructure/externals/chromium/chromium.service.d.ts +3 -0
- package/infrastructure/externals/chromium/{chromium.service.impl.d.ts → impl/chromium.service.impl.d.ts} +4 -8
- package/infrastructure/externals/chromium/impl/index.d.ts +1 -0
- package/infrastructure/externals/chromium/index.d.ts +1 -1
- package/infrastructure/externals/chromium/token/index.d.ts +1 -0
- package/infrastructure/externals/cloud-storage/cloud-storage.service.d.ts +3 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.d.ts +1 -8
- package/infrastructure/externals/firebase-admin/impl/firebase-admin.service.impl.d.ts +5 -0
- package/infrastructure/externals/firebase-admin/impl/index.d.ts +1 -0
- package/infrastructure/externals/firebase-admin/token/index.d.ts +8 -0
- package/infrastructure/externals/openai/impl/index.d.ts +2 -0
- package/infrastructure/externals/openai/impl/open-ai.service.impl.d.ts +7 -0
- package/infrastructure/externals/openai/index.d.ts +0 -1
- package/infrastructure/externals/openai/open-ai.service.d.ts +3 -3
- package/infrastructure/externals/openai/token/index.d.ts +1 -0
- package/infrastructure/externals/stripe/impl/index.d.ts +2 -0
- package/infrastructure/externals/stripe/{stripe.config.d.ts → impl/stripe.config.d.ts} +1 -1
- package/infrastructure/externals/stripe/impl/stripe.service.impl.d.ts +8 -0
- package/infrastructure/externals/stripe/index.d.ts +0 -1
- package/infrastructure/externals/stripe/stripe.service.d.ts +1 -3
- package/infrastructure/externals/stripe/token/index.d.ts +2 -0
- package/infrastructure/index.d.ts +0 -1
- package/infrastructure/queries/cached-query.d.ts +4 -1
- package/infrastructure/repo/excel/excel.converter.d.ts +9 -16
- package/infrastructure/repo/excel/excel.repository.d.ts +15 -4
- package/infrastructure/repo/excel/{excel.service.impl.d.ts → impl/excel.service.impl.d.ts} +6 -3
- package/infrastructure/repo/excel/impl/index.d.ts +1 -0
- package/infrastructure/repo/excel/token/index.d.ts +1 -0
- package/package.json +94 -12
- package/utilities/index.d.ts +1 -0
- package/README.md +0 -40
- package/domain/index.js +0 -6
- package/domain/index.js.map +0 -1
- package/domain/models.js +0 -129
- package/domain/models.js.map +0 -1
- package/domain/repository.js +0 -27
- package/domain/repository.js.map +0 -1
- package/domain/resolver.js +0 -25
- package/domain/resolver.js.map +0 -1
- package/index.js +0 -5
- package/index.js.map +0 -1
- package/infrastructure/converter.js +0 -7
- package/infrastructure/converter.js.map +0 -1
- package/infrastructure/externals/backup/backup.service.d.ts +0 -24
- package/infrastructure/externals/backup/backup.service.js +0 -67
- package/infrastructure/externals/backup/backup.service.js.map +0 -1
- package/infrastructure/externals/backup/index.d.ts +0 -1
- package/infrastructure/externals/backup/index.js +0 -5
- package/infrastructure/externals/backup/index.js.map +0 -1
- package/infrastructure/externals/chromium/chromium.service.impl.js +0 -58
- package/infrastructure/externals/chromium/chromium.service.impl.js.map +0 -1
- package/infrastructure/externals/chromium/chromuim.service.d.ts +0 -9
- package/infrastructure/externals/chromium/chromuim.service.js +0 -6
- package/infrastructure/externals/chromium/chromuim.service.js.map +0 -1
- package/infrastructure/externals/chromium/index.js +0 -5
- package/infrastructure/externals/chromium/index.js.map +0 -1
- package/infrastructure/externals/cloud-storage/cloud-storage.service.js +0 -43
- package/infrastructure/externals/cloud-storage/cloud-storage.service.js.map +0 -1
- package/infrastructure/externals/cloud-storage/index.js +0 -5
- package/infrastructure/externals/cloud-storage/index.js.map +0 -1
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.d.ts +0 -5
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js +0 -13
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js.map +0 -1
- package/infrastructure/externals/firebase-admin/firebase-admin.service.js +0 -11
- package/infrastructure/externals/firebase-admin/firebase-admin.service.js.map +0 -1
- package/infrastructure/externals/firebase-admin/index.js +0 -5
- package/infrastructure/externals/firebase-admin/index.js.map +0 -1
- package/infrastructure/externals/openai/index.js +0 -6
- package/infrastructure/externals/openai/index.js.map +0 -1
- package/infrastructure/externals/openai/open-ai.config.js +0 -19
- package/infrastructure/externals/openai/open-ai.config.js.map +0 -1
- package/infrastructure/externals/openai/open-ai.service.impl.d.ts +0 -4
- package/infrastructure/externals/openai/open-ai.service.impl.js +0 -18
- package/infrastructure/externals/openai/open-ai.service.impl.js.map +0 -1
- package/infrastructure/externals/openai/open-ai.service.js +0 -11
- package/infrastructure/externals/openai/open-ai.service.js.map +0 -1
- package/infrastructure/externals/stripe/index.js +0 -6
- package/infrastructure/externals/stripe/index.js.map +0 -1
- package/infrastructure/externals/stripe/stripe.config.js +0 -15
- package/infrastructure/externals/stripe/stripe.config.js.map +0 -1
- package/infrastructure/externals/stripe/stripe.service.impl.d.ts +0 -5
- package/infrastructure/externals/stripe/stripe.service.impl.js +0 -44
- package/infrastructure/externals/stripe/stripe.service.impl.js.map +0 -1
- package/infrastructure/externals/stripe/stripe.service.js +0 -11
- package/infrastructure/externals/stripe/stripe.service.js.map +0 -1
- package/infrastructure/index.js +0 -7
- package/infrastructure/index.js.map +0 -1
- package/infrastructure/queries/cached-query.js +0 -47
- package/infrastructure/queries/cached-query.js.map +0 -1
- package/infrastructure/queries/index.js +0 -5
- package/infrastructure/queries/index.js.map +0 -1
- package/infrastructure/repo/excel/excel.converter.js +0 -71
- package/infrastructure/repo/excel/excel.converter.js.map +0 -1
- package/infrastructure/repo/excel/excel.decorators.js +0 -55
- package/infrastructure/repo/excel/excel.decorators.js.map +0 -1
- package/infrastructure/repo/excel/excel.repository.js +0 -32
- package/infrastructure/repo/excel/excel.repository.js.map +0 -1
- package/infrastructure/repo/excel/excel.service.impl.js +0 -61
- package/infrastructure/repo/excel/excel.service.impl.js.map +0 -1
- package/infrastructure/repo/excel/index.js +0 -7
- package/infrastructure/repo/excel/index.js.map +0 -1
- package/infrastructure/synchronizer.js +0 -18
- package/infrastructure/synchronizer.js.map +0 -1
- package/utilities/generate-id.js +0 -23
- package/utilities/generate-id.js.map +0 -1
- package/utilities/index.js +0 -6
- package/utilities/index.js.map +0 -1
- package/utilities/message.js +0 -26
- package/utilities/message.js.map +0 -1
- package/utilities/to-object.js +0 -14
- package/utilities/to-object.js.map +0 -1
- /package/infrastructure/externals/openai/{open-ai.config.d.ts → impl/open-ai.config.d.ts} +0 -0
package/domain/index.d.ts
CHANGED
package/domain/models.d.ts
CHANGED
package/domain/repository.d.ts
CHANGED
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
import { Entity } from './models';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
2
4
|
export type PartialWithId<E extends Entity> = Pick<E, 'id'> & Partial<E>;
|
|
3
5
|
export declare abstract class Repository<E extends {
|
|
4
6
|
id: string;
|
|
5
7
|
}> {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
abstract get(params: {
|
|
9
|
+
id: string;
|
|
10
|
+
}): Promise<E>;
|
|
11
|
+
abstract list(): Promise<E[]>;
|
|
12
|
+
abstract listChanges(): Observable<E[]>;
|
|
13
|
+
abstract create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;
|
|
14
|
+
abstract createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;
|
|
15
|
+
abstract update(data: Partial<E> & {
|
|
16
|
+
id: string;
|
|
17
|
+
}): Promise<void>;
|
|
18
|
+
abstract updateMany(data: Partial<E>[]): Promise<void>;
|
|
19
|
+
abstract save(data: Partial<E>): Promise<boolean | [E, boolean]>;
|
|
20
|
+
abstract saveMany(entities: E[]): Promise<void>;
|
|
21
|
+
abstract delete(params: {
|
|
22
|
+
id: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
abstract deleteMany(params: {
|
|
25
|
+
id: string;
|
|
26
|
+
}[]): Promise<number>;
|
|
27
|
+
abstract deleteAll(): Promise<void>;
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<Repository<any>, never>;
|
|
29
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<Repository<any>>;
|
|
11
30
|
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { toObject } from '@nx-ddd/common';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { flatten } from 'flat';
|
|
5
|
+
import { Transform } from 'class-transformer';
|
|
6
|
+
import { merge } from 'lodash-es';
|
|
7
|
+
import { parseISO } from 'date-fns';
|
|
8
|
+
import * as i0 from '@angular/core';
|
|
9
|
+
import { Injectable } from '@angular/core';
|
|
10
|
+
|
|
11
|
+
class Domain {
|
|
12
|
+
static ANNOTATIONS = Symbol('annotations');
|
|
13
|
+
static Lang(name) {
|
|
14
|
+
return (target, propName) => {
|
|
15
|
+
this.registerAnnotation(target.constructor, { propName, type: 'prop:lang', name });
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
static Type(typeFactory) {
|
|
19
|
+
return (target, propName) => {
|
|
20
|
+
if (!typeFactory) {
|
|
21
|
+
const type = Reflect.getMetadata('design:type', target, propName);
|
|
22
|
+
typeFactory = () => type;
|
|
23
|
+
}
|
|
24
|
+
this.registerAnnotation(target.constructor, { propName, typeFactory, type: 'prop:type' });
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// classをデコレートしてnameをアノテーションする
|
|
28
|
+
static Entity(propsOrName) {
|
|
29
|
+
const props = typeof propsOrName === 'string' ? { name: propsOrName } : propsOrName;
|
|
30
|
+
return (target) => {
|
|
31
|
+
this.registerAnnotation(target, { name: props.name, type: 'model:lang', modelName: target.name });
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
static registerAnnotation(constructor, annotation) {
|
|
35
|
+
constructor[this.ANNOTATIONS] ??= [];
|
|
36
|
+
constructor[this.ANNOTATIONS].push(annotation);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function getLangMap(domain, mergeObj = {}) {
|
|
40
|
+
return flatten(merge(_getLangMap(domain), mergeObj));
|
|
41
|
+
}
|
|
42
|
+
function _getLangMap(target) {
|
|
43
|
+
return flatten(getAnnotations(target).reduce((acc, annotation) => {
|
|
44
|
+
switch (annotation.type) {
|
|
45
|
+
case 'prop:lang': {
|
|
46
|
+
acc[annotation.propName] = annotation.name;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case 'prop:type': {
|
|
50
|
+
const type = annotation.typeFactory?.();
|
|
51
|
+
acc[annotation.propName] = getLangMap(type);
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return acc;
|
|
56
|
+
}, {}) ?? {});
|
|
57
|
+
}
|
|
58
|
+
function getAnnotations(target) {
|
|
59
|
+
return target?.[Domain.ANNOTATIONS] ?? [];
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated
|
|
63
|
+
* use getProps instead.
|
|
64
|
+
*/
|
|
65
|
+
function getDomainProps(target, deps = 3, path = '') {
|
|
66
|
+
return getProps(target, deps, path);
|
|
67
|
+
}
|
|
68
|
+
function getProps(target, deps = 3, path = '') {
|
|
69
|
+
return getAnnotations(target).map((annotation) => {
|
|
70
|
+
switch (annotation.type) {
|
|
71
|
+
case 'prop:lang': {
|
|
72
|
+
return `${path}${annotation.propName}`;
|
|
73
|
+
}
|
|
74
|
+
case 'prop:type': {
|
|
75
|
+
if (deps > 0) {
|
|
76
|
+
const type = annotation.typeFactory?.();
|
|
77
|
+
return getProps(type, deps - 1, `${path}${annotation.propName}.`);
|
|
78
|
+
}
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
default: return [];
|
|
82
|
+
}
|
|
83
|
+
}).flat();
|
|
84
|
+
}
|
|
85
|
+
function getModelName(target) {
|
|
86
|
+
return getAnnotations(target).find(annotation => {
|
|
87
|
+
return annotation.type === 'model:lang';
|
|
88
|
+
})?.name ?? target.name;
|
|
89
|
+
}
|
|
90
|
+
function getEntityName(target) {
|
|
91
|
+
return getAnnotations(target).find(annotation => {
|
|
92
|
+
return annotation.type === 'model:lang';
|
|
93
|
+
})?.name ?? target.name;
|
|
94
|
+
}
|
|
95
|
+
class Entity {
|
|
96
|
+
static fromObj(obj) {
|
|
97
|
+
return Object.assign(new this(), {
|
|
98
|
+
id: null,
|
|
99
|
+
createdAt: null,
|
|
100
|
+
updatedAt: null,
|
|
101
|
+
...obj
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
static toObj(entity) {
|
|
105
|
+
return toObject(entity);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function TransformToDayjs() {
|
|
109
|
+
return Transform(({ value }) => {
|
|
110
|
+
if (typeof value === 'undefined')
|
|
111
|
+
return undefined;
|
|
112
|
+
if (dayjs(value).isValid())
|
|
113
|
+
return dayjs(value);
|
|
114
|
+
return value;
|
|
115
|
+
}, {});
|
|
116
|
+
}
|
|
117
|
+
function TransformToDate() {
|
|
118
|
+
return Transform(({ value }) => {
|
|
119
|
+
if (typeof value === 'undefined')
|
|
120
|
+
return undefined;
|
|
121
|
+
if (value === null)
|
|
122
|
+
return null;
|
|
123
|
+
if (value instanceof Date)
|
|
124
|
+
return value;
|
|
125
|
+
const date = parseISO(value);
|
|
126
|
+
return date;
|
|
127
|
+
}, {});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// @Injectable()
|
|
131
|
+
// export abstract class Repository<E extends {id: string}> {
|
|
132
|
+
// list(): Promise<E[]> {
|
|
133
|
+
// throw new Error('is not implemented!');
|
|
134
|
+
// }
|
|
135
|
+
// get(entity: Pick<E, 'id'>): Promise<E> {
|
|
136
|
+
// throw new Error('is not implemented!');
|
|
137
|
+
// }
|
|
138
|
+
// create(entity: E): Promise<E> {
|
|
139
|
+
// throw new Error('is not implemented!');
|
|
140
|
+
// }
|
|
141
|
+
// update(entity: Pick<E, 'id'> & Partial<E>): Promise<void> {
|
|
142
|
+
// throw new Error('is not implemented!');
|
|
143
|
+
// }
|
|
144
|
+
// delete(entity: Pick<E, 'id'>): Promise<void> {
|
|
145
|
+
// throw new Error('is not implemented!');
|
|
146
|
+
// }
|
|
147
|
+
// }
|
|
148
|
+
class Repository {
|
|
149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: Repository, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
150
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: Repository });
|
|
151
|
+
}
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: Repository, decorators: [{
|
|
153
|
+
type: Injectable
|
|
154
|
+
}] });
|
|
155
|
+
|
|
156
|
+
class Resolver {
|
|
157
|
+
entiityMap = new Map();
|
|
158
|
+
makeEntityMap(entities, key) {
|
|
159
|
+
return new Map(entities.map((entity) => [entity[key], entity]));
|
|
160
|
+
}
|
|
161
|
+
setEntityMap(name, entityMap) {
|
|
162
|
+
this.entiityMap.set(name, entityMap);
|
|
163
|
+
}
|
|
164
|
+
getEntityMap(name) {
|
|
165
|
+
return this.entiityMap.get(name);
|
|
166
|
+
}
|
|
167
|
+
registerEntityMap(name, entities, key) {
|
|
168
|
+
this.setEntityMap(name, this.makeEntityMap(entities, key));
|
|
169
|
+
}
|
|
170
|
+
getEntity(name, key) {
|
|
171
|
+
return this.getEntityMap(name).get(key);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Generated bundle index. Do not edit.
|
|
177
|
+
*/
|
|
178
|
+
|
|
179
|
+
export { Domain, Entity, Repository, Resolver, TransformToDate, TransformToDayjs, getAnnotations, getDomainProps, getEntityName, getLangMap, getModelName, getProps };
|
|
180
|
+
//# sourceMappingURL=nx-ddd-common-domain.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-domain.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/domain/models.ts","../../../../../packages/@nx-ddd/common/src/lib/domain/repository.ts","../../../../../packages/@nx-ddd/common/src/lib/domain/resolver.ts","../../../../../packages/@nx-ddd/common/src/lib/domain/nx-ddd-common-domain.ts"],"sourcesContent":["import 'reflect-metadata';\nimport { toObject } from '@nx-ddd/common';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { flatten } from 'flat';\nimport { Transform } from 'class-transformer';\nimport { merge } from 'lodash-es';\nimport { parseISO } from 'date-fns';\n\nexport type Type<E> = { new(): E};\nexport type DomainLangMap<Entity> = Partial<{[K in keyof Entity]: string}>\n\nexport interface Entity<Id = string> {\n id: Id | null;\n createdAt?: Dayjs | null;\n updatedAt?: Dayjs | null;\n}\n\nexport type OmitGetter<T> = {\n [P in keyof T as string extends P ? never : number extends P ? never : P]: T[P];\n};\n\nexport type DeepPartial<T> = {\n [P in keyof T]?: DeepPartial<T[P]>;\n};\n\ninterface BaseDomainAnnotation {\n type: 'model:lang' | 'prop:lang' | 'prop:type';\n}\n\nexport interface DomainModelLangAnnotation extends BaseDomainAnnotation {\n type: 'model:lang';\n modelName: string;\n name: string;\n typeFactory?: () => any;\n}\n\nexport interface DomainPropLangAnnotation extends BaseDomainAnnotation {\n type: 'prop:lang';\n propName: string;\n name: string;\n}\n\nexport interface DomainPropTypeAnnotation extends BaseDomainAnnotation {\n type: 'prop:type';\n propName: string;\n typeFactory: () => any;\n}\n\nexport type DomainAnnotation = DomainModelLangAnnotation\n | DomainPropLangAnnotation\n | DomainPropTypeAnnotation;\n\ninterface Target {\n constructor: {\n [Domain.ANNOTATIONS]?: DomainAnnotation[];\n }\n}\n\nexport class Domain {\n static readonly ANNOTATIONS = Symbol('annotations');\n\n static Lang(name: string) {\n return (target: any, propName: string) => {\n this.registerAnnotation(target.constructor, {propName, type: 'prop:lang', name});\n };\n }\n\n static Type<T>(typeFactory?: () => T) {\n return (target: any, propName: string) => {\n if (!typeFactory) {\n const type = Reflect.getMetadata('design:type', target as any, propName);\n typeFactory = () => type;\n }\n this.registerAnnotation(target.constructor, {propName, typeFactory, type: 'prop:type'});\n };\n }\n\n // classをデコレートしてnameをアノテーションする\n static Entity(propsOrName: {name: string} | string) {\n const props = typeof propsOrName === 'string' ? {name: propsOrName} : propsOrName;\n return (target: any) => {\n this.registerAnnotation(target, {name: props.name, type: 'model:lang', modelName: target.name});\n };\n }\n\n static registerAnnotation(constructor: Target['constructor'], annotation: DomainAnnotation) {\n constructor[this.ANNOTATIONS] ??= [];\n constructor[this.ANNOTATIONS].push(annotation);\n }\n}\n\nexport type LangMap<E> = Partial<Record<keyof E, string>>;\n\n\nexport function getLangMap<E>(domain: Type<E>, mergeObj: object = {}): LangMap<E> {\n return flatten(merge(_getLangMap(domain), mergeObj));\n}\n\nfunction _getLangMap<E>(target: Type<E>): LangMap<E> {\n return flatten(getAnnotations(target).reduce((acc: LangMap<E>, annotation: DomainAnnotation) => {\n switch(annotation.type) {\n case 'prop:lang': {\n acc[annotation.propName] = annotation.name;\n break;\n }\n case 'prop:type': {\n const type = annotation.typeFactory?.();\n acc[annotation.propName] = getLangMap(type);\n break;\n }\n }\n return acc;\n }, {}) ?? {});\n}\n\nexport function getAnnotations<E>(target: Type<E>): DomainAnnotation[] {\n return (target as any)?.[Domain.ANNOTATIONS] ?? [];\n}\n\n/**\n * @deprecated\n * use getProps instead.\n */\nexport function getDomainProps<E>(target: Type<E>, deps = 3, path = ''): string[] {\n return getProps(target, deps, path);\n}\n\nexport function getProps<E>(target: Type<E>, deps = 3, path = ''): string[] {\n return getAnnotations(target).map((annotation: DomainAnnotation) => {\n switch (annotation.type) {\n case 'prop:lang': {\n return `${path}${annotation.propName}`;\n }\n case 'prop:type': {\n if (deps > 0) {\n const type = annotation.typeFactory?.();\n return getProps(type, deps - 1, `${path}${annotation.propName}.`);\n }\n return [];\n }\n default: return [];\n }\n }).flat();\n}\n\nexport function getModelName<E>(target: Type<E>): string {\n return (getAnnotations(target).find(annotation => {\n return annotation.type === 'model:lang';\n }) as DomainModelLangAnnotation)?.name ?? target.name;\n}\n\nexport function getEntityName<E>(target: Type<E>): string {\n return (getAnnotations(target).find(annotation => {\n return annotation.type === 'model:lang';\n }) as DomainModelLangAnnotation)?.name ?? target.name;\n}\n\nexport class Entity { \n static fromObj<T extends Entity = Entity>(obj: object): T {\n return Object.assign(new this(), {\n id: null,\n createdAt: null,\n updatedAt: null,\n ...obj\n }) as never as T;\n }\n\n static toObj(entity: Entity): Entity {\n return toObject(entity) as Entity;\n }\n}\n\nexport function TransformToDayjs() {\n return Transform(({ value }) => {\n if (typeof value === 'undefined') return undefined;\n if (dayjs(value).isValid()) return dayjs(value);\n return value;\n }, {});\n}\n\nexport function TransformToDate() {\n return Transform(({ value }) => {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return null;\n if (value instanceof Date) return value;\n const date = parseISO(value);\n return date;\n }, {});\n}\n","import { Injectable } from '@angular/core';\nimport { Entity } from './models';\nimport { Observable } from 'rxjs';\n\nexport type PartialWithId<E extends Entity> = Pick<E, 'id'> & Partial<E>;\n\n// @Injectable()\n// export abstract class Repository<E extends {id: string}> {\n// list(): Promise<E[]> {\n// throw new Error('is not implemented!');\n// }\n\n// get(entity: Pick<E, 'id'>): Promise<E> {\n// throw new Error('is not implemented!');\n// }\n\n// create(entity: E): Promise<E> {\n// throw new Error('is not implemented!');\n// }\n\n// update(entity: Pick<E, 'id'> & Partial<E>): Promise<void> {\n// throw new Error('is not implemented!');\n// }\n\n// delete(entity: Pick<E, 'id'>): Promise<void> {\n// throw new Error('is not implemented!');\n// }\n// }\n\n\n@Injectable()\nexport abstract class Repository<E extends {id: string}> {\n abstract get(params: {id: string}): Promise<E>;\n abstract list(): Promise<E[]>;\n abstract listChanges(): Observable<E[]>;\n abstract create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;\n abstract createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;\n abstract update(data: Partial<E> & {id: string}): Promise<void>;\n abstract updateMany(data: Partial<E>[]): Promise<void>;\n abstract save(data: Partial<E>): Promise<boolean | [E, boolean]>;\n abstract saveMany(entities: E[]): Promise<void>;\n abstract delete(params: {id: string}): Promise<void>;\n abstract deleteMany(params: {id: string}[]): Promise<number>;\n abstract deleteAll(): Promise<void>;\n}\n","export abstract class Resolver {\n\tprivate entiityMap = new Map<string, Map<string, any>>();\n\n\tprotected makeEntityMap<E>(entities: E[], key: keyof E): Map<string, E>{\n\t\treturn new Map(entities.map((entity) => [entity[key] as string, entity]));\n\t}\n\n\tprotected setEntityMap<E>(name: string, entityMap: Map<string, E>): void {\n\t\tthis.entiityMap.set(name, entityMap);\n\t}\n\n\tprotected getEntityMap<E>(name: string): Map<string, E> {\n\t\treturn this.entiityMap.get(name);\n\t}\n\n\tprotected registerEntityMap<E>(name: string, entities: E[], key: keyof E): void {\n\t\tthis.setEntityMap(name, this.makeEntityMap(entities, key));\n\t}\n\n\tprotected getEntity<E>(name: string, key: string): E {\n\t\treturn this.getEntityMap<E>(name).get(key);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { makeDI } from '@nx-ddd/core';
|
|
4
|
+
import { CHROMIUM } from '@nx-ddd/common/infrastructure/externals/chromium/token';
|
|
5
|
+
import { chromium } from 'playwright';
|
|
6
|
+
import puppeteer from 'puppeteer-chromium-resolver';
|
|
7
|
+
|
|
8
|
+
const CHROMIUM_CONFIG = makeDI('[@connect-box/app] ChromiumConfig', { optional: false });
|
|
9
|
+
class ChromiumService {
|
|
10
|
+
config = CHROMIUM_CONFIG.inject();
|
|
11
|
+
async start(callback) {
|
|
12
|
+
const stats = await puppeteer();
|
|
13
|
+
const executablePath = stats.executablePath;
|
|
14
|
+
console.debug('executablePath:', executablePath);
|
|
15
|
+
const browser = await chromium.launch({
|
|
16
|
+
headless: this.config.headless,
|
|
17
|
+
executablePath: executablePath !== null ? executablePath : undefined,
|
|
18
|
+
timeout: 60 * 1000,
|
|
19
|
+
args: [
|
|
20
|
+
'--no-sandbox',
|
|
21
|
+
'--disable-setuid-sandbox',
|
|
22
|
+
'--disable-dev-shm-usage', // 追加: /dev/shmの使用を無効化
|
|
23
|
+
'--disable-extensions',
|
|
24
|
+
'--disable-gpu',
|
|
25
|
+
'--disable-software-rasterizer',
|
|
26
|
+
'--no-zygote',
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
const result = await callback(browser);
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
await browser.close();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ChromiumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ChromiumService, providedIn: 'root' });
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ChromiumService, decorators: [{
|
|
44
|
+
type: Injectable,
|
|
45
|
+
args: [{ providedIn: 'root' }]
|
|
46
|
+
}] });
|
|
47
|
+
function provideChromium(useFacotry = () => ({ headless: true })) {
|
|
48
|
+
return makeEnvironmentProviders([
|
|
49
|
+
CHROMIUM_CONFIG.provide(useFacotry),
|
|
50
|
+
CHROMIUM.provide(() => new ChromiumService()),
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Generated bundle index. Do not edit.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
export { CHROMIUM_CONFIG, ChromiumService, provideChromium };
|
|
59
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium-impl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-chromium-impl.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/impl/chromium.service.impl.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/impl/nx-ddd-common-infrastructure-externals-chromium-impl.ts"],"sourcesContent":["import { EnvironmentProviders, Injectable, makeEnvironmentProviders } from \"@angular/core\";\nimport { makeDI } from \"@nx-ddd/core\";\nimport { CHROMIUM } from \"@nx-ddd/common/infrastructure/externals/chromium/token\";\nimport { Browser, chromium } from \"playwright\";\nimport puppeteer from 'puppeteer-chromium-resolver'\n\nexport interface ChromiumConfig {\n headless: boolean,\n}\n\nexport const CHROMIUM_CONFIG = makeDI<ChromiumConfig>('[@connect-box/app] ChromiumConfig', {optional: false});\n\n@Injectable({providedIn: 'root'})\nexport class ChromiumService {\n protected readonly config = CHROMIUM_CONFIG.inject();\n\n async start<R = any>(callback: (browser: Browser) => Promise<R>): Promise<R> {\n const stats = await puppeteer();\n const executablePath = stats.executablePath;\n console.debug('executablePath:', executablePath);\n const browser = await chromium.launch({\n headless: this.config.headless,\n executablePath: executablePath !== null ? executablePath : undefined,\n timeout: 60 * 1000,\n args: [\n '--no-sandbox',\n '--disable-setuid-sandbox',\n '--disable-dev-shm-usage', // 追加: /dev/shmの使用を無効化\n '--disable-extensions',\n '--disable-gpu',\n '--disable-software-rasterizer',\n '--no-zygote',\n ]\n });\n try {\n const result = await callback(browser);\n return result;\n } catch(error) {\n throw error;\n } finally {\n await browser.close();\n }\n }\n}\n\nexport function provideChromium(useFacotry: () => ChromiumConfig = () => ({headless: true})): EnvironmentProviders {\n return makeEnvironmentProviders([\n CHROMIUM_CONFIG.provide(useFacotry),\n CHROMIUM.provide(() => new ChromiumService()),\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAUO,MAAM,eAAe,GAAG,MAAM,CAAiB,mCAAmC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC;MAG/F,eAAe,CAAA;AACP,IAAA,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE;IAEpD,MAAM,KAAK,CAAU,QAA0C,EAAA;AAC7D,QAAA,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE;AAC/B,QAAA,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc;AAC3C,QAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC;AAChD,QAAA,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;AACpC,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,cAAc,EAAE,cAAc,KAAK,IAAI,GAAG,cAAc,GAAG,SAAS;YACpE,OAAO,EAAE,EAAE,GAAG,IAAI;AAClB,YAAA,IAAI,EAAE;gBACJ,cAAc;gBACd,0BAA0B;AAC1B,gBAAA,yBAAyB;gBACzB,sBAAsB;gBACtB,eAAe;gBACf,+BAA+B;gBAC/B,aAAa;AACd;AACF,SAAA,CAAC;AACF,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;AACtC,YAAA,OAAO,MAAM;;QACb,OAAM,KAAK,EAAE;AACb,YAAA,MAAM,KAAK;;gBACH;AACR,YAAA,MAAM,OAAO,CAAC,KAAK,EAAE;;;uGA3Bd,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADH,MAAM,EAAA,CAAA;;2FAClB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;AAiChB,SAAA,eAAe,CAAC,UAAA,GAAmC,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAA;AACzF,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;AAC9C,KAAA,CAAC;AACJ;;AClDA;;AAEG;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { makeDI } from '@nx-ddd/core';
|
|
2
|
+
|
|
3
|
+
const CHROMIUM = makeDI('[@machina/common] CHROMIUM');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { CHROMIUM };
|
|
10
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium-token.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-chromium-token.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/token/index.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/token/nx-ddd-common-infrastructure-externals-chromium-token.ts"],"sourcesContent":["import { makeDI } from \"@nx-ddd/core\";\n\nexport const CHROMIUM = makeDI('[@machina/common] CHROMIUM');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAEa,QAAQ,GAAG,MAAM,CAAC,4BAA4B;;ACF3D;;AAEG;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CHROMIUM as CHROMIUM$1 } from '@nx-ddd/common/infrastructure/externals/chromium/token';
|
|
2
|
+
|
|
3
|
+
const CHROMIUM = CHROMIUM$1;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { CHROMIUM };
|
|
10
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-chromium.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/chromium.service.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/chromium/nx-ddd-common-infrastructure-externals-chromium.ts"],"sourcesContent":["import { DiToken } from \"@nx-ddd/core\";\nimport { CHROMIUM as _CHROMIUM } from \"@nx-ddd/common/infrastructure/externals/chromium/token\";\nimport type { ChromiumService } from '@nx-ddd/common/infrastructure/externals/chromium/impl';\n\nexport const CHROMIUM = <DiToken<ChromiumService>>_CHROMIUM;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_CHROMIUM"],"mappings":";;AAIO,MAAM,QAAQ,GAA6BA;;ACJlD;;AAEG;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, signal, Injectable } from '@angular/core';
|
|
3
|
+
import { Storage, getDownloadURL, ref, uploadBytesResumable } from '@angular/fire/storage';
|
|
4
|
+
import { toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { switchMap, of, Observable } from 'rxjs';
|
|
6
|
+
|
|
7
|
+
class CloudStorageService {
|
|
8
|
+
storage = inject(Storage);
|
|
9
|
+
task = signal(null);
|
|
10
|
+
task$ = toObservable(this.task);
|
|
11
|
+
progress = toSignal(this.task$.pipe(switchMap(task => task ? this.convertToObservable(task) : of(null))));
|
|
12
|
+
progress$ = toObservable(this.progress);
|
|
13
|
+
getDownloadUrl(filePath) {
|
|
14
|
+
return getDownloadURL(ref(this.storage, filePath));
|
|
15
|
+
}
|
|
16
|
+
convertToObservable(task) {
|
|
17
|
+
return new Observable(sub => {
|
|
18
|
+
task.on('state_changed', snapshot => sub.next(snapshot.bytesTransferred / snapshot.totalBytes * 100));
|
|
19
|
+
task.then(() => (sub.next(null), sub.complete()));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
upload(path, file) {
|
|
23
|
+
this.cancel();
|
|
24
|
+
const storageRef = ref(this.storage, path);
|
|
25
|
+
const task = uploadBytesResumable(storageRef, file);
|
|
26
|
+
this.task.set(task);
|
|
27
|
+
return task;
|
|
28
|
+
}
|
|
29
|
+
cancel() {
|
|
30
|
+
this.task()?.cancel();
|
|
31
|
+
this.task.set(null);
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CloudStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CloudStorageService, providedIn: 'any' });
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CloudStorageService, decorators: [{
|
|
37
|
+
type: Injectable,
|
|
38
|
+
args: [{ providedIn: 'any' }]
|
|
39
|
+
}] });
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Generated bundle index. Do not edit.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
export { CloudStorageService };
|
|
46
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-cloud-storage.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-cloud-storage.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/cloud-storage/cloud-storage.service.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/cloud-storage/nx-ddd-common-infrastructure-externals-cloud-storage.ts"],"sourcesContent":["import { inject, signal, Injectable } from '@angular/core';\nimport { Storage, UploadTask, getDownloadURL, ref, uploadBytesResumable } from '@angular/fire/storage';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { Observable, of, switchMap } from 'rxjs';\n\n@Injectable({providedIn: 'any'})\nexport class CloudStorageService {\n private storage = inject(Storage);\n private task = signal<UploadTask | null>(null);\n private task$ = toObservable(this.task);\n\n readonly progress = toSignal(this.task$.pipe(\n switchMap(task => task ? this.convertToObservable(task) : of(null)),\n // tap(progress => this.store.updateTaskProgress('default', progress)),\n ));\n readonly progress$ = toObservable(this.progress);\n\n getDownloadUrl(filePath: string) {\n return getDownloadURL(ref(this.storage, filePath));\n }\n\n private convertToObservable(task: UploadTask): Observable<number | null> {\n return new Observable<number | null>(sub => {\n task.on('state_changed', snapshot => sub.next(snapshot.bytesTransferred / snapshot.totalBytes * 100));\n task.then(() => (sub.next(null), sub.complete()));\n });\n }\n\n upload(path: string, file: File) {\n this.cancel();\n const storageRef = ref(this.storage, path);\n const task = uploadBytesResumable(storageRef, file);\n this.task.set(task);\n return task;\n }\n\n cancel() {\n this.task()?.cancel();\n this.task.set(null);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,mBAAmB,CAAA;AACtB,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,IAAA,IAAI,GAAG,MAAM,CAAoB,IAAI,CAAC;AACtC,IAAA,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAE9B,IAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC1C,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAEpE,CAAC;AACO,IAAA,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEhD,IAAA,cAAc,CAAC,QAAgB,EAAA;QAC7B,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;;AAG5C,IAAA,mBAAmB,CAAC,IAAgB,EAAA;AAC1C,QAAA,OAAO,IAAI,UAAU,CAAgB,GAAG,IAAG;YACzC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;YACrG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnD,SAAC,CAAC;;IAGJ,MAAM,CAAC,IAAY,EAAE,IAAU,EAAA;QAC7B,IAAI,CAAC,MAAM,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AACnB,QAAA,OAAO,IAAI;;IAGb,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;;uGAhCV,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADP,KAAK,EAAA,CAAA;;2FACjB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAE,KAAK,EAAC;;;ACL/B;;AAEG;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import admin from 'firebase-admin';
|
|
2
|
+
import { FIREBASE_ADMIN } from '@nx-ddd/common/infrastructure/externals/firebase-admin/token';
|
|
3
|
+
|
|
4
|
+
function provideFirebaseAdmin() {
|
|
5
|
+
return {
|
|
6
|
+
provide: FIREBASE_ADMIN,
|
|
7
|
+
useValue: admin,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generated bundle index. Do not edit.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
export { provideFirebaseAdmin };
|
|
16
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/impl/firebase-admin.service.impl.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/impl/nx-ddd-common-infrastructure-externals-firebase-admin-impl.ts"],"sourcesContent":["import admin from 'firebase-admin';\nimport { FIREBASE_ADMIN } from '@nx-ddd/common/infrastructure/externals/firebase-admin/token';\n\nexport function provideFirebaseAdmin() {\n return {\n provide: FIREBASE_ADMIN,\n useValue: admin,\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAGgB,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,KAAK;KAChB;AACH;;ACRA;;AAEG;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
const FIREBASE_ADMIN = new InjectionToken('FIREBASE_ADMIN');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { FIREBASE_ADMIN };
|
|
10
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/token/index.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/token/nx-ddd-common-infrastructure-externals-firebase-admin-token.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type admin from 'firebase-admin';\n\nexport interface FirebaseAdmin {\n auth(): admin.auth.Auth;\n firestore(): admin.firestore.Firestore;\n settings(): admin.firestore.Settings;\n}\n\nexport const FIREBASE_ADMIN = new InjectionToken<FirebaseAdmin>('FIREBASE_ADMIN');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MASa,cAAc,GAAG,IAAI,cAAc,CAAgB,gBAAgB;;ACThF;;AAEG;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { FIREBASE_ADMIN } from '@nx-ddd/common/infrastructure/externals/firebase-admin/token';
|
|
3
|
+
|
|
4
|
+
function injectFirebaseAdmin() {
|
|
5
|
+
return inject(FIREBASE_ADMIN, { optional: true }) ?? {};
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Generated bundle index. Do not edit.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
export { injectFirebaseAdmin };
|
|
13
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-firebase-admin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-firebase-admin.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/firebase-admin.service.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/firebase-admin/nx-ddd-common-infrastructure-externals-firebase-admin.ts"],"sourcesContent":["import { inject } from '@angular/core';\nimport { FIREBASE_ADMIN, FirebaseAdmin } from '@nx-ddd/common/infrastructure/externals/firebase-admin/token';\n\nexport function injectFirebaseAdmin(): FirebaseAdmin {\n return inject(FIREBASE_ADMIN, { optional: true }) ?? {} as FirebaseAdmin;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAGgB,mBAAmB,GAAA;AACjC,IAAA,OAAO,MAAM,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAmB;AAC1E;;ACLA;;AAEG;;;;"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Injectable, InjectionToken } from '@angular/core';
|
|
3
|
+
import { OPENAI } from '@nx-ddd/common/infrastructure/externals/openai/token';
|
|
4
|
+
import { OpenAI } from 'openai';
|
|
5
|
+
|
|
6
|
+
class OpenAiServiceImpl extends OpenAI {
|
|
7
|
+
constructor(config = inject(OPENAI_CONFIG)) {
|
|
8
|
+
super(config);
|
|
9
|
+
}
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: OpenAiServiceImpl, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: OpenAiServiceImpl, providedIn: 'root' });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: OpenAiServiceImpl, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{ providedIn: 'root' }]
|
|
16
|
+
}], ctorParameters: () => [{ type: undefined }] });
|
|
17
|
+
|
|
18
|
+
const OPENAI_CONFIG = new InjectionToken('[@nx-ddd/common] OPENAI_CONFIG');
|
|
19
|
+
function provideOpenAiConfig(useFactory) {
|
|
20
|
+
return provideOpenaiService(useFactory);
|
|
21
|
+
}
|
|
22
|
+
function provideOpenaiService(useFactory) {
|
|
23
|
+
return [
|
|
24
|
+
OPENAI.provide(() => {
|
|
25
|
+
const config = inject(OPENAI_CONFIG);
|
|
26
|
+
return new OpenAiServiceImpl(config);
|
|
27
|
+
}),
|
|
28
|
+
{ provide: OPENAI_CONFIG, useFactory },
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Generated bundle index. Do not edit.
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
export { OPENAI_CONFIG, OpenAiServiceImpl, provideOpenAiConfig, provideOpenaiService };
|
|
37
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-openai-impl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-openai-impl.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/impl/open-ai.service.impl.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/impl/open-ai.config.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/impl/nx-ddd-common-infrastructure-externals-openai-impl.ts"],"sourcesContent":["import { inject, Injectable } from \"@angular/core\";\nimport { OpenAI } from \"openai\";\nimport { OPENAI_CONFIG } from \"./open-ai.config\";\n\n@Injectable({providedIn: 'root'})\nexport class OpenAiServiceImpl extends OpenAI {\n constructor(\n config = inject(OPENAI_CONFIG),\n ) {\n super(config);\n }\n}\n","import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport { OPENAI } from \"@nx-ddd/common/infrastructure/externals/openai/token\";\nimport { OpenAiServiceImpl } from \"./open-ai.service.impl\";\n\nexport interface OpenAiConfig {\n apiKey: string;\n}\nexport const OPENAI_CONFIG = new InjectionToken<OpenAiConfig>('[@nx-ddd/common] OPENAI_CONFIG');\n\nexport function provideOpenAiConfig(useFactory: () => OpenAiConfig): Provider[] {\n return provideOpenaiService(useFactory);\n}\n\nexport function provideOpenaiService(useFactory: () => OpenAiConfig): Provider[] {\n return [\n OPENAI.provide(() => {\n const config = inject(OPENAI_CONFIG);\n return new OpenAiServiceImpl(config);\n }),\n { provide: OPENAI_CONFIG, useFactory },\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKM,MAAO,iBAAkB,SAAQ,MAAM,CAAA;AAC3C,IAAA,WAAA,CACE,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,EAAA;QAE9B,KAAK,CAAC,MAAM,CAAC;;uGAJJ,iBAAiB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADL,MAAM,EAAA,CAAA;;2FAClB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;MCGnB,aAAa,GAAG,IAAI,cAAc,CAAe,gCAAgC;AAExF,SAAU,mBAAmB,CAAC,UAA8B,EAAA;AAChE,IAAA,OAAO,oBAAoB,CAAC,UAAU,CAAC;AACzC;AAEM,SAAU,oBAAoB,CAAC,UAA8B,EAAA;IACjE,OAAO;AACL,QAAA,MAAM,CAAC,OAAO,CAAC,MAAK;AAClB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACpC,YAAA,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC;AACtC,SAAC,CAAC;AACF,QAAA,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE;KACvC;AACH;;ACrBA;;AAEG;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { makeDI } from '@nx-ddd/core';
|
|
2
|
+
|
|
3
|
+
const OPENAI = makeDI('[@nx-ddd/common] OPENAI SERVICE');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { OPENAI };
|
|
10
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-openai-token.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-openai-token.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/token/index.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/token/nx-ddd-common-infrastructure-externals-openai-token.ts"],"sourcesContent":["import { makeDI } from \"@nx-ddd/core\";\n\nexport const OPENAI = makeDI('[@nx-ddd/common] OPENAI SERVICE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAEa,MAAM,GAAG,MAAM,CAAC,iCAAiC;;ACF9D;;AAEG;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { OPENAI as OPENAI$1 } from '@nx-ddd/common/infrastructure/externals/openai/token';
|
|
3
|
+
|
|
4
|
+
const OPENAI = OPENAI$1;
|
|
5
|
+
function injectOpenAiService() {
|
|
6
|
+
return inject(OPENAI.token, { optional: true }) ?? {};
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Generated bundle index. Do not edit.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
export { OPENAI, injectOpenAiService };
|
|
14
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-openai.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-openai.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/open-ai.service.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/openai/nx-ddd-common-infrastructure-externals-openai.ts"],"sourcesContent":["import { inject } from \"@angular/core\";\nimport { DiToken } from \"@nx-ddd/core\";\nimport { OPENAI as _OPENAI } from \"@nx-ddd/common/infrastructure/externals/openai/token\";\nimport type { OpenAiServiceImpl } from '@nx-ddd/common/infrastructure/externals/openai/impl';\n\nexport const OPENAI = <DiToken<OpenAiServiceImpl>>_OPENAI;\n\nexport function injectOpenAiService(): OpenAiServiceImpl {\n return inject(OPENAI.token, {optional: true}) ?? {} as OpenAiServiceImpl;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["_OPENAI"],"mappings":";;;AAKO,MAAM,MAAM,GAA+BA;SAElC,mBAAmB,GAAA;AACjC,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,IAAI,EAAuB;AAC1E;;ACTA;;AAEG;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Inject, Injectable, InjectionToken, Injector } from '@angular/core';
|
|
3
|
+
import Stripe from 'stripe';
|
|
4
|
+
import { STRIPE_SERVICE } from '@nx-ddd/common/infrastructure/externals/stripe/token';
|
|
5
|
+
|
|
6
|
+
class StripeServiceImpl extends Stripe {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
super(config.secretKey);
|
|
9
|
+
}
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: StripeServiceImpl, deps: [{ token: STRIPE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: StripeServiceImpl });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: StripeServiceImpl, decorators: [{
|
|
14
|
+
type: Injectable
|
|
15
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
16
|
+
type: Inject,
|
|
17
|
+
args: [STRIPE_CONFIG]
|
|
18
|
+
}] }] });
|
|
19
|
+
|
|
20
|
+
const STRIPE_CONFIG = new InjectionToken('STRIPE_CONFIG');
|
|
21
|
+
function provideStripe(configFactory) {
|
|
22
|
+
return [
|
|
23
|
+
{ provide: STRIPE_SERVICE, useClass: StripeServiceImpl, deps: [STRIPE_CONFIG] },
|
|
24
|
+
{ provide: STRIPE_CONFIG, useFactory: configFactory, deps: [Injector] },
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Generated bundle index. Do not edit.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
export { STRIPE_CONFIG, StripeServiceImpl, provideStripe };
|
|
33
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-stripe-impl.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-stripe-impl.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/stripe/impl/stripe.service.impl.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/stripe/impl/stripe.config.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/stripe/impl/nx-ddd-common-infrastructure-externals-stripe-impl.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\nimport { STRIPE_CONFIG, StripeConfig } from './stripe.config';\nimport Stripe from \"stripe\";\n\n@Injectable()\nexport class StripeServiceImpl extends Stripe {\n constructor(\n @Inject(STRIPE_CONFIG) config: StripeConfig,\n ) {\n super(config.secretKey);\n }\n}\n\n// @Injectable()\n// export class StripeServiceImpl extends StripeService {\n// constructor(\n// @Inject(STRIPE_CONFIG) private config: StripeConfig,\n// ) {\n// super();\n// }\n\n// private stripe = new Stripe(this.config.secret, {apiVersion: '2022-11-15'});\n \n// createCard(card: Card): Promise<Stripe.Token> {\n// return this.stripe.tokens.create({\n// card: {\n// number: card.number,\n// exp_month: `${card.expMonth}`,\n// exp_year: `${card.expYear}`,\n// cvc: card.cvc,\n// }\n// }, {});\n// }\n\n// createCustomer(metadata: {userId: string}): Promise<Stripe.Response<Stripe.Customer>> {\n// return this.stripe.customers.create({metadata}, {});\n// }\n\n// createSource(customerId: string, source: string): Promise<Stripe.Response<Stripe.CustomerSource>> {\n// return this.stripe.customers.createSource(customerId, {source});\n// }\n// }","import { InjectionToken, Injector } from \"@angular/core\";\nimport { StripeServiceImpl } from \"./stripe.service.impl\";\nimport { STRIPE_SERVICE } from \"@nx-ddd/common/infrastructure/externals/stripe/token\";\n\nexport interface StripeConfig {\n secretKey: string;\n}\n\nexport const STRIPE_CONFIG = new InjectionToken<StripeConfig>('STRIPE_CONFIG');\n\nexport function provideStripe(configFactory: (injector: Injector) => StripeConfig) {\n return [\n { provide: STRIPE_SERVICE, useClass: StripeServiceImpl, deps: [STRIPE_CONFIG] },\n { provide: STRIPE_CONFIG, useFactory: configFactory, deps: [Injector] },\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAKM,MAAO,iBAAkB,SAAQ,MAAM,CAAA;AAC3C,IAAA,WAAA,CACyB,MAAoB,EAAA;AAE3C,QAAA,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;;AAJd,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAElB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAFZ,iBAAiB,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;0BAGI,MAAM;2BAAC,aAAa;;;MCCZ,aAAa,GAAG,IAAI,cAAc,CAAe,eAAe;AAEvE,SAAU,aAAa,CAAC,aAAmD,EAAA;IAC/E,OAAO;AACL,QAAA,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,aAAa,CAAC,EAAE;AAC/E,QAAA,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE;KACxE;AACH;;ACfA;;AAEG;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
const STRIPE_SERVICE = new InjectionToken('STRIPE_SERVICE');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Generated bundle index. Do not edit.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { STRIPE_SERVICE };
|
|
10
|
+
//# sourceMappingURL=nx-ddd-common-infrastructure-externals-stripe-token.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nx-ddd-common-infrastructure-externals-stripe-token.mjs","sources":["../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/stripe/token/index.ts","../../../../../packages/@nx-ddd/common/src/lib/infrastructure/externals/stripe/token/nx-ddd-common-infrastructure-externals-stripe-token.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport const STRIPE_SERVICE = new InjectionToken('STRIPE_SERVICE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;MAEa,cAAc,GAAG,IAAI,cAAc,CAAC,gBAAgB;;ACFjE;;AAEG;;;;"}
|