@xxmachina/common 19.35.0 → 19.36.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.
Files changed (44) hide show
  1. package/fesm2022/xxmachina-common-_shared-meta.mjs.map +1 -1
  2. package/fesm2022/xxmachina-common-auth-azure.mjs.map +1 -1
  3. package/fesm2022/xxmachina-common-domain-builder.mjs +1 -1
  4. package/fesm2022/xxmachina-common-domain-builder.mjs.map +1 -1
  5. package/fesm2022/xxmachina-common-domain-models.mjs +2 -1
  6. package/fesm2022/xxmachina-common-domain-models.mjs.map +1 -1
  7. package/fesm2022/xxmachina-common-infra-converters-google.mjs.map +1 -1
  8. package/fesm2022/xxmachina-common-infra-external-quick-js.mjs.map +1 -1
  9. package/fesm2022/xxmachina-common-infra-repository-dataconnect.mjs +2 -2
  10. package/fesm2022/xxmachina-common-infra-repository-dataconnect.mjs.map +1 -1
  11. package/fesm2022/xxmachina-common-infra-repository-notion.mjs.map +1 -1
  12. package/fesm2022/xxmachina-common-infra.mjs.map +1 -1
  13. package/fesm2022/xxmachina-common-invoice-domain-builders.mjs +1 -1
  14. package/fesm2022/xxmachina-common-invoice-domain-builders.mjs.map +1 -1
  15. package/fesm2022/xxmachina-common-invoice-domain-models.mjs.map +1 -1
  16. package/fesm2022/xxmachina-common-invoice-usecase-invoice.mjs.map +1 -1
  17. package/fesm2022/xxmachina-common-services-graphql.mjs +6 -5
  18. package/fesm2022/xxmachina-common-services-graphql.mjs.map +1 -1
  19. package/fesm2022/xxmachina-common-services-query.mjs.map +1 -1
  20. package/fesm2022/xxmachina-common-services-speech.mjs.map +1 -1
  21. package/fesm2022/xxmachina-common-usecase-database.mjs.map +1 -1
  22. package/fesm2022/xxmachina-common-usecase-graphql.mjs +1 -1
  23. package/fesm2022/xxmachina-common-usecase-graphql.mjs.map +1 -1
  24. package/fesm2022/xxmachina-common-usecase-spec.mjs.map +1 -1
  25. package/fesm2022/xxmachina-common-usecase.mjs +1 -1
  26. package/fesm2022/xxmachina-common-usecase.mjs.map +1 -1
  27. package/fesm2022/xxmachina-common-utils.mjs.map +1 -1
  28. package/package.json +11 -11
  29. package/types/xxmachina-common-_shared-auth.d.ts +1 -1
  30. package/types/xxmachina-common-auth-azure.d.ts +3 -3
  31. package/types/xxmachina-common-auth-azure.d.ts.map +1 -1
  32. package/types/xxmachina-common-domain-builder.d.ts +1 -1
  33. package/types/xxmachina-common-domain-builder.d.ts.map +1 -1
  34. package/types/xxmachina-common-domain-models.d.ts +26 -26
  35. package/types/xxmachina-common-domain-models.d.ts.map +1 -1
  36. package/types/xxmachina-common-infra-converters-google.d.ts +1 -1
  37. package/types/xxmachina-common-infra-converters-google.d.ts.map +1 -1
  38. package/types/xxmachina-common-infra-external-resend.d.ts +1 -1
  39. package/types/xxmachina-common-infra-repository-notion.d.ts.map +1 -1
  40. package/types/xxmachina-common-infra.d.ts.map +1 -1
  41. package/types/xxmachina-common-services-speech.d.ts +2 -2
  42. package/types/xxmachina-common-stores-firestore.d.ts +2 -2
  43. package/types/xxmachina-common-stores-hasura.d.ts +3 -3
  44. package/types/xxmachina-common-usecase-database.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-infra-repository-notion.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/xxmachina-common-infra-repository-notion.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface ContractConfig {\n databaseId: string;\n}\n\nexport const CONTRACT_CONFIG = new InjectionToken<ContractConfig>('CONTRACT_CONFIG');\n\nexport function provideContractConfig(config: ContractConfig) {\n return { provide: CONTRACT_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Contract } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class ContractNotionRepository extends NotionRepository<Contract> {\n protected converter = createConverter(Contract);\n protected databaseId = getDatabaseId(Contract);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface InvoiceConfig {\n databaseId: string;\n}\n\nexport const INVOICE_CONFIG = new InjectionToken<InvoiceConfig>('Invoice Config');\n\nexport function provideInvoiceConfig(config: InvoiceConfig) {\n return { provide: INVOICE_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Invoice } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceNotionRepository extends NotionRepository<Invoice> {\n protected converter = createConverter(Invoice);\n protected databaseId = getDatabaseId(Invoice);\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Order } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class OrderNotionRepository extends NotionRepository<Order> {\n protected converter = createConverter(Order);\n protected databaseId = getDatabaseId(Order);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface PartnerConfig {\n databaseId: string;\n}\n\nexport const PARTNER_CONFIG = new InjectionToken<PartnerConfig>('PARTNER_CONFIG');\n\nexport function providePartnerConfig(config: PartnerConfig) {\n return { provide: PARTNER_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Partner } from \"@xxmachina/common/invoice/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class PartnerNotionRepository extends NotionRepository<Partner> {\n protected converter = createConverter(Partner);\n protected databaseId = getDatabaseId(Partner);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface OrderConfig {\n databaseId: string;\n}\n\nexport const ORDER_CONFIG = new InjectionToken<OrderConfig>('ORDER_CONFIG');\n\nexport function provideOrderConfig(config: OrderConfig) {\n return { provide: ORDER_CONFIG, useValue: config };\n}\n","import { ContractConfig, provideContractConfig } from \"./contract\";\nimport { InvoiceConfig, provideInvoiceConfig } from \"./invoice\";\nimport { provideOrderConfig } from \"./order/order.config\";\nimport { PartnerConfig, providePartnerConfig } from \"./partner\";\nimport { provideNotionConfig as _provideNotionConfig } from \"@nx-ddd/notion\";\n\nexport interface NotionConfig {\n accessToken: string;\n contract: ContractConfig;\n invoice: InvoiceConfig\n order: any;\n partner: PartnerConfig;\n}\n\nexport function provideNotionConfig(config: NotionConfig) {\n return [\n provideContractConfig(config.contract),\n provideInvoiceConfig(config.invoice),\n provideOrderConfig(config.order),\n providePartnerConfig(config.partner),\n _provideNotionConfig({accessToken: config.accessToken }),\n ];\n}\n","import { Injectable } from \"@angular/core\";\nimport { ContractNotionRepository } from \"./contract\";\nimport { InvoiceNotionRepository } from \"./invoice\";\nimport { OrderNotionRepository } from \"./order\";\nimport { PartnerNotionRepository } from \"./partner\";\n\n@Injectable({providedIn: 'root'})\nexport class NotionRepository {\n constructor(\n public contract: ContractNotionRepository,\n public invoice: InvoiceNotionRepository,\n public order: OrderNotionRepository,\n public partner: PartnerNotionRepository,\n ) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NotionRepository","_provideNotionConfig","i1.ContractNotionRepository","i2.InvoiceNotionRepository","i3.OrderNotionRepository","i4.PartnerNotionRepository"],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-infra-repository-notion.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/xxmachina-common-infra-repository-notion.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\n\nexport interface ContractConfig {\n databaseId: string;\n}\n\nexport const CONTRACT_CONFIG = new InjectionToken<ContractConfig>('CONTRACT_CONFIG');\n\nexport function provideContractConfig(config: ContractConfig) {\n return { provide: CONTRACT_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Contract } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class ContractNotionRepository extends NotionRepository<Contract> {\n protected converter = createConverter(Contract);\n protected databaseId = getDatabaseId(Contract) as string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface InvoiceConfig {\n databaseId: string;\n}\n\nexport const INVOICE_CONFIG = new InjectionToken<InvoiceConfig>('Invoice Config');\n\nexport function provideInvoiceConfig(config: InvoiceConfig) {\n return { provide: INVOICE_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Invoice } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceNotionRepository extends NotionRepository<Invoice> {\n protected converter = createConverter(Invoice);\n protected databaseId = getDatabaseId(Invoice) as string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Order } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class OrderNotionRepository extends NotionRepository<Order> {\n protected converter = createConverter(Order);\n protected databaseId = getDatabaseId(Order) as string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface PartnerConfig {\n databaseId: string;\n}\n\nexport const PARTNER_CONFIG = new InjectionToken<PartnerConfig>('PARTNER_CONFIG');\n\nexport function providePartnerConfig(config: PartnerConfig) {\n return { provide: PARTNER_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Partner } from \"@xxmachina/common/invoice/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class PartnerNotionRepository extends NotionRepository<Partner> {\n protected converter = createConverter(Partner);\n protected databaseId = getDatabaseId(Partner) as string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface OrderConfig {\n databaseId: string;\n}\n\nexport const ORDER_CONFIG = new InjectionToken<OrderConfig>('ORDER_CONFIG');\n\nexport function provideOrderConfig(config: OrderConfig) {\n return { provide: ORDER_CONFIG, useValue: config };\n}\n","import { ContractConfig, provideContractConfig } from \"./contract\";\nimport { InvoiceConfig, provideInvoiceConfig } from \"./invoice\";\nimport { provideOrderConfig } from \"./order/order.config\";\nimport { PartnerConfig, providePartnerConfig } from \"./partner\";\nimport { provideNotionConfig as _provideNotionConfig } from \"@nx-ddd/notion\";\n\nexport interface NotionConfig {\n accessToken: string;\n contract: ContractConfig;\n invoice: InvoiceConfig\n order: any;\n partner: PartnerConfig;\n}\n\nexport function provideNotionConfig(config: NotionConfig) {\n return [\n provideContractConfig(config.contract),\n provideInvoiceConfig(config.invoice),\n provideOrderConfig(config.order),\n providePartnerConfig(config.partner),\n _provideNotionConfig({accessToken: config.accessToken }),\n ];\n}\n","import { Injectable } from \"@angular/core\";\nimport { ContractNotionRepository } from \"./contract\";\nimport { InvoiceNotionRepository } from \"./invoice\";\nimport { OrderNotionRepository } from \"./order\";\nimport { PartnerNotionRepository } from \"./partner\";\n\n@Injectable({providedIn: 'root'})\nexport class NotionRepository {\n constructor(\n public contract: ContractNotionRepository,\n public invoice: InvoiceNotionRepository,\n public order: OrderNotionRepository,\n public partner: PartnerNotionRepository,\n ) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NotionRepository","_provideNotionConfig","i1.ContractNotionRepository","i2.InvoiceNotionRepository","i3.OrderNotionRepository","i4.PartnerNotionRepository"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-infra.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/infra/external/external.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/external/external.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/redis.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/operator/operator.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/project/project.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/spec/spec.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/system/system.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/redis.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/repository.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/infrastructure.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/link/google/google.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/link/link.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/firestore.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/query/query.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/resource/resource.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/repository.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/infrastructure.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/xxmachina-common-infra.ts"],"sourcesContent":["import { OpenAiConfig, provideOpenAiConfig } from \"@nx-ddd/common/infrastructure/externals/openai/impl\";\n\nexport interface ExternalConfig {\n openAi: OpenAiConfig;\n google?: unknown;\n}\n\nexport function provideExternalConfig(config: ExternalConfig) {\n return [\n provideOpenAiConfig(() => config.openAi),\n ]\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { AiConfig } from \"@xxmachina/common/domain/models\";\nimport { injectOpenAiService } from \"@nx-ddd/common/infrastructure/externals/openai\";\nimport { injectDataConnectService } from \"@xxmachina/common/infra/external/data-connect\";\n\n@Injectable({providedIn: 'root'})\nexport class ExternalService {\n readonly openai = injectOpenAiService();\n readonly dataConnect = injectDataConnectService();\n\n getAiAdapter(aiConfig: AiConfig): any {\n return {} as any\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface ContractConfig {\n databaseId: string;\n}\n\nexport const CONTRACT_CONFIG = new InjectionToken<ContractConfig>('CONTRACT_CONFIG');\n\nexport function provideContractConfig(config: ContractConfig) {\n return { provide: CONTRACT_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Contract } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class ContractNotionRepository extends NotionRepository<Contract> {\n protected converter = createConverter(Contract);\n protected databaseId = getDatabaseId(Contract);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface InvoiceConfig {\n databaseId: string;\n}\n\nexport const INVOICE_CONFIG = new InjectionToken<InvoiceConfig>('Invoice Config');\n\nexport function provideInvoiceConfig(config: InvoiceConfig) {\n return { provide: INVOICE_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Invoice } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceNotionRepository extends NotionRepository<Invoice> {\n protected converter = createConverter(Invoice);\n protected databaseId = getDatabaseId(Invoice);\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface OrderConfig {\n databaseId: string;\n}\n\nexport const ORDER_CONFIG = new InjectionToken<OrderConfig>('ORDER_CONFIG');\n\nexport function provideOrderConfig(config: OrderConfig) {\n return { provide: ORDER_CONFIG, useValue: config };\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface PartnerConfig {\n databaseId: string;\n}\n\nexport const PARTNER_CONFIG = new InjectionToken<PartnerConfig>('PARTNER_CONFIG');\n\nexport function providePartnerConfig(config: PartnerConfig) {\n return { provide: PARTNER_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Partner } from \"@xxmachina/common/invoice/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class PartnerNotionRepository extends NotionRepository<Partner> {\n protected converter = createConverter(Partner);\n protected databaseId = getDatabaseId(Partner);\n}\n","import { ContractConfig, provideContractConfig } from \"./contract\";\nimport { InvoiceConfig, provideInvoiceConfig } from \"./invoice\";\nimport { provideOrderConfig } from \"./order/order.config\";\nimport { PartnerConfig, providePartnerConfig } from \"./partner\";\nimport { provideNotionConfig as _provideNotionConfig } from \"@nx-ddd/notion\";\n\nexport interface NotionConfig {\n accessToken: string;\n contract: ContractConfig;\n invoice: InvoiceConfig\n order: any;\n partner: PartnerConfig;\n}\n\nexport function provideNotionConfig(config: NotionConfig) {\n return [\n provideContractConfig(config.contract),\n provideInvoiceConfig(config.invoice),\n provideOrderConfig(config.order),\n providePartnerConfig(config.partner),\n _provideNotionConfig({accessToken: config.accessToken }),\n ];\n}\n","import { provideRedisConfig as _provideRedisConfig, RedisConfig as _RedisConfig } from '@xxmachina/common/_shared/meta/redis';\n\nexport interface RedisConfig {\n redis: _RedisConfig;\n}\n\nexport function provideRedisConfig(config: RedisConfig) {\n return [\n _provideRedisConfig(config.redis),\n ];\n}\n","import { Injectable } from \"@angular/core\";\nimport { RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { Operator } from \"@xxmachina/common/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class OperatorRepository extends RedisRepository<Operator> {\n protected entityName = 'operator';\n}\n","import { Injectable } from \"@angular/core\";\nimport { Converter, RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { Project } from \"@xxmachina/common/domain/models\";\n\nexport class ProjectConverter extends Converter<Project, {id: string, settings: string}> {\n fromRedis(record: { id: string; settings: string; }): Project {\n return {\n id: record.id,\n settings: JSON.parse(record.settings),\n };\n }\n\n toRedis(entity: Project): { id: string; settings: string; } {\n return {\n id: entity.id,\n settings: JSON.stringify(entity.settings),\n };\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class ProjectRepository extends RedisRepository<Project> {\n protected entityName = 'project';\n protected converter = new ProjectConverter();\n}\n","import { inject, Inject, Injectable, InjectionToken, Optional } from \"@angular/core\";\nimport { RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { bufferFloat32, float32Buffer } from \"@xxmachina/common/utils/crypto\";\nimport { Spec } from \"@xxmachina/common/domain/models\";\nimport { REDIS_CONFIG } from \"@xxmachina/common/_shared/meta/redis\";\n\nexport const VECTOR_SIZE = new InjectionToken('[@xxmachina/common] VECTOR_SIZE');\n// MEMO(nontangent): Optionalデコレーターが動かないので、ここで初期化する。\nVECTOR_SIZE['Θopt'] = true;\n\n@Injectable({providedIn: 'root'})\nexport class SpecRepository extends RedisRepository<Spec> {\n\n protected config = inject(REDIS_CONFIG);\n // constructor(\n // @Optional() @Inject(VECTOR_SIZE) private vectorSize: number,\n // ) {\n // this.vectorSize ??= 1536;\n // }\n\n protected entityName = 'spec';\n\n async create(spec: Spec): Promise<Spec> {\n return super.create({...spec, embeddings: this.toBuffer(spec.embeddings) as any});\n }\n\n async get(id: string): Promise<Spec> {\n return super.get(id).then(spec => ({...spec, embeddings: this.fromBuffer(spec.embeddings as any)}));\n }\n\n async update(spec: Partial<Spec>): Promise<void> {\n return super.update({...spec, embeddings: this.toBuffer(spec.embeddings) as any});\n }\n\n get indexName() {\n return `index:${this.entityName}`;\n }\n\n async makeIndex() {\n // await this.init();\n // await this.client.ft.dropIndex(this.indexName).catch(() => {});\n // await this.client.ft.create(this.indexName, {\n // id: SchemaFieldTypes.TEXT,\n // operatorId: SchemaFieldTypes.TEXT,\n // embeddings: {\n // type: SchemaFieldTypes.VECTOR,\n // ALGORITHM: VectorAlgorithms.HNSW,\n // TYPE: 'FLOAT32',\n // DIM: this.vectorSize,\n // DISTANCE_METRIC: 'COSINE',\n // },\n // });\n }\n\n async search(operatorId: string, embeddings: number[], n = 3): Promise<Spec[]> {\n const query = `(@operatorId:$OPERATOR_ID)=>[KNN $N @embeddings $BLOB AS score]`;\n const results = await this.client.ft.search(this.indexName, query, {\n PARAMS: {\n BLOB: this.toBuffer(embeddings),\n N: n,\n OPERATOR_ID: operatorId,\n },\n SORTBY: 'score',\n DIALECT: 2,\n RETURN: ['score']\n });\n return Promise.all(results.documents.map(doc => this.get(doc.id.slice(this.entityName.length + 1))));\n }\n\n private toBuffer(embedding: number[]) {\n return float32Buffer(embedding);\n }\n\n private fromBuffer(buffer: Buffer) {\n return bufferFloat32(buffer);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class SystemRepository {\n protected entityName = 'system';\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { OperatorRepository } from \"./operator\";\nimport { ProjectRepository } from \"./project\";\nimport { SpecRepository } from \"./spec\";\nimport { SystemRepository } from \"./system\";\n\n@Injectable({providedIn: 'root'})\nexport class RedisService {\n readonly operator = inject(OperatorRepository);\n readonly project = inject(ProjectRepository);\n readonly spec = inject(SpecRepository);\n readonly system = inject(SystemRepository);\n}\n","import { NOTION_ACCESS_TOKEN } from \"@nx-ddd/notion\";\nimport { NotionConfig, provideNotionConfig } from \"./notion/notion.config\";\nimport { provideRedisConfig, RedisConfig } from \"./redis\";\n\nexport interface RepositoryConfig {\n notion?: NotionConfig;\n redis: RedisConfig;\n}\n\nexport function provideRepositoryConfig(config: RepositoryConfig) {\n return [\n provideRedisConfig(config.redis),\n ...(config.notion?.accessToken\n ? [provideNotionConfig(config.notion)]\n : [{ provide: NOTION_ACCESS_TOKEN, useValue: '' }]),\n ];\n}\n","import { ExternalConfig, provideExternalConfig } from \"./external\";\nimport { provideRepositoryConfig, RepositoryConfig } from \"./repository/repository.config\";\n\nexport interface InfrastructureConfig {\n external: ExternalConfig;\n repository: RepositoryConfig;\n}\n\nexport function provideInfrastructureConfig(config: InfrastructureConfig) {\n return [\n provideExternalConfig(config.external),\n provideRepositoryConfig(config.repository),\n ];\n}","import { Google } from \"@xxmachina/common/domain/models\";\nimport { GoogleConverter } from \"@xxmachina/common/infra/converters/google\";\nimport { inject, Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\n\n@Injectable({providedIn: 'root'})\nexport class GoogleRepository extends FirestoreRepository<Google> {\n readonly collectionPath = 'users/:userId/links/:id';\n protected converter = inject(GoogleConverter);\n}\n","import { Injectable } from \"@angular/core\";\nimport { GoogleRepository } from \"./google\";\n\n@Injectable({providedIn: 'root'})\nexport class LinkRepository {\n constructor(\n public google: GoogleRepository,\n ) { }\n}\n","import { Injectable } from \"@angular/core\";\n// import { BookmarkletRepository } from \"./bookmarklet\";\nimport { LinkRepository } from \"./link\";\n\n@Injectable({providedIn: 'root'})\nexport class FirestoreRepository {\n constructor(\n // public bookmarklet: BookmarkletRepository,\n public link: LinkRepository,\n ) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { Query } from \"@xxmachina/common/domain/models\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\nimport { injectConverter } from \"@nx-ddd/firestore\";\n\n@Injectable({ providedIn: 'root' })\nexport class QueryFirestoreRepository extends FirestoreRepository<Query> {\n readonly collectionPath = 'projects/:projectId/queries/:id';\n protected converter = injectConverter(Query);\n}","import { Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\nimport { Resource } from \"@xxmachina/common/domain/models\";\nimport { injectConverter } from \"@nx-ddd/firestore\";\n\n@Injectable({ providedIn: 'root' })\nexport class ResourceFirestoreRepository extends FirestoreRepository<Resource> {\n readonly collectionPath = 'projects/:projectId/resources/:id';\n protected converter = injectConverter(Resource);\n}","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Order } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class OrderNotionRepository extends NotionRepository<Order> {\n protected converter = createConverter(Order);\n protected databaseId = getDatabaseId(Order);\n}\n","import { Injectable } from \"@angular/core\";\nimport { ContractNotionRepository } from \"./contract\";\nimport { InvoiceNotionRepository } from \"./invoice\";\nimport { OrderNotionRepository } from \"./order\";\nimport { PartnerNotionRepository } from \"./partner\";\n\n@Injectable({providedIn: 'root'})\nexport class NotionRepository {\n constructor(\n public contract: ContractNotionRepository,\n public invoice: InvoiceNotionRepository,\n public order: OrderNotionRepository,\n public partner: PartnerNotionRepository,\n ) {}\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"./firestore\";\nimport { NotionRepository } from \"./notion\";\nimport { RedisService } from \"./redis\";\n\n@Injectable({providedIn: 'root'})\nexport class RepositoriesService {\n readonly firestore = inject(FirestoreRepository);\n readonly notion = inject(NotionRepository);\n readonly redis = inject(RedisService);\n}\n","import { Injectable } from \"@angular/core\";\nimport { RepositoriesService } from \"./repository\";\nimport { ExternalService } from \"./external\";\n\n@Injectable({providedIn: 'root'})\nexport class InfrastructureService {\n constructor(\n public external: ExternalService,\n public repo: RepositoriesService,\n ) { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NotionRepository","_provideNotionConfig","_provideRedisConfig","FirestoreRepository","i1.GoogleRepository","i1.LinkRepository","i1.ContractNotionRepository","i2.InvoiceNotionRepository","i3.OrderNotionRepository","i4.PartnerNotionRepository","i1.ExternalService","i2.RepositoriesService"],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-infra.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/infra/external/external.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/external/external.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/contract/contract.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/invoice/invoice.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/partner/partner.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/redis.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/operator/operator.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/project/project.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/spec/spec.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/system/system.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/redis/redis.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/repository.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/infrastructure.config.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/link/google/google.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/link/link.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/firestore.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/query/query.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/firestore/resource/resource.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/order/order.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/notion/notion.repository.ts","../../../../../packages/@xxmachina/common/src/lib/infra/repository/repository.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/infrastructure.service.ts","../../../../../packages/@xxmachina/common/src/lib/infra/xxmachina-common-infra.ts"],"sourcesContent":["import { OpenAiConfig, provideOpenAiConfig } from \"@nx-ddd/common/infrastructure/externals/openai/impl\";\n\nexport interface ExternalConfig {\n openAi: OpenAiConfig;\n google?: unknown;\n}\n\nexport function provideExternalConfig(config: ExternalConfig) {\n return [\n provideOpenAiConfig(() => config.openAi),\n ]\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { AiConfig } from \"@xxmachina/common/domain/models\";\nimport { injectOpenAiService } from \"@nx-ddd/common/infrastructure/externals/openai\";\nimport { injectDataConnectService } from \"@xxmachina/common/infra/external/data-connect\";\n\n@Injectable({providedIn: 'root'})\nexport class ExternalService {\n readonly openai = injectOpenAiService();\n readonly dataConnect = injectDataConnectService();\n\n getAiAdapter(aiConfig: AiConfig): any {\n return {} as any\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface ContractConfig {\n databaseId: string;\n}\n\nexport const CONTRACT_CONFIG = new InjectionToken<ContractConfig>('CONTRACT_CONFIG');\n\nexport function provideContractConfig(config: ContractConfig) {\n return { provide: CONTRACT_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Contract } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class ContractNotionRepository extends NotionRepository<Contract> {\n protected converter = createConverter(Contract);\n protected databaseId = getDatabaseId(Contract) as string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface InvoiceConfig {\n databaseId: string;\n}\n\nexport const INVOICE_CONFIG = new InjectionToken<InvoiceConfig>('Invoice Config');\n\nexport function provideInvoiceConfig(config: InvoiceConfig) {\n return { provide: INVOICE_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Invoice } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class InvoiceNotionRepository extends NotionRepository<Invoice> {\n protected converter = createConverter(Invoice);\n protected databaseId = getDatabaseId(Invoice) as string;\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface OrderConfig {\n databaseId: string;\n}\n\nexport const ORDER_CONFIG = new InjectionToken<OrderConfig>('ORDER_CONFIG');\n\nexport function provideOrderConfig(config: OrderConfig) {\n return { provide: ORDER_CONFIG, useValue: config };\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface PartnerConfig {\n databaseId: string;\n}\n\nexport const PARTNER_CONFIG = new InjectionToken<PartnerConfig>('PARTNER_CONFIG');\n\nexport function providePartnerConfig(config: PartnerConfig) {\n return { provide: PARTNER_CONFIG, useValue: config };\n}\n","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Partner } from \"@xxmachina/common/invoice/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class PartnerNotionRepository extends NotionRepository<Partner> {\n protected converter = createConverter(Partner);\n protected databaseId = getDatabaseId(Partner) as string;\n}\n","import { ContractConfig, provideContractConfig } from \"./contract\";\nimport { InvoiceConfig, provideInvoiceConfig } from \"./invoice\";\nimport { provideOrderConfig } from \"./order/order.config\";\nimport { PartnerConfig, providePartnerConfig } from \"./partner\";\nimport { provideNotionConfig as _provideNotionConfig } from \"@nx-ddd/notion\";\n\nexport interface NotionConfig {\n accessToken: string;\n contract: ContractConfig;\n invoice: InvoiceConfig\n order: any;\n partner: PartnerConfig;\n}\n\nexport function provideNotionConfig(config: NotionConfig) {\n return [\n provideContractConfig(config.contract),\n provideInvoiceConfig(config.invoice),\n provideOrderConfig(config.order),\n providePartnerConfig(config.partner),\n _provideNotionConfig({accessToken: config.accessToken }),\n ];\n}\n","import { provideRedisConfig as _provideRedisConfig, RedisConfig as _RedisConfig } from '@xxmachina/common/_shared/meta/redis';\n\nexport interface RedisConfig {\n redis: _RedisConfig;\n}\n\nexport function provideRedisConfig(config: RedisConfig) {\n return [\n _provideRedisConfig(config.redis),\n ];\n}\n","import { Injectable } from \"@angular/core\";\nimport { RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { Operator } from \"@xxmachina/common/domain/models\";\n\n@Injectable({providedIn: 'root'})\nexport class OperatorRepository extends RedisRepository<Operator> {\n protected entityName = 'operator';\n}\n","import { Injectable } from \"@angular/core\";\nimport { Converter, RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { Project } from \"@xxmachina/common/domain/models\";\n\nexport class ProjectConverter extends Converter<Project, {id: string, settings: string}> {\n fromRedis(record: { id: string; settings: string; }): Project {\n return {\n id: record.id,\n settings: JSON.parse(record.settings),\n };\n }\n\n toRedis(entity: Project): { id: string; settings: string; } {\n return {\n id: entity.id,\n settings: JSON.stringify(entity.settings),\n };\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class ProjectRepository extends RedisRepository<Project> {\n protected entityName = 'project';\n protected converter = new ProjectConverter();\n}\n","import { inject, Inject, Injectable, InjectionToken, Optional } from \"@angular/core\";\nimport { RedisRepository } from '@xxmachina/common/_shared/meta/redis';\nimport { bufferFloat32, float32Buffer } from \"@xxmachina/common/utils/crypto\";\nimport { Spec } from \"@xxmachina/common/domain/models\";\nimport { REDIS_CONFIG } from \"@xxmachina/common/_shared/meta/redis\";\n\nexport const VECTOR_SIZE = new InjectionToken('[@xxmachina/common] VECTOR_SIZE');\n// MEMO(nontangent): Optionalデコレーターが動かないので、ここで初期化する。\n(VECTOR_SIZE as any)['Θopt'] = true;\n\n@Injectable({providedIn: 'root'})\nexport class SpecRepository extends RedisRepository<Spec> {\n\n protected config = inject(REDIS_CONFIG);\n // constructor(\n // @Optional() @Inject(VECTOR_SIZE) private vectorSize: number,\n // ) {\n // this.vectorSize ??= 1536;\n // }\n\n protected entityName = 'spec';\n\n async create(spec: Spec): Promise<Spec> {\n return super.create({...spec, embeddings: this.toBuffer(spec.embeddings) as any});\n }\n\n async get(id: string): Promise<Spec> {\n return super.get(id).then(spec => ({...spec, embeddings: this.fromBuffer(spec.embeddings as any)}));\n }\n\n async update(spec: Partial<Spec>): Promise<void> {\n return super.update({...spec, embeddings: this.toBuffer((spec as any).embeddings as number[]) as any});\n }\n\n get indexName() {\n return `index:${this.entityName}`;\n }\n\n async makeIndex() {\n // await this.init();\n // await this.client.ft.dropIndex(this.indexName).catch(() => {});\n // await this.client.ft.create(this.indexName, {\n // id: SchemaFieldTypes.TEXT,\n // operatorId: SchemaFieldTypes.TEXT,\n // embeddings: {\n // type: SchemaFieldTypes.VECTOR,\n // ALGORITHM: VectorAlgorithms.HNSW,\n // TYPE: 'FLOAT32',\n // DIM: this.vectorSize,\n // DISTANCE_METRIC: 'COSINE',\n // },\n // });\n }\n\n async search(operatorId: string, embeddings: number[], n = 3): Promise<Spec[]> {\n const query = `(@operatorId:$OPERATOR_ID)=>[KNN $N @embeddings $BLOB AS score]`;\n const results = await this.client.ft.search(this.indexName, query, {\n PARAMS: {\n BLOB: this.toBuffer(embeddings),\n N: n,\n OPERATOR_ID: operatorId,\n },\n SORTBY: 'score',\n DIALECT: 2,\n RETURN: ['score']\n });\n return Promise.all(results.documents.map(doc => this.get(doc.id.slice(this.entityName.length + 1))));\n }\n\n private toBuffer(embedding: number[]) {\n return float32Buffer(embedding);\n }\n\n private fromBuffer(buffer: Buffer) {\n return bufferFloat32(buffer);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({providedIn: 'root'})\nexport class SystemRepository {\n protected entityName = 'system';\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { OperatorRepository } from \"./operator\";\nimport { ProjectRepository } from \"./project\";\nimport { SpecRepository } from \"./spec\";\nimport { SystemRepository } from \"./system\";\n\n@Injectable({providedIn: 'root'})\nexport class RedisService {\n readonly operator = inject(OperatorRepository);\n readonly project = inject(ProjectRepository);\n readonly spec = inject(SpecRepository);\n readonly system = inject(SystemRepository);\n}\n","import { NOTION_ACCESS_TOKEN } from \"@nx-ddd/notion\";\nimport { NotionConfig, provideNotionConfig } from \"./notion/notion.config\";\nimport { provideRedisConfig, RedisConfig } from \"./redis\";\n\nexport interface RepositoryConfig {\n notion?: NotionConfig;\n redis: RedisConfig;\n}\n\nexport function provideRepositoryConfig(config: RepositoryConfig) {\n return [\n provideRedisConfig(config.redis),\n ...(config.notion?.accessToken\n ? [provideNotionConfig(config.notion)]\n : [{ provide: NOTION_ACCESS_TOKEN, useValue: '' }]),\n ];\n}\n","import { ExternalConfig, provideExternalConfig } from \"./external\";\nimport { provideRepositoryConfig, RepositoryConfig } from \"./repository/repository.config\";\n\nexport interface InfrastructureConfig {\n external: ExternalConfig;\n repository: RepositoryConfig;\n}\n\nexport function provideInfrastructureConfig(config: InfrastructureConfig) {\n return [\n provideExternalConfig(config.external),\n provideRepositoryConfig(config.repository),\n ];\n}","import { Google } from \"@xxmachina/common/domain/models\";\nimport { GoogleConverter } from \"@xxmachina/common/infra/converters/google\";\nimport { inject, Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\n\n@Injectable({providedIn: 'root'})\nexport class GoogleRepository extends FirestoreRepository<Google> {\n readonly collectionPath = 'users/:userId/links/:id';\n protected converter = inject(GoogleConverter);\n}\n","import { Injectable } from \"@angular/core\";\nimport { GoogleRepository } from \"./google\";\n\n@Injectable({providedIn: 'root'})\nexport class LinkRepository {\n constructor(\n public google: GoogleRepository,\n ) { }\n}\n","import { Injectable } from \"@angular/core\";\n// import { BookmarkletRepository } from \"./bookmarklet\";\nimport { LinkRepository } from \"./link\";\n\n@Injectable({providedIn: 'root'})\nexport class FirestoreRepository {\n constructor(\n // public bookmarklet: BookmarkletRepository,\n public link: LinkRepository,\n ) {}\n}\n","import { Injectable } from \"@angular/core\";\nimport { Query } from \"@xxmachina/common/domain/models\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\nimport { injectConverter } from \"@nx-ddd/firestore\";\n\n@Injectable({ providedIn: 'root' })\nexport class QueryFirestoreRepository extends FirestoreRepository<Query> {\n readonly collectionPath = 'projects/:projectId/queries/:id';\n protected converter = injectConverter(Query);\n}","import { Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"@nx-ddd/firestore\";\nimport { Resource } from \"@xxmachina/common/domain/models\";\nimport { injectConverter } from \"@nx-ddd/firestore\";\n\n@Injectable({ providedIn: 'root' })\nexport class ResourceFirestoreRepository extends FirestoreRepository<Resource> {\n readonly collectionPath = 'projects/:projectId/resources/:id';\n protected converter = injectConverter(Resource);\n}","import { Injectable } from \"@angular/core\";\nimport { NotionRepository, createConverter, getDatabaseId } from \"@nx-ddd/notion\";\nimport { Order } from \"@xxmachina/common/invoice/domain\";\n\n@Injectable({providedIn: 'root'})\nexport class OrderNotionRepository extends NotionRepository<Order> {\n protected converter = createConverter(Order);\n protected databaseId = getDatabaseId(Order) as string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { ContractNotionRepository } from \"./contract\";\nimport { InvoiceNotionRepository } from \"./invoice\";\nimport { OrderNotionRepository } from \"./order\";\nimport { PartnerNotionRepository } from \"./partner\";\n\n@Injectable({providedIn: 'root'})\nexport class NotionRepository {\n constructor(\n public contract: ContractNotionRepository,\n public invoice: InvoiceNotionRepository,\n public order: OrderNotionRepository,\n public partner: PartnerNotionRepository,\n ) {}\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { FirestoreRepository } from \"./firestore\";\nimport { NotionRepository } from \"./notion\";\nimport { RedisService } from \"./redis\";\n\n@Injectable({providedIn: 'root'})\nexport class RepositoriesService {\n readonly firestore = inject(FirestoreRepository);\n readonly notion = inject(NotionRepository);\n readonly redis = inject(RedisService);\n}\n","import { Injectable } from \"@angular/core\";\nimport { RepositoriesService } from \"./repository\";\nimport { ExternalService } from \"./external\";\n\n@Injectable({providedIn: 'root'})\nexport class InfrastructureService {\n constructor(\n public external: ExternalService,\n public repo: RepositoriesService,\n ) { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NotionRepository","_provideNotionConfig","_provideRedisConfig","FirestoreRepository","i1.GoogleRepository","i1.LinkRepository","i1.ContractNotionRepository","i2.InvoiceNotionRepository","i3.OrderNotionRepository","i4.PartnerNotionRepository","i1.ExternalService","i2.RepositoriesService"],"mappings":"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"}
@@ -36,7 +36,7 @@ class MessageBuilder {
36
36
  ${this.getInvoicePeriod(invoice)}の請求書をご用意ができましたのでお送りさせていただきます。
37
37
  ご確認のほど、よろしくお願いいたします。
38
38
 
39
- ${invoice?.vendor?.type !== '個人事業主' ? invoice?.vendor?.name : ''}
39
+ ${(invoice?.vendor?.type !== '個人事業主' ? invoice?.vendor?.name : '')}
40
40
  ${invoice?.vendor?.contact}`;
41
41
  }
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-invoice-domain-builders.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/message/message.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/email/email.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/title/title.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/xxmachina-common-invoice-domain-builders.ts"],"sourcesContent":["import { Invoice } from \"@xxmachina/common/invoice/domain/models\";\nimport { message } from '@nx-ddd/common';\nimport dayjs from \"dayjs\";\n\nexport class MessageBuilder {\n private getInvoiceRange(invoice: Invoice): {start: dayjs.Dayjs, end: dayjs.Dayjs} {\n const start = (invoice?.orders ?? []).reduce((acc, order) => {\n const startDate = order?.startDate ? dayjs(order?.startDate) : dayjs('2200-12-31');\n return acc.isBefore(startDate) ? acc : startDate;\n }, dayjs('2200-12-31'));\n const end = (invoice?.orders ?? []).reduce((acc, order) => {\n const endDate = order?.endDate ? dayjs(order?.endDate) : dayjs('1970-01-01');\n return acc.isAfter(endDate) ? acc : endDate;\n }, dayjs('1970-01-01'));\n return {start, end};\n }\n\n private getInvoicePeriod(invoice: Invoice): string {\n const {start, end} = this.getInvoiceRange(invoice);\n return `${start?.format('YYYY年M月D日') ?? ''}~${end?.format('YYYY年M月D日') ?? ''}`;\n }\n\n buildMyName(invoice: Invoice): string {\n if (invoice?.vendor?.type === '個人事業主') {\n return invoice?.vendor?.contact;\n } else {\n return `${invoice?.vendor?.name}の${invoice?.vendor?.contact ?? ''}`;\n }\n }\n\n build(invoice: Invoice) {\n return message`\n ${invoice?.customer?.name}\n ${invoice?.customer?.billingContact ?? 'ご担当者'}様\n \n お世話になっております。\n ${this.buildMyName(invoice)}です。\n\n ${this.getInvoicePeriod(invoice)}の請求書をご用意ができましたのでお送りさせていただきます。\n ご確認のほど、よろしくお願いいたします。\n \n ${invoice?.vendor?.type !== '個人事業主' ? invoice?.vendor?.name : ''}\n ${invoice?.vendor?.contact}`;\n }\n}\n","import { Invoice } from \"@xxmachina/common/invoice/domain/models\";\nimport { MessageBuilder } from \"../message\";\n\nexport class Email {\n static EMPTY = {\n to: '',\n cc: '',\n title: '',\n body: '',\n };\n\n to: string;\n cc: string;\n title: string;\n body: string;\n}\n\nexport class EmailBuilder {\n protected readonly mesageBuilder = new MessageBuilder();\n\n build(invoice: Invoice): Email {\n return {\n to: invoice?.customer?.billingEmail,\n cc: invoice?.vendor?.email,\n title: `[${invoice?.vendor?.name ?? '{{invoice.vendor.name}}'}] 請求書ご送付のお知らせ`,\n body: this.mesageBuilder.build(invoice),\n }\n }\n}","import { Invoice } from '@xxmachina/common/invoice/domain/models';\n\nexport class TitleBuilder {\n build(invoice: Invoice) {\n return `[${invoice?.customer?.name ?? '{{invoice.vendor.name}}'}様] invoice_${invoice?.dueDate?.toISOString()}`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-invoice-domain-builders.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/message/message.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/email/email.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/title/title.builder.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/builders/xxmachina-common-invoice-domain-builders.ts"],"sourcesContent":["import { Invoice } from \"@xxmachina/common/invoice/domain/models\";\nimport { message } from '@nx-ddd/common';\nimport dayjs from \"dayjs\";\n\nexport class MessageBuilder {\n private getInvoiceRange(invoice: Invoice): {start: dayjs.Dayjs, end: dayjs.Dayjs} {\n const start = (invoice?.orders ?? []).reduce((acc, order) => {\n const startDate = order?.startDate ? dayjs(order?.startDate) : dayjs('2200-12-31');\n return acc.isBefore(startDate) ? acc : startDate;\n }, dayjs('2200-12-31'));\n const end = (invoice?.orders ?? []).reduce((acc, order) => {\n const endDate = order?.endDate ? dayjs(order?.endDate) : dayjs('1970-01-01');\n return acc.isAfter(endDate) ? acc : endDate;\n }, dayjs('1970-01-01'));\n return {start, end};\n }\n\n private getInvoicePeriod(invoice: Invoice): string {\n const {start, end} = this.getInvoiceRange(invoice);\n return `${start?.format('YYYY年M月D日') ?? ''}~${end?.format('YYYY年M月D日') ?? ''}`;\n }\n\n buildMyName(invoice: Invoice): string {\n if (invoice?.vendor?.type === '個人事業主') {\n return invoice?.vendor?.contact;\n } else {\n return `${invoice?.vendor?.name}の${invoice?.vendor?.contact ?? ''}`;\n }\n }\n\n build(invoice: Invoice) {\n return message`\n ${invoice?.customer?.name as string}\n ${invoice?.customer?.billingContact ?? 'ご担当者'}様\n \n お世話になっております。\n ${this.buildMyName(invoice)}です。\n\n ${this.getInvoicePeriod(invoice)}の請求書をご用意ができましたのでお送りさせていただきます。\n ご確認のほど、よろしくお願いいたします。\n \n ${(invoice?.vendor?.type !== '個人事業主' ? invoice?.vendor?.name : '') as string}\n ${invoice?.vendor?.contact as string}`;\n }\n}\n","import { Invoice } from \"@xxmachina/common/invoice/domain/models\";\nimport { MessageBuilder } from \"../message\";\n\nexport class Email {\n static EMPTY = {\n to: '',\n cc: '',\n title: '',\n body: '',\n };\n\n to!: string;\n cc!: string;\n title!: string;\n body!: string;\n}\n\nexport class EmailBuilder {\n protected readonly mesageBuilder = new MessageBuilder();\n\n build(invoice: Invoice): Email {\n return {\n to: invoice?.customer?.billingEmail as string,\n cc: invoice?.vendor?.email as string,\n title: `[${invoice?.vendor?.name ?? '{{invoice.vendor.name}}'}] 請求書ご送付のお知らせ`,\n body: this.mesageBuilder.build(invoice),\n }\n }\n}","import { Invoice } from '@xxmachina/common/invoice/domain/models';\n\nexport class TitleBuilder {\n build(invoice: Invoice) {\n return `[${invoice?.customer?.name ?? '{{invoice.vendor.name}}'}様] invoice_${invoice?.dueDate?.toISOString()}`;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-invoice-domain-models.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/contract.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/partner.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/order.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/invoice-mail.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/invoice.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/xxmachina-common-invoice-domain-models.ts"],"sourcesContent":["import { Domain, Entity } from \"@nx-ddd/common/domain\";\nimport { Hasura } from \"@nx-ddd/hasura\";\nimport { Notion } from '@nx-ddd/notion';\n\n@Notion.Database('a5f6d11520ca4345b3c5960ff36462bd')\n@Hasura.Table('contracts')\n@Domain.Entity({name: '契約'})\nexport class Contract extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id!: string;\n\n @Domain.Lang('番号')\n @Notion.UniqueID('no')\n @Hasura.Numeric()\n no: number;\n\n @Domain.Lang('件名')\n @Notion.Title('件名')\n @Hasura.Text()\n title: string;\n\n @Domain.Lang('発行日')\n @Notion.Date('発行日')\n @Hasura.Date()\n issueDate: Date;\n\n @Domain.Lang('注文一覧')\n @Notion.Relation('注文一覧', {multi: true})\n @Hasura.Text()\n orderIds: string[];\n\n static from(params: Contract): Contract {\n const instance = Object.assign(new Contract(), {...params});\n return instance;\n }\n}\n","import { Domain, Entity } from \"@nx-ddd/common/domain\";\nimport { Hasura } from \"@nx-ddd/hasura\";\nimport { Notion } from '@nx-ddd/notion'; \n\n@Notion.Database('9aa83577b8ab48f3a5c2b6714e5301d6')\n@Hasura.Table('partners')\n@Domain.Entity('取引先')\nexport class Partner extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('番号')\n @Hasura.Numeric()\n no: number;\n\n @Notion.Title('名前')\n @Domain.Lang('名前')\n @Hasura.Text()\n name: string;\n\n @Notion.Select('種別')\n @Domain.Lang('種別')\n @Hasura.Text()\n type: string;\n\n @Notion.RichText('住所')\n @Domain.Lang('住所')\n @Hasura.Text()\n address: string;\n\n @Notion.RichText('郵便番号')\n @Domain.Lang('郵便番号')\n @Hasura.Text()\n postalCode: string;\n\n @Notion.Email('メールアドレス')\n @Domain.Lang('メールアドレス')\n @Hasura.Text()\n email: string;\n\n @Notion.Email('請求先メールアドレス')\n @Domain.Lang('請求先メールアドレス')\n @Hasura.Text()\n billingEmail: string;\n\n @Notion.RichText('請求先担当者名')\n @Domain.Lang('請求先担当者名')\n @Hasura.Text()\n billingContact: string;\n\n @Notion.PhoneNumber('電話番号')\n @Domain.Lang('電話番号')\n @Hasura.Text()\n phoneNumber: string;\n\n @Notion.RichText('担当者')\n @Domain.Lang('担当者')\n @Hasura.Text()\n contact: string;\n\n @Notion.Formula('敬称')\n @Domain.Lang('敬称')\n @Hasura.Text()\n suffix: string;\n\n @Notion.Formula('口座')\n @Domain.Lang('口座')\n @Hasura.Text()\n bankAccount: string;\n\n @Notion.RichText('インボイス番号')\n @Domain.Lang('インボイス番号')\n @Hasura.Text()\n invoiceNumber: string;\n\n static from(params: Partner): Partner {\n return Object.assign(new Partner(), {...params});\n }\n}\n","import { Domain, Entity, TransformToDayjs } from '@nx-ddd/common/domain';\nimport { Notion } from '@nx-ddd/notion'; \nimport { Partner } from './partner';\nimport { Type } from 'class-transformer';\nimport { Hasura } from '@nx-ddd/hasura';\n\n@Notion.Database('fde7dd670d924dafa5da54a9d37247ef')\n@Hasura.Table('orders')\n@Domain.Entity('受注')\nexport class Order extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id!: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('no')\n @Hasura.Numeric()\n no: number;\n\n @Notion.Title('件名')\n @Domain.Lang('件名')\n @Hasura.Text()\n title: string;\n\n @Notion.Relation('ECL', {multi: false})\n @Domain.Lang('ECL')\n @Hasura.Text()\n eclId: string;\n\n @Notion.Relation('発注者', {multi: false})\n @Domain.Lang('発注者ID')\n @Hasura.Text()\n customerId: string;\n\n @Type(() => Partner)\n @Domain.Lang('発注者')\n customer?: Partner;\n\n @Notion.Relation('受注者', {multi: false})\n @Domain.Lang('受注者ID')\n @Hasura.Text()\n vendorId: string;\n\n @Type(() => Partner)\n @Domain.Lang('受注者')\n vendor?: Partner;\n\n @Notion.Relation('契約', {multi: false})\n @Domain.Lang('契約ID')\n @Hasura.Text()\n contractId: string;\n\n @Notion.Formula('請求')\n @Domain.Lang('請求ID')\n @Hasura.Text()\n invoiceId: string;\n\n @TransformToDayjs()\n @Notion.Date('開始日')\n @Domain.Lang('開始日')\n @Hasura.Date()\n startDate: Date;\n\n @TransformToDayjs()\n @Notion.Date('終了日')\n @Domain.Lang('終了日')\n @Hasura.Date()\n endDate: Date;\n\n @Notion.Number('単価')\n @Domain.Lang('単価')\n @Hasura.Numeric()\n unitPrice: number;\n\n @Notion.Select('単位')\n @Domain.Lang('単位')\n @Hasura.Text()\n unit: string;\n\n @Notion.Number('数量')\n @Domain.Lang('数量')\n @Hasura.Numeric()\n quantity: number;\n\n @Notion.Number('合計金額(入力)')\n @Domain.Lang('合計金額(入力)')\n @Hasura.Numeric()\n amountInput: number;\n\n @Notion.Formula('合計金額(税込)')\n @Domain.Lang('合計金額(税込)')\n @Hasura.Numeric()\n amount: number;\n\n @Notion.Status('受注ステータス')\n @Domain.Lang('受注ステータス')\n @Hasura.Text()\n statusIn: string;\n\n @Notion.Status('発注ステータス')\n @Domain.Lang('発注ステータス')\n @Hasura.Text()\n statusOut: string;\n\n static from(params: Order): Order {\n const instance = Object.assign(new Order(), {...params});\n return instance;\n }\n\n static get EMPTY() {\n return Order.from({\n id: null,\n no: null,\n title: null,\n eclId: null,\n customerId: null,\n vendorId: null,\n statusIn: null,\n statusOut: null,\n contractId: null,\n invoiceId: null,\n startDate: null,\n endDate: null,\n unitPrice: null,\n unit: null,\n quantity: null,\n amount: null,\n amountInput: null,\n });\n }\n}\n","import { Invoice } from \"./invoice\";\n\nexport class InvoiceMail {\n from: string;\n to: string;\n subject: string;\n content: string;\n invoice: Invoice;\n}","import { Domain, Entity, TransformToDate } from \"@nx-ddd/common/domain\";\nimport { Notion } from '@nx-ddd/notion'; \nimport { Hasura } from '@nx-ddd/hasura';\nimport { Type } from 'class-transformer';\nimport { IsDate, ValidateNested } from 'class-validator';\nimport { Order } from \"./order\";\nimport { Partner } from './partner';\n\n@Notion.Database('13f2e38f738741e8970b856cb09458e0')\n@Hasura.Table('invoices')\n@Domain.Entity('請求')\nexport class Invoice extends Entity {\n @Domain.Lang('番号')\n @Hasura.Text()\n id: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('no')\n @Hasura.Numeric()\n no: number;\n\n @Notion.Title('タイトル')\n @Domain.Lang('タイトル')\n @Hasura.Text()\n title: string;\n\n @Notion.RichText('件名')\n @Domain.Lang('件名')\n @Hasura.Text()\n subject: string;\n\n @Notion.Relation('請求先')\n @Domain.Lang('請求先')\n @Hasura.Text()\n customerId: string;\n\n @Type(() => Partner)\n customer?: Partner;\n\n @Notion.Relation('受託先')\n @Domain.Lang('受託先')\n @Hasura.Text()\n vendorId: string;\n\n @Type(() => Partner)\n vendor?: Partner;\n\n @Notion.Rollup('請求金額(税込)', {multi: false})\n @Domain.Lang('請求金額(税込)')\n @Hasura.Numeric()\n amount: number;\n\n @Notion.Date('支払期日')\n @Domain.Lang('支払期日')\n @Hasura.Date()\n dueDate: Date;\n\n @Notion.Relation('請求内容', {multi: true})\n @Domain.Lang('請求内容')\n orderIds: string[];\n\n @ValidateNested()\n @Type(() => Order)\n orders?: Order[];\n\n static from(data: Partial<Invoice>) {\n return Object.assign(new Invoice(), data);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-invoice-domain-models.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/contract.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/partner.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/order.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/invoice-mail.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/backoffice/invoice.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/domain/models/xxmachina-common-invoice-domain-models.ts"],"sourcesContent":["import { Domain, Entity } from \"@nx-ddd/common/domain\";\nimport { Hasura } from \"@nx-ddd/hasura\";\nimport { Notion } from '@nx-ddd/notion';\n\n@Notion.Database('a5f6d11520ca4345b3c5960ff36462bd')\n@Hasura.Table('contracts')\n@Domain.Entity({name: '契約'})\nexport class Contract extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id!: string;\n\n @Domain.Lang('番号')\n @Notion.UniqueID('no')\n @Hasura.Numeric()\n no!: number;\n\n @Domain.Lang('件名')\n @Notion.Title('件名')\n @Hasura.Text()\n title!: string;\n\n @Domain.Lang('発行日')\n @Notion.Date('発行日')\n @Hasura.Date()\n issueDate!: Date;\n\n @Domain.Lang('注文一覧')\n @Notion.Relation('注文一覧', {multi: true})\n @Hasura.Text()\n orderIds!: string[];\n\n static from(params: Contract): Contract {\n const instance = Object.assign(new Contract(), {...params});\n return instance;\n }\n}\n","import { Domain, Entity } from \"@nx-ddd/common/domain\";\nimport { Hasura } from \"@nx-ddd/hasura\";\nimport { Notion } from '@nx-ddd/notion'; \n\n@Notion.Database('9aa83577b8ab48f3a5c2b6714e5301d6')\n@Hasura.Table('partners')\n@Domain.Entity('取引先')\nexport class Partner extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id!: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('番号')\n @Hasura.Numeric()\n no!: number;\n\n @Notion.Title('名前')\n @Domain.Lang('名前')\n @Hasura.Text()\n name!: string;\n\n @Notion.Select('種別')\n @Domain.Lang('種別')\n @Hasura.Text()\n type!: string;\n\n @Notion.RichText('住所')\n @Domain.Lang('住所')\n @Hasura.Text()\n address!: string;\n\n @Notion.RichText('郵便番号')\n @Domain.Lang('郵便番号')\n @Hasura.Text()\n postalCode!: string;\n\n @Notion.Email('メールアドレス')\n @Domain.Lang('メールアドレス')\n @Hasura.Text()\n email!: string;\n\n @Notion.Email('請求先メールアドレス')\n @Domain.Lang('請求先メールアドレス')\n @Hasura.Text()\n billingEmail!: string;\n\n @Notion.RichText('請求先担当者名')\n @Domain.Lang('請求先担当者名')\n @Hasura.Text()\n billingContact!: string;\n\n @Notion.PhoneNumber('電話番号')\n @Domain.Lang('電話番号')\n @Hasura.Text()\n phoneNumber!: string;\n\n @Notion.RichText('担当者')\n @Domain.Lang('担当者')\n @Hasura.Text()\n contact!: string;\n\n @Notion.Formula('敬称')\n @Domain.Lang('敬称')\n @Hasura.Text()\n suffix!: string;\n\n @Notion.Formula('口座')\n @Domain.Lang('口座')\n @Hasura.Text()\n bankAccount!: string;\n\n @Notion.RichText('インボイス番号')\n @Domain.Lang('インボイス番号')\n @Hasura.Text()\n invoiceNumber!: string;\n\n static from(params: Partner): Partner {\n return Object.assign(new Partner(), {...params});\n }\n}\n","import { Domain, Entity, TransformToDayjs } from '@nx-ddd/common/domain';\nimport { Notion } from '@nx-ddd/notion'; \nimport { Partner } from './partner';\nimport { Type } from 'class-transformer';\nimport { Hasura } from '@nx-ddd/hasura';\n\n@Notion.Database('fde7dd670d924dafa5da54a9d37247ef')\n@Hasura.Table('orders')\n@Domain.Entity('受注')\nexport class Order extends Entity {\n @Domain.Lang('ID')\n @Hasura.Text()\n id!: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('no')\n @Hasura.Numeric()\n no!: number;\n\n @Notion.Title('件名')\n @Domain.Lang('件名')\n @Hasura.Text()\n title!: string;\n\n @Notion.Relation('ECL', {multi: false})\n @Domain.Lang('ECL')\n @Hasura.Text()\n eclId!: string;\n\n @Notion.Relation('発注者', {multi: false})\n @Domain.Lang('発注者ID')\n @Hasura.Text()\n customerId!: string;\n\n @Type(() => Partner)\n @Domain.Lang('発注者')\n customer?: Partner;\n\n @Notion.Relation('受注者', {multi: false})\n @Domain.Lang('受注者ID')\n @Hasura.Text()\n vendorId!: string;\n\n @Type(() => Partner)\n @Domain.Lang('受注者')\n vendor?: Partner;\n\n @Notion.Relation('契約', {multi: false})\n @Domain.Lang('契約ID')\n @Hasura.Text()\n contractId!: string;\n\n @Notion.Formula('請求')\n @Domain.Lang('請求ID')\n @Hasura.Text()\n invoiceId!: string;\n\n @TransformToDayjs()\n @Notion.Date('開始日')\n @Domain.Lang('開始日')\n @Hasura.Date()\n startDate!: Date;\n\n @TransformToDayjs()\n @Notion.Date('終了日')\n @Domain.Lang('終了日')\n @Hasura.Date()\n endDate!: Date;\n\n @Notion.Number('単価')\n @Domain.Lang('単価')\n @Hasura.Numeric()\n unitPrice!: number;\n\n @Notion.Select('単位')\n @Domain.Lang('単位')\n @Hasura.Text()\n unit!: string;\n\n @Notion.Number('数量')\n @Domain.Lang('数量')\n @Hasura.Numeric()\n quantity!: number;\n\n @Notion.Number('合計金額(入力)')\n @Domain.Lang('合計金額(入力)')\n @Hasura.Numeric()\n amountInput!: number;\n\n @Notion.Formula('合計金額(税込)')\n @Domain.Lang('合計金額(税込)')\n @Hasura.Numeric()\n amount!: number;\n\n @Notion.Status('受注ステータス')\n @Domain.Lang('受注ステータス')\n @Hasura.Text()\n statusIn!: string;\n\n @Notion.Status('発注ステータス')\n @Domain.Lang('発注ステータス')\n @Hasura.Text()\n statusOut!: string;\n\n static from(params: Order): Order {\n const instance = Object.assign(new Order(), {...params});\n return instance;\n }\n\n static get EMPTY() {\n return Order.from({\n id: null as unknown as string,\n no: null as unknown as number,\n title: null as unknown as string,\n eclId: null as unknown as string,\n customerId: null as unknown as string,\n vendorId: null as unknown as string,\n statusIn: null as unknown as string,\n statusOut: null as unknown as string,\n contractId: null as unknown as string,\n invoiceId: null as unknown as string,\n startDate: null as unknown as Date,\n endDate: null as unknown as Date,\n unitPrice: null as unknown as number,\n unit: null as unknown as string,\n quantity: null as unknown as number,\n amount: null as unknown as number,\n amountInput: null as unknown as number,\n });\n }\n}\n","import { Invoice } from \"./invoice\";\n\nexport class InvoiceMail {\n from!: string;\n to!: string;\n subject!: string;\n content!: string;\n invoice!: Invoice;\n}","import { Domain, Entity, TransformToDate } from \"@nx-ddd/common/domain\";\nimport { Notion } from '@nx-ddd/notion'; \nimport { Hasura } from '@nx-ddd/hasura';\nimport { Type } from 'class-transformer';\nimport { IsDate, ValidateNested } from 'class-validator';\nimport { Order } from \"./order\";\nimport { Partner } from './partner';\n\n@Notion.Database('13f2e38f738741e8970b856cb09458e0')\n@Hasura.Table('invoices')\n@Domain.Entity('請求')\nexport class Invoice extends Entity {\n @Domain.Lang('番号')\n @Hasura.Text()\n id!: string;\n\n @Notion.UniqueID('no')\n @Domain.Lang('no')\n @Hasura.Numeric()\n no!: number;\n\n @Notion.Title('タイトル')\n @Domain.Lang('タイトル')\n @Hasura.Text()\n title!: string;\n\n @Notion.RichText('件名')\n @Domain.Lang('件名')\n @Hasura.Text()\n subject!: string;\n\n @Notion.Relation('請求先')\n @Domain.Lang('請求先')\n @Hasura.Text()\n customerId!: string;\n\n @Type(() => Partner)\n customer?: Partner;\n\n @Notion.Relation('受託先')\n @Domain.Lang('受託先')\n @Hasura.Text()\n vendorId!: string;\n\n @Type(() => Partner)\n vendor?: Partner;\n\n @Notion.Rollup('請求金額(税込)', {multi: false})\n @Domain.Lang('請求金額(税込)')\n @Hasura.Numeric()\n amount!: number;\n\n @Notion.Date('支払期日')\n @Domain.Lang('支払期日')\n @Hasura.Date()\n dueDate!: Date;\n\n @Notion.Relation('請求内容', {multi: true})\n @Domain.Lang('請求内容')\n orderIds!: string[];\n\n @ValidateNested()\n @Type(() => Order)\n orders?: Order[];\n\n static from(data: Partial<Invoice>) {\n return Object.assign(new Invoice(), data);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-invoice-usecase-invoice.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice-queries.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice-utils.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice.service.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/xxmachina-common-invoice-usecase-invoice.ts"],"sourcesContent":["/**\n * 請求書関連のGraphQLクエリ\n */\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","/**\n * 請求書データ変換ユーティリティ\n */\n\n/**\n * スネークケースをキャメルケースに変換\n */\nconst snakeToCamel = (str: string): string =>\n str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n\n/**\n * 請求書データをキャメルケースに変換し、__typenameを除外\n */\nexport function transformInvoiceData(data: any): any {\n const transform = (obj: any): any => {\n if (Array.isArray(obj)) {\n return obj.map(transform);\n } else if (obj !== null && typeof obj === 'object') {\n const transformed: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === '__typename') continue;\n const camelKey = snakeToCamel(key);\n transformed[camelKey] = transform(value);\n }\n return transformed;\n }\n return obj;\n };\n\n return transform(data);\n}\n","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, InvoiceMail } 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';\n\nexport interface InvoiceConfig {\n templateBaseUrl: string;\n}\n\nexport const INVOICE_CONFIG = makeDI<InvoiceConfig>('[@xxmachina/invoice] INVOICE_CONFIG', {optional: false});\n\n@Injectable({ providedIn: 'root' })\nexport class InvoiceUsecase {\n private readonly notionRepo = inject(InvoiceNotionRepository);\n private readonly chromium = CHROMIUM.inject();\n private readonly config = INVOICE_CONFIG.inject();\n private readonly resend = RESEND_SERVICE.inject();\n private readonly hasura = getHasuraRepository(Invoice, { hasura: inject(HasuraService) });\n private readonly hasuraService = inject(HasuraService);\n\n async list() {\n return this.notionRepo.list();\n }\n\n async syncOne(id: string) {\n const invoice = await this.notionRepo.get({ id });\n await this.hasura.create(invoice);\n }\n\n async sync() {\n console.log('[InvoiceUsecase] Starting sync from Notion to Hasura...');\n\n const invoices = await this.notionRepo.list();\n console.log(`[InvoiceUsecase] Retrieved ${invoices.length} invoices from Notion`);\n\n console.log('[InvoiceUsecase] Deleting existing records in Hasura...');\n await this.hasura.deleteAll();\n\n console.log('[InvoiceUsecase] Saving invoices to Hasura...');\n await this.hasura.saveMany(invoices);\n\n console.log('[InvoiceUsecase] Sync completed successfully');\n return { synced: invoices.length };\n }\n\n async makePdf(data: object): Promise<{ pdf: Buffer, title: string, name: string }> {\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\n async sendMail(mail: InvoiceMail) {\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\n async getLink(invoiceId: string): Promise<string> {\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\n const invoiceData = (result as any).data?.invoicesByPk;\n if (!invoiceData) {\n throw new Error(`Invoice with ID ${invoiceId} not found`);\n }\n\n const transformedData = transformInvoiceData(invoiceData);\n const url = `${this.config.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(transformedData))}`;\n return url;\n } catch (error) {\n console.error(`[InvoiceUsecase] Failed to get link for invoice ${invoiceId}:`, error);\n throw error;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-invoice-usecase-invoice.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice-queries.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice-utils.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/invoice.service.ts","../../../../../packages/@xxmachina/common/src/lib/invoice/usecase/invoice/xxmachina-common-invoice-usecase-invoice.ts"],"sourcesContent":["/**\n * 請求書関連のGraphQLクエリ\n */\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","/**\n * 請求書データ変換ユーティリティ\n */\n\n/**\n * スネークケースをキャメルケースに変換\n */\nconst snakeToCamel = (str: string): string =>\n str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n\n/**\n * 請求書データをキャメルケースに変換し、__typenameを除外\n */\nexport function transformInvoiceData(data: any): any {\n const transform = (obj: any): any => {\n if (Array.isArray(obj)) {\n return obj.map(transform);\n } else if (obj !== null && typeof obj === 'object') {\n const transformed: any = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key === '__typename') continue;\n const camelKey = snakeToCamel(key);\n transformed[camelKey] = transform(value);\n }\n return transformed;\n }\n return obj;\n };\n\n return transform(data);\n}\n","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, InvoiceMail } 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';\n\nexport interface InvoiceConfig {\n templateBaseUrl: string;\n}\n\nexport const INVOICE_CONFIG = makeDI<InvoiceConfig>('[@xxmachina/invoice] INVOICE_CONFIG', {optional: false});\n\n@Injectable({ providedIn: 'root' })\nexport class InvoiceUsecase {\n private readonly notionRepo = inject(InvoiceNotionRepository);\n private readonly chromium = CHROMIUM.inject();\n private readonly config = INVOICE_CONFIG.inject();\n private readonly resend = RESEND_SERVICE.inject();\n private readonly hasura = getHasuraRepository(Invoice, { hasura: inject(HasuraService) });\n private readonly hasuraService = inject(HasuraService);\n\n async list() {\n return this.notionRepo.list();\n }\n\n async syncOne(id: string) {\n const invoice = await this.notionRepo.get({ id });\n await this.hasura.create(invoice);\n }\n\n async sync() {\n console.log('[InvoiceUsecase] Starting sync from Notion to Hasura...');\n\n const invoices = await this.notionRepo.list();\n console.log(`[InvoiceUsecase] Retrieved ${invoices.length} invoices from Notion`);\n\n console.log('[InvoiceUsecase] Deleting existing records in Hasura...');\n await this.hasura.deleteAll();\n\n console.log('[InvoiceUsecase] Saving invoices to Hasura...');\n await this.hasura.saveMany(invoices);\n\n console.log('[InvoiceUsecase] Sync completed successfully');\n return { synced: invoices.length };\n }\n\n async makePdf(data: object): Promise<{ pdf: Buffer, title: string, name: string }> {\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\n async sendMail(mail: InvoiceMail) {\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\n async getLink(invoiceId: string): Promise<string> {\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\n const invoiceData = (result as any).data?.invoicesByPk;\n if (!invoiceData) {\n throw new Error(`Invoice with ID ${invoiceId} not found`);\n }\n\n const transformedData = transformInvoiceData(invoiceData);\n const url = `${this.config!.templateBaseUrl}?json=${encodeURIComponent(JSON.stringify(transformedData))}`;\n return url;\n } catch (error) {\n console.error(`[InvoiceUsecase] Failed to get link for invoice ${invoiceId}:`, error);\n throw error;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -76,9 +76,10 @@ class AstSubscriptionSplitterService {
76
76
  if (!subscriptionOp || !subscriptionOp.selectionSet.selections.length) {
77
77
  return [];
78
78
  }
79
+ const op = subscriptionOp;
79
80
  const results = [];
80
81
  // Process each field in the subscription
81
- subscriptionOp.selectionSet.selections.forEach(selection => {
82
+ op.selectionSet.selections.forEach(selection => {
82
83
  if (selection.kind === Kind.FIELD) {
83
84
  const field = selection;
84
85
  const fieldName = field.alias?.value || field.name.value;
@@ -90,11 +91,11 @@ class AstSubscriptionSplitterService {
90
91
  definitions: [{
91
92
  kind: Kind.OPERATION_DEFINITION,
92
93
  operation: OperationTypeNode.SUBSCRIPTION,
93
- name: subscriptionOp.name ? {
94
+ name: op.name ? {
94
95
  kind: Kind.NAME,
95
- value: subscriptionOp.name.value
96
+ value: op.name.value
96
97
  } : undefined,
97
- variableDefinitions: this.filterVariableDefinitions(subscriptionOp.variableDefinitions || [], usedVariables),
98
+ variableDefinitions: this.filterVariableDefinitions(op.variableDefinitions || [], usedVariables),
98
99
  selectionSet: {
99
100
  kind: Kind.SELECTION_SET,
100
101
  selections: [field]
@@ -256,7 +257,7 @@ class GraphqlEnhancedService extends GraphqlService {
256
257
  return combineLatest(observables).pipe(map(results => {
257
258
  const combinedData = {};
258
259
  results.forEach(({ fieldName, result }) => {
259
- const data = result.data || result;
260
+ const data = (result.data || result);
260
261
  if (data[fieldName] !== undefined) {
261
262
  combinedData[fieldName] = data[fieldName];
262
263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-common-services-graphql.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/subscription-splitter/ast-splitter.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-utils.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-enhanced.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-enhanced.provider.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/xxmachina-common-services-graphql.ts"],"sourcesContent":["import { inject, Injectable } from \"@angular/core\";\nimport { GetHeaders } from \"@nx-ddd/hasura\";\nimport { ApolloClientManagerService } from \"@nx-ddd/hasura\";\nimport { EMPTY, Observable, switchMap } from \"rxjs\";\nimport { gql } from \"apollo-angular\";\nimport { DocumentNode, getIntrospectionQuery } from \"graphql\";\n\nexport interface ExecutableGraphql {\n endpoint: string;\n query: string | DocumentNode;\n variables: object;\n headers: Record<string, string> | GetHeaders;\n}\n\nexport type ExecutableGetSchemaGraphql = Pick<ExecutableGraphql, 'endpoint' | 'headers'>;\n\n@Injectable({providedIn: 'root'})\nexport class GraphqlService {\n readonly apolloClientManager = inject(ApolloClientManagerService);\n\n /**\n * @TODO\n * this.apolloMulti.getClientはendpoint単位でApolloClientを管理しているため、\n * _query.graphql.headersに認証情報などが含まれていないリクエストが初めに来ると、\n * {message: 'no subscriptions exist}のようなエラーが出る。\n * Headersが更新されるたびに、ApolloClientを再生成するような処理も必要。\n */\n subscribe(graphql: ExecutableGraphql) {\n if (!graphql.query) return EMPTY;\n const getHeaders: GetHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.subscribe<Record<string, any>>({\n query: gql`${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })),\n );\n }\n\n query(graphql: ExecutableGraphql) {\n if (!graphql.query) return EMPTY;\n const getHeaders: GetHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.query<Record<string, any>>({\n query: gql`${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })),\n );\n }\n\n getSchema(graphql: ExecutableGetSchemaGraphql): Observable<any> {\n const getHeaders: GetHeaders = typeof graphql.headers === 'function' \n ? graphql.headers \n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.query<Record<string, any>>({\n query: gql`${getIntrospectionQuery()}`,\n variables: {},\n fetchPolicy: 'network-only',\n })),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { \n DocumentNode, \n parse, \n print,\n visit,\n OperationDefinitionNode,\n FieldNode,\n VariableDefinitionNode,\n SelectionSetNode,\n ArgumentNode,\n Kind,\n OperationTypeNode\n} from 'graphql';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * AST-based subscription splitter service\n * GraphQL ASTを使用して正確にサブスクリプションを分割\n */\n@Injectable({ providedIn: 'root' })\nexport class AstSubscriptionSplitterService {\n \n splitSubscription(query: string | DocumentNode): { fieldName: string; query: string }[] {\n const document = typeof query === 'string' ? parse(query) : query;\n \n // Find the subscription operation\n let subscriptionOp: OperationDefinitionNode | undefined;\n visit(document, {\n OperationDefinition(node) {\n if (node.operation === OperationTypeNode.SUBSCRIPTION) {\n subscriptionOp = node;\n }\n }\n });\n \n if (!subscriptionOp || !subscriptionOp.selectionSet.selections.length) {\n return [];\n }\n \n const results: { fieldName: string; query: string }[] = [];\n \n // Process each field in the subscription\n subscriptionOp.selectionSet.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const field = selection as FieldNode;\n const fieldName = field.alias?.value || field.name.value;\n \n // Extract variables used in this field\n const usedVariables = this.extractUsedVariables(field);\n \n // Create a new subscription with only this field and its used variables\n const newDoc: DocumentNode = {\n kind: Kind.DOCUMENT,\n definitions: [{\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.SUBSCRIPTION,\n name: subscriptionOp.name ? {\n kind: Kind.NAME,\n value: subscriptionOp.name.value\n } : undefined,\n variableDefinitions: this.filterVariableDefinitions(\n subscriptionOp.variableDefinitions || [],\n usedVariables\n ),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [field]\n }\n }]\n };\n \n results.push({\n fieldName: field.name.value,\n query: print(newDoc)\n });\n }\n });\n \n return results;\n }\n \n /**\n * Extract variables used in a field and its subfields\n */\n private extractUsedVariables(field: FieldNode): Set<string> {\n const usedVars = new Set<string>();\n \n // Visit all nodes in the field to find variable references\n visit(field, {\n Variable(node) {\n usedVars.add(node.name.value);\n }\n });\n \n return usedVars;\n }\n \n /**\n * Filter variable definitions to only include used variables\n */\n private filterVariableDefinitions(\n definitions: ReadonlyArray<VariableDefinitionNode>,\n usedVariables: Set<string>\n ): VariableDefinitionNode[] {\n return definitions.filter(def => \n usedVariables.has(def.variable.name.value)\n );\n }\n \n /**\n * Combine multiple observables from split queries\n */\n combineResults(\n results: Observable<any>[],\n fieldNames: string[]\n ): Observable<any> {\n if (results.length === 0) {\n return of({});\n }\n \n if (results.length === 1) {\n return results[0];\n }\n \n return combineLatest(results).pipe(\n map(data => {\n const combined: any = {};\n fieldNames.forEach((fieldName, index) => {\n if (data[index] && typeof data[index] === 'object') {\n Object.keys(data[index]).forEach(key => {\n if (combined[key]) {\n if (Array.isArray(combined[key])) {\n combined[key] = [...combined[key], ...(Array.isArray(data[index][key]) ? data[index][key] : [data[index][key]])];\n } else {\n combined[key] = [combined[key], data[index][key]];\n }\n } else {\n combined[key] = data[index][key];\n }\n });\n }\n });\n return combined;\n })\n );\n }\n}","import { DocumentNode } from 'graphql';\nimport { ExecutableGraphql } from './graphql.service';\n\n/**\n * クエリがsubscriptionかどうかを判定\n */\nexport function isSubscription(query: string | DocumentNode): boolean {\n const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';\n return queryStr.trim().startsWith('subscription');\n}\n\n/**\n * クエリから使用されている変数を抽出\n */\nexport function extractUsedVariablesFromQuery(query: string): Set<string> {\n const variables = new Set<string>();\n const regex = /\\$(\\w+)/g;\n let match;\n\n while ((match = regex.exec(query)) !== null) {\n variables.add(match[1]);\n }\n\n return variables;\n}\n\n/**\n * 変数値から使用される変数のみをフィルタリング\n */\nexport function filterVariableValues(variables: object, usedVars: Set<string>): object {\n const filtered: any = {};\n\n for (const [key, value] of Object.entries(variables)) {\n if (usedVars.has(key)) {\n filtered[key] = value;\n }\n }\n\n return filtered;\n}\n\n/**\n * GraphQLクエリから未使用の変数を削除\n */\nexport function removeUnusedVariables(graphql: ExecutableGraphql): ExecutableGraphql {\n if (!graphql.variables || Object.keys(graphql.variables).length === 0) {\n return graphql;\n }\n\n const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';\n const usedVars = extractUsedVariablesFromQuery(queryStr);\n const filteredVariables = filterVariableValues(graphql.variables, usedVars);\n\n return {\n ...graphql,\n variables: filteredVariables\n };\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GraphqlService, ExecutableGraphql } from './graphql.service';\nimport { AstSubscriptionSplitterService } from './subscription-splitter/ast-splitter.service';\nimport { FetchResult } from '@apollo/client/core';\nimport {\n isSubscription,\n extractUsedVariablesFromQuery,\n filterVariableValues,\n removeUnusedVariables\n} from './graphql-utils';\n\nexport interface ExecutableGraphqlWithSplitting extends ExecutableGraphql {\n enableSplitting?: boolean;\n}\n\n/**\n * GraphqlServiceを拡張して、subscription分割機能を追加\n *\n * GraphQL/Hasuraの制限「1つのsubscriptionには1つのトップレベルフィールドのみ」を回避し、\n * 複数のフィールドを含むsubscriptionを自動的に分割して並列実行します。\n */\n@Injectable({ providedIn: 'root' })\nexport class GraphqlEnhancedService extends GraphqlService {\n private readonly splitter = inject(AstSubscriptionSplitterService);\n\n /**\n * subscriptionクエリを実行\n * デフォルトでsubscriptionは自動的に分割される\n */\n override subscribe(graphql: ExecutableGraphqlWithSplitting): Observable<FetchResult<any>> {\n const shouldSplit = graphql.enableSplitting !== false && isSubscription(graphql.query);\n\n if (!shouldSplit) {\n const filteredGraphql = removeUnusedVariables(graphql);\n return super.subscribe(filteredGraphql);\n }\n\n return this.subscribeSplit(graphql);\n }\n\n /**\n * subscriptionクエリを分割して並列実行し、結果を結合\n */\n private subscribeSplit(graphql: ExecutableGraphql): Observable<FetchResult<any>> {\n const splitQueries = this.splitter.splitSubscription(graphql.query);\n\n if (splitQueries.length <= 1) {\n return super.subscribe(graphql);\n }\n\n const observables = splitQueries.map((splitQuery) => {\n const usedVars = extractUsedVariablesFromQuery(splitQuery.query);\n const filteredVariables = filterVariableValues(graphql.variables, usedVars);\n\n const splitGraphql: ExecutableGraphql = {\n ...graphql,\n query: splitQuery.query,\n variables: filteredVariables\n };\n\n return super.subscribe(splitGraphql).pipe(\n map(result => ({ fieldName: splitQuery.fieldName, result }))\n );\n });\n\n return combineLatest(observables).pipe(\n map(results => {\n const combinedData: any = {};\n\n results.forEach(({ fieldName, result }) => {\n const data = result.data || result;\n if (data[fieldName] !== undefined) {\n combinedData[fieldName] = data[fieldName];\n }\n });\n\n return {\n data: combinedData,\n loading: false,\n networkStatus: 7\n } as FetchResult;\n })\n );\n }\n}\n","import { Provider } from '@angular/core';\nimport { GraphqlService } from './graphql.service';\nimport { GraphqlEnhancedService } from './graphql-enhanced.service';\n\n/**\n * GraphqlServiceをGraphqlEnhancedServiceで置き換えるプロバイダー\n * \n * 使用方法:\n * ```typescript\n * export default <Routes>[\n * {\n * path: '',\n * component: YourComponent,\n * providers: [\n * provideGraphqlEnhancedLocally()\n * ]\n * }\n * ];\n * ```\n */\nexport function provideGraphqlEnhancedLocally(): Provider[] {\n return [\n {\n provide: GraphqlService,\n useClass: GraphqlEnhancedService\n }\n ];\n}\n\n/**\n * グローバルにGraphqlEnhancedServiceを提供\n * app.config.tsで使用\n */\nexport function provideGraphqlEnhancedGlobally(): Provider[] {\n return provideGraphqlEnhancedLocally();\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-common-services-graphql.mjs","sources":["../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/subscription-splitter/ast-splitter.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-utils.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-enhanced.service.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/graphql-enhanced.provider.ts","../../../../../packages/@xxmachina/common/src/lib/services/graphql/xxmachina-common-services-graphql.ts"],"sourcesContent":["import { inject, Injectable } from \"@angular/core\";\nimport { GetHeaders } from \"@nx-ddd/hasura\";\nimport { ApolloClientManagerService } from \"@nx-ddd/hasura\";\nimport { EMPTY, Observable, switchMap } from \"rxjs\";\nimport { gql } from \"apollo-angular\";\nimport { DocumentNode, getIntrospectionQuery } from \"graphql\";\n\nexport interface ExecutableGraphql {\n endpoint: string;\n query: string | DocumentNode;\n variables: object;\n headers: Record<string, string> | GetHeaders;\n}\n\nexport type ExecutableGetSchemaGraphql = Pick<ExecutableGraphql, 'endpoint' | 'headers'>;\n\n@Injectable({providedIn: 'root'})\nexport class GraphqlService {\n readonly apolloClientManager = inject(ApolloClientManagerService);\n\n /**\n * @TODO\n * this.apolloMulti.getClientはendpoint単位でApolloClientを管理しているため、\n * _query.graphql.headersに認証情報などが含まれていないリクエストが初めに来ると、\n * {message: 'no subscriptions exist}のようなエラーが出る。\n * Headersが更新されるたびに、ApolloClientを再生成するような処理も必要。\n */\n subscribe(graphql: ExecutableGraphql) {\n if (!graphql.query) return EMPTY;\n const getHeaders: GetHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.subscribe<Record<string, any>>({\n query: gql`${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })),\n );\n }\n\n query(graphql: ExecutableGraphql) {\n if (!graphql.query) return EMPTY;\n const getHeaders: GetHeaders = typeof graphql.headers === 'function'\n ? graphql.headers\n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.query<Record<string, any>>({\n query: gql`${graphql.query}`,\n variables: graphql.variables,\n fetchPolicy: 'network-only',\n })),\n );\n }\n\n getSchema(graphql: ExecutableGetSchemaGraphql): Observable<any> {\n const getHeaders: GetHeaders = typeof graphql.headers === 'function' \n ? graphql.headers \n : () => Promise.resolve(graphql.headers as Record<string, string>);\n return this.apolloClientManager.getClient(graphql.endpoint, getHeaders).pipe(\n switchMap((client) => client.query<Record<string, any>>({\n query: gql`${getIntrospectionQuery()}`,\n variables: {},\n fetchPolicy: 'network-only',\n })),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { \n DocumentNode, \n parse, \n print,\n visit,\n OperationDefinitionNode,\n FieldNode,\n VariableDefinitionNode,\n SelectionSetNode,\n ArgumentNode,\n Kind,\n OperationTypeNode\n} from 'graphql';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * AST-based subscription splitter service\n * GraphQL ASTを使用して正確にサブスクリプションを分割\n */\n@Injectable({ providedIn: 'root' })\nexport class AstSubscriptionSplitterService {\n \n splitSubscription(query: string | DocumentNode): { fieldName: string; query: string }[] {\n const document = typeof query === 'string' ? parse(query) : query;\n \n // Find the subscription operation\n let subscriptionOp: OperationDefinitionNode | undefined;\n visit(document, {\n OperationDefinition(node) {\n if (node.operation === OperationTypeNode.SUBSCRIPTION) {\n subscriptionOp = node;\n }\n }\n });\n \n if (!subscriptionOp || !subscriptionOp.selectionSet.selections.length) {\n return [];\n }\n\n const op = subscriptionOp;\n const results: { fieldName: string; query: string }[] = [];\n\n // Process each field in the subscription\n op.selectionSet.selections.forEach(selection => {\n if (selection.kind === Kind.FIELD) {\n const field = selection as FieldNode;\n const fieldName = field.alias?.value || field.name.value;\n \n // Extract variables used in this field\n const usedVariables = this.extractUsedVariables(field);\n \n // Create a new subscription with only this field and its used variables\n const newDoc: DocumentNode = {\n kind: Kind.DOCUMENT,\n definitions: [{\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.SUBSCRIPTION,\n name: op.name ? {\n kind: Kind.NAME,\n value: op.name.value\n } : undefined,\n variableDefinitions: this.filterVariableDefinitions(\n op.variableDefinitions || [],\n usedVariables\n ),\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: [field]\n }\n }]\n };\n \n results.push({\n fieldName: field.name.value,\n query: print(newDoc)\n });\n }\n });\n \n return results;\n }\n \n /**\n * Extract variables used in a field and its subfields\n */\n private extractUsedVariables(field: FieldNode): Set<string> {\n const usedVars = new Set<string>();\n \n // Visit all nodes in the field to find variable references\n visit(field, {\n Variable(node) {\n usedVars.add(node.name.value);\n }\n });\n \n return usedVars;\n }\n \n /**\n * Filter variable definitions to only include used variables\n */\n private filterVariableDefinitions(\n definitions: ReadonlyArray<VariableDefinitionNode>,\n usedVariables: Set<string>\n ): VariableDefinitionNode[] {\n return definitions.filter(def => \n usedVariables.has(def.variable.name.value)\n );\n }\n \n /**\n * Combine multiple observables from split queries\n */\n combineResults(\n results: Observable<any>[],\n fieldNames: string[]\n ): Observable<any> {\n if (results.length === 0) {\n return of({});\n }\n \n if (results.length === 1) {\n return results[0];\n }\n \n return combineLatest(results).pipe(\n map(data => {\n const combined: any = {};\n fieldNames.forEach((fieldName, index) => {\n if (data[index] && typeof data[index] === 'object') {\n Object.keys(data[index]).forEach(key => {\n if (combined[key]) {\n if (Array.isArray(combined[key])) {\n combined[key] = [...combined[key], ...(Array.isArray(data[index][key]) ? data[index][key] : [data[index][key]])];\n } else {\n combined[key] = [combined[key], data[index][key]];\n }\n } else {\n combined[key] = data[index][key];\n }\n });\n }\n });\n return combined;\n })\n );\n }\n}","import { DocumentNode } from 'graphql';\nimport { ExecutableGraphql } from './graphql.service';\n\n/**\n * クエリがsubscriptionかどうかを判定\n */\nexport function isSubscription(query: string | DocumentNode): boolean {\n const queryStr = typeof query === 'string' ? query : query.loc?.source?.body || '';\n return queryStr.trim().startsWith('subscription');\n}\n\n/**\n * クエリから使用されている変数を抽出\n */\nexport function extractUsedVariablesFromQuery(query: string): Set<string> {\n const variables = new Set<string>();\n const regex = /\\$(\\w+)/g;\n let match;\n\n while ((match = regex.exec(query)) !== null) {\n variables.add(match[1]);\n }\n\n return variables;\n}\n\n/**\n * 変数値から使用される変数のみをフィルタリング\n */\nexport function filterVariableValues(variables: object, usedVars: Set<string>): object {\n const filtered: any = {};\n\n for (const [key, value] of Object.entries(variables)) {\n if (usedVars.has(key)) {\n filtered[key] = value;\n }\n }\n\n return filtered;\n}\n\n/**\n * GraphQLクエリから未使用の変数を削除\n */\nexport function removeUnusedVariables(graphql: ExecutableGraphql): ExecutableGraphql {\n if (!graphql.variables || Object.keys(graphql.variables).length === 0) {\n return graphql;\n }\n\n const queryStr = typeof graphql.query === 'string' ? graphql.query : graphql.query.loc?.source?.body || '';\n const usedVars = extractUsedVariablesFromQuery(queryStr);\n const filteredVariables = filterVariableValues(graphql.variables, usedVars);\n\n return {\n ...graphql,\n variables: filteredVariables\n };\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GraphqlService, ExecutableGraphql } from './graphql.service';\nimport { AstSubscriptionSplitterService } from './subscription-splitter/ast-splitter.service';\nimport { FetchResult } from '@apollo/client/core';\nimport {\n isSubscription,\n extractUsedVariablesFromQuery,\n filterVariableValues,\n removeUnusedVariables\n} from './graphql-utils';\n\nexport interface ExecutableGraphqlWithSplitting extends ExecutableGraphql {\n enableSplitting?: boolean;\n}\n\n/**\n * GraphqlServiceを拡張して、subscription分割機能を追加\n *\n * GraphQL/Hasuraの制限「1つのsubscriptionには1つのトップレベルフィールドのみ」を回避し、\n * 複数のフィールドを含むsubscriptionを自動的に分割して並列実行します。\n */\n@Injectable({ providedIn: 'root' })\nexport class GraphqlEnhancedService extends GraphqlService {\n private readonly splitter = inject(AstSubscriptionSplitterService);\n\n /**\n * subscriptionクエリを実行\n * デフォルトでsubscriptionは自動的に分割される\n */\n override subscribe(graphql: ExecutableGraphqlWithSplitting): Observable<FetchResult<any>> {\n const shouldSplit = graphql.enableSplitting !== false && isSubscription(graphql.query);\n\n if (!shouldSplit) {\n const filteredGraphql = removeUnusedVariables(graphql);\n return super.subscribe(filteredGraphql);\n }\n\n return this.subscribeSplit(graphql);\n }\n\n /**\n * subscriptionクエリを分割して並列実行し、結果を結合\n */\n private subscribeSplit(graphql: ExecutableGraphql): Observable<FetchResult<any>> {\n const splitQueries = this.splitter.splitSubscription(graphql.query);\n\n if (splitQueries.length <= 1) {\n return super.subscribe(graphql);\n }\n\n const observables = splitQueries.map((splitQuery) => {\n const usedVars = extractUsedVariablesFromQuery(splitQuery.query);\n const filteredVariables = filterVariableValues(graphql.variables, usedVars);\n\n const splitGraphql: ExecutableGraphql = {\n ...graphql,\n query: splitQuery.query,\n variables: filteredVariables\n };\n\n return super.subscribe(splitGraphql).pipe(\n map(result => ({ fieldName: splitQuery.fieldName, result }))\n );\n });\n\n return combineLatest(observables).pipe(\n map(results => {\n const combinedData: any = {};\n\n results.forEach(({ fieldName, result }) => {\n const data = (result.data || result) as Record<string, any>;\n if (data[fieldName] !== undefined) {\n combinedData[fieldName] = data[fieldName];\n }\n });\n\n return {\n data: combinedData,\n loading: false,\n networkStatus: 7\n } as FetchResult;\n })\n );\n }\n}\n","import { Provider } from '@angular/core';\nimport { GraphqlService } from './graphql.service';\nimport { GraphqlEnhancedService } from './graphql-enhanced.service';\n\n/**\n * GraphqlServiceをGraphqlEnhancedServiceで置き換えるプロバイダー\n * \n * 使用方法:\n * ```typescript\n * export default <Routes>[\n * {\n * path: '',\n * component: YourComponent,\n * providers: [\n * provideGraphqlEnhancedLocally()\n * ]\n * }\n * ];\n * ```\n */\nexport function provideGraphqlEnhancedLocally(): Provider[] {\n return [\n {\n provide: GraphqlService,\n useClass: GraphqlEnhancedService\n }\n ];\n}\n\n/**\n * グローバルにGraphqlEnhancedServiceを提供\n * app.config.tsで使用\n */\nexport function provideGraphqlEnhancedGlobally(): Provider[] {\n return provideGraphqlEnhancedLocally();\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}