@xxmachina/common 0.0.0-PLACEHOLDER

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 (160) hide show
  1. package/_shared/auth/index.d.ts +8 -0
  2. package/_shared/auth/passports/anonymous/index.d.ts +8 -0
  3. package/_shared/auth/passports/firebase/index.d.ts +19 -0
  4. package/_shared/auth/passports/internal/index.d.ts +17 -0
  5. package/_shared/auth/passports/msal/index.d.ts +26 -0
  6. package/_shared/meta/index.d.ts +8 -0
  7. package/_shared/meta/redis/index.d.ts +39 -0
  8. package/auth/index.d.ts +16 -0
  9. package/azure-auth/index.d.ts +41 -0
  10. package/domain/builder/index.d.ts +81 -0
  11. package/domain/builder/screen-item/index.d.ts +7 -0
  12. package/domain/index.d.ts +2 -0
  13. package/domain/models/index.d.ts +517 -0
  14. package/fesm2022/xxmachina-common-_shared-auth-passports-anonymous.mjs +20 -0
  15. package/fesm2022/xxmachina-common-_shared-auth-passports-anonymous.mjs.map +1 -0
  16. package/fesm2022/xxmachina-common-_shared-auth-passports-firebase.mjs +41 -0
  17. package/fesm2022/xxmachina-common-_shared-auth-passports-firebase.mjs.map +1 -0
  18. package/fesm2022/xxmachina-common-_shared-auth-passports-internal.mjs +34 -0
  19. package/fesm2022/xxmachina-common-_shared-auth-passports-internal.mjs.map +1 -0
  20. package/fesm2022/xxmachina-common-_shared-auth-passports-msal.mjs +49 -0
  21. package/fesm2022/xxmachina-common-_shared-auth-passports-msal.mjs.map +1 -0
  22. package/fesm2022/xxmachina-common-_shared-auth.mjs +25 -0
  23. package/fesm2022/xxmachina-common-_shared-auth.mjs.map +1 -0
  24. package/fesm2022/xxmachina-common-_shared-meta-redis.mjs +99 -0
  25. package/fesm2022/xxmachina-common-_shared-meta-redis.mjs.map +1 -0
  26. package/fesm2022/xxmachina-common-_shared-meta.mjs +26 -0
  27. package/fesm2022/xxmachina-common-_shared-meta.mjs.map +1 -0
  28. package/fesm2022/xxmachina-common-auth.mjs +17 -0
  29. package/fesm2022/xxmachina-common-auth.mjs.map +1 -0
  30. package/fesm2022/xxmachina-common-azure-auth.mjs +160 -0
  31. package/fesm2022/xxmachina-common-azure-auth.mjs.map +1 -0
  32. package/fesm2022/xxmachina-common-domain-builder-screen-item.mjs +201 -0
  33. package/fesm2022/xxmachina-common-domain-builder-screen-item.mjs.map +1 -0
  34. package/fesm2022/xxmachina-common-domain-builder.mjs +494 -0
  35. package/fesm2022/xxmachina-common-domain-builder.mjs.map +1 -0
  36. package/fesm2022/xxmachina-common-domain-models.mjs +841 -0
  37. package/fesm2022/xxmachina-common-domain-models.mjs.map +1 -0
  38. package/fesm2022/xxmachina-common-domain.mjs +7 -0
  39. package/fesm2022/xxmachina-common-domain.mjs.map +1 -0
  40. package/fesm2022/xxmachina-common-firebase-auth.mjs +36 -0
  41. package/fesm2022/xxmachina-common-firebase-auth.mjs.map +1 -0
  42. package/fesm2022/xxmachina-common-infra-converters-google.mjs +39 -0
  43. package/fesm2022/xxmachina-common-infra-converters-google.mjs.map +1 -0
  44. package/fesm2022/xxmachina-common-infra-external-data-connect.mjs +13 -0
  45. package/fesm2022/xxmachina-common-infra-external-data-connect.mjs.map +1 -0
  46. package/fesm2022/xxmachina-common-infra-external-quick-js.mjs +61 -0
  47. package/fesm2022/xxmachina-common-infra-external-quick-js.mjs.map +1 -0
  48. package/fesm2022/xxmachina-common-infra-external-resend.mjs +10 -0
  49. package/fesm2022/xxmachina-common-infra-external-resend.mjs.map +1 -0
  50. package/fesm2022/xxmachina-common-infra-external.mjs +35 -0
  51. package/fesm2022/xxmachina-common-infra-external.mjs.map +1 -0
  52. package/fesm2022/xxmachina-common-infra-query-firestore.mjs +33 -0
  53. package/fesm2022/xxmachina-common-infra-query-firestore.mjs.map +1 -0
  54. package/fesm2022/xxmachina-common-infra-query-hasura.mjs +20 -0
  55. package/fesm2022/xxmachina-common-infra-query-hasura.mjs.map +1 -0
  56. package/fesm2022/xxmachina-common-infra-repository-dataconnect.mjs +18 -0
  57. package/fesm2022/xxmachina-common-infra-repository-dataconnect.mjs.map +1 -0
  58. package/fesm2022/xxmachina-common-infra-repository-firestore.mjs +73 -0
  59. package/fesm2022/xxmachina-common-infra-repository-firestore.mjs.map +1 -0
  60. package/fesm2022/xxmachina-common-infra-repository-hasura.mjs +41 -0
  61. package/fesm2022/xxmachina-common-infra-repository-hasura.mjs.map +1 -0
  62. package/fesm2022/xxmachina-common-infra-repository-notion.mjs +105 -0
  63. package/fesm2022/xxmachina-common-infra-repository-notion.mjs.map +1 -0
  64. package/fesm2022/xxmachina-common-infra.mjs +368 -0
  65. package/fesm2022/xxmachina-common-infra.mjs.map +1 -0
  66. package/fesm2022/xxmachina-common-invoice-domain-builders.mjs +79 -0
  67. package/fesm2022/xxmachina-common-invoice-domain-builders.mjs.map +1 -0
  68. package/fesm2022/xxmachina-common-invoice-domain-models.mjs +432 -0
  69. package/fesm2022/xxmachina-common-invoice-domain-models.mjs.map +1 -0
  70. package/fesm2022/xxmachina-common-invoice-domain-resolvers.mjs +41 -0
  71. package/fesm2022/xxmachina-common-invoice-domain-resolvers.mjs.map +1 -0
  72. package/fesm2022/xxmachina-common-invoice-domain.mjs +8 -0
  73. package/fesm2022/xxmachina-common-invoice-domain.mjs.map +1 -0
  74. package/fesm2022/xxmachina-common-invoice-usecase-contract.mjs +27 -0
  75. package/fesm2022/xxmachina-common-invoice-usecase-contract.mjs.map +1 -0
  76. package/fesm2022/xxmachina-common-invoice-usecase-invoice.mjs +191 -0
  77. package/fesm2022/xxmachina-common-invoice-usecase-invoice.mjs.map +1 -0
  78. package/fesm2022/xxmachina-common-invoice-usecase-order.mjs +36 -0
  79. package/fesm2022/xxmachina-common-invoice-usecase-order.mjs.map +1 -0
  80. package/fesm2022/xxmachina-common-invoice-usecase-partner.mjs +36 -0
  81. package/fesm2022/xxmachina-common-invoice-usecase-partner.mjs.map +1 -0
  82. package/fesm2022/xxmachina-common-services-graphql.mjs +323 -0
  83. package/fesm2022/xxmachina-common-services-graphql.mjs.map +1 -0
  84. package/fesm2022/xxmachina-common-services-query-config.mjs +44 -0
  85. package/fesm2022/xxmachina-common-services-query-config.mjs.map +1 -0
  86. package/fesm2022/xxmachina-common-services-query.mjs +65 -0
  87. package/fesm2022/xxmachina-common-services-query.mjs.map +1 -0
  88. package/fesm2022/xxmachina-common-services-speech.mjs +178 -0
  89. package/fesm2022/xxmachina-common-services-speech.mjs.map +1 -0
  90. package/fesm2022/xxmachina-common-services-transformer.mjs +27 -0
  91. package/fesm2022/xxmachina-common-services-transformer.mjs.map +1 -0
  92. package/fesm2022/xxmachina-common-stores-firestore.mjs +33 -0
  93. package/fesm2022/xxmachina-common-stores-firestore.mjs.map +1 -0
  94. package/fesm2022/xxmachina-common-stores-hasura.mjs +32 -0
  95. package/fesm2022/xxmachina-common-stores-hasura.mjs.map +1 -0
  96. package/fesm2022/xxmachina-common-stores-inmemory.mjs +102 -0
  97. package/fesm2022/xxmachina-common-stores-inmemory.mjs.map +1 -0
  98. package/fesm2022/xxmachina-common-stores.mjs +16 -0
  99. package/fesm2022/xxmachina-common-stores.mjs.map +1 -0
  100. package/fesm2022/xxmachina-common-usecase-assistant.mjs +67 -0
  101. package/fesm2022/xxmachina-common-usecase-assistant.mjs.map +1 -0
  102. package/fesm2022/xxmachina-common-usecase-database.mjs +95 -0
  103. package/fesm2022/xxmachina-common-usecase-database.mjs.map +1 -0
  104. package/fesm2022/xxmachina-common-usecase-graphql.mjs +51 -0
  105. package/fesm2022/xxmachina-common-usecase-graphql.mjs.map +1 -0
  106. package/fesm2022/xxmachina-common-usecase-link.mjs +26 -0
  107. package/fesm2022/xxmachina-common-usecase-link.mjs.map +1 -0
  108. package/fesm2022/xxmachina-common-usecase-project.mjs +35 -0
  109. package/fesm2022/xxmachina-common-usecase-project.mjs.map +1 -0
  110. package/fesm2022/xxmachina-common-usecase-spec.mjs +45 -0
  111. package/fesm2022/xxmachina-common-usecase-spec.mjs.map +1 -0
  112. package/fesm2022/xxmachina-common-usecase.mjs +198 -0
  113. package/fesm2022/xxmachina-common-usecase.mjs.map +1 -0
  114. package/fesm2022/xxmachina-common-utils-crypto.mjs +30 -0
  115. package/fesm2022/xxmachina-common-utils-crypto.mjs.map +1 -0
  116. package/fesm2022/xxmachina-common-utils.mjs +53 -0
  117. package/fesm2022/xxmachina-common-utils.mjs.map +1 -0
  118. package/fesm2022/xxmachina-common.mjs +6 -0
  119. package/fesm2022/xxmachina-common.mjs.map +1 -0
  120. package/firebase-auth/index.d.ts +6 -0
  121. package/index.d.ts +1 -0
  122. package/infra/converters/google/index.d.ts +15 -0
  123. package/infra/external/data-connect/index.d.ts +7 -0
  124. package/infra/external/index.d.ts +24 -0
  125. package/infra/external/quick-js/index.d.ts +24 -0
  126. package/infra/external/resend/index.d.ts +16 -0
  127. package/infra/index.d.ts +206 -0
  128. package/infra/query/firestore/index.d.ts +20 -0
  129. package/infra/query/hasura/index.d.ts +9 -0
  130. package/infra/repository/dataconnect/index.d.ts +28 -0
  131. package/infra/repository/firestore/index.d.ts +42 -0
  132. package/infra/repository/hasura/index.d.ts +24 -0
  133. package/infra/repository/notion/index.d.ts +89 -0
  134. package/invoice/domain/builders/index.d.ts +31 -0
  135. package/invoice/domain/index.d.ts +3 -0
  136. package/invoice/domain/models/index.d.ts +78 -0
  137. package/invoice/domain/resolvers/index.d.ts +15 -0
  138. package/invoice/usecase/contract/index.d.ts +14 -0
  139. package/invoice/usecase/invoice/index.d.ts +34 -0
  140. package/invoice/usecase/order/index.d.ts +16 -0
  141. package/invoice/usecase/partner/index.d.ts +16 -0
  142. package/package.json +276 -0
  143. package/services/graphql/index.d.ts +97 -0
  144. package/services/query/config/index.d.ts +18 -0
  145. package/services/query/index.d.ts +29 -0
  146. package/services/speech/index.d.ts +37 -0
  147. package/services/transformer/index.d.ts +14 -0
  148. package/stores/firestore/index.d.ts +17 -0
  149. package/stores/hasura/index.d.ts +17 -0
  150. package/stores/index.d.ts +32 -0
  151. package/stores/inmemory/index.d.ts +33 -0
  152. package/usecase/assistant/index.d.ts +18 -0
  153. package/usecase/database/index.d.ts +39 -0
  154. package/usecase/graphql/index.d.ts +17 -0
  155. package/usecase/index.d.ts +73 -0
  156. package/usecase/link/index.d.ts +13 -0
  157. package/usecase/project/index.d.ts +16 -0
  158. package/usecase/spec/index.d.ts +17 -0
  159. package/utils/crypto/index.d.ts +9 -0
  160. package/utils/index.d.ts +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-assistant.mjs","sources":["../tmp-esm2022/usecase/assistant/assistant.service.js","../tmp-esm2022/usecase/assistant/xxmachina-common-usecase-assistant.js"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { InfrastructureService } from \"@xxmachina/common/infra\";\nimport { hash } from \"@xxmachina/common/utils/crypto\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@xxmachina/common/infra\";\nexport class AssistantService {\n infra;\n constructor(infra) {\n this.infra = infra;\n }\n async list() {\n return await this.infra.repo.redis.operator.list();\n }\n async create(assistant) {\n return this.infra.repo.redis.operator.create(assistant);\n }\n async update(assistant) {\n return this.infra.repo.redis.operator.update(assistant);\n }\n async delete(assistantid) {\n return this.infra.repo.redis.operator.delete(assistantid);\n }\n async operate(assistantId, input) {\n const project = await this.infra.repo.redis.project.get('default');\n const assistant = await this.infra.repo.redis.operator.get(assistantId);\n const adapter = this.infra.external.getAiAdapter(project.settings.ai);\n const embeddings = await adapter.embedding(input);\n const specs = await this.infra.repo.redis.spec.search(assistant.id, embeddings);\n const messages = [\n { role: 'system', content: assistant.description },\n ...specs.map(spec => [\n { role: 'system', content: spec.input },\n { role: 'assistant', content: spec.output },\n ]).flat(),\n { role: 'user', content: input },\n ];\n console.debug('messages', messages);\n const output_ = await adapter.chatComplete(messages);\n const output = this.scrape(assistant.outputInterfaceId, output_);\n await this.infra.repo.redis.spec.create({\n input, output, embeddings, id: hash(input), operatorId: assistant.id,\n }).catch(() => { });\n return output;\n }\n scrape(interface_, output) {\n if (interface_ === 'interface:codeblock') {\n const [_, ...lines] = (output.split('```')?.[1] ?? '').split('\\n');\n return `\\`\\`\\`\\n${lines.join('\\n')}\\n\\`\\`\\``;\n }\n else {\n return output;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AssistantService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AssistantService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AssistantService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.InfrastructureService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaXN0YW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3VzZWNhc2UvYXNzaXN0YW50L2Fzc2lzdGFudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFJdEQsTUFBTSxPQUFPLGdCQUFnQjtJQUVqQjtJQURWLFlBQ1UsS0FBNEI7UUFBNUIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7SUFDbEMsQ0FBQztJQUVMLEtBQUssQ0FBQyxJQUFJO1FBQ1IsT0FBTyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUF5QixDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQTRCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFRLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBNEI7UUFDdkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFtQjtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELENBQUM7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IjtcbmltcG9ydCB7IEluZnJhc3RydWN0dXJlU2VydmljZSB9IGZyb20gXCJAeHhtYWNoaW5hL2NvbW1vbi9pbmZyYVwiO1xuaW1wb3J0IHsgQXNzaXN0YW50T3BlcmF0b3IgfSBmcm9tIFwiQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVsc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJAeHhtYWNoaW5hL2NvbW1vbi91dGlscy9jcnlwdG9cIjtcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBBc3Npc3RhbnRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmZyYTogSW5mcmFzdHJ1Y3R1cmVTZXJ2aWNlLFxuICApIHsgfVxuXG4gIGFzeW5jIGxpc3QoKTogUHJvbWlzZTxBc3Npc3RhbnRPcGVyYXRvcltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaW5mcmEucmVwby5yZWRpcy5vcGVyYXRvci5saXN0KCkgYXMgQXNzaXN0YW50T3BlcmF0b3JbXTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZShhc3Npc3RhbnQ6IEFzc2lzdGFudE9wZXJhdG9yKTogUHJvbWlzZTxBc3Npc3RhbnRPcGVyYXRvcj4ge1xuICAgIHJldHVybiB0aGlzLmluZnJhLnJlcG8ucmVkaXMub3BlcmF0b3IuY3JlYXRlKGFzc2lzdGFudCkgYXMgYW55O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGFzc2lzdGFudDogQXNzaXN0YW50T3BlcmF0b3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLm9wZXJhdG9yLnVwZGF0ZShhc3Npc3RhbnQpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKGFzc2lzdGFudGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLm9wZXJhdG9yLmRlbGV0ZShhc3Npc3RhbnRpZCk7XG4gIH1cblxuICBhc3luYyBvcGVyYXRlKGFzc2lzdGFudElkOiBzdHJpbmcsIGlucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHByb2plY3QgPSBhd2FpdCB0aGlzLmluZnJhLnJlcG8ucmVkaXMucHJvamVjdC5nZXQoJ2RlZmF1bHQnKTtcbiAgICBjb25zdCBhc3Npc3RhbnQgPSBhd2FpdCB0aGlzLmluZnJhLnJlcG8ucmVkaXMub3BlcmF0b3IuZ2V0KGFzc2lzdGFudElkKTtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5pbmZyYS5leHRlcm5hbC5nZXRBaUFkYXB0ZXIocHJvamVjdC5zZXR0aW5ncy5haSlcbiAgICBjb25zdCBlbWJlZGRpbmdzID0gYXdhaXQgYWRhcHRlci5lbWJlZGRpbmcoaW5wdXQpO1xuICAgIGNvbnN0IHNwZWNzID0gYXdhaXQgdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnNwZWMuc2VhcmNoKGFzc2lzdGFudC5pZCwgZW1iZWRkaW5ncyk7XG5cbiAgICBjb25zdCBtZXNzYWdlcyA9IFtcbiAgICAgIHtyb2xlOiAnc3lzdGVtJywgY29udGVudDogYXNzaXN0YW50LmRlc2NyaXB0aW9ufSxcbiAgICAgIC4uLnNwZWNzLm1hcChzcGVjID0+IFtcbiAgICAgICAge3JvbGU6ICdzeXN0ZW0nLCBjb250ZW50OiBzcGVjLmlucHV0fSxcbiAgICAgICAge3JvbGU6ICdhc3Npc3RhbnQnLCBjb250ZW50OiBzcGVjLm91dHB1dH0sXG4gICAgICBdKS5mbGF0KCksXG4gICAgICB7cm9sZTogJ3VzZXInLCBjb250ZW50OiBpbnB1dH0sXG4gICAgXTtcblxuICAgIGNvbnNvbGUuZGVidWcoJ21lc3NhZ2VzJywgbWVzc2FnZXMpO1xuICAgIGNvbnN0IG91dHB1dF8gPSBhd2FpdCBhZGFwdGVyLmNoYXRDb21wbGV0ZShtZXNzYWdlcyk7XG4gICAgY29uc3Qgb3V0cHV0ID0gdGhpcy5zY3JhcGUoYXNzaXN0YW50Lm91dHB1dEludGVyZmFjZUlkLCBvdXRwdXRfKTtcbiAgICBhd2FpdCB0aGlzLmluZnJhLnJlcG8ucmVkaXMuc3BlYy5jcmVhdGUoe1xuICAgICAgaW5wdXQsIG91dHB1dCwgZW1iZWRkaW5ncywgaWQ6IGhhc2goaW5wdXQpLCBvcGVyYXRvcklkOiBhc3Npc3RhbnQuaWQsXG4gICAgfSkuY2F0Y2goKCkgPT4ge30pO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxuXG4gIHByaXZhdGUgc2NyYXBlKGludGVyZmFjZV86IHN0cmluZywgb3V0cHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChpbnRlcmZhY2VfID09PSAnaW50ZXJmYWNlOmNvZGVibG9jaycpIHtcbiAgICAgIGNvbnN0IFtfLCAuLi5saW5lc10gPSAob3V0cHV0LnNwbGl0KCdgYGAnKT8uWzFdID8/ICcnKS5zcGxpdCgnXFxuJyk7XG4gICAgICByZXR1cm4gYFxcYFxcYFxcYFxcbiR7bGluZXMuam9pbignXFxuJyl9XFxuXFxgXFxgXFxgYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9XG4gIH1cblxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLWFzc2lzdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvdXNlY2FzZS9hc3Npc3RhbnQveHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLWFzc2lzdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;AAKO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,KAAK;AACT,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC1D,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/D,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,SAAS,EAAE;AAC5B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/D,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,WAAW,EAAE;AAC9B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;AACjE,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE;AACtC,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1E,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;AAC/E,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7E,QAAQ,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;AACzD,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC;AACvF,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE;AAC9D,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI;AACjC,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;AACvD,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;AAC3D,aAAa,CAAC,CAAC,IAAI,EAAE;AACrB,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;AAC5C,SAAS;AACT,QAAQ,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC3C,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC5D,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACxE,QAAQ,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AAChD,YAAY,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;AAChF,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3B,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE;AAC/B,QAAQ,IAAI,UAAU,KAAK,qBAAqB,EAAE;AAClD,YAAY,MAAM,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AAC9E,YAAY,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACxD,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC9M,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;;AC3DzE;AACA;AACA;;;;"}
