@xxmachina/common 19.21.8 → 19.25.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/_shared/meta/redis/index.d.ts.map +1 -1
- package/auth/azure/index.d.ts.map +1 -0
- package/auth/core/index.d.ts +17 -0
- package/auth/core/index.d.ts.map +1 -0
- package/auth/firebase/index.d.ts.map +1 -0
- package/auth/index.d.ts.map +1 -1
- package/auth/passports/anonymous/index.d.ts.map +1 -0
- package/auth/passports/firebase/index.d.ts.map +1 -0
- package/auth/passports/index.d.ts +61 -0
- package/auth/passports/index.d.ts.map +1 -0
- package/auth/passports/internal/index.d.ts.map +1 -0
- package/{_shared/auth → auth}/passports/msal/index.d.ts +2 -2
- package/auth/passports/msal/index.d.ts.map +1 -0
- package/domain/builder/index.d.ts +35 -2
- package/domain/builder/index.d.ts.map +1 -1
- package/domain/builder/screen-item/index.d.ts +26 -1
- package/domain/builder/screen-item/index.d.ts.map +1 -1
- package/domain/models/index.d.ts +41 -8
- package/domain/models/index.d.ts.map +1 -1
- package/domain/models/presenter/index.d.ts +128 -0
- package/domain/models/presenter/index.d.ts.map +1 -0
- package/fesm2022/{xxmachina-common-azure-auth.mjs → xxmachina-common-auth-azure.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-azure.mjs.map +1 -0
- package/fesm2022/xxmachina-common-auth-core.mjs +17 -0
- package/fesm2022/xxmachina-common-auth-core.mjs.map +1 -0
- package/fesm2022/{xxmachina-common-firebase-auth.mjs → xxmachina-common-auth-firebase.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-firebase.mjs.map +1 -0
- package/fesm2022/{xxmachina-common-_shared-auth-passports-anonymous.mjs → xxmachina-common-auth-passports-anonymous.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-passports-anonymous.mjs.map +1 -0
- package/fesm2022/{xxmachina-common-_shared-auth-passports-firebase.mjs → xxmachina-common-auth-passports-firebase.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-passports-firebase.mjs.map +1 -0
- package/fesm2022/{xxmachina-common-_shared-auth-passports-internal.mjs → xxmachina-common-auth-passports-internal.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-passports-internal.mjs.map +1 -0
- package/fesm2022/{xxmachina-common-_shared-auth-passports-msal.mjs → xxmachina-common-auth-passports-msal.mjs} +1 -1
- package/fesm2022/xxmachina-common-auth-passports-msal.mjs.map +1 -0
- package/fesm2022/xxmachina-common-auth-passports.mjs +113 -0
- package/fesm2022/xxmachina-common-auth-passports.mjs.map +1 -0
- package/fesm2022/xxmachina-common-auth.mjs.map +1 -1
- package/fesm2022/xxmachina-common-domain-builder-screen-item.mjs +58 -179
- package/fesm2022/xxmachina-common-domain-builder-screen-item.mjs.map +1 -1
- package/fesm2022/xxmachina-common-domain-builder.mjs +83 -219
- package/fesm2022/xxmachina-common-domain-builder.mjs.map +1 -1
- package/fesm2022/xxmachina-common-domain-models-presenter.mjs +4 -0
- package/fesm2022/xxmachina-common-domain-models-presenter.mjs.map +1 -0
- package/fesm2022/xxmachina-common-domain-models.mjs +70 -44
- package/fesm2022/xxmachina-common-domain-models.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-external-quick-js.mjs +12 -5
- package/fesm2022/xxmachina-common-infra-external-quick-js.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra-external.mjs +2 -5
- package/fesm2022/xxmachina-common-infra-external.mjs.map +1 -1
- package/fesm2022/xxmachina-common-infra.mjs +105 -109
- package/fesm2022/xxmachina-common-infra.mjs.map +1 -1
- package/fesm2022/xxmachina-common-invoice-usecase-invoice.mjs +101 -102
- package/fesm2022/xxmachina-common-invoice-usecase-invoice.mjs.map +1 -1
- package/fesm2022/xxmachina-common-services-graphql.mjs +57 -64
- package/fesm2022/xxmachina-common-services-graphql.mjs.map +1 -1
- package/fesm2022/xxmachina-common-services-query.mjs +2 -2
- package/fesm2022/xxmachina-common-services-query.mjs.map +1 -1
- package/fesm2022/xxmachina-common-services-speech.mjs +91 -23
- package/fesm2022/xxmachina-common-services-speech.mjs.map +1 -1
- package/infra/external/index.d.ts +5 -7
- package/infra/external/index.d.ts.map +1 -1
- package/infra/external/quick-js/index.d.ts +2 -7
- package/infra/external/quick-js/index.d.ts.map +1 -1
- package/infra/external/resend/index.d.ts.map +1 -1
- package/infra/index.d.ts +49 -77
- package/infra/index.d.ts.map +1 -1
- package/infra/repository/notion/index.d.ts.map +1 -1
- package/invoice/usecase/invoice/index.d.ts +0 -1
- package/invoice/usecase/invoice/index.d.ts.map +1 -1
- package/package.json +51 -39
- package/services/graphql/index.d.ts +0 -16
- package/services/graphql/index.d.ts.map +1 -1
- package/services/query/config/index.d.ts.map +1 -1
- package/services/query/index.d.ts.map +1 -1
- package/services/speech/index.d.ts +8 -0
- package/services/speech/index.d.ts.map +1 -1
- package/stores/firestore/index.d.ts +2 -2
- package/stores/inmemory/index.d.ts.map +1 -1
- package/usecase/database/index.d.ts.map +1 -1
- package/_shared/auth/passports/anonymous/index.d.ts.map +0 -1
- package/_shared/auth/passports/firebase/index.d.ts.map +0 -1
- package/_shared/auth/passports/internal/index.d.ts.map +0 -1
- package/_shared/auth/passports/msal/index.d.ts.map +0 -1
- package/azure-auth/index.d.ts.map +0 -1
- package/fesm2022/xxmachina-common-_shared-auth-passports-anonymous.mjs.map +0 -1
- package/fesm2022/xxmachina-common-_shared-auth-passports-firebase.mjs.map +0 -1
- package/fesm2022/xxmachina-common-_shared-auth-passports-internal.mjs.map +0 -1
- package/fesm2022/xxmachina-common-_shared-auth-passports-msal.mjs.map +0 -1
- package/fesm2022/xxmachina-common-azure-auth.mjs.map +0 -1
- package/fesm2022/xxmachina-common-firebase-auth.mjs.map +0 -1
- package/firebase-auth/index.d.ts.map +0 -1
- /package/{azure-auth → auth/azure}/index.d.ts +0 -0
- /package/{firebase-auth → auth/firebase}/index.d.ts +0 -0
- /package/{_shared/auth → auth}/passports/anonymous/index.d.ts +0 -0
- /package/{_shared/auth → auth}/passports/firebase/index.d.ts +0 -0
- /package/{_shared/auth → auth}/passports/internal/index.d.ts +0 -0
|
@@ -8,6 +8,102 @@ import { Invoice } from '@xxmachina/common/invoice/domain/models';
|
|
|
8
8
|
import { getHasuraRepository, HasuraService, deepSnakeToCamelCase } from '@nx-ddd/hasura';
|
|
9
9
|
import { gql } from '@apollo/client/core';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* 請求書関連のGraphQLクエリ
|
|
13
|
+
*/
|
|
14
|
+
const GET_INVOICE_WITH_RELATIONS_QUERY = `
|
|
15
|
+
query GetInvoiceWithRelations($id: String!) {
|
|
16
|
+
invoices_by_pk(id: $id) {
|
|
17
|
+
id
|
|
18
|
+
no
|
|
19
|
+
title
|
|
20
|
+
subject
|
|
21
|
+
customer_id
|
|
22
|
+
vendor_id
|
|
23
|
+
amount
|
|
24
|
+
due_date
|
|
25
|
+
orders {
|
|
26
|
+
id
|
|
27
|
+
title
|
|
28
|
+
ecl_id
|
|
29
|
+
customer_id
|
|
30
|
+
vendor_id
|
|
31
|
+
contract_id
|
|
32
|
+
invoice_id
|
|
33
|
+
start_date
|
|
34
|
+
end_date
|
|
35
|
+
unit_price
|
|
36
|
+
unit
|
|
37
|
+
quantity
|
|
38
|
+
amount_input
|
|
39
|
+
amount
|
|
40
|
+
status_in
|
|
41
|
+
status_out
|
|
42
|
+
}
|
|
43
|
+
customer {
|
|
44
|
+
id
|
|
45
|
+
name
|
|
46
|
+
type
|
|
47
|
+
address
|
|
48
|
+
postal_code
|
|
49
|
+
email
|
|
50
|
+
billing_email
|
|
51
|
+
billing_contact
|
|
52
|
+
phone_number
|
|
53
|
+
contact
|
|
54
|
+
suffix
|
|
55
|
+
bank_account
|
|
56
|
+
invoice_number
|
|
57
|
+
}
|
|
58
|
+
vendor {
|
|
59
|
+
id
|
|
60
|
+
name
|
|
61
|
+
type
|
|
62
|
+
address
|
|
63
|
+
postal_code
|
|
64
|
+
email
|
|
65
|
+
billing_email
|
|
66
|
+
billing_contact
|
|
67
|
+
phone_number
|
|
68
|
+
contact
|
|
69
|
+
suffix
|
|
70
|
+
bank_account
|
|
71
|
+
invoice_number
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
`;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* 請求書データ変換ユーティリティ
|
|
79
|
+
*/
|
|
80
|
+
/**
|
|
81
|
+
* スネークケースをキャメルケースに変換
|
|
82
|
+
*/
|
|
83
|
+
const snakeToCamel = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
84
|
+
/**
|
|
85
|
+
* 請求書データをキャメルケースに変換し、__typenameを除外
|
|
86
|
+
*/
|
|
87
|
+
function transformInvoiceData(data) {
|
|
88
|
+
const transform = (obj) => {
|
|
89
|
+
if (Array.isArray(obj)) {
|
|
90
|
+
return obj.map(transform);
|
|
91
|
+
}
|
|
92
|
+
else if (obj !== null && typeof obj === 'object') {
|
|
93
|
+
const transformed = {};
|
|
94
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
95
|
+
if (key === '__typename')
|
|
96
|
+
continue;
|
|
97
|
+
const camelKey = snakeToCamel(key);
|
|
98
|
+
transformed[camelKey] = transform(value);
|
|
99
|
+
}
|
|
100
|
+
return transformed;
|
|
101
|
+
}
|
|
102
|
+
return obj;
|
|
103
|
+
};
|
|
104
|
+
return transform(data);
|
|
105
|
+
}
|
|
106
|
+
|
|
11
107
|
const INVOICE_CONFIG = makeDI('[@xxmachina/invoice] INVOICE_CONFIG', { optional: false });
|
|
12
108
|
class InvoiceUsecase {
|
|
13
109
|
notionRepo = inject(InvoiceNotionRepository);
|
|
@@ -36,9 +132,7 @@ class InvoiceUsecase {
|
|
|
36
132
|
}
|
|
37
133
|
async makePdf(data) {
|
|
38
134
|
return this.chromium.start(async (browser) => {
|
|
39
|
-
const context = await browser.newContext({
|
|
40
|
-
deviceScaleFactor: 2,
|
|
41
|
-
});
|
|
135
|
+
const context = await browser.newContext({ deviceScaleFactor: 2 });
|
|
42
136
|
const page = await context.newPage();
|
|
43
137
|
page.on('console', msg => console.log('PAGE LOG:', msg.text()));
|
|
44
138
|
page.on('pageerror', err => console.log('PAGE ERROR:', err.message));
|
|
@@ -58,94 +152,20 @@ class InvoiceUsecase {
|
|
|
58
152
|
to: mail.to,
|
|
59
153
|
subject: mail.subject,
|
|
60
154
|
html: mail.content,
|
|
61
|
-
attachments: [
|
|
62
|
-
{
|
|
63
|
-
filename: pdf.name,
|
|
64
|
-
content: pdf.pdf,
|
|
65
|
-
contentType: 'application/pdf',
|
|
66
|
-
}
|
|
67
|
-
]
|
|
155
|
+
attachments: [{ filename: pdf.name, content: pdf.pdf, contentType: 'application/pdf' }]
|
|
68
156
|
});
|
|
69
157
|
}
|
|
70
158
|
async getLink(invoiceId) {
|
|
71
159
|
try {
|
|
72
|
-
// GraphQLクエリで全ての関連データを一度に取得
|
|
73
|
-
const query = `
|
|
74
|
-
query GetInvoiceWithRelations($id: String!) {
|
|
75
|
-
invoices_by_pk(id: $id) {
|
|
76
|
-
id
|
|
77
|
-
no
|
|
78
|
-
title
|
|
79
|
-
subject
|
|
80
|
-
customer_id
|
|
81
|
-
vendor_id
|
|
82
|
-
amount
|
|
83
|
-
due_date
|
|
84
|
-
orders {
|
|
85
|
-
id
|
|
86
|
-
title
|
|
87
|
-
ecl_id
|
|
88
|
-
customer_id
|
|
89
|
-
vendor_id
|
|
90
|
-
contract_id
|
|
91
|
-
invoice_id
|
|
92
|
-
start_date
|
|
93
|
-
end_date
|
|
94
|
-
unit_price
|
|
95
|
-
unit
|
|
96
|
-
quantity
|
|
97
|
-
amount_input
|
|
98
|
-
amount
|
|
99
|
-
status_in
|
|
100
|
-
status_out
|
|
101
|
-
}
|
|
102
|
-
customer {
|
|
103
|
-
id
|
|
104
|
-
name
|
|
105
|
-
type
|
|
106
|
-
address
|
|
107
|
-
postal_code
|
|
108
|
-
email
|
|
109
|
-
billing_email
|
|
110
|
-
billing_contact
|
|
111
|
-
phone_number
|
|
112
|
-
contact
|
|
113
|
-
suffix
|
|
114
|
-
bank_account
|
|
115
|
-
invoice_number
|
|
116
|
-
}
|
|
117
|
-
vendor {
|
|
118
|
-
id
|
|
119
|
-
name
|
|
120
|
-
type
|
|
121
|
-
address
|
|
122
|
-
postal_code
|
|
123
|
-
email
|
|
124
|
-
billing_email
|
|
125
|
-
billing_contact
|
|
126
|
-
phone_number
|
|
127
|
-
contact
|
|
128
|
-
suffix
|
|
129
|
-
bank_account
|
|
130
|
-
invoice_number
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
`;
|
|
135
160
|
const result = await this.hasuraService.query({
|
|
136
|
-
query: gql `${
|
|
161
|
+
query: gql `${GET_INVOICE_WITH_RELATIONS_QUERY}`,
|
|
137
162
|
variables: { id: invoiceId }
|
|
138
|
-
}).then(result =>
|
|
139
|
-
// camelCaseに変換
|
|
140
|
-
return deepSnakeToCamelCase(result);
|
|
141
|
-
});
|
|
163
|
+
}).then(result => deepSnakeToCamelCase(result));
|
|
142
164
|
const invoiceData = result.data?.invoicesByPk;
|
|
143
165
|
if (!invoiceData) {
|
|
144
166
|
throw new Error(`Invoice with ID ${invoiceId} not found`);
|
|
145
167
|
}
|
|
146
|
-
|
|
147
|
-
const transformedData = this.transformInvoiceData(invoiceData);
|
|
148
|
-
// テンプレートURLを生成(makePdfと同じロジック)
|
|
168
|
+
const transformedData = transformInvoiceData(invoiceData);
|
|
149
169
|
const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(transformedData))}`;
|
|
150
170
|
return url;
|
|
151
171
|
}
|
|
@@ -154,27 +174,6 @@ class InvoiceUsecase {
|
|
|
154
174
|
throw error;
|
|
155
175
|
}
|
|
156
176
|
}
|
|
157
|
-
transformInvoiceData(data) {
|
|
158
|
-
const snakeToCamel = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
159
|
-
const transform = (obj) => {
|
|
160
|
-
if (Array.isArray(obj)) {
|
|
161
|
-
return obj.map(transform);
|
|
162
|
-
}
|
|
163
|
-
else if (obj !== null && typeof obj === 'object') {
|
|
164
|
-
const transformed = {};
|
|
165
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
166
|
-
// __typenameフィールドを除外
|
|
167
|
-
if (key === '__typename')
|
|
168
|
-
continue;
|
|
169
|
-
const camelKey = snakeToCamel(key);
|
|
170
|
-
transformed[camelKey] = transform(value);
|
|
171
|
-
}
|
|
172
|
-
return transformed;
|
|
173
|
-
}
|
|
174
|
-
return obj;
|
|
175
|
-
};
|
|
176
|
-
return transform(data);
|
|
177
|
-
}
|
|
178
177
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: InvoiceUsecase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
179
178
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: InvoiceUsecase, providedIn: 'root' });
|
|
180
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xxmachina-common-invoice-usecase-invoice.mjs","sources":["../tmp-esm2022/invoice/usecase/invoice/invoice.service.js","../tmp-esm2022/invoice/usecase/invoice/xxmachina-common-invoice-usecase-invoice.js"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { InvoiceNotionRepository } from '@xxmachina/common/infra/repository/notion';\nimport { CHROMIUM } from '@nx-ddd/common/infrastructure/externals/chromium';\nimport { makeDI } from '@nx-ddd/core';\nimport { RESEND_SERVICE } from '@xxmachina/common/infra/external/resend';\nimport { Invoice } from '@xxmachina/common/invoice/domain/models';\nimport { deepSnakeToCamelCase, getHasuraRepository, HasuraService } from '@nx-ddd/hasura';\nimport { gql } from '@apollo/client/core';\nimport * as i0 from \"@angular/core\";\nexport const INVOICE_CONFIG = makeDI('[@xxmachina/invoice] INVOICE_CONFIG', { optional: false });\nexport class InvoiceUsecase {\n notionRepo = inject(InvoiceNotionRepository);\n chromium = CHROMIUM.inject();\n config = INVOICE_CONFIG.inject();\n resend = RESEND_SERVICE.inject();\n hasura = getHasuraRepository(Invoice, { hasura: inject(HasuraService) });\n hasuraService = inject(HasuraService);\n async list() {\n return this.notionRepo.list();\n }\n async syncOne(id) {\n const invoice = await this.notionRepo.get({ id });\n await this.hasura.create(invoice);\n }\n async sync() {\n console.log('[InvoiceUsecase] Starting sync from Notion to Hasura...');\n const invoices = await this.notionRepo.list();\n console.log(`[InvoiceUsecase] Retrieved ${invoices.length} invoices from Notion`);\n console.log('[InvoiceUsecase] Deleting existing records in Hasura...');\n await this.hasura.deleteAll();\n console.log('[InvoiceUsecase] Saving invoices to Hasura...');\n await this.hasura.saveMany(invoices);\n console.log('[InvoiceUsecase] Sync completed successfully');\n return { synced: invoices.length };\n }\n async makePdf(data) {\n return this.chromium.start(async (browser) => {\n const context = await browser.newContext({\n deviceScaleFactor: 2,\n });\n const page = await context.newPage();\n page.on('console', msg => console.log('PAGE LOG:', msg.text()));\n page.on('pageerror', err => console.log('PAGE ERROR:', err.message));\n const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(data))}`;\n await page.goto(url, { waitUntil: 'networkidle' });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForSelector('h1');\n const title = await page.title();\n const pdf = await page.pdf({ format: 'A4' });\n return { pdf, title, name: `${title}.pdf` };\n });\n }\n async sendMail(mail) {\n const pdf = await this.makePdf(mail.invoice);\n await this.resend.emails.send({\n from: mail.from,\n to: mail.to,\n subject: mail.subject,\n html: mail.content,\n attachments: [\n {\n filename: pdf.name,\n content: pdf.pdf,\n contentType: 'application/pdf',\n }\n ]\n });\n }\n async getLink(invoiceId) {\n try {\n // GraphQLクエリで全ての関連データを一度に取得\n const query = `\n query GetInvoiceWithRelations($id: String!) {\n invoices_by_pk(id: $id) {\n id\n no\n title\n subject\n customer_id\n vendor_id\n amount\n due_date\n orders {\n id\n title\n ecl_id\n customer_id\n vendor_id\n contract_id\n invoice_id\n start_date\n end_date\n unit_price\n unit\n quantity\n amount_input\n amount\n status_in\n status_out\n }\n customer {\n id\n name\n type\n address\n postal_code\n email\n billing_email\n billing_contact\n phone_number\n contact\n suffix\n bank_account\n invoice_number\n }\n vendor {\n id\n name\n type\n address\n postal_code\n email\n billing_email\n billing_contact\n phone_number\n contact\n suffix\n bank_account\n invoice_number\n }\n }\n }\n `;\n const result = await this.hasuraService.query({\n query: gql `${query}`,\n variables: { id: invoiceId }\n }).then(result => {\n // camelCaseに変換\n return deepSnakeToCamelCase(result);\n });\n const invoiceData = result.data?.invoicesByPk;\n if (!invoiceData) {\n throw new Error(`Invoice with ID ${invoiceId} not found`);\n }\n // スネークケースからキャメルケースに変換し、__typenameを削除\n const transformedData = this.transformInvoiceData(invoiceData);\n // テンプレートURLを生成(makePdfと同じロジック)\n const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(transformedData))}`;\n return url;\n }\n catch (error) {\n console.error(`[InvoiceUsecase] Failed to get link for invoice ${invoiceId}:`, error);\n throw error;\n }\n }\n transformInvoiceData(data) {\n const snakeToCamel = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n const transform = (obj) => {\n if (Array.isArray(obj)) {\n return obj.map(transform);\n }\n else if (obj !== null && typeof obj === 'object') {\n const transformed = {};\n for (const [key, value] of Object.entries(obj)) {\n // __typenameフィールドを除外\n if (key === '__typename')\n continue;\n const camelKey = snakeToCamel(key);\n transformed[camelKey] = transform(value);\n }\n return transformed;\n }\n return obj;\n };\n return transform(data);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9pbnZvaWNlL3VzZWNhc2UvaW52b2ljZS9pbnZvaWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQWUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU0xQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFnQixxQ0FBcUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxjQUFjO0lBQ1IsVUFBVSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUs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QUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLHFCQUFxQjtvQkFDckIsSUFBSSxHQUFHLEtBQUssWUFBWTt3QkFBRSxTQUFTO29CQUVuQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25DLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7Z0JBQ0QsT0FBTyxXQUFXLENBQUM7WUFDckIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzt1R0F0TFUsY0FBYzsyR0FBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnZvaWNlTm90aW9uUmVwb3NpdG9yeSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2luZnJhL3JlcG9zaXRvcnkvbm90aW9uJztcbmltcG9ydCB7IENIUk9NSVVNIH0gZnJvbSAnQG54LWRkZC9jb21tb24vaW5mcmFzdHJ1Y3R1cmUvZXh0ZXJuYWxzL2Nocm9taXVtJztcbmltcG9ydCB7IG1ha2VESSB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBSRVNFTkRfU0VSVklDRSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2luZnJhL2V4dGVybmFsL3Jlc2VuZCc7XG5pbXBvcnQgeyBJbnZvaWNlLCBJbnZvaWNlTWFpbCB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2ludm9pY2UvZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBkZWVwU25ha2VUb0NhbWVsQ2FzZSwgZ2V0SGFzdXJhUmVwb3NpdG9yeSwgSGFzdXJhU2VydmljZSB9IGZyb20gJ0BueC1kZGQvaGFzdXJhJztcbmltcG9ydCB7IGdxbCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEludm9pY2VDb25maWcge1xuICB0ZW1wbGF0ZUJhc2VVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IElOVk9JQ0VfQ09ORklHID0gbWFrZURJPEludm9pY2VDb25maWc+KCdbQHh4bWFjaGluYS9pbnZvaWNlXSBJTlZPSUNFX0NPTkZJRycsIHtvcHRpb25hbDogZmFsc2V9KTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbnZvaWNlVXNlY2FzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm90aW9uUmVwbyA9IGluamVjdChJbnZvaWNlTm90aW9uUmVwb3NpdG9yeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hyb21pdW0gPSBDSFJPTUlVTS5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBJTlZPSUNFX0NPTkZJRy5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNlbmQgPSBSRVNFTkRfU0VSVklDRS5pbmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXN1cmEgPSBnZXRIYXN1cmFSZXBvc2l0b3J5KEludm9pY2UsIHsgaGFzdXJhOiBpbmplY3QoSGFzdXJhU2VydmljZSkgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGFzdXJhU2VydmljZSA9IGluamVjdChIYXN1cmFTZXJ2aWNlKTtcblxuICBhc3luYyBsaXN0KCkge1xuICAgIHJldHVybiB0aGlzLm5vdGlvblJlcG8ubGlzdCgpO1xuICB9XG5cbiAgYXN5bmMgc3luY09uZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW52b2ljZSA9IGF3YWl0IHRoaXMubm90aW9uUmVwby5nZXQoeyBpZCB9KTtcbiAgICBhd2FpdCB0aGlzLmhhc3VyYS5jcmVhdGUoaW52b2ljZSk7XG4gIH1cblxuICBhc3luYyBzeW5jKCkge1xuICAgIGNvbnNvbGUubG9nKCdbSW52b2ljZVVzZWNhc2VdIFN0YXJ0aW5nIHN5bmMgZnJvbSBOb3Rpb24gdG8gSGFzdXJhLi4uJyk7XG4gICAgXG4gICAgY29uc3QgaW52b2ljZXMgPSBhd2FpdCB0aGlzLm5vdGlvblJlcG8ubGlzdCgpO1xuICAgIGNvbnNvbGUubG9nKGBbSW52b2ljZVVzZWNhc2VdIFJldHJpZXZlZCAke2ludm9pY2VzLmxlbmd0aH0gaW52b2ljZXMgZnJvbSBOb3Rpb25gKTtcbiAgICBcbiAgICBjb25zb2xlLmxvZygnW0ludm9pY2VVc2VjYXNlXSBEZWxldGluZyBleGlzdGluZyByZWNvcmRzIGluIEhhc3VyYS4uLicpO1xuICAgIGF3YWl0IHRoaXMuaGFzdXJhLmRlbGV0ZUFsbCgpO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKCdbSW52b2ljZVVzZWNhc2VdIFNhdmluZyBpbnZvaWNlcyB0byBIYXN1cmEuLi4nKTtcbiAgICBhd2FpdCB0aGlzLmhhc3VyYS5zYXZlTWFueShpbnZvaWNlcyk7XG4gICAgXG4gICAgY29uc29sZS5sb2coJ1tJbnZvaWNlVXNlY2FzZV0gU3luYyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgcmV0dXJuIHsgc3luY2VkOiBpbnZvaWNlcy5sZW5ndGggfTtcbiAgfVxuXG4gIGFzeW5jIG1ha2VQZGYoZGF0YTogb2JqZWN0KTogUHJvbWlzZTx7IHBkZjogQnVmZmVyLCB0aXRsZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmNocm9taXVtLnN0YXJ0KGFzeW5jIChicm93c2VyKSA9PiB7XG4gICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgYnJvd3Nlci5uZXdDb250ZXh0KHtcbiAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3I6IDIsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjb250ZXh0Lm5ld1BhZ2UoKTtcbiAgICAgIHBhZ2Uub24oJ2NvbnNvbGUnLCBtc2cgPT4gY29uc29sZS5sb2coJ1BBR0UgTE9HOicsIG1zZy50ZXh0KCkpKTtcbiAgICAgIHBhZ2Uub24oJ3BhZ2VlcnJvcicsIGVyciA9PiBjb25zb2xlLmxvZygnUEFHRSBFUlJPUjonLCBlcnIubWVzc2FnZSkpO1xuICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5jb25maWcudGVtcGxhdGVCYXNlVXJsfT9qc29uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGRhdGEpKX1gO1xuICAgICAgYXdhaXQgcGFnZS5nb3RvKHVybCwgeyB3YWl0VW50aWw6ICduZXR3b3JraWRsZScgfSk7XG4gICAgICBhd2FpdCBwYWdlLmV2YWx1YXRlKCgpID0+IGRvY3VtZW50LmZvbnRzLnJlYWR5KTtcbiAgICAgIGF3YWl0IHBhZ2Uud2FpdEZvclNlbGVjdG9yKCdoMScpO1xuICAgICAgY29uc3QgdGl0bGUgPSBhd2FpdCBwYWdlLnRpdGxlKCk7XG4gICAgICBjb25zdCBwZGYgPSBhd2FpdCBwYWdlLnBkZih7IGZvcm1hdDogJ0E0JyB9KTtcbiAgICAgIHJldHVybiB7IHBkZiwgdGl0bGUsIG5hbWU6IGAke3RpdGxlfS5wZGZgIH07XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZW5kTWFpbChtYWlsOiBJbnZvaWNlTWFpbCkge1xuICAgIGNvbnN0IHBkZiA9IGF3YWl0IHRoaXMubWFrZVBkZihtYWlsLmludm9pY2UpO1xuICAgIGF3YWl0IHRoaXMucmVzZW5kLmVtYWlscy5zZW5kKHtcbiAgICAgIGZyb206IG1haWwuZnJvbSxcbiAgICAgIHRvOiBtYWlsLnRvLFxuICAgICAgc3ViamVjdDogbWFpbC5zdWJqZWN0LFxuICAgICAgaHRtbDogbWFpbC5jb250ZW50LFxuICAgICAgYXR0YWNobWVudHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGZpbGVuYW1lOiBwZGYubmFtZSxcbiAgICAgICAgICBjb250ZW50OiBwZGYucGRmLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGluayhpbnZvaWNlSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEdyYXBoUUzjgq/jgqjjg6rjgaflhajjgabjga7plqLpgKPjg4fjg7zjgr/jgpLkuIDluqbjgavlj5blvpdcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gYFxuICAgICAgICBxdWVyeSBHZXRJbnZvaWNlV2l0aFJlbGF0aW9ucygkaWQ6IFN0cmluZyEpIHtcbiAgICAgICAgICBpbnZvaWNlc19ieV9wayhpZDogJGlkKSB7XG4gICAgICAgICAgICBpZFxuICAgICAgICAgICAgbm9cbiAgICAgICAgICAgIHRpdGxlXG4gICAgICAgICAgICBzdWJqZWN0XG4gICAgICAgICAgICBjdXN0b21lcl9pZFxuICAgICAgICAgICAgdmVuZG9yX2lkXG4gICAgICAgICAgICBhbW91bnRcbiAgICAgICAgICAgIGR1ZV9kYXRlXG4gICAgICAgICAgICBvcmRlcnMge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICB0aXRsZVxuICAgICAgICAgICAgICBlY2xfaWRcbiAgICAgICAgICAgICAgY3VzdG9tZXJfaWRcbiAgICAgICAgICAgICAgdmVuZG9yX2lkXG4gICAgICAgICAgICAgIGNvbnRyYWN0X2lkXG4gICAgICAgICAgICAgIGludm9pY2VfaWRcbiAgICAgICAgICAgICAgc3RhcnRfZGF0ZVxuICAgICAgICAgICAgICBlbmRfZGF0ZVxuICAgICAgICAgICAgICB1bml0X3ByaWNlXG4gICAgICAgICAgICAgIHVuaXRcbiAgICAgICAgICAgICAgcXVhbnRpdHlcbiAgICAgICAgICAgICAgYW1vdW50X2lucHV0XG4gICAgICAgICAgICAgIGFtb3VudFxuICAgICAgICAgICAgICBzdGF0dXNfaW5cbiAgICAgICAgICAgICAgc3RhdHVzX291dFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VzdG9tZXIge1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgYWRkcmVzc1xuICAgICAgICAgICAgICBwb3N0YWxfY29kZVxuICAgICAgICAgICAgICBlbWFpbFxuICAgICAgICAgICAgICBiaWxsaW5nX2VtYWlsXG4gICAgICAgICAgICAgIGJpbGxpbmdfY29udGFjdFxuICAgICAgICAgICAgICBwaG9uZV9udW1iZXJcbiAgICAgICAgICAgICAgY29udGFjdFxuICAgICAgICAgICAgICBzdWZmaXhcbiAgICAgICAgICAgICAgYmFua19hY2NvdW50XG4gICAgICAgICAgICAgIGludm9pY2VfbnVtYmVyXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2ZW5kb3Ige1xuICAgICAgICAgICAgICBpZFxuICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgYWRkcmVzc1xuICAgICAgICAgICAgICBwb3N0YWxfY29kZVxuICAgICAgICAgICAgICBlbWFpbFxuICAgICAgICAgICAgICBiaWxsaW5nX2VtYWlsXG4gICAgICAgICAgICAgIGJpbGxpbmdfY29udGFjdFxuICAgICAgICAgICAgICBwaG9uZV9udW1iZXJcbiAgICAgICAgICAgICAgY29udGFjdFxuICAgICAgICAgICAgICBzdWZmaXhcbiAgICAgICAgICAgICAgYmFua19hY2NvdW50XG4gICAgICAgICAgICAgIGludm9pY2VfbnVtYmVyXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBgO1xuICAgICAgXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmhhc3VyYVNlcnZpY2UucXVlcnkoe1xuICAgICAgICBxdWVyeTogZ3FsYCR7cXVlcnl9YCxcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkOiBpbnZvaWNlSWQgfVxuICAgICAgfSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAvLyBjYW1lbENhc2XjgavlpInmj5tcbiAgICAgICAgcmV0dXJuIGRlZXBTbmFrZVRvQ2FtZWxDYXNlKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgY29uc3QgaW52b2ljZURhdGEgPSAocmVzdWx0IGFzIGFueSkuZGF0YT8uaW52b2ljZXNCeVBrO1xuICAgICAgaWYgKCFpbnZvaWNlRGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludm9pY2Ugd2l0aCBJRCAke2ludm9pY2VJZH0gbm90IGZvdW5kYCk7XG4gICAgICB9XG5cbiAgICAgIC8vIOOCueODjeODvOOCr+OCseODvOOCueOBi+OCieOCreODo+ODoeODq+OCseODvOOCueOBq+WkieaPm+OBl+OAgV9fdHlwZW5hbWXjgpLliYrpmaRcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRoaXMudHJhbnNmb3JtSW52b2ljZURhdGEoaW52b2ljZURhdGEpO1xuXG4gICAgICAvLyDjg4bjg7Pjg5fjg6zjg7zjg4hVUkzjgpLnlJ/miJDvvIhtYWtlUGRm44Go5ZCM44GY44Ot44K444OD44Kv77yJXG4gICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy50ZW1wbGF0ZUJhc2VVcmx9P2pzb249JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodHJhbnNmb3JtZWREYXRhKSl9YDtcblxuICAgICAgcmV0dXJuIHVybDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgW0ludm9pY2VVc2VjYXNlXSBGYWlsZWQgdG8gZ2V0IGxpbmsgZm9yIGludm9pY2UgJHtpbnZvaWNlSWR9OmAsIGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNmb3JtSW52b2ljZURhdGEoZGF0YTogYW55KTogYW55IHtcbiAgICBjb25zdCBzbmFrZVRvQ2FtZWwgPSAoc3RyOiBzdHJpbmcpID0+IFxuICAgICAgc3RyLnJlcGxhY2UoL18oW2Etel0pL2csIChfLCBsZXR0ZXIpID0+IGxldHRlci50b1VwcGVyQ2FzZSgpKTtcblxuICAgIGNvbnN0IHRyYW5zZm9ybSA9IChvYmo6IGFueSk6IGFueSA9PiB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIHJldHVybiBvYmoubWFwKHRyYW5zZm9ybSk7XG4gICAgICB9IGVsc2UgaWYgKG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZDogYW55ID0ge307XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgICAgICAvLyBfX3R5cGVuYW1l44OV44Kj44O844Or44OJ44KS6Zmk5aSWXG4gICAgICAgICAgaWYgKGtleSA9PT0gJ19fdHlwZW5hbWUnKSBjb250aW51ZTtcbiAgICAgICAgICBcbiAgICAgICAgICBjb25zdCBjYW1lbEtleSA9IHNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICAgIHRyYW5zZm9ybWVkW2NhbWVsS2V5XSA9IHRyYW5zZm9ybSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybShkYXRhKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi1pbnZvaWNlLXVzZWNhc2UtaW52b2ljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvaW52b2ljZS91c2VjYXNlL2ludm9pY2UveHhtYWNoaW5hLWNvbW1vbi1pbnZvaWNlLXVzZWNhc2UtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xxmachina-common-invoice-usecase-invoice.mjs","sources":["../tmp-esm2022/invoice/usecase/invoice/invoice-queries.js","../tmp-esm2022/invoice/usecase/invoice/invoice-utils.js","../tmp-esm2022/invoice/usecase/invoice/invoice.service.js","../tmp-esm2022/invoice/usecase/invoice/xxmachina-common-invoice-usecase-invoice.js"],"sourcesContent":["/**\n * 請求書関連のGraphQLクエリ\n */\nexport const GET_INVOICE_WITH_RELATIONS_QUERY = `\n query GetInvoiceWithRelations($id: String!) {\n invoices_by_pk(id: $id) {\n id\n no\n title\n subject\n customer_id\n vendor_id\n amount\n due_date\n orders {\n id\n title\n ecl_id\n customer_id\n vendor_id\n contract_id\n invoice_id\n start_date\n end_date\n unit_price\n unit\n quantity\n amount_input\n amount\n status_in\n status_out\n }\n customer {\n id\n name\n type\n address\n postal_code\n email\n billing_email\n billing_contact\n phone_number\n contact\n suffix\n bank_account\n invoice_number\n }\n vendor {\n id\n name\n type\n address\n postal_code\n email\n billing_email\n billing_contact\n phone_number\n contact\n suffix\n bank_account\n invoice_number\n }\n }\n }\n`;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS1xdWVyaWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9pbnZvaWNlL3VzZWNhc2UvaW52b2ljZS9pbnZvaWNlLXF1ZXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZEL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog6KuL5rGC5pu46Zai6YCj44GuR3JhcGhRTOOCr+OCqOODqlxuICovXG5cbmV4cG9ydCBjb25zdCBHRVRfSU5WT0lDRV9XSVRIX1JFTEFUSU9OU19RVUVSWSA9IGBcbiAgcXVlcnkgR2V0SW52b2ljZVdpdGhSZWxhdGlvbnMoJGlkOiBTdHJpbmchKSB7XG4gICAgaW52b2ljZXNfYnlfcGsoaWQ6ICRpZCkge1xuICAgICAgaWRcbiAgICAgIG5vXG4gICAgICB0aXRsZVxuICAgICAgc3ViamVjdFxuICAgICAgY3VzdG9tZXJfaWRcbiAgICAgIHZlbmRvcl9pZFxuICAgICAgYW1vdW50XG4gICAgICBkdWVfZGF0ZVxuICAgICAgb3JkZXJzIHtcbiAgICAgICAgaWRcbiAgICAgICAgdGl0bGVcbiAgICAgICAgZWNsX2lkXG4gICAgICAgIGN1c3RvbWVyX2lkXG4gICAgICAgIHZlbmRvcl9pZFxuICAgICAgICBjb250cmFjdF9pZFxuICAgICAgICBpbnZvaWNlX2lkXG4gICAgICAgIHN0YXJ0X2RhdGVcbiAgICAgICAgZW5kX2RhdGVcbiAgICAgICAgdW5pdF9wcmljZVxuICAgICAgICB1bml0XG4gICAgICAgIHF1YW50aXR5XG4gICAgICAgIGFtb3VudF9pbnB1dFxuICAgICAgICBhbW91bnRcbiAgICAgICAgc3RhdHVzX2luXG4gICAgICAgIHN0YXR1c19vdXRcbiAgICAgIH1cbiAgICAgIGN1c3RvbWVyIHtcbiAgICAgICAgaWRcbiAgICAgICAgbmFtZVxuICAgICAgICB0eXBlXG4gICAgICAgIGFkZHJlc3NcbiAgICAgICAgcG9zdGFsX2NvZGVcbiAgICAgICAgZW1haWxcbiAgICAgICAgYmlsbGluZ19lbWFpbFxuICAgICAgICBiaWxsaW5nX2NvbnRhY3RcbiAgICAgICAgcGhvbmVfbnVtYmVyXG4gICAgICAgIGNvbnRhY3RcbiAgICAgICAgc3VmZml4XG4gICAgICAgIGJhbmtfYWNjb3VudFxuICAgICAgICBpbnZvaWNlX251bWJlclxuICAgICAgfVxuICAgICAgdmVuZG9yIHtcbiAgICAgICAgaWRcbiAgICAgICAgbmFtZVxuICAgICAgICB0eXBlXG4gICAgICAgIGFkZHJlc3NcbiAgICAgICAgcG9zdGFsX2NvZGVcbiAgICAgICAgZW1haWxcbiAgICAgICAgYmlsbGluZ19lbWFpbFxuICAgICAgICBiaWxsaW5nX2NvbnRhY3RcbiAgICAgICAgcGhvbmVfbnVtYmVyXG4gICAgICAgIGNvbnRhY3RcbiAgICAgICAgc3VmZml4XG4gICAgICAgIGJhbmtfYWNjb3VudFxuICAgICAgICBpbnZvaWNlX251bWJlclxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcbiJdfQ==","/**\n * 請求書データ変換ユーティリティ\n */\n/**\n * スネークケースをキャメルケースに変換\n */\nconst snakeToCamel = (str) => str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n/**\n * 請求書データをキャメルケースに変換し、__typenameを除外\n */\nexport function transformInvoiceData(data) {\n const transform = (obj) => {\n if (Array.isArray(obj)) {\n return obj.map(transform);\n }\n else if (obj !== null && typeof obj === 'object') {\n const transformed = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === '__typename')\n continue;\n const camelKey = snakeToCamel(key);\n transformed[camelKey] = transform(value);\n }\n return transformed;\n }\n return obj;\n };\n return transform(data);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvaW52b2ljZS91c2VjYXNlL2ludm9pY2UvaW52b2ljZS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQVUsRUFBRSxDQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBRWhFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVM7SUFDNUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFRLEVBQU8sRUFBRTtRQUNsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUIsQ0FBQzthQUFNLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxNQUFNLFdBQVcsR0FBUSxFQUFFLENBQUM7WUFDNUIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxHQUFHLEtBQUssWUFBWTtvQkFBRSxTQUFTO2dCQUNuQyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIOiri+axguabuOODh+ODvOOCv+WkieaPm+ODpuODvOODhuOCo+ODquODhuOCo1xuICovXG5cbi8qKlxuICog44K544ON44O844Kv44Kx44O844K544KS44Kt44Oj44Oh44Or44Kx44O844K544Gr5aSJ5o+bXG4gKi9cbmNvbnN0IHNuYWtlVG9DYW1lbCA9IChzdHI6IHN0cmluZyk6IHN0cmluZyA9PlxuICBzdHIucmVwbGFjZSgvXyhbYS16XSkvZywgKF8sIGxldHRlcikgPT4gbGV0dGVyLnRvVXBwZXJDYXNlKCkpO1xuXG4vKipcbiAqIOiri+axguabuOODh+ODvOOCv+OCkuOCreODo+ODoeODq+OCseODvOOCueOBq+WkieaPm+OBl+OAgV9fdHlwZW5hbWXjgpLpmaTlpJZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludm9pY2VEYXRhKGRhdGE6IGFueSk6IGFueSB7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IChvYmo6IGFueSk6IGFueSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5tYXAodHJhbnNmb3JtKTtcbiAgICB9IGVsc2UgaWYgKG9iaiAhPT0gbnVsbCAmJiB0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWQ6IGFueSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMob2JqKSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnX190eXBlbmFtZScpIGNvbnRpbnVlO1xuICAgICAgICBjb25zdCBjYW1lbEtleSA9IHNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICB0cmFuc2Zvcm1lZFtjYW1lbEtleV0gPSB0cmFuc2Zvcm0odmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9O1xuXG4gIHJldHVybiB0cmFuc2Zvcm0oZGF0YSk7XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { InvoiceNotionRepository } from '@xxmachina/common/infra/repository/notion';\nimport { CHROMIUM } from '@nx-ddd/common/infrastructure/externals/chromium';\nimport { makeDI } from '@nx-ddd/core';\nimport { RESEND_SERVICE } from '@xxmachina/common/infra/external/resend';\nimport { Invoice } from '@xxmachina/common/invoice/domain/models';\nimport { deepSnakeToCamelCase, getHasuraRepository, HasuraService } from '@nx-ddd/hasura';\nimport { gql } from '@apollo/client/core';\nimport { GET_INVOICE_WITH_RELATIONS_QUERY } from './invoice-queries';\nimport { transformInvoiceData } from './invoice-utils';\nimport * as i0 from \"@angular/core\";\nexport const INVOICE_CONFIG = makeDI('[@xxmachina/invoice] INVOICE_CONFIG', { optional: false });\nexport class InvoiceUsecase {\n notionRepo = inject(InvoiceNotionRepository);\n chromium = CHROMIUM.inject();\n config = INVOICE_CONFIG.inject();\n resend = RESEND_SERVICE.inject();\n hasura = getHasuraRepository(Invoice, { hasura: inject(HasuraService) });\n hasuraService = inject(HasuraService);\n async list() {\n return this.notionRepo.list();\n }\n async syncOne(id) {\n const invoice = await this.notionRepo.get({ id });\n await this.hasura.create(invoice);\n }\n async sync() {\n console.log('[InvoiceUsecase] Starting sync from Notion to Hasura...');\n const invoices = await this.notionRepo.list();\n console.log(`[InvoiceUsecase] Retrieved ${invoices.length} invoices from Notion`);\n console.log('[InvoiceUsecase] Deleting existing records in Hasura...');\n await this.hasura.deleteAll();\n console.log('[InvoiceUsecase] Saving invoices to Hasura...');\n await this.hasura.saveMany(invoices);\n console.log('[InvoiceUsecase] Sync completed successfully');\n return { synced: invoices.length };\n }\n async makePdf(data) {\n return this.chromium.start(async (browser) => {\n const context = await browser.newContext({ deviceScaleFactor: 2 });\n const page = await context.newPage();\n page.on('console', msg => console.log('PAGE LOG:', msg.text()));\n page.on('pageerror', err => console.log('PAGE ERROR:', err.message));\n const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(data))}`;\n await page.goto(url, { waitUntil: 'networkidle' });\n await page.evaluate(() => document.fonts.ready);\n await page.waitForSelector('h1');\n const title = await page.title();\n const pdf = await page.pdf({ format: 'A4' });\n return { pdf, title, name: `${title}.pdf` };\n });\n }\n async sendMail(mail) {\n const pdf = await this.makePdf(mail.invoice);\n await this.resend.emails.send({\n from: mail.from,\n to: mail.to,\n subject: mail.subject,\n html: mail.content,\n attachments: [{ filename: pdf.name, content: pdf.pdf, contentType: 'application/pdf' }]\n });\n }\n async getLink(invoiceId) {\n try {\n const result = await this.hasuraService.query({\n query: gql `${GET_INVOICE_WITH_RELATIONS_QUERY}`,\n variables: { id: invoiceId }\n }).then(result => deepSnakeToCamelCase(result));\n const invoiceData = result.data?.invoicesByPk;\n if (!invoiceData) {\n throw new Error(`Invoice with ID ${invoiceId} not found`);\n }\n const transformedData = transformInvoiceData(invoiceData);\n const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(transformedData))}`;\n return url;\n }\n catch (error) {\n console.error(`[InvoiceUsecase] Failed to get link for invoice ${invoiceId}:`, error);\n throw error;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: InvoiceUsecase, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi9pbnZvaWNlL3VzZWNhc2UvaW52b2ljZS9pbnZvaWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQWUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU12RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFnQixxQ0FBcUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxjQUFjO0lBQ1IsVUFBVSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNq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QUssQ0FBQyxtQkFBbUIsU0FBUyxZQUFZLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBRUQsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDMUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxtREFBbUQsU0FBUyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEYsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzt1R0EvRVUsY0FBYzsyR0FBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnZvaWNlTm90aW9uUmVwb3NpdG9yeSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2luZnJhL3JlcG9zaXRvcnkvbm90aW9uJztcbmltcG9ydCB7IENIUk9NSVVNIH0gZnJvbSAnQG54LWRkZC9jb21tb24vaW5mcmFzdHJ1Y3R1cmUvZXh0ZXJuYWxzL2Nocm9taXVtJztcbmltcG9ydCB7IG1ha2VESSB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBSRVNFTkRfU0VSVklDRSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2luZnJhL2V4dGVybmFsL3Jlc2VuZCc7XG5pbXBvcnQgeyBJbnZvaWNlLCBJbnZvaWNlTWFpbCB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2ludm9pY2UvZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBkZWVwU25ha2VUb0NhbWVsQ2FzZSwgZ2V0SGFzdXJhUmVwb3NpdG9yeSwgSGFzdXJhU2VydmljZSB9IGZyb20gJ0BueC1kZGQvaGFzdXJhJztcbmltcG9ydCB7IGdxbCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgR0VUX0lOVk9JQ0VfV0lUSF9SRUxBVElPTlNfUVVFUlkgfSBmcm9tICcuL2ludm9pY2UtcXVlcmllcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1JbnZvaWNlRGF0YSB9IGZyb20gJy4vaW52b2ljZS11dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52b2ljZUNvbmZpZyB7XG4gIHRlbXBsYXRlQmFzZVVybDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgSU5WT0lDRV9DT05GSUcgPSBtYWtlREk8SW52b2ljZUNvbmZpZz4oJ1tAeHhtYWNoaW5hL2ludm9pY2VdIElOVk9JQ0VfQ09ORklHJywge29wdGlvbmFsOiBmYWxzZX0pO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEludm9pY2VVc2VjYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBub3Rpb25SZXBvID0gaW5qZWN0KEludm9pY2VOb3Rpb25SZXBvc2l0b3J5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaHJvbWl1bSA9IENIUk9NSVVNLmluamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IElOVk9JQ0VfQ09ORklHLmluamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc2VuZCA9IFJFU0VORF9TRVJWSUNFLmluamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGhhc3VyYSA9IGdldEhhc3VyYVJlcG9zaXRvcnkoSW52b2ljZSwgeyBoYXN1cmE6IGluamVjdChIYXN1cmFTZXJ2aWNlKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXN1cmFTZXJ2aWNlID0gaW5qZWN0KEhhc3VyYVNlcnZpY2UpO1xuXG4gIGFzeW5jIGxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMubm90aW9uUmVwby5saXN0KCk7XG4gIH1cblxuICBhc3luYyBzeW5jT25lKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbnZvaWNlID0gYXdhaXQgdGhpcy5ub3Rpb25SZXBvLmdldCh7IGlkIH0pO1xuICAgIGF3YWl0IHRoaXMuaGFzdXJhLmNyZWF0ZShpbnZvaWNlKTtcbiAgfVxuXG4gIGFzeW5jIHN5bmMoKSB7XG4gICAgY29uc29sZS5sb2coJ1tJbnZvaWNlVXNlY2FzZV0gU3RhcnRpbmcgc3luYyBmcm9tIE5vdGlvbiB0byBIYXN1cmEuLi4nKTtcblxuICAgIGNvbnN0IGludm9pY2VzID0gYXdhaXQgdGhpcy5ub3Rpb25SZXBvLmxpc3QoKTtcbiAgICBjb25zb2xlLmxvZyhgW0ludm9pY2VVc2VjYXNlXSBSZXRyaWV2ZWQgJHtpbnZvaWNlcy5sZW5ndGh9IGludm9pY2VzIGZyb20gTm90aW9uYCk7XG5cbiAgICBjb25zb2xlLmxvZygnW0ludm9pY2VVc2VjYXNlXSBEZWxldGluZyBleGlzdGluZyByZWNvcmRzIGluIEhhc3VyYS4uLicpO1xuICAgIGF3YWl0IHRoaXMuaGFzdXJhLmRlbGV0ZUFsbCgpO1xuXG4gICAgY29uc29sZS5sb2coJ1tJbnZvaWNlVXNlY2FzZV0gU2F2aW5nIGludm9pY2VzIHRvIEhhc3VyYS4uLicpO1xuICAgIGF3YWl0IHRoaXMuaGFzdXJhLnNhdmVNYW55KGludm9pY2VzKTtcblxuICAgIGNvbnNvbGUubG9nKCdbSW52b2ljZVVzZWNhc2VdIFN5bmMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgIHJldHVybiB7IHN5bmNlZDogaW52b2ljZXMubGVuZ3RoIH07XG4gIH1cblxuICBhc3luYyBtYWtlUGRmKGRhdGE6IG9iamVjdCk6IFByb21pc2U8eyBwZGY6IEJ1ZmZlciwgdGl0bGU6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5jaHJvbWl1bS5zdGFydChhc3luYyAoYnJvd3NlcikgPT4ge1xuICAgICAgY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3Q29udGV4dCh7IGRldmljZVNjYWxlRmFjdG9yOiAyIH0pO1xuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IGNvbnRleHQubmV3UGFnZSgpO1xuICAgICAgcGFnZS5vbignY29uc29sZScsIG1zZyA9PiBjb25zb2xlLmxvZygnUEFHRSBMT0c6JywgbXNnLnRleHQoKSkpO1xuICAgICAgcGFnZS5vbigncGFnZWVycm9yJywgZXJyID0+IGNvbnNvbGUubG9nKCdQQUdFIEVSUk9SOicsIGVyci5tZXNzYWdlKSk7XG4gICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy50ZW1wbGF0ZUJhc2VVcmx9P2pzb249JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZGF0YSkpfWA7XG4gICAgICBhd2FpdCBwYWdlLmdvdG8odXJsLCB7IHdhaXRVbnRpbDogJ25ldHdvcmtpZGxlJyB9KTtcbiAgICAgIGF3YWl0IHBhZ2UuZXZhbHVhdGUoKCkgPT4gZG9jdW1lbnQuZm9udHMucmVhZHkpO1xuICAgICAgYXdhaXQgcGFnZS53YWl0Rm9yU2VsZWN0b3IoJ2gxJyk7XG4gICAgICBjb25zdCB0aXRsZSA9IGF3YWl0IHBhZ2UudGl0bGUoKTtcbiAgICAgIGNvbnN0IHBkZiA9IGF3YWl0IHBhZ2UucGRmKHsgZm9ybWF0OiAnQTQnIH0pO1xuICAgICAgcmV0dXJuIHsgcGRmLCB0aXRsZSwgbmFtZTogYCR7dGl0bGV9LnBkZmAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRNYWlsKG1haWw6IEludm9pY2VNYWlsKSB7XG4gICAgY29uc3QgcGRmID0gYXdhaXQgdGhpcy5tYWtlUGRmKG1haWwuaW52b2ljZSk7XG4gICAgYXdhaXQgdGhpcy5yZXNlbmQuZW1haWxzLnNlbmQoe1xuICAgICAgZnJvbTogbWFpbC5mcm9tLFxuICAgICAgdG86IG1haWwudG8sXG4gICAgICBzdWJqZWN0OiBtYWlsLnN1YmplY3QsXG4gICAgICBodG1sOiBtYWlsLmNvbnRlbnQsXG4gICAgICBhdHRhY2htZW50czogW3sgZmlsZW5hbWU6IHBkZi5uYW1lLCBjb250ZW50OiBwZGYucGRmLCBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfV1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGdldExpbmsoaW52b2ljZUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmhhc3VyYVNlcnZpY2UucXVlcnkoe1xuICAgICAgICBxdWVyeTogZ3FsYCR7R0VUX0lOVk9JQ0VfV0lUSF9SRUxBVElPTlNfUVVFUll9YCxcbiAgICAgICAgdmFyaWFibGVzOiB7IGlkOiBpbnZvaWNlSWQgfVxuICAgICAgfSkudGhlbihyZXN1bHQgPT4gZGVlcFNuYWtlVG9DYW1lbENhc2UocmVzdWx0KSk7XG5cbiAgICAgIGNvbnN0IGludm9pY2VEYXRhID0gKHJlc3VsdCBhcyBhbnkpLmRhdGE/Lmludm9pY2VzQnlQaztcbiAgICAgIGlmICghaW52b2ljZURhdGEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZvaWNlIHdpdGggSUQgJHtpbnZvaWNlSWR9IG5vdCBmb3VuZGApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZERhdGEgPSB0cmFuc2Zvcm1JbnZvaWNlRGF0YShpbnZvaWNlRGF0YSk7XG4gICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy50ZW1wbGF0ZUJhc2VVcmx9P2pzb249JHtlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkodHJhbnNmb3JtZWREYXRhKSl9YDtcbiAgICAgIHJldHVybiB1cmw7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtJbnZvaWNlVXNlY2FzZV0gRmFpbGVkIHRvIGdldCBsaW5rIGZvciBpbnZvaWNlICR7aW52b2ljZUlkfTpgLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi1pbnZvaWNlLXVzZWNhc2UtaW52b2ljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvaW52b2ljZS91c2VjYXNlL2ludm9pY2UveHhtYWNoaW5hLWNvbW1vbi1pbnZvaWNlLXVzZWNhc2UtaW52b2ljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { ApolloClientManagerService } from '@nx-ddd/hasura';
|
|
4
|
-
import { switchMap, of, combineLatest } from 'rxjs';
|
|
4
|
+
import { EMPTY, switchMap, of, combineLatest } from 'rxjs';
|
|
5
5
|
import { gql } from 'apollo-angular';
|
|
6
6
|
import { getIntrospectionQuery, parse, visit, OperationTypeNode, Kind, print } from 'graphql';
|
|
7
7
|
import { map } from 'rxjs/operators';
|
|
@@ -16,6 +16,8 @@ class GraphqlService {
|
|
|
16
16
|
* Headersが更新されるたびに、ApolloClientを再生成するような処理も必要。
|
|
17
17
|
*/
|
|
18
18
|
subscribe(graphql) {
|
|
19
|
+
if (!graphql.query)
|
|
20
|
+
return EMPTY;
|
|
19
21
|
const getHeaders = typeof graphql.headers === 'function'
|
|
20
22
|
? graphql.headers
|
|
21
23
|
: () => Promise.resolve(graphql.headers);
|
|
@@ -26,6 +28,8 @@ class GraphqlService {
|
|
|
26
28
|
})));
|
|
27
29
|
}
|
|
28
30
|
query(graphql) {
|
|
31
|
+
if (!graphql.query)
|
|
32
|
+
return EMPTY;
|
|
29
33
|
const getHeaders = typeof graphql.headers === 'function'
|
|
30
34
|
? graphql.headers
|
|
31
35
|
: () => Promise.resolve(graphql.headers);
|
|
@@ -164,6 +168,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
|
|
|
164
168
|
args: [{ providedIn: 'root' }]
|
|
165
169
|
}] });
|
|
166
170
|
|
|
171
|
+
/**
|
|
172
|
+
* クエリがsubscriptionかどうかを判定
|
|
173
|
+
*/
|
|
174
|
+
function isSubscription(query) {
|
|
175
|
+
const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';
|
|
176
|
+
return queryStr.trim().startsWith('subscription');
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* クエリから使用されている変数を抽出
|
|
180
|
+
*/
|
|
181
|
+
function extractUsedVariablesFromQuery(query) {
|
|
182
|
+
const variables = new Set();
|
|
183
|
+
const regex = /\$(\w+)/g;
|
|
184
|
+
let match;
|
|
185
|
+
while ((match = regex.exec(query)) !== null) {
|
|
186
|
+
variables.add(match[1]);
|
|
187
|
+
}
|
|
188
|
+
return variables;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 変数値から使用される変数のみをフィルタリング
|
|
192
|
+
*/
|
|
193
|
+
function filterVariableValues(variables, usedVars) {
|
|
194
|
+
const filtered = {};
|
|
195
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
196
|
+
if (usedVars.has(key)) {
|
|
197
|
+
filtered[key] = value;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return filtered;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* GraphQLクエリから未使用の変数を削除
|
|
204
|
+
*/
|
|
205
|
+
function removeUnusedVariables(graphql) {
|
|
206
|
+
if (!graphql.variables || Object.keys(graphql.variables).length === 0) {
|
|
207
|
+
return graphql;
|
|
208
|
+
}
|
|
209
|
+
const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';
|
|
210
|
+
const usedVars = extractUsedVariablesFromQuery(queryStr);
|
|
211
|
+
const filteredVariables = filterVariableValues(graphql.variables, usedVars);
|
|
212
|
+
return {
|
|
213
|
+
...graphql,
|
|
214
|
+
variables: filteredVariables
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
|
|
167
218
|
/**
|
|
168
219
|
* GraphqlServiceを拡張して、subscription分割機能を追加
|
|
169
220
|
*
|
|
@@ -177,43 +228,31 @@ class GraphqlEnhancedService extends GraphqlService {
|
|
|
177
228
|
* デフォルトでsubscriptionは自動的に分割される
|
|
178
229
|
*/
|
|
179
230
|
subscribe(graphql) {
|
|
180
|
-
|
|
181
|
-
const shouldSplit = graphql.enableSplitting !== false && this.isSubscription(graphql.query);
|
|
231
|
+
const shouldSplit = graphql.enableSplitting !== false && isSubscription(graphql.query);
|
|
182
232
|
if (!shouldSplit) {
|
|
183
|
-
|
|
184
|
-
const filteredGraphql = this.removeUnusedVariables(graphql);
|
|
233
|
+
const filteredGraphql = removeUnusedVariables(graphql);
|
|
185
234
|
return super.subscribe(filteredGraphql);
|
|
186
235
|
}
|
|
187
|
-
// subscriptionを分割して実行
|
|
188
236
|
return this.subscribeSplit(graphql);
|
|
189
237
|
}
|
|
190
238
|
/**
|
|
191
239
|
* subscriptionクエリを分割して並列実行し、結果を結合
|
|
192
240
|
*/
|
|
193
241
|
subscribeSplit(graphql) {
|
|
194
|
-
const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';
|
|
195
|
-
// クエリを分割
|
|
196
242
|
const splitQueries = this.splitter.splitSubscription(graphql.query);
|
|
197
|
-
// 分割が不要な場合(単一フィールド)
|
|
198
243
|
if (splitQueries.length <= 1) {
|
|
199
244
|
return super.subscribe(graphql);
|
|
200
245
|
}
|
|
201
|
-
// 各クエリを並列実行
|
|
202
246
|
const observables = splitQueries.map((splitQuery) => {
|
|
203
|
-
|
|
204
|
-
const
|
|
205
|
-
const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);
|
|
247
|
+
const usedVars = extractUsedVariablesFromQuery(splitQuery.query);
|
|
248
|
+
const filteredVariables = filterVariableValues(graphql.variables, usedVars);
|
|
206
249
|
const splitGraphql = {
|
|
207
250
|
...graphql,
|
|
208
251
|
query: splitQuery.query,
|
|
209
252
|
variables: filteredVariables
|
|
210
253
|
};
|
|
211
|
-
return super.subscribe(splitGraphql).pipe(map(result => ({
|
|
212
|
-
fieldName: splitQuery.fieldName,
|
|
213
|
-
result
|
|
214
|
-
})));
|
|
254
|
+
return super.subscribe(splitGraphql).pipe(map(result => ({ fieldName: splitQuery.fieldName, result })));
|
|
215
255
|
});
|
|
216
|
-
// 結果を結合
|
|
217
256
|
return combineLatest(observables).pipe(map(results => {
|
|
218
257
|
const combinedData = {};
|
|
219
258
|
results.forEach(({ fieldName, result }) => {
|
|
@@ -229,52 +268,6 @@ class GraphqlEnhancedService extends GraphqlService {
|
|
|
229
268
|
};
|
|
230
269
|
}));
|
|
231
270
|
}
|
|
232
|
-
/**
|
|
233
|
-
* クエリがsubscriptionかどうかを判定
|
|
234
|
-
*/
|
|
235
|
-
isSubscription(query) {
|
|
236
|
-
const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';
|
|
237
|
-
return queryStr.trim().startsWith('subscription');
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* クエリから使用されている変数を抽出
|
|
241
|
-
*/
|
|
242
|
-
extractUsedVariablesFromQuery(query) {
|
|
243
|
-
const variables = new Set();
|
|
244
|
-
const regex = /\$(\w+)/g;
|
|
245
|
-
let match;
|
|
246
|
-
while ((match = regex.exec(query)) !== null) {
|
|
247
|
-
variables.add(match[1]);
|
|
248
|
-
}
|
|
249
|
-
return variables;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* 変数値から使用される変数のみをフィルタリング
|
|
253
|
-
*/
|
|
254
|
-
filterVariableValues(variables, usedVars) {
|
|
255
|
-
const filtered = {};
|
|
256
|
-
for (const [key, value] of Object.entries(variables)) {
|
|
257
|
-
if (usedVars.has(key)) {
|
|
258
|
-
filtered[key] = value;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return filtered;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* GraphQLクエリから未使用の変数を削除
|
|
265
|
-
*/
|
|
266
|
-
removeUnusedVariables(graphql) {
|
|
267
|
-
if (!graphql.variables || Object.keys(graphql.variables).length === 0) {
|
|
268
|
-
return graphql;
|
|
269
|
-
}
|
|
270
|
-
const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';
|
|
271
|
-
const usedVars = this.extractUsedVariablesFromQuery(queryStr);
|
|
272
|
-
const filteredVariables = this.filterVariableValues(graphql.variables, usedVars);
|
|
273
|
-
return {
|
|
274
|
-
...graphql,
|
|
275
|
-
variables: filteredVariables
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
271
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlEnhancedService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
279
272
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlEnhancedService, providedIn: 'root' });
|
|
280
273
|
}
|