@@ -0,0 +1,95 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Injectable } from '@angular/core';
3
+ import { ErBuilder } from '@xxmachina/common/domain/builder';
4
+ import { ScreenItemBuilder } from '@xxmachina/common/domain/builder/screen-item';
5
+ import { omit } from 'lodash-es';
6
+ import { injectNotion } from '@nx-ddd/notion';
7
+
8
+ function listDatabaseProperties(database, dbName) {
9
+ return new ScreenItemBuilder().build(database).map(item => ({ ...item, dbName }));
10
+ }
11
+ const DATABASE_CONFIG = new InjectionToken('DATABASE_CONFIG');
12
+ function provideDatabaseConfig(useFactory) {
13
+ return { provide: DATABASE_CONFIG, useFactory };
14
+ }
15
+ class DatabaseService {
16
+ config = inject(DATABASE_CONFIG);
17
+ notion = injectNotion();
18
+ async get(databaseId) {
19
+ return this.notion.retrieveDatabase(databaseId);
20
+ }
21
+ async update(databaseId, body) {
22
+ return this.notion.updateDatabase(databaseId, omit({
23
+ ...body.properties,
24
+ }, []));
25
+ }
26
+ async listDatabases() {
27
+ let start_cursor;
28
+ const databases = [];
29
+ while (true) {
30
+ const _databases = await this.notion.search({
31
+ filter: {
32
+ property: 'object',
33
+ value: 'database',
34
+ },
35
+ start_cursor,
36
+ });
37
+ for (const db of _databases.results) {
38
+ databases.push({
39
+ ...db,
40
+ _title: db['title']?.[0]?.plain_text,
41
+ });
42
+ }
43
+ if (!_databases.has_more)
44
+ break;
45
+ start_cursor = _databases.next_cursor;
46
+ }
47
+ const resolve = async (item) => ({ ...item, path: await this.getPath(item) });
48
+ return Promise.all(databases.map(db => resolve(db)));
49
+ }
50
+ async generateMermaidER() {
51
+ const databases = await this.listDatabases();
52
+ return new ErBuilder().build(databases);
53
+ }
54
+ async getPageItems(dbId, name) {
55
+ // const dbDetails = await this.notion.retrieveDatabase(dbId);
56
+ // const items = listDatabaseProperties(dbDetails, name);
57
+ // return items;
58
+ return [];
59
+ }
60
+ async getParent(parent) {
61
+ switch (parent.type) {
62
+ case 'database_id': return this.notion.retrieveDatabase(parent.database_id);
63
+ case 'page_id': return this.notion.retrievePage(parent.page_id);
64
+ case 'block_id': return this.notion.retrieveBlock(parent.block_id);
65
+ }
66
+ }
67
+ async getPath(obj) {
68
+ const objects = [obj];
69
+ return objects.map(obj => getTitle(obj)).filter(Boolean).reverse().join('/');
70
+ }
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: DatabaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: DatabaseService, providedIn: 'root' });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: DatabaseService, decorators: [{
75
+ type: Injectable,
76
+ args: [{ providedIn: 'root' }]
77
+ }] });
78
+ function getTitle(obj) {
79
+ if (obj.object === 'page') {
80
+ return obj.properties?.title?.title?.[0]?.plain_text;
81
+ }
82
+ else if (obj.object === 'database') {
83
+ return obj._title;
84
+ }
85
+ else {
86
+ return null;
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Generated bundle index. Do not edit.
92
+ */
93
+
94
+ export { DatabaseService, provideDatabaseConfig };
95
+ //# sourceMappingURL=xxmachina-common-usecase-database.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-database.mjs","sources":["../tmp-esm2022/usecase/database/database.service.js","../tmp-esm2022/usecase/database/xxmachina-common-usecase-database.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { ErBuilder } from '@xxmachina/common/domain/builder';\nimport { ScreenItemBuilder } from '@xxmachina/common/domain/builder/screen-item';\nimport { omit } from 'lodash-es';\nimport { injectNotion } from '@nx-ddd/notion';\nimport * as i0 from \"@angular/core\";\nfunction listDatabaseProperties(database, dbName) {\n return new ScreenItemBuilder().build(database).map(item => ({ ...item, dbName }));\n}\nconst DATABASE_CONFIG = new InjectionToken('DATABASE_CONFIG');\nexport function provideDatabaseConfig(useFactory) {\n return { provide: DATABASE_CONFIG, useFactory };\n}\nexport class DatabaseService {\n config = inject(DATABASE_CONFIG);\n notion = injectNotion();\n async get(databaseId) {\n return this.notion.retrieveDatabase(databaseId);\n }\n async update(databaseId, body) {\n return this.notion.updateDatabase(databaseId, omit({\n ...body.properties,\n }, []));\n }\n async listDatabases() {\n let start_cursor;\n const databases = [];\n while (true) {\n const _databases = await this.notion.search({\n filter: {\n property: 'object',\n value: 'database',\n },\n start_cursor,\n });\n for (const db of _databases.results) {\n databases.push({\n ...db,\n _title: db['title']?.[0]?.plain_text,\n });\n }\n if (!_databases.has_more)\n break;\n start_cursor = _databases.next_cursor;\n }\n const resolve = async (item) => ({ ...item, path: await this.getPath(item) });\n return Promise.all(databases.map(db => resolve(db)));\n }\n async generateMermaidER() {\n const databases = await this.listDatabases();\n return new ErBuilder().build(databases);\n }\n async getPageItems(dbId, name) {\n // const dbDetails = await this.notion.retrieveDatabase(dbId);\n // const items = listDatabaseProperties(dbDetails, name);\n // return items;\n return [];\n }\n async getParent(parent) {\n switch (parent.type) {\n case 'database_id': return this.notion.retrieveDatabase(parent.database_id);\n case 'page_id': return this.notion.retrievePage(parent.page_id);\n case 'block_id': return this.notion.retrieveBlock(parent.block_id);\n }\n }\n async getPath(obj) {\n const objects = [obj];\n return objects.map(obj => getTitle(obj)).filter(Boolean).reverse().join('/');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DatabaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DatabaseService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: DatabaseService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nfunction getTitle(obj) {\n if (obj.object === 'page') {\n return obj.properties?.title?.title?.[0]?.plain_text;\n }\n else if (obj.object === 'database') {\n return obj._title;\n }\n else {\n return null;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tbW9uL3NyYy9saWIvdXNlY2FzZS9kYXRhYmFzZS9kYXRhYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFakYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTlDLFNBQVMsc0JBQXNCLENBQUMsUUFBa0IsRUFBRSxNQUFjO0lBQ2hFLE9BQU8sSUFBSSxpQkFBaUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUM7QUFPRCxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsaUJBQWlCLENBQUMsQ0FBQztBQUU5RSxNQUFNLFVBQVUscUJBQXFCLENBQUMsVUFBZ0M7SUFDcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUdELE1BQU0sT0FBTyxlQUFlO0lBQ2xCLE1BQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDakMsTUFBTSxHQUFHLFlBQVksRUFBRSxDQUFDO0lBRWhDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0I7UUFDMUIsT0FBTyxJQUFJLENB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Q0FBQztJQUMvRSxDQUFDO3VHQTFFVSxlQUFlOzJHQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBOEVsQyxTQUFTLFFBQVEsQ0FBQyxHQUFRO0lBQ3hCLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMxQixPQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN2RCxDQUFDO1NBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFckJ1aWxkZXIgfSBmcm9tICdAeHhtYWNoaW5hL2NvbW1vbi9kb21haW4vYnVpbGRlcic7XG5pbXBvcnQgeyBTY3JlZW5JdGVtQnVpbGRlciB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2RvbWFpbi9idWlsZGVyL3NjcmVlbi1pdGVtJztcbmltcG9ydCB7IERhdGFiYXNlLCBTY3JlZW5JdGVtIH0gZnJvbSAnQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGluamVjdE5vdGlvbiB9IGZyb20gJ0BueC1kZGQvbm90aW9uJztcblxuZnVuY3Rpb24gbGlzdERhdGFiYXNlUHJvcGVydGllcyhkYXRhYmFzZTogRGF0YWJhc2UsIGRiTmFtZTogc3RyaW5nKTogU2NyZWVuSXRlbVtdIHtcbiAgcmV0dXJuIG5ldyBTY3JlZW5JdGVtQnVpbGRlcigpLmJ1aWxkKGRhdGFiYXNlKS5tYXAoaXRlbSA9PiAoey4uLml0ZW0sIGRiTmFtZX0pKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUNvbmZpZyB7XG4gIG5vdGlvbkFwaUtleTogc3RyaW5nO1xuICBkYXRhYmFzZUlkVG9OYW1lOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5jb25zdCBEQVRBQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YWJhc2VDb25maWc+KCdEQVRBQkFTRV9DT05GSUcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEYXRhYmFzZUNvbmZpZyh1c2VGYWN0b3J5OiAoKSA9PiBEYXRhYmFzZUNvbmZpZykge1xuICByZXR1cm4geyBwcm92aWRlOiBEQVRBQkFTRV9DT05GSUcsIHVzZUZhY3RvcnkgfTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXRhYmFzZVNlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChEQVRBQkFTRV9DT05GSUcpO1xuICBwcml2YXRlIG5vdGlvbiA9IGluamVjdE5vdGlvbigpO1xuXG4gIGFzeW5jIGdldChkYXRhYmFzZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5ub3Rpb24ucmV0cmlldmVEYXRhYmFzZShkYXRhYmFzZUlkKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZShkYXRhYmFzZUlkOiBzdHJpbmcsIGJvZHk6IGFueSkge1xuICAgIHJldHVybiB0aGlzLm5vdGlvbi51cGRhdGVEYXRhYmFzZShkYXRhYmFzZUlkLCBvbWl0KHtcbiAgICAgIC4uLmJvZHkucHJvcGVydGllcyxcbiAgICB9LCBbXSkpO1xuICB9XG5cbiAgYXN5bmMgbGlzdERhdGFiYXNlcygpIHtcbiAgICBsZXQgc3RhcnRfY3Vyc29yO1xuICAgIGNvbnN0IGRhdGFiYXNlcyA9IFtdO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IF9kYXRhYmFzZXMgPSBhd2FpdCB0aGlzLm5vdGlvbi5zZWFyY2goe1xuICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICBwcm9wZXJ0eTogJ29iamVjdCcsXG4gICAgICAgICAgdmFsdWU6ICdkYXRhYmFzZScsXG4gICAgICAgIH0sXG4gICAgICAgIHN0YXJ0X2N1cnNvcixcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBkYiBvZiBfZGF0YWJhc2VzLnJlc3VsdHMpIHtcbiAgICAgICAgZGF0YWJhc2VzLnB1c2goe1xuICAgICAgICAgIC4uLmRiLFxuICAgICAgICAgIF90aXRsZTogZGJbJ3RpdGxlJ10/LlswXT8ucGxhaW5fdGV4dCxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghX2RhdGFiYXNlcy5oYXNfbW9yZSkgYnJlYWs7XG4gICAgICBzdGFydF9jdXJzb3IgPSBfZGF0YWJhc2VzLm5leHRfY3Vyc29yO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdmUgPSBhc3luYyAoaXRlbSkgPT4gKHsuLi5pdGVtLCBwYXRoOiBhd2FpdCB0aGlzLmdldFBhdGgoaXRlbSl9KTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChkYXRhYmFzZXMubWFwKGRiID0+IHJlc29sdmUoZGIpKSk7XG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZU1lcm1haWRFUigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRhdGFiYXNlcyA9IGF3YWl0IHRoaXMubGlzdERhdGFiYXNlcygpO1xuICAgIHJldHVybiBuZXcgRXJCdWlsZGVyKCkuYnVpbGQoZGF0YWJhc2VzKTsgIFxuICB9XG5cbiAgYXN5bmMgZ2V0UGFnZUl0ZW1zKGRiSWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgLy8gY29uc3QgZGJEZXRhaWxzID0gYXdhaXQgdGhpcy5ub3Rpb24ucmV0cmlldmVEYXRhYmFzZShkYklkKTtcbiAgICAvLyBjb25zdCBpdGVtcyA9IGxpc3REYXRhYmFzZVByb3BlcnRpZXMoZGJEZXRhaWxzLCBuYW1lKTtcbiAgICAvLyByZXR1cm4gaXRlbXM7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0UGFyZW50KHBhcmVudDoge1xuICAgIHR5cGU6ICdkYXRhYmFzZV9pZCcsXG4gICAgZGF0YWJhc2VfaWQ6IHN0cmluZ1xuICB9IHwge1xuICAgIHR5cGU6ICdwYWdlX2lkJyxcbiAgICBwYWdlX2lkOiBzdHJpbmdcbiAgfSB8IHtcbiAgICB0eXBlOiAnYmxvY2tfaWQnLFxuICAgIGJsb2NrX2lkOiBzdHJpbmdcbiAgfSkge1xuICAgIHN3aXRjaCAocGFyZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ2RhdGFiYXNlX2lkJzogcmV0dXJuIHRoaXMubm90aW9uLnJldHJpZXZlRGF0YWJhc2UocGFyZW50LmRhdGFiYXNlX2lkKVxuICAgICAgY2FzZSAncGFnZV9pZCc6IHJldHVybiB0aGlzLm5vdGlvbi5yZXRyaWV2ZVBhZ2UocGFyZW50LnBhZ2VfaWQpO1xuICAgICAgY2FzZSAnYmxvY2tfaWQnOiByZXR1cm4gdGhpcy5ub3Rpb24ucmV0cmlldmVCbG9jayhwYXJlbnQuYmxvY2tfaWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFBhdGgob2JqOiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3RzID0gW29ial07XG4gICAgcmV0dXJuIG9iamVjdHMubWFwKG9iaiA9PiBnZXRUaXRsZShvYmopKS5maWx0ZXIoQm9vbGVhbikucmV2ZXJzZSgpLmpvaW4oJy8nKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaXRsZShvYmo6IGFueSkge1xuICBpZiAob2JqLm9iamVjdCA9PT0gJ3BhZ2UnKSB7XG4gICAgcmV0dXJuIG9iai5wcm9wZXJ0aWVzPy50aXRsZT8udGl0bGU/LlswXT8ucGxhaW5fdGV4dDtcbiAgfSBlbHNlIGlmIChvYmoub2JqZWN0ID09PSAnZGF0YWJhc2UnKSB7XG4gICAgcmV0dXJuIG9iai5fdGl0bGU7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLWRhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi91c2VjYXNlL2RhdGFiYXNlL3h4bWFjaGluYS1jb21tb24tdXNlY2FzZS1kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;AAMA,SAAS,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClD,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACrF;AACA,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC;AACtD,SAAS,qBAAqB,CAAC,UAAU,EAAE;AAClD,IAAI,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE;AACnD;AACO,MAAM,eAAe,CAAC;AAC7B,IAAI,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC;AACpC,IAAI,MAAM,GAAG,YAAY,EAAE;AAC3B,IAAI,MAAM,GAAG,CAAC,UAAU,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACvD,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE;AACnC,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;AAC3D,YAAY,GAAG,IAAI,CAAC,UAAU;AAC9B,SAAS,EAAE,EAAE,CAAC,CAAC;AACf,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,YAAY;AACxB,QAAQ,MAAM,SAAS,GAAG,EAAE;AAC5B,QAAQ,OAAO,IAAI,EAAE;AACrB,YAAY,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACxD,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,QAAQ,EAAE,QAAQ;AACtC,oBAAoB,KAAK,EAAE,UAAU;AACrC,iBAAiB;AACjB,gBAAgB,YAAY;AAC5B,aAAa,CAAC;AACd,YAAY,KAAK,MAAM,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE;AACjD,gBAAgB,SAAS,CAAC,IAAI,CAAC;AAC/B,oBAAoB,GAAG,EAAE;AACzB,oBAAoB,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU;AACxD,iBAAiB,CAAC;AAClB,YAAY;AACZ,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ;AACpC,gBAAgB;AAChB,YAAY,YAAY,GAAG,UAAU,CAAC,WAAW;AACjD,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,OAAO,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AACrF,QAAQ,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE;AACpD,QAAQ,OAAO,IAAI,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;AAC/C,IAAI;AACJ,IAAI,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE;AACnC;AACA;AACA;AACA,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,MAAM,EAAE;AAC5B,QAAQ,QAAQ,MAAM,CAAC,IAAI;AAC3B,YAAY,KAAK,aAAa,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC;AACvF,YAAY,KAAK,SAAS,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;AAC3E,YAAY,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9E;AACA,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,GAAG,EAAE;AACvB,QAAQ,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC;AAC7B,QAAQ,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AACpF,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC1K,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AACjJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;AACb,SAAS,QAAQ,CAAC,GAAG,EAAE;AACvB,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE;AAC/B,QAAQ,OAAO,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,UAAU;AAC5D,IAAI;AACJ,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;AACxC,QAAQ,OAAO,GAAG,CAAC,MAAM;AACzB,IAAI;AACJ,SAAS;AACT,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;;ACtFA;AACA;AACA;;;;"}
@@ -0,0 +1,51 @@
1
+ import { __decorate, __metadata } from 'tslib';
2
+ import { HttpClient } from '@angular/common/http';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Injectable } from '@angular/core';
5
+ import { injectAnyFunc } from '@nx-ddd/any-func';
6
+ import { injectDataConnectService } from '@xxmachina/common/infra/external/data-connect';
7
+ import { IsString } from 'class-validator';
8
+
9
+ class Result {
10
+ query;
11
+ }
12
+ __decorate([
13
+ IsString(),
14
+ __metadata("design:type", String)
15
+ ], Result.prototype, "query", void 0);
16
+ class GraphqlService {
17
+ http = inject(HttpClient);
18
+ anyFunc = injectAnyFunc();
19
+ dc = injectDataConnectService();
20
+ constructor() { }
21
+ async graphql(query) {
22
+ // return lastValueFrom(this.http.post('http://localhost:3330/api/dataConnect', {query}));
23
+ return this.dc.executeGraphqlRead(query);
24
+ }
25
+ async makeQuery(instructions) {
26
+ const schemaQuery = `{ __schema { types { name fields { name type { name } } } } }`;
27
+ const schemaResult = await this.graphql(schemaQuery);
28
+ return this.anyFunc.call(instructions, Result, {
29
+ instructions: `
30
+ アシスタントはユーザーの要求を満たすGraphQLクエリを下記のサーバーのスキーマを元に生成します。
31
+
32
+ ${JSON.stringify(schemaResult, null, 2)}
33
+ `,
34
+ model: 'gpt-4o-mini',
35
+ validator: async (output) => this.graphql(output.query).then(() => []).catch(error => [error.message]),
36
+ }).then(result => result.query);
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, providedIn: 'root' });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, decorators: [{
42
+ type: Injectable,
43
+ args: [{ providedIn: 'root' }]
44
+ }], ctorParameters: () => [] });
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { GraphqlService };
51
+ //# sourceMappingURL=xxmachina-common-usecase-graphql.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-graphql.mjs","sources":["../tmp-esm2022/usecase/graphql/graphql.service.js","../tmp-esm2022/usecase/graphql/xxmachina-common-usecase-graphql.js"],"sourcesContent":["import { __decorate, __metadata } from \"tslib\";\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { injectAnyFunc } from '@nx-ddd/any-func';\nimport { injectDataConnectService } from '@xxmachina/common/infra/external/data-connect';\nimport { IsString } from 'class-validator';\nimport * as i0 from \"@angular/core\";\nclass Result {\n query;\n}\n__decorate([\n IsString(),\n __metadata(\"design:type\", String)\n], Result.prototype, \"query\", void 0);\nexport class GraphqlService {\n http = inject(HttpClient);\n anyFunc = injectAnyFunc();\n dc = injectDataConnectService();\n constructor() { }\n async graphql(query) {\n // return lastValueFrom(this.http.post('http://localhost:3330/api/dataConnect', {query}));\n return this.dc.executeGraphqlRead(query);\n }\n async makeQuery(instructions) {\n const schemaQuery = `{ __schema { types { name fields { name type { name } } } } }`;\n const schemaResult = await this.graphql(schemaQuery);\n return this.anyFunc.call(instructions, Result, {\n instructions: `\n アシスタントはユーザーの要求を満たすGraphQLクエリを下記のサーバーのスキーマを元に生成します。\n\n ${JSON.stringify(schemaResult, null, 2)}\n `,\n model: 'gpt-4o-mini',\n validator: async (output) => this.graphql(output.query).then(() => []).catch(error => [error.message]),\n }).then(result => result.query);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: GraphqlService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi91c2VjYXNlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0MsTUFBTSxNQUFNO0lBRVYsS0FBSyxDQUFTO0NBQ2Y7QUFEQztJQURDLFFBQVEsRUFBRTs7cUNBQ0c7QUFJaEIsTUFBTSxPQUFPLGNBQWM7SUFDZixJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLE9BQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztJQUMxQixFQUFFLEdBQUcsd0JBQXdCLEVBQUUsQ0FBQztJQUUxQyxnQkFBZSxDQUFDO0lBRWhCLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBYTtRQUN6QiwwRkFBMEY7UUFDMUYsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQW9CO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLCtEQUErRCxDQUFDO1FBQ3BGLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDN0MsWUFBWSxFQUFFOzs7VUFHVixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO09BQ3hDO1lBQ0QsS0FBSyxFQUFFLGFBQWE7WUFDcEIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN2RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7dUdBeEJVLGNBQWM7MkdBQWQsY0FBYyxjQURGLE1BQU07OzJGQUNsQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEFueUZ1bmMgfSBmcm9tICdAbngtZGRkL2FueS1mdW5jJztcbmltcG9ydCB7IGluamVjdERhdGFDb25uZWN0U2VydmljZSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2luZnJhL2V4dGVybmFsL2RhdGEtY29ubmVjdCc7XG5pbXBvcnQgeyBJc1N0cmluZyB9IGZyb20gJ2NsYXNzLXZhbGlkYXRvcic7XG5cbmNsYXNzIFJlc3VsdCB7XG4gIEBJc1N0cmluZygpXG4gIHF1ZXJ5OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEdyYXBocWxTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBhbnlGdW5jID0gaW5qZWN0QW55RnVuYygpO1xuICBwcm90ZWN0ZWQgZGMgPSBpbmplY3REYXRhQ29ubmVjdFNlcnZpY2UoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgYXN5bmMgZ3JhcGhxbChxdWVyeTogc3RyaW5nKSB7XG4gICAgLy8gcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5odHRwLnBvc3QoJ2h0dHA6Ly9sb2NhbGhvc3Q6MzMzMC9hcGkvZGF0YUNvbm5lY3QnLCB7cXVlcnl9KSk7XG4gICAgcmV0dXJuIHRoaXMuZGMuZXhlY3V0ZUdyYXBocWxSZWFkKHF1ZXJ5KTtcbiAgfVxuXG4gIGFzeW5jIG1ha2VRdWVyeShpbnN0cnVjdGlvbnM6IHN0cmluZykge1xuICAgIGNvbnN0IHNjaGVtYVF1ZXJ5ID0gYHsgX19zY2hlbWEgeyB0eXBlcyB7IG5hbWUgZmllbGRzIHsgbmFtZSB0eXBlIHsgbmFtZSB9IH0gfSB9IH1gO1xuICAgIGNvbnN0IHNjaGVtYVJlc3VsdCA9IGF3YWl0IHRoaXMuZ3JhcGhxbChzY2hlbWFRdWVyeSk7XG4gICAgcmV0dXJuIHRoaXMuYW55RnVuYy5jYWxsKGluc3RydWN0aW9ucywgUmVzdWx0LCB7XG4gICAgICBpbnN0cnVjdGlvbnM6IGBcbiAgICAgICAg44Ki44K344K544K/44Oz44OI44Gv44Om44O844K244O844Gu6KaB5rGC44KS5rqA44Gf44GZR3JhcGhRTOOCr+OCqOODquOCkuS4i+iomOOBruOCteODvOODkOODvOOBruOCueOCreODvOODnuOCkuWFg+OBq+eUn+aIkOOBl+OBvuOBmeOAglxuXG4gICAgICAgICR7SlNPTi5zdHJpbmdpZnkoc2NoZW1hUmVzdWx0LCBudWxsLCAyKX1cbiAgICAgIGAsXG4gICAgICBtb2RlbDogJ2dwdC00by1taW5pJyxcbiAgICAgIHZhbGlkYXRvcjogYXN5bmMgKG91dHB1dCkgPT4gdGhpcy5ncmFwaHFsKG91dHB1dC5xdWVyeSkudGhlbigoKSA9PiBbXSkuY2F0Y2goZXJyb3IgPT4gW2Vycm9yLm1lc3NhZ2VdKSxcbiAgICB9KS50aGVuKHJlc3VsdCA9PiByZXN1bHQucXVlcnkpO1xuICB9XG5cbn0iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLWdyYXBocWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3VzZWNhc2UvZ3JhcGhxbC94eG1hY2hpbmEtY29tbW9uLXVzZWNhc2UtZ3JhcGhxbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;;AAOA,MAAM,MAAM,CAAC;AACb,IAAI,KAAK;AACT;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,EAAE;AACd,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM;AACpC,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,MAAM,cAAc,CAAC;AAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,IAAI,OAAO,GAAG,aAAa,EAAE;AAC7B,IAAI,EAAE,GAAG,wBAAwB,EAAE;AACnC,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE;AACzB;AACA,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;AAChD,IAAI;AACJ,IAAI,MAAM,SAAS,CAAC,YAAY,EAAE;AAClC,QAAQ,MAAM,WAAW,GAAG,CAAC,6DAA6D,CAAC;AAC3F,QAAQ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAC5D,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;AACvD,YAAY,YAAY,EAAE;AAC1B;;AAEA,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/C,MAAM,CAAC;AACP,YAAY,KAAK,EAAE,aAAa;AAChC,YAAY,SAAS,EAAE,OAAO,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAClH,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;AACvC,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACzK,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC1CvC;AACA;AACA;;;;"}
@@ -0,0 +1,26 @@
1
+ import * as i1 from '@xxmachina/common/infra';
2
+ import * as i0 from '@angular/core';
3
+ import { Injectable } from '@angular/core';
4
+
5
+ class LinkService {
6
+ infra;
7
+ constructor(infra) {
8
+ this.infra = infra;
9
+ }
10
+ saveGoogleLink(google) {
11
+ return this.infra.repo.firestore.link.google.save(google);
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, providedIn: 'root' });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, decorators: [{
17
+ type: Injectable,
18
+ args: [{ providedIn: 'root' }]
19
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
20
+
21
+ /**
22
+ * Generated bundle index. Do not edit.
23
+ */
24
+
25
+ export { LinkService };
26
+ //# sourceMappingURL=xxmachina-common-usecase-link.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-link.mjs","sources":["../tmp-esm2022/usecase/link/link.service.js","../tmp-esm2022/usecase/link/xxmachina-common-usecase-link.js"],"sourcesContent":["import { InfrastructureService } from \"@xxmachina/common/infra\";\nimport { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@xxmachina/common/infra\";\nexport class LinkService {\n infra;\n constructor(infra) {\n this.infra = infra;\n }\n saveGoogleLink(google) {\n return this.infra.repo.firestore.link.google.save(google);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LinkService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LinkService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: LinkService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.InfrastructureService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi91c2VjYXNlL2xpbmsvbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczQyxNQUFNLE9BQU8sV0FBVztJQUViO0lBRFQsWUFDUyxLQUE0QjtRQUE1QixVQUFLLEdBQUwsS0FBSyxDQUF1QjtJQUNqQyxDQUFDO0lBRUwsY0FBYyxDQUFDLE1BQWM7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsQ0FBQzt1R0FQVSxXQUFXOzJHQUFYLFdBQVcsY0FEQyxNQUFNOzsyRkFDbEIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHb29nbGUgfSBmcm9tIFwiQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVsc1wiO1xuaW1wb3J0IHsgSW5mcmFzdHJ1Y3R1cmVTZXJ2aWNlIH0gZnJvbSBcIkB4eG1hY2hpbmEvY29tbW9uL2luZnJhXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTGlua1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW5mcmE6IEluZnJhc3RydWN0dXJlU2VydmljZSxcbiAgKSB7IH1cblxuICBzYXZlR29vZ2xlTGluayhnb29nbGU6IEdvb2dsZSkge1xuICAgIHJldHVybiB0aGlzLmluZnJhLnJlcG8uZmlyZXN0b3JlLmxpbmsuZ29vZ2xlLnNhdmUoZ29vZ2xlKTtcbiAgfVxufSJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLWxpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3VzZWNhc2UvbGluay94eG1hY2hpbmEtY29tbW9uLXVzZWNhc2UtbGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;AAIO,MAAM,WAAW,CAAC;AACzB,IAAI,KAAK;AACT,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAI;AACJ,IAAI,cAAc,CAAC,MAAM,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AACzM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC7I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;;AClBzE;AACA;AACA;;;;"}
@@ -0,0 +1,35 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i1 from '@xxmachina/common/infra';
4
+
5
+ class ProjectService {
6
+ infra;
7
+ constructor(infra) {
8
+ this.infra = infra;
9
+ }
10
+ async list() {
11
+ return await this.infra.repo.redis.project.list();
12
+ }
13
+ async get(projectId) {
14
+ return this.infra.repo.redis.project.get(projectId);
15
+ }
16
+ async create(project) {
17
+ return this.infra.repo.redis.project.create(project);
18
+ }
19
+ async update(project) {
20
+ return this.infra.repo.redis.project.update(project);
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
23
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, providedIn: 'root' });
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, decorators: [{
26
+ type: Injectable,
27
+ args: [{ providedIn: 'root' }]
28
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
29
+
30
+ /**
31
+ * Generated bundle index. Do not edit.
32
+ */
33
+
34
+ export { ProjectService };
35
+ //# sourceMappingURL=xxmachina-common-usecase-project.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-project.mjs","sources":["../tmp-esm2022/usecase/project/project.service.js","../tmp-esm2022/usecase/project/xxmachina-common-usecase-project.js"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { InfrastructureService } from \"@xxmachina/common/infra\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@xxmachina/common/infra\";\nexport class ProjectService {\n infra;\n constructor(infra) {\n this.infra = infra;\n }\n async list() {\n return await this.infra.repo.redis.project.list();\n }\n async get(projectId) {\n return this.infra.repo.redis.project.get(projectId);\n }\n async create(project) {\n return this.infra.repo.redis.project.create(project);\n }\n async update(project) {\n return this.infra.repo.redis.project.update(project);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProjectService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProjectService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ProjectService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.InfrastructureService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi91c2VjYXNlL3Byb2plY3QvcHJvamVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUloRSxNQUFNLE9BQU8sY0FBYztJQUVmO0lBRFYsWUFDVSxLQUE0QjtRQUE1QixVQUFLLEdBQUwsS0FBSyxDQUF1QjtJQUNsQyxDQUFDO0lBRUwsS0FBSyxDQUFDLElBQUk7UUFDUixPQUFPLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQWUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFpQjtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQWdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBZ0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RCxDQUFDO3VHQW5CVSxjQUFjOzJHQUFkLGNBQWMsY0FERixNQUFNOzsyRkFDbEIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwiQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVsc1wiO1xuaW1wb3J0IHsgSW5mcmFzdHJ1Y3R1cmVTZXJ2aWNlIH0gZnJvbSBcIkB4eG1hY2hpbmEvY29tbW9uL2luZnJhXCI7XG5cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluZnJhOiBJbmZyYXN0cnVjdHVyZVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgYXN5bmMgbGlzdCgpOiBQcm9taXNlPFByb2plY3RbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmluZnJhLnJlcG8ucmVkaXMucHJvamVjdC5saXN0KCkgYXMgUHJvamVjdFtdO1xuICB9XG5cbiAgYXN5bmMgZ2V0KHByb2plY3RJZDogc3RyaW5nKTogUHJvbWlzZTxQcm9qZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mcmEucmVwby5yZWRpcy5wcm9qZWN0LmdldChwcm9qZWN0SWQpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKHByb2plY3Q6IFByb2plY3QpOiBQcm9taXNlPFByb2plY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnByb2plY3QuY3JlYXRlKHByb2plY3QpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHByb2plY3Q6IFByb2plY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnByb2plY3QudXBkYXRlKHByb2plY3QpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3VzZWNhc2UvcHJvamVjdC94eG1hY2hpbmEtY29tbW9uLXVzZWNhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;AAIO,MAAM,cAAc,CAAC;AAC5B,IAAI,KAAK;AACT,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;AACzD,IAAI;AACJ,IAAI,MAAM,GAAG,CAAC,SAAS,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AAC3D,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAC5D,IAAI;AACJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;AAC5M,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;;AC3BzE;AACA;AACA;;;;"}
@@ -0,0 +1,45 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i1 from '@xxmachina/common/infra';
4
+ import { hash } from '@xxmachina/common/utils/crypto';
5
+
6
+ class SpecService {
7
+ infra;
8
+ constructor(infra) {
9
+ this.infra = infra;
10
+ }
11
+ async list() {
12
+ return this.infra.repo.redis.spec.list();
13
+ }
14
+ async get(id) {
15
+ return this.infra.repo.redis.spec.get(id);
16
+ }
17
+ async create(spec) {
18
+ const project = await this.infra.repo.redis.project.get('default');
19
+ const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);
20
+ return this.infra.repo.redis.spec.create({ ...spec, embeddings, id: hash(spec.input) });
21
+ }
22
+ async update(spec) {
23
+ const project = await this.infra.repo.redis.project.get('default');
24
+ const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);
25
+ if (spec.id !== hash(spec.input))
26
+ throw new Error('id is not match with input hash');
27
+ return this.infra.repo.redis.spec.update({ ...spec, embeddings });
28
+ }
29
+ async delete(id) {
30
+ return this.infra.repo.redis.spec.delete(id);
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
33
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, providedIn: 'root' });
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, decorators: [{
36
+ type: Injectable,
37
+ args: [{ providedIn: 'root' }]
38
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
39
+
40
+ /**
41
+ * Generated bundle index. Do not edit.
42
+ */
43
+
44
+ export { SpecService };
45
+ //# sourceMappingURL=xxmachina-common-usecase-spec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xxmachina-common-usecase-spec.mjs","sources":["../tmp-esm2022/usecase/spec/spec.service.js","../tmp-esm2022/usecase/spec/xxmachina-common-usecase-spec.js"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { InfrastructureService } from \"@xxmachina/common/infra\";\nimport { hash } from \"@xxmachina/common/utils/crypto\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@xxmachina/common/infra\";\nexport class SpecService {\n infra;\n constructor(infra) {\n this.infra = infra;\n }\n async list() {\n return this.infra.repo.redis.spec.list();\n }\n async get(id) {\n return this.infra.repo.redis.spec.get(id);\n }\n async create(spec) {\n const project = await this.infra.repo.redis.project.get('default');\n const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);\n return this.infra.repo.redis.spec.create({ ...spec, embeddings, id: hash(spec.input) });\n }\n async update(spec) {\n const project = await this.infra.repo.redis.project.get('default');\n const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);\n if (spec.id !== hash(spec.input))\n throw new Error('id is not match with input hash');\n return this.infra.repo.redis.spec.update({ ...spec, embeddings });\n }\n async delete(id) {\n return this.infra.repo.redis.spec.delete(id);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SpecService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SpecService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: SpecService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.InfrastructureService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21tb24vc3JjL2xpYi91c2VjYXNlL3NwZWMvc3BlYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFHdEQsTUFBTSxPQUFPLFdBQVc7SUFFWjtJQURWLFlBQ1UsS0FBNEI7UUFBNUIsVUFBSyxHQUFMLEtBQUssQ0FBdUI7SUFDbEMsQ0FBQztJQUVMLEtBQUssQ0FBQyxJQUFJO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQW1CO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNyRixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFVO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQzt1R0E1QlUsV0FBVzsyR0FBWCxXQUFXLGNBREMsTUFBTTs7MkZBQ2xCLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJbmZyYXN0cnVjdHVyZVNlcnZpY2UgfSBmcm9tIFwiQHh4bWFjaGluYS9jb21tb24vaW5mcmFcIjtcbmltcG9ydCB7IFNwZWMgfSBmcm9tIFwiQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVsc1wiO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gXCJAeHhtYWNoaW5hL2NvbW1vbi91dGlscy9jcnlwdG9cIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgU3BlY1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluZnJhOiBJbmZyYXN0cnVjdHVyZVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgYXN5bmMgbGlzdCgpOiBQcm9taXNlPFNwZWNbXT4ge1xuICAgIHJldHVybiB0aGlzLmluZnJhLnJlcG8ucmVkaXMuc3BlYy5saXN0KCk7XG4gIH1cblxuICBhc3luYyBnZXQoaWQ6IHN0cmluZyk6IFByb21pc2U8U3BlYz4ge1xuICAgIHJldHVybiB0aGlzLmluZnJhLnJlcG8ucmVkaXMuc3BlYy5nZXQoaWQpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKHNwZWM6IFNwZWMpOiBQcm9taXNlPFNwZWM+IHtcbiAgICBjb25zdCBwcm9qZWN0ID0gYXdhaXQgdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnByb2plY3QuZ2V0KCdkZWZhdWx0Jyk7XG4gICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IHRoaXMuaW5mcmEuZXh0ZXJuYWwuZ2V0QWlBZGFwdGVyKHByb2plY3Quc2V0dGluZ3MuYWkpLmVtYmVkZGluZyhzcGVjLmlucHV0KTtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnNwZWMuY3JlYXRlKHsuLi5zcGVjLCBlbWJlZGRpbmdzLCBpZDogaGFzaChzcGVjLmlucHV0KX0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHNwZWM6IFBhcnRpYWw8U3BlYz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9qZWN0ID0gYXdhaXQgdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnByb2plY3QuZ2V0KCdkZWZhdWx0Jyk7XG4gICAgY29uc3QgZW1iZWRkaW5ncyA9IGF3YWl0IHRoaXMuaW5mcmEuZXh0ZXJuYWwuZ2V0QWlBZGFwdGVyKHByb2plY3Quc2V0dGluZ3MuYWkpLmVtYmVkZGluZyhzcGVjLmlucHV0KTtcbiAgICBpZiAoc3BlYy5pZCAhPT0gaGFzaChzcGVjLmlucHV0KSkgdGhyb3cgbmV3IEVycm9yKCdpZCBpcyBub3QgbWF0Y2ggd2l0aCBpbnB1dCBoYXNoJyk7XG4gICAgcmV0dXJuIHRoaXMuaW5mcmEucmVwby5yZWRpcy5zcGVjLnVwZGF0ZSh7Li4uc3BlYywgZW1iZWRkaW5nc30pO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pbmZyYS5yZXBvLnJlZGlzLnNwZWMuZGVsZXRlKGlkKTtcbiAgfVxuXG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbW1vbi11c2VjYXNlLXNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AeHhtYWNoaW5hL2NvbW1vbi9zcmMvbGliL3VzZWNhc2Uvc3BlYy94eG1hY2hpbmEtY29tbW9uLXVzZWNhc2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import * as i1 from '@xxmachina/common/infra';
4
+ import { hash } from '@xxmachina/common/utils/crypto';
5
+ import { __decorate, __metadata } from 'tslib';
6
+ import { HttpClient } from '@angular/common/http';
7
+ import { injectAnyFunc } from '@nx-ddd/any-func';
8
+ import { injectDataConnectService } from '@xxmachina/common/infra/external/data-connect';
9
+ import { IsString } from 'class-validator';
10
+
11
+ class AssistantService {
12
+ infra;
13
+ constructor(infra) {
14
+ this.infra = infra;
15
+ }
16
+ async list() {
17
+ return await this.infra.repo.redis.operator.list();
18
+ }
19
+ async create(assistant) {
20
+ return this.infra.repo.redis.operator.create(assistant);
21
+ }
22
+ async update(assistant) {
23
+ return this.infra.repo.redis.operator.update(assistant);
24
+ }
25
+ async delete(assistantid) {
26
+ return this.infra.repo.redis.operator.delete(assistantid);
27
+ }
28
+ async operate(assistantId, input) {
29
+ const project = await this.infra.repo.redis.project.get('default');
30
+ const assistant = await this.infra.repo.redis.operator.get(assistantId);
31
+ const adapter = this.infra.external.getAiAdapter(project.settings.ai);
32
+ const embeddings = await adapter.embedding(input);
33
+ const specs = await this.infra.repo.redis.spec.search(assistant.id, embeddings);
34
+ const messages = [
35
+ { role: 'system', content: assistant.description },
36
+ ...specs.map(spec => [
37
+ { role: 'system', content: spec.input },
38
+ { role: 'assistant', content: spec.output },
39
+ ]).flat(),
40
+ { role: 'user', content: input },
41
+ ];
42
+ console.debug('messages', messages);
43
+ const output_ = await adapter.chatComplete(messages);
44
+ const output = this.scrape(assistant.outputInterfaceId, output_);
45
+ await this.infra.repo.redis.spec.create({
46
+ input, output, embeddings, id: hash(input), operatorId: assistant.id,
47
+ }).catch(() => { });
48
+ return output;
49
+ }
50
+ scrape(interface_, output) {
51
+ if (interface_ === 'interface:codeblock') {
52
+ const [_, ...lines] = (output.split('```')?.[1] ?? '').split('\n');
53
+ return `\`\`\`\n${lines.join('\n')}\n\`\`\``;
54
+ }
55
+ else {
56
+ return output;
57
+ }
58
+ }
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AssistantService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AssistantService, providedIn: 'root' });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: AssistantService, decorators: [{
63
+ type: Injectable,
64
+ args: [{ providedIn: 'root' }]
65
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
66
+
67
+ class SpecService {
68
+ infra;
69
+ constructor(infra) {
70
+ this.infra = infra;
71
+ }
72
+ async list() {
73
+ return this.infra.repo.redis.spec.list();
74
+ }
75
+ async get(id) {
76
+ return this.infra.repo.redis.spec.get(id);
77
+ }
78
+ async create(spec) {
79
+ const project = await this.infra.repo.redis.project.get('default');
80
+ const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);
81
+ return this.infra.repo.redis.spec.create({ ...spec, embeddings, id: hash(spec.input) });
82
+ }
83
+ async update(spec) {
84
+ const project = await this.infra.repo.redis.project.get('default');
85
+ const embeddings = await this.infra.external.getAiAdapter(project.settings.ai).embedding(spec.input);
86
+ if (spec.id !== hash(spec.input))
87
+ throw new Error('id is not match with input hash');
88
+ return this.infra.repo.redis.spec.update({ ...spec, embeddings });
89
+ }
90
+ async delete(id) {
91
+ return this.infra.repo.redis.spec.delete(id);
92
+ }
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
94
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, providedIn: 'root' });
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: SpecService, decorators: [{
97
+ type: Injectable,
98
+ args: [{ providedIn: 'root' }]
99
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
100
+
101
+ class ProjectService {
102
+ infra;
103
+ constructor(infra) {
104
+ this.infra = infra;
105
+ }
106
+ async list() {
107
+ return await this.infra.repo.redis.project.list();
108
+ }
109
+ async get(projectId) {
110
+ return this.infra.repo.redis.project.get(projectId);
111
+ }
112
+ async create(project) {
113
+ return this.infra.repo.redis.project.create(project);
114
+ }
115
+ async update(project) {
116
+ return this.infra.repo.redis.project.update(project);
117
+ }
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
119
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, providedIn: 'root' });
120
+ }
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ProjectService, decorators: [{
122
+ type: Injectable,
123
+ args: [{ providedIn: 'root' }]
124
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
125
+
126
+ class LinkService {
127
+ infra;
128
+ constructor(infra) {
129
+ this.infra = infra;
130
+ }
131
+ saveGoogleLink(google) {
132
+ return this.infra.repo.firestore.link.google.save(google);
133
+ }
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, deps: [{ token: i1.InfrastructureService }], target: i0.ɵɵFactoryTarget.Injectable });
135
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, providedIn: 'root' });
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: LinkService, decorators: [{
138
+ type: Injectable,
139
+ args: [{ providedIn: 'root' }]
140
+ }], ctorParameters: () => [{ type: i1.InfrastructureService }] });
141
+
142
+ class Result {
143
+ query;
144
+ }
145
+ __decorate([
146
+ IsString(),
147
+ __metadata("design:type", String)
148
+ ], Result.prototype, "query", void 0);
149
+ class GraphqlService {
150
+ http = inject(HttpClient);
151
+ anyFunc = injectAnyFunc();
152
+ dc = injectDataConnectService();
153
+ constructor() { }
154
+ async graphql(query) {
155
+ // return lastValueFrom(this.http.post('http://localhost:3330/api/dataConnect', {query}));
156
+ return this.dc.executeGraphqlRead(query);
157
+ }
158
+ async makeQuery(instructions) {
159
+ const schemaQuery = `{ __schema { types { name fields { name type { name } } } } }`;
160
+ const schemaResult = await this.graphql(schemaQuery);
161
+ return this.anyFunc.call(instructions, Result, {
162
+ instructions: `
163
+ アシスタントはユーザーの要求を満たすGraphQLクエリを下記のサーバーのスキーマを元に生成します。
164
+
165
+ ${JSON.stringify(schemaResult, null, 2)}
166
+ `,
167
+ model: 'gpt-4o-mini',
168
+ validator: async (output) => this.graphql(output.query).then(() => []).catch(error => [error.message]),
169
+ }).then(result => result.query);
170
+ }
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
172
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, providedIn: 'root' });
173
+ }
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: GraphqlService, decorators: [{
175
+ type: Injectable,
176
+ args: [{ providedIn: 'root' }]
177
+ }], ctorParameters: () => [] });
178
+
179
+ class UsecaseService {
180
+ assistant = inject(AssistantService);
181
+ link = inject(LinkService);
182
+ project = inject(ProjectService);
183
+ spec = inject(SpecService);
184
+ graphql = inject(GraphqlService);
185
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: UsecaseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
186
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: UsecaseService, providedIn: 'root' });
187
+ }
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: UsecaseService, decorators: [{
189
+ type: Injectable,
190
+ args: [{ providedIn: 'root' }]
191
+ }] });
192
+
193
+ /**
194
+ * Generated bundle index. Do not edit.
195
+ */
196
+
197
+ export { UsecaseService };
198
+ //# sourceMappingURL=xxmachina-common-usecase.mjs.map