@walde.ai/walde-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/content-format-v1.d.ts +8 -0
- package/dist/sdk/contracts/frontend-content/v1/content-format-v1.d.ts.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/content-format-v1.js +2 -0
- package/dist/sdk/contracts/frontend-content/v1/content-format-v1.js.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/content-part-v1.d.ts +8 -0
- package/dist/sdk/contracts/frontend-content/v1/content-part-v1.d.ts.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/content-part-v1.js +2 -0
- package/dist/sdk/contracts/frontend-content/v1/content-part-v1.js.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/frontend-content-v1.d.ts +13 -0
- package/dist/sdk/contracts/frontend-content/v1/frontend-content-v1.d.ts.map +1 -0
- package/dist/sdk/contracts/frontend-content/v1/frontend-content-v1.js +2 -0
- package/dist/sdk/contracts/frontend-content/v1/frontend-content-v1.js.map +1 -0
- package/dist/sdk/contracts/manifest/v1/manifest-content-v1.d.ts +12 -0
- package/dist/sdk/contracts/manifest/v1/manifest-content-v1.d.ts.map +1 -0
- package/dist/sdk/contracts/manifest/v1/manifest-content-v1.js +2 -0
- package/dist/sdk/contracts/manifest/v1/manifest-content-v1.js.map +1 -0
- package/dist/sdk/contracts/manifest/v1/manifest-v1.d.ts +9 -0
- package/dist/sdk/contracts/manifest/v1/manifest-v1.d.ts.map +1 -0
- package/dist/sdk/contracts/manifest/v1/manifest-v1.js +2 -0
- package/dist/sdk/contracts/manifest/v1/manifest-v1.js.map +1 -0
- package/dist/sdk/domain/entities/content-format.d.ts +9 -0
- package/dist/sdk/domain/entities/content-format.d.ts.map +1 -0
- package/dist/sdk/domain/entities/content-format.js +12 -0
- package/dist/sdk/domain/entities/content-format.js.map +1 -0
- package/dist/sdk/domain/entities/content-part.d.ts +26 -0
- package/dist/sdk/domain/entities/content-part.d.ts.map +1 -0
- package/dist/sdk/domain/entities/content-part.js +36 -0
- package/dist/sdk/domain/entities/content-part.js.map +1 -0
- package/dist/sdk/domain/entities/content-state.d.ts +8 -0
- package/dist/sdk/domain/entities/content-state.d.ts.map +1 -0
- package/dist/sdk/domain/entities/content-state.js +9 -0
- package/dist/sdk/domain/entities/content-state.js.map +1 -0
- package/dist/sdk/domain/entities/content-version.d.ts +27 -0
- package/dist/sdk/domain/entities/content-version.d.ts.map +1 -0
- package/dist/sdk/domain/entities/content-version.js +37 -0
- package/dist/sdk/domain/entities/content-version.js.map +1 -0
- package/dist/sdk/domain/entities/content.d.ts +21 -0
- package/dist/sdk/domain/entities/content.d.ts.map +1 -0
- package/dist/sdk/domain/entities/content.js +26 -0
- package/dist/sdk/domain/entities/content.js.map +1 -0
- package/dist/sdk/domain/entities/credentials.d.ts +14 -0
- package/dist/sdk/domain/entities/credentials.d.ts.map +1 -0
- package/dist/sdk/domain/entities/credentials.js +20 -0
- package/dist/sdk/domain/entities/credentials.js.map +1 -0
- package/dist/sdk/domain/entities/dns-entry.d.ts +10 -0
- package/dist/sdk/domain/entities/dns-entry.d.ts.map +1 -0
- package/dist/sdk/domain/entities/dns-entry.js +14 -0
- package/dist/sdk/domain/entities/dns-entry.js.map +1 -0
- package/dist/sdk/domain/entities/file.d.ts +14 -0
- package/dist/sdk/domain/entities/file.d.ts.map +1 -0
- package/dist/sdk/domain/entities/file.js +17 -0
- package/dist/sdk/domain/entities/file.js.map +1 -0
- package/dist/sdk/domain/entities/format-part.d.ts +16 -0
- package/dist/sdk/domain/entities/format-part.d.ts.map +1 -0
- package/dist/sdk/domain/entities/format-part.js +2 -0
- package/dist/sdk/domain/entities/format-part.js.map +1 -0
- package/dist/sdk/domain/entities/format.d.ts +14 -0
- package/dist/sdk/domain/entities/format.d.ts.map +1 -0
- package/dist/sdk/domain/entities/format.js +23 -0
- package/dist/sdk/domain/entities/format.js.map +1 -0
- package/dist/sdk/domain/entities/frontend-content.d.ts +13 -0
- package/dist/sdk/domain/entities/frontend-content.d.ts.map +1 -0
- package/dist/sdk/domain/entities/frontend-content.js +16 -0
- package/dist/sdk/domain/entities/frontend-content.js.map +1 -0
- package/dist/sdk/domain/entities/key-value-part.d.ts +20 -0
- package/dist/sdk/domain/entities/key-value-part.d.ts.map +1 -0
- package/dist/sdk/domain/entities/key-value-part.js +31 -0
- package/dist/sdk/domain/entities/key-value-part.js.map +1 -0
- package/dist/sdk/domain/entities/manifest-content.d.ts +12 -0
- package/dist/sdk/domain/entities/manifest-content.d.ts.map +1 -0
- package/dist/sdk/domain/entities/manifest-content.js +18 -0
- package/dist/sdk/domain/entities/manifest-content.js.map +1 -0
- package/dist/sdk/domain/entities/manifest.d.ts +9 -0
- package/dist/sdk/domain/entities/manifest.d.ts.map +1 -0
- package/dist/sdk/domain/entities/manifest.js +10 -0
- package/dist/sdk/domain/entities/manifest.js.map +1 -0
- package/dist/sdk/domain/entities/markdown-part.d.ts +14 -0
- package/dist/sdk/domain/entities/markdown-part.d.ts.map +1 -0
- package/dist/sdk/domain/entities/markdown-part.js +15 -0
- package/dist/sdk/domain/entities/markdown-part.js.map +1 -0
- package/dist/sdk/domain/entities/site.d.ts +16 -0
- package/dist/sdk/domain/entities/site.d.ts.map +1 -0
- package/dist/sdk/domain/entities/site.js +21 -0
- package/dist/sdk/domain/entities/site.js.map +1 -0
- package/dist/sdk/domain/entities/string-part.d.ts +14 -0
- package/dist/sdk/domain/entities/string-part.d.ts.map +1 -0
- package/dist/sdk/domain/entities/string-part.js +15 -0
- package/dist/sdk/domain/entities/string-part.js.map +1 -0
- package/dist/sdk/domain/entities/ui-upload-credentials.d.ts +22 -0
- package/dist/sdk/domain/entities/ui-upload-credentials.d.ts.map +1 -0
- package/dist/sdk/domain/entities/ui-upload-credentials.js +38 -0
- package/dist/sdk/domain/entities/ui-upload-credentials.js.map +1 -0
- package/dist/sdk/domain/entities/walde-admin-config.d.ts +51 -0
- package/dist/sdk/domain/entities/walde-admin-config.d.ts.map +1 -0
- package/dist/sdk/domain/entities/walde-admin-config.js +69 -0
- package/dist/sdk/domain/entities/walde-admin-config.js.map +1 -0
- package/dist/sdk/domain/entities/workspace-config.d.ts +20 -0
- package/dist/sdk/domain/entities/workspace-config.d.ts.map +1 -0
- package/dist/sdk/domain/entities/workspace-config.js +17 -0
- package/dist/sdk/domain/entities/workspace-config.js.map +1 -0
- package/dist/sdk/domain/errors/index.d.ts +11 -0
- package/dist/sdk/domain/errors/index.d.ts.map +1 -0
- package/dist/sdk/domain/errors/index.js +11 -0
- package/dist/sdk/domain/errors/index.js.map +1 -0
- package/dist/sdk/domain/errors/walde-authentication-error.d.ts +21 -0
- package/dist/sdk/domain/errors/walde-authentication-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-authentication-error.js +23 -0
- package/dist/sdk/domain/errors/walde-authentication-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-configuration-error.d.ts +21 -0
- package/dist/sdk/domain/errors/walde-configuration-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-configuration-error.js +23 -0
- package/dist/sdk/domain/errors/walde-configuration-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-error.d.ts +9 -0
- package/dist/sdk/domain/errors/walde-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-error.js +12 -0
- package/dist/sdk/domain/errors/walde-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-local-error.d.ts +22 -0
- package/dist/sdk/domain/errors/walde-local-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-local-error.js +24 -0
- package/dist/sdk/domain/errors/walde-local-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-network-error.d.ts +21 -0
- package/dist/sdk/domain/errors/walde-network-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-network-error.js +23 -0
- package/dist/sdk/domain/errors/walde-network-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-system-error.d.ts +10 -0
- package/dist/sdk/domain/errors/walde-system-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-system-error.js +13 -0
- package/dist/sdk/domain/errors/walde-system-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-unexpected-error.d.ts +21 -0
- package/dist/sdk/domain/errors/walde-unexpected-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-unexpected-error.js +23 -0
- package/dist/sdk/domain/errors/walde-unexpected-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-usage-error.d.ts +21 -0
- package/dist/sdk/domain/errors/walde-usage-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-usage-error.js +23 -0
- package/dist/sdk/domain/errors/walde-usage-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-user-error.d.ts +9 -0
- package/dist/sdk/domain/errors/walde-user-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-user-error.js +11 -0
- package/dist/sdk/domain/errors/walde-user-error.js.map +1 -0
- package/dist/sdk/domain/errors/walde-validation-error.d.ts +20 -0
- package/dist/sdk/domain/errors/walde-validation-error.d.ts.map +1 -0
- package/dist/sdk/domain/errors/walde-validation-error.js +22 -0
- package/dist/sdk/domain/errors/walde-validation-error.js.map +1 -0
- package/dist/sdk/domain/interactors/api-call.d.ts +19 -0
- package/dist/sdk/domain/interactors/api-call.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/api-call.js +31 -0
- package/dist/sdk/domain/interactors/api-call.js.map +1 -0
- package/dist/sdk/domain/interactors/associate-site-certificates.d.ts +11 -0
- package/dist/sdk/domain/interactors/associate-site-certificates.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/associate-site-certificates.js +20 -0
- package/dist/sdk/domain/interactors/associate-site-certificates.js.map +1 -0
- package/dist/sdk/domain/interactors/content/list-contents.d.ts +16 -0
- package/dist/sdk/domain/interactors/content/list-contents.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/content/list-contents.js +18 -0
- package/dist/sdk/domain/interactors/content/list-contents.js.map +1 -0
- package/dist/sdk/domain/interactors/content/parse-content-file.d.ts +19 -0
- package/dist/sdk/domain/interactors/content/parse-content-file.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/content/parse-content-file.js +68 -0
- package/dist/sdk/domain/interactors/content/parse-content-file.js.map +1 -0
- package/dist/sdk/domain/interactors/content/push-content.d.ts +21 -0
- package/dist/sdk/domain/interactors/content/push-content.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/content/push-content.js +31 -0
- package/dist/sdk/domain/interactors/content/push-content.js.map +1 -0
- package/dist/sdk/domain/interactors/create-site.d.ts +9 -0
- package/dist/sdk/domain/interactors/create-site.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/create-site.js +19 -0
- package/dist/sdk/domain/interactors/create-site.js.map +1 -0
- package/dist/sdk/domain/interactors/get-credentials.d.ts +14 -0
- package/dist/sdk/domain/interactors/get-credentials.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/get-credentials.js +16 -0
- package/dist/sdk/domain/interactors/get-credentials.js.map +1 -0
- package/dist/sdk/domain/interactors/get-token.d.ts +13 -0
- package/dist/sdk/domain/interactors/get-token.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/get-token.js +21 -0
- package/dist/sdk/domain/interactors/get-token.js.map +1 -0
- package/dist/sdk/domain/interactors/list-sites.d.ts +9 -0
- package/dist/sdk/domain/interactors/list-sites.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/list-sites.js +17 -0
- package/dist/sdk/domain/interactors/list-sites.js.map +1 -0
- package/dist/sdk/domain/interactors/refresh-credentials.d.ts +16 -0
- package/dist/sdk/domain/interactors/refresh-credentials.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/refresh-credentials.js +25 -0
- package/dist/sdk/domain/interactors/refresh-credentials.js.map +1 -0
- package/dist/sdk/domain/interactors/ui/upload-ui-from-folder.d.ts +24 -0
- package/dist/sdk/domain/interactors/ui/upload-ui-from-folder.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/ui/upload-ui-from-folder.js +58 -0
- package/dist/sdk/domain/interactors/ui/upload-ui-from-folder.js.map +1 -0
- package/dist/sdk/domain/interactors/update-site.d.ts +9 -0
- package/dist/sdk/domain/interactors/update-site.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/update-site.js +19 -0
- package/dist/sdk/domain/interactors/update-site.js.map +1 -0
- package/dist/sdk/domain/interactors/workspace/init-workspace.d.ts +19 -0
- package/dist/sdk/domain/interactors/workspace/init-workspace.d.ts.map +1 -0
- package/dist/sdk/domain/interactors/workspace/init-workspace.js +26 -0
- package/dist/sdk/domain/interactors/workspace/init-workspace.js.map +1 -0
- package/dist/sdk/domain/ports/backend/backend-client.d.ts +7 -0
- package/dist/sdk/domain/ports/backend/backend-client.d.ts.map +1 -0
- package/dist/sdk/domain/ports/backend/backend-client.js +2 -0
- package/dist/sdk/domain/ports/backend/backend-client.js.map +1 -0
- package/dist/sdk/domain/ports/in/content-file-reader.d.ts +15 -0
- package/dist/sdk/domain/ports/in/content-file-reader.d.ts.map +1 -0
- package/dist/sdk/domain/ports/in/content-file-reader.js +2 -0
- package/dist/sdk/domain/ports/in/content-file-reader.js.map +1 -0
- package/dist/sdk/domain/ports/in/token-provider.d.ts +10 -0
- package/dist/sdk/domain/ports/in/token-provider.d.ts.map +1 -0
- package/dist/sdk/domain/ports/in/token-provider.js +2 -0
- package/dist/sdk/domain/ports/in/token-provider.js.map +1 -0
- package/dist/sdk/domain/ports/out/backend-communication.d.ts +22 -0
- package/dist/sdk/domain/ports/out/backend-communication.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/backend-communication.js +2 -0
- package/dist/sdk/domain/ports/out/backend-communication.js.map +1 -0
- package/dist/sdk/domain/ports/out/content-file-writer.d.ts +12 -0
- package/dist/sdk/domain/ports/out/content-file-writer.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/content-file-writer.js +2 -0
- package/dist/sdk/domain/ports/out/content-file-writer.js.map +1 -0
- package/dist/sdk/domain/ports/out/content-repo.d.ts +27 -0
- package/dist/sdk/domain/ports/out/content-repo.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/content-repo.js +2 -0
- package/dist/sdk/domain/ports/out/content-repo.js.map +1 -0
- package/dist/sdk/domain/ports/out/credentials-provider.d.ts +15 -0
- package/dist/sdk/domain/ports/out/credentials-provider.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/credentials-provider.js +2 -0
- package/dist/sdk/domain/ports/out/credentials-provider.js.map +1 -0
- package/dist/sdk/domain/ports/out/file-system-reader.d.ts +13 -0
- package/dist/sdk/domain/ports/out/file-system-reader.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/file-system-reader.js +2 -0
- package/dist/sdk/domain/ports/out/file-system-reader.js.map +1 -0
- package/dist/sdk/domain/ports/out/remote-files-repo.d.ts +20 -0
- package/dist/sdk/domain/ports/out/remote-files-repo.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/remote-files-repo.js +2 -0
- package/dist/sdk/domain/ports/out/remote-files-repo.js.map +1 -0
- package/dist/sdk/domain/ports/out/site-repository.d.ts +35 -0
- package/dist/sdk/domain/ports/out/site-repository.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/site-repository.js +2 -0
- package/dist/sdk/domain/ports/out/site-repository.js.map +1 -0
- package/dist/sdk/domain/ports/out/token-refresh-provider.d.ts +11 -0
- package/dist/sdk/domain/ports/out/token-refresh-provider.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/token-refresh-provider.js +2 -0
- package/dist/sdk/domain/ports/out/token-refresh-provider.js.map +1 -0
- package/dist/sdk/domain/ports/out/ui-upload-credentials-repo.d.ts +11 -0
- package/dist/sdk/domain/ports/out/ui-upload-credentials-repo.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/ui-upload-credentials-repo.js +2 -0
- package/dist/sdk/domain/ports/out/ui-upload-credentials-repo.js.map +1 -0
- package/dist/sdk/domain/ports/out/upload-progress-callback.d.ts +26 -0
- package/dist/sdk/domain/ports/out/upload-progress-callback.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/upload-progress-callback.js +2 -0
- package/dist/sdk/domain/ports/out/upload-progress-callback.js.map +1 -0
- package/dist/sdk/domain/ports/out/workspace-config-repo.d.ts +25 -0
- package/dist/sdk/domain/ports/out/workspace-config-repo.d.ts.map +1 -0
- package/dist/sdk/domain/ports/out/workspace-config-repo.js +2 -0
- package/dist/sdk/domain/ports/out/workspace-config-repo.js.map +1 -0
- package/dist/sdk/index.d.ts +35 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +35 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/infra/adapters/api-client.d.ts +58 -0
- package/dist/sdk/infra/adapters/api-client.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/api-client.js +73 -0
- package/dist/sdk/infra/adapters/api-client.js.map +1 -0
- package/dist/sdk/infra/adapters/base-http-client.d.ts +25 -0
- package/dist/sdk/infra/adapters/base-http-client.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/base-http-client.js +110 -0
- package/dist/sdk/infra/adapters/base-http-client.js.map +1 -0
- package/dist/sdk/infra/adapters/cognito-token-refresh-provider.d.ts +16 -0
- package/dist/sdk/infra/adapters/cognito-token-refresh-provider.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/cognito-token-refresh-provider.js +46 -0
- package/dist/sdk/infra/adapters/cognito-token-refresh-provider.js.map +1 -0
- package/dist/sdk/infra/adapters/default-http-client.d.ts +38 -0
- package/dist/sdk/infra/adapters/default-http-client.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/default-http-client.js +133 -0
- package/dist/sdk/infra/adapters/default-http-client.js.map +1 -0
- package/dist/sdk/infra/adapters/default-token-provider.d.ts +14 -0
- package/dist/sdk/infra/adapters/default-token-provider.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/default-token-provider.js +23 -0
- package/dist/sdk/infra/adapters/default-token-provider.js.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-reader.d.ts +16 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-reader.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-reader.js +27 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-reader.js.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-writer.d.ts +13 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-writer.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-writer.js +36 -0
- package/dist/sdk/infra/adapters/filesystem/file-content-writer.js.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-system-local-files-reader.d.ts +21 -0
- package/dist/sdk/infra/adapters/filesystem/file-system-local-files-reader.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/filesystem/file-system-local-files-reader.js +52 -0
- package/dist/sdk/infra/adapters/filesystem/file-system-local-files-reader.js.map +1 -0
- package/dist/sdk/infra/adapters/frontend-http-client.d.ts +12 -0
- package/dist/sdk/infra/adapters/frontend-http-client.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/frontend-http-client.js +18 -0
- package/dist/sdk/infra/adapters/frontend-http-client.js.map +1 -0
- package/dist/sdk/infra/adapters/http/http-content-repo.d.ts +33 -0
- package/dist/sdk/infra/adapters/http/http-content-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/http/http-content-repo.js +85 -0
- package/dist/sdk/infra/adapters/http/http-content-repo.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.d.ts +22 -0
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.js +73 -0
- package/dist/sdk/infra/adapters/repositories/aws-s3-files-repo.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/credentials-file-repo.d.ts +18 -0
- package/dist/sdk/infra/adapters/repositories/credentials-file-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/credentials-file-repo.js +41 -0
- package/dist/sdk/infra/adapters/repositories/credentials-file-repo.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.d.ts +11 -0
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.js +20 -0
- package/dist/sdk/infra/adapters/repositories/default-walde-admin-config.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/file-walde-admin-config.d.ts +11 -0
- package/dist/sdk/infra/adapters/repositories/file-walde-admin-config.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/file-walde-admin-config.js +38 -0
- package/dist/sdk/infra/adapters/repositories/file-walde-admin-config.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/file-workspace-config-repo.d.ts +26 -0
- package/dist/sdk/infra/adapters/repositories/file-workspace-config-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/file-workspace-config-repo.js +86 -0
- package/dist/sdk/infra/adapters/repositories/file-workspace-config-repo.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/http-site-repo.d.ts +15 -0
- package/dist/sdk/infra/adapters/repositories/http-site-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/http-site-repo.js +51 -0
- package/dist/sdk/infra/adapters/repositories/http-site-repo.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/static-walde-admin-config.d.ts +9 -0
- package/dist/sdk/infra/adapters/repositories/static-walde-admin-config.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/static-walde-admin-config.js +13 -0
- package/dist/sdk/infra/adapters/repositories/static-walde-admin-config.js.map +1 -0
- package/dist/sdk/infra/adapters/repositories/writer-api-aws-ui-upload-credentials-repo.d.ts +15 -0
- package/dist/sdk/infra/adapters/repositories/writer-api-aws-ui-upload-credentials-repo.d.ts.map +1 -0
- package/dist/sdk/infra/adapters/repositories/writer-api-aws-ui-upload-credentials-repo.js +25 -0
- package/dist/sdk/infra/adapters/repositories/writer-api-aws-ui-upload-credentials-repo.js.map +1 -0
- package/dist/sdk/infra/backend/walde-client.d.ts +13 -0
- package/dist/sdk/infra/backend/walde-client.d.ts.map +1 -0
- package/dist/sdk/infra/backend/walde-client.js +29 -0
- package/dist/sdk/infra/backend/walde-client.js.map +1 -0
- package/dist/sdk/infra/factories/s3-files-repo-factory.d.ts +9 -0
- package/dist/sdk/infra/factories/s3-files-repo-factory.d.ts.map +1 -0
- package/dist/sdk/infra/factories/s3-files-repo-factory.js +10 -0
- package/dist/sdk/infra/factories/s3-files-repo-factory.js.map +1 -0
- package/dist/sdk/infra/factories/walde-admin-config-factory.d.ts +24 -0
- package/dist/sdk/infra/factories/walde-admin-config-factory.d.ts.map +1 -0
- package/dist/sdk/infra/factories/walde-admin-config-factory.js +99 -0
- package/dist/sdk/infra/factories/walde-admin-config-factory.js.map +1 -0
- package/dist/sdk/infra/factories/walde-admin-factory.d.ts +17 -0
- package/dist/sdk/infra/factories/walde-admin-factory.d.ts.map +1 -0
- package/dist/sdk/infra/factories/walde-admin-factory.js +42 -0
- package/dist/sdk/infra/factories/walde-admin-factory.js.map +1 -0
- package/dist/sdk/infra/factories/walde-factory.d.ts +13 -0
- package/dist/sdk/infra/factories/walde-factory.d.ts.map +1 -0
- package/dist/sdk/infra/factories/walde-factory.js +19 -0
- package/dist/sdk/infra/factories/walde-factory.js.map +1 -0
- package/dist/sdk/infra/futures/api-future.d.ts +15 -0
- package/dist/sdk/infra/futures/api-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/api-future.js +28 -0
- package/dist/sdk/infra/futures/api-future.js.map +1 -0
- package/dist/sdk/infra/futures/content-future.d.ts +26 -0
- package/dist/sdk/infra/futures/content-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/content-future.js +63 -0
- package/dist/sdk/infra/futures/content-future.js.map +1 -0
- package/dist/sdk/infra/futures/content-item-future.d.ts +25 -0
- package/dist/sdk/infra/futures/content-item-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/content-item-future.js +47 -0
- package/dist/sdk/infra/futures/content-item-future.js.map +1 -0
- package/dist/sdk/infra/futures/content-iterator.d.ts +44 -0
- package/dist/sdk/infra/futures/content-iterator.d.ts.map +1 -0
- package/dist/sdk/infra/futures/content-iterator.js +123 -0
- package/dist/sdk/infra/futures/content-iterator.js.map +1 -0
- package/dist/sdk/infra/futures/content-list-future.d.ts +16 -0
- package/dist/sdk/infra/futures/content-list-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/content-list-future.js +19 -0
- package/dist/sdk/infra/futures/content-list-future.js.map +1 -0
- package/dist/sdk/infra/futures/contents-future.d.ts +23 -0
- package/dist/sdk/infra/futures/contents-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/contents-future.js +33 -0
- package/dist/sdk/infra/futures/contents-future.js.map +1 -0
- package/dist/sdk/infra/futures/credentials-future.d.ts +14 -0
- package/dist/sdk/infra/futures/credentials-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/credentials-future.js +67 -0
- package/dist/sdk/infra/futures/credentials-future.js.map +1 -0
- package/dist/sdk/infra/futures/frontend-contents-future.d.ts +37 -0
- package/dist/sdk/infra/futures/frontend-contents-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/frontend-contents-future.js +62 -0
- package/dist/sdk/infra/futures/frontend-contents-future.js.map +1 -0
- package/dist/sdk/infra/futures/manifest-future.d.ts +18 -0
- package/dist/sdk/infra/futures/manifest-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/manifest-future.js +28 -0
- package/dist/sdk/infra/futures/manifest-future.js.map +1 -0
- package/dist/sdk/infra/futures/site-future.d.ts +41 -0
- package/dist/sdk/infra/futures/site-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/site-future.js +113 -0
- package/dist/sdk/infra/futures/site-future.js.map +1 -0
- package/dist/sdk/infra/futures/sites-future.d.ts +19 -0
- package/dist/sdk/infra/futures/sites-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/sites-future.js +35 -0
- package/dist/sdk/infra/futures/sites-future.js.map +1 -0
- package/dist/sdk/infra/futures/ui-future.d.ts +25 -0
- package/dist/sdk/infra/futures/ui-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/ui-future.js +35 -0
- package/dist/sdk/infra/futures/ui-future.js.map +1 -0
- package/dist/sdk/infra/futures/walde-admin-future.d.ts +41 -0
- package/dist/sdk/infra/futures/walde-admin-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/walde-admin-future.js +50 -0
- package/dist/sdk/infra/futures/walde-admin-future.js.map +1 -0
- package/dist/sdk/infra/futures/walde-future.d.ts +40 -0
- package/dist/sdk/infra/futures/walde-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/walde-future.js +66 -0
- package/dist/sdk/infra/futures/walde-future.js.map +1 -0
- package/dist/sdk/infra/futures/workspace-future.d.ts +38 -0
- package/dist/sdk/infra/futures/workspace-future.d.ts.map +1 -0
- package/dist/sdk/infra/futures/workspace-future.js +45 -0
- package/dist/sdk/infra/futures/workspace-future.js.map +1 -0
- package/dist/sdk/infra/mappers/dto/frontend-content-dto-mapper.d.ts +20 -0
- package/dist/sdk/infra/mappers/dto/frontend-content-dto-mapper.d.ts.map +1 -0
- package/dist/sdk/infra/mappers/dto/frontend-content-dto-mapper.js +54 -0
- package/dist/sdk/infra/mappers/dto/frontend-content-dto-mapper.js.map +1 -0
- package/dist/sdk/infra/mappers/dto/manifest-dto-mapper.d.ts +24 -0
- package/dist/sdk/infra/mappers/dto/manifest-dto-mapper.d.ts.map +1 -0
- package/dist/sdk/infra/mappers/dto/manifest-dto-mapper.js +49 -0
- package/dist/sdk/infra/mappers/dto/manifest-dto-mapper.js.map +1 -0
- package/dist/sdk/make-walde-admin.d.ts +15 -0
- package/dist/sdk/make-walde-admin.d.ts.map +1 -0
- package/dist/sdk/make-walde-admin.js +8 -0
- package/dist/sdk/make-walde-admin.js.map +1 -0
- package/dist/sdk/make-walde.d.ts +12 -0
- package/dist/sdk/make-walde.d.ts.map +1 -0
- package/dist/sdk/make-walde.js +8 -0
- package/dist/sdk/make-walde.js.map +1 -0
- package/dist/std/domain/entities/future.d.ts +28 -0
- package/dist/std/domain/entities/future.d.ts.map +1 -0
- package/dist/std/domain/entities/future.js +21 -0
- package/dist/std/domain/entities/future.js.map +1 -0
- package/dist/std/domain/entities/option.d.ts +53 -0
- package/dist/std/domain/entities/option.d.ts.map +1 -0
- package/dist/std/domain/entities/option.js +58 -0
- package/dist/std/domain/entities/option.js.map +1 -0
- package/dist/std/domain/entities/result.d.ts +87 -0
- package/dist/std/domain/entities/result.d.ts.map +1 -0
- package/dist/std/domain/entities/result.js +104 -0
- package/dist/std/domain/entities/result.js.map +1 -0
- package/dist/std/index.d.ts +6 -0
- package/dist/std/index.d.ts.map +1 -0
- package/dist/std/index.js +4 -0
- package/dist/std/index.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base HTTP client providing common HTTP functionality.
|
|
3
|
+
* Concrete implementations must provide authentication headers.
|
|
4
|
+
*/
|
|
5
|
+
export declare abstract class BaseHttpClient {
|
|
6
|
+
protected readonly baseUrl: string;
|
|
7
|
+
constructor(baseUrl: string);
|
|
8
|
+
/**
|
|
9
|
+
* Get headers for HTTP requests. Implemented by concrete classes.
|
|
10
|
+
*/
|
|
11
|
+
protected abstract getHeaders(): Record<string, string>;
|
|
12
|
+
/**
|
|
13
|
+
* Make HTTP GET request with error handling and response parsing.
|
|
14
|
+
*/
|
|
15
|
+
get<T>(endpoint: string): Promise<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Make HTTP POST request with error handling and response parsing.
|
|
18
|
+
*/
|
|
19
|
+
post<T>(endpoint: string, body?: any): Promise<T>;
|
|
20
|
+
/**
|
|
21
|
+
* Make HTTP PUT request with error handling and response parsing.
|
|
22
|
+
*/
|
|
23
|
+
put<T>(endpoint: string, body?: any): Promise<T>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=base-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-http-client.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/base-http-client.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,8BAAsB,cAAc;IACtB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEvD;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAgC1C;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAoCvD;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;CAmCvD"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { WaldeNetworkError, WaldeUnexpectedError } from '@/sdk/domain/errors';
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base HTTP client providing common HTTP functionality.
|
|
4
|
+
* Concrete implementations must provide authentication headers.
|
|
5
|
+
*/
|
|
6
|
+
export class BaseHttpClient {
|
|
7
|
+
baseUrl;
|
|
8
|
+
constructor(baseUrl) {
|
|
9
|
+
this.baseUrl = baseUrl;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Make HTTP GET request with error handling and response parsing.
|
|
13
|
+
*/
|
|
14
|
+
async get(endpoint) {
|
|
15
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
16
|
+
const headers = this.getHeaders();
|
|
17
|
+
try {
|
|
18
|
+
const response = await fetch(url, {
|
|
19
|
+
method: 'GET',
|
|
20
|
+
headers,
|
|
21
|
+
});
|
|
22
|
+
if (!response.ok) {
|
|
23
|
+
throw new WaldeNetworkError(`HTTP ${response.status}: ${response.statusText} for ${url}`, new Error(`HTTP ${response.status}`));
|
|
24
|
+
}
|
|
25
|
+
const contentType = response.headers.get('content-type');
|
|
26
|
+
if (contentType && contentType.includes('application/json')) {
|
|
27
|
+
const data = await response.text();
|
|
28
|
+
return data ? JSON.parse(data) : null;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return (await response.text());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (error instanceof WaldeNetworkError) {
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
throw new WaldeUnexpectedError('HTTP request failed', error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Make HTTP POST request with error handling and response parsing.
|
|
43
|
+
*/
|
|
44
|
+
async post(endpoint, body) {
|
|
45
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
46
|
+
const headers = {
|
|
47
|
+
...this.getHeaders(),
|
|
48
|
+
'Content-Type': 'application/json',
|
|
49
|
+
};
|
|
50
|
+
try {
|
|
51
|
+
const response = await fetch(url, {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers,
|
|
54
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
55
|
+
});
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
throw new WaldeNetworkError(`HTTP ${response.status}: ${response.statusText} for ${url}`, new Error(`HTTP ${response.status}`));
|
|
58
|
+
}
|
|
59
|
+
const contentType = response.headers.get('content-type');
|
|
60
|
+
if (contentType && contentType.includes('application/json')) {
|
|
61
|
+
const data = await response.text();
|
|
62
|
+
return data ? JSON.parse(data) : null;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
return (await response.text());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof WaldeNetworkError) {
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
throw new WaldeUnexpectedError('HTTP request failed', error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Make HTTP PUT request with error handling and response parsing.
|
|
77
|
+
*/
|
|
78
|
+
async put(endpoint, body) {
|
|
79
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
80
|
+
const headers = {
|
|
81
|
+
...this.getHeaders(),
|
|
82
|
+
'Content-Type': 'application/json',
|
|
83
|
+
};
|
|
84
|
+
try {
|
|
85
|
+
const response = await fetch(url, {
|
|
86
|
+
method: 'PUT',
|
|
87
|
+
headers,
|
|
88
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
89
|
+
});
|
|
90
|
+
if (!response.ok) {
|
|
91
|
+
throw new WaldeNetworkError(`HTTP ${response.status}: ${response.statusText} for ${url}`, new Error(`HTTP ${response.status}`));
|
|
92
|
+
}
|
|
93
|
+
const contentType = response.headers.get('content-type');
|
|
94
|
+
if (contentType && contentType.includes('application/json')) {
|
|
95
|
+
const data = await response.text();
|
|
96
|
+
return data ? JSON.parse(data) : null;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
return (await response.text());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (error instanceof WaldeNetworkError) {
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
throw new WaldeUnexpectedError('HTTP request failed', error);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=base-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-http-client.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/base-http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE9E;;;GAGG;AACH,MAAM,OAAgB,cAAc;IACH;IAA/B,YAA+B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAOlD;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,QAAgB;QAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;aACR,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,iBAAiB,CACzB,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,QAAQ,GAAG,EAAE,EAC5D,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CACrC,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAU,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAI,QAAgB,EAAE,IAAU;QACxC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,UAAU,EAAE;YACpB,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9C,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,iBAAiB,CACzB,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,QAAQ,GAAG,EAAE,EAC5D,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CACrC,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAU,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,QAAgB,EAAE,IAAU;QACvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG;YACd,GAAG,IAAI,CAAC,UAAU,EAAE;YACpB,cAAc,EAAE,kBAAkB;SACnC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aAC9C,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,iBAAiB,CACzB,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,QAAQ,GAAG,EAAE,EAC5D,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CACrC,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAU,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TokenRefreshProvider } from '@/sdk/domain/ports/out/token-refresh-provider';
|
|
2
|
+
import { Credentials } from '@/sdk/domain/entities/credentials';
|
|
3
|
+
/**
|
|
4
|
+
* Cognito implementation of TokenRefreshProvider
|
|
5
|
+
*/
|
|
6
|
+
export declare class CognitoTokenRefreshProvider implements TokenRefreshProvider {
|
|
7
|
+
private readonly clientId;
|
|
8
|
+
private readonly region;
|
|
9
|
+
private readonly client;
|
|
10
|
+
constructor(clientId: string, region?: string);
|
|
11
|
+
/**
|
|
12
|
+
* Refresh access and ID tokens using refresh token
|
|
13
|
+
*/
|
|
14
|
+
refreshTokens(refreshToken: string): Promise<Credentials>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=cognito-token-refresh-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognito-token-refresh-provider.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/cognito-token-refresh-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAGhE;;GAEG;AACH,qBAAa,2BAA4B,YAAW,oBAAoB;IAIpE,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;gBAGpC,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,MAAuB;IAKlD;;OAEG;IACU,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAmCvE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CognitoIdentityProviderClient, InitiateAuthCommand } from '@aws-sdk/client-cognito-identity-provider';
|
|
2
|
+
import { Credentials } from '@/sdk/domain/entities/credentials';
|
|
3
|
+
import { WaldeUnexpectedError, WaldeAuthenticationError } from '@/sdk/domain/errors';
|
|
4
|
+
/**
|
|
5
|
+
* Cognito implementation of TokenRefreshProvider
|
|
6
|
+
*/
|
|
7
|
+
export class CognitoTokenRefreshProvider {
|
|
8
|
+
clientId;
|
|
9
|
+
region;
|
|
10
|
+
client;
|
|
11
|
+
constructor(clientId, region = 'eu-central-1') {
|
|
12
|
+
this.clientId = clientId;
|
|
13
|
+
this.region = region;
|
|
14
|
+
this.client = new CognitoIdentityProviderClient({ region: this.region });
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Refresh access and ID tokens using refresh token
|
|
18
|
+
*/
|
|
19
|
+
async refreshTokens(refreshToken) {
|
|
20
|
+
try {
|
|
21
|
+
const command = new InitiateAuthCommand({
|
|
22
|
+
AuthFlow: 'REFRESH_TOKEN_AUTH',
|
|
23
|
+
ClientId: this.clientId,
|
|
24
|
+
AuthParameters: {
|
|
25
|
+
REFRESH_TOKEN: refreshToken
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const response = await this.client.send(command);
|
|
29
|
+
if (!response.AuthenticationResult) {
|
|
30
|
+
throw new WaldeUnexpectedError('No authentication result received from Cognito', new Error('Missing AuthenticationResult'));
|
|
31
|
+
}
|
|
32
|
+
const { AccessToken, IdToken, RefreshToken } = response.AuthenticationResult;
|
|
33
|
+
if (!AccessToken || !IdToken) {
|
|
34
|
+
throw new WaldeUnexpectedError('Missing tokens in refresh response', new Error('Missing AccessToken or IdToken'));
|
|
35
|
+
}
|
|
36
|
+
return new Credentials(AccessToken, RefreshToken || refreshToken, IdToken);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.name === 'NotAuthorizedException') {
|
|
40
|
+
throw new WaldeAuthenticationError('Refresh token has expired');
|
|
41
|
+
}
|
|
42
|
+
throw new WaldeUnexpectedError('Failed to refresh tokens', error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=cognito-token-refresh-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognito-token-refresh-provider.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/cognito-token-refresh-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAE/G,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAErF;;GAEG;AACH,MAAM,OAAO,2BAA2B;IAInB;IACA;IAJF,MAAM,CAAgC;IAEvD,YACmB,QAAgB,EAChB,SAAiB,cAAc;QAD/B,aAAQ,GAAR,QAAQ,CAAQ;QAChB,WAAM,GAAN,MAAM,CAAyB;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,6BAA6B,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,YAAoB;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC;gBACtC,QAAQ,EAAE,oBAAoB;gBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE;oBACd,aAAa,EAAE,YAAY;iBAC5B;aACF,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;gBACnC,MAAM,IAAI,oBAAoB,CAAC,gDAAgD,EAAE,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC9H,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,oBAAoB,CAAC;YAE7E,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,oBAAoB,CAAC,oCAAoC,EAAE,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACpH,CAAC;YAED,OAAO,IAAI,WAAW,CACpB,WAAW,EACX,YAAY,IAAI,YAAY,EAC5B,OAAO,CACR,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBAC5C,MAAM,IAAI,wBAAwB,CAAC,2BAA2B,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,IAAI,oBAAoB,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TokenProvider } from '../../domain/ports/in/token-provider';
|
|
2
|
+
import { BaseHttpClient } from './base-http-client';
|
|
3
|
+
/**
|
|
4
|
+
* HTTP client for making authenticated API requests
|
|
5
|
+
*/
|
|
6
|
+
export declare class DefaultHttpClient extends BaseHttpClient {
|
|
7
|
+
private readonly tokenProvider;
|
|
8
|
+
constructor(baseUrl: string, tokenProvider: TokenProvider);
|
|
9
|
+
/**
|
|
10
|
+
* Get headers with Bearer token authentication
|
|
11
|
+
*/
|
|
12
|
+
protected getHeaders(): Record<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* Make a GET request to the specified path
|
|
15
|
+
*/
|
|
16
|
+
get(path: string, customHeaders?: Record<string, string>): Promise<any>;
|
|
17
|
+
/**
|
|
18
|
+
* Make a POST request to the specified path with optional body
|
|
19
|
+
*/
|
|
20
|
+
post(path: string, body?: any, customHeaders?: Record<string, string>): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Make a PUT request to the specified path with optional body
|
|
23
|
+
*/
|
|
24
|
+
put(path: string, body?: any, customHeaders?: Record<string, string>): Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Make a DELETE request to the specified path
|
|
27
|
+
*/
|
|
28
|
+
delete(path: string, customHeaders?: Record<string, string>): Promise<any>;
|
|
29
|
+
/**
|
|
30
|
+
* Handle HTTP error responses with appropriate error types
|
|
31
|
+
*/
|
|
32
|
+
private handleHttpError;
|
|
33
|
+
/**
|
|
34
|
+
* Make an HTTP request with authentication
|
|
35
|
+
*/
|
|
36
|
+
private request;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=default-http-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-http-client.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-http-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IAGjD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAD9B,OAAO,EAAE,MAAM,EACE,aAAa,EAAE,aAAa;IAK/C;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ9C;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIpF;;OAEG;IACU,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIjG;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhG;;OAEG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvF;;OAEG;IACH,OAAO,CAAC,eAAe;IAoCvB;;OAEG;YACW,OAAO;CAsEtB"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import * as https from 'https';
|
|
2
|
+
import * as http from 'http';
|
|
3
|
+
import { URL } from 'url';
|
|
4
|
+
import { WaldeNetworkError, WaldeSystemError, WaldeAuthenticationError, WaldeValidationError } from '@/sdk/domain/errors';
|
|
5
|
+
import { BaseHttpClient } from './base-http-client';
|
|
6
|
+
/**
|
|
7
|
+
* HTTP client for making authenticated API requests
|
|
8
|
+
*/
|
|
9
|
+
export class DefaultHttpClient extends BaseHttpClient {
|
|
10
|
+
tokenProvider;
|
|
11
|
+
constructor(baseUrl, tokenProvider) {
|
|
12
|
+
super(baseUrl);
|
|
13
|
+
this.tokenProvider = tokenProvider;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get headers with Bearer token authentication
|
|
17
|
+
*/
|
|
18
|
+
getHeaders() {
|
|
19
|
+
// This will be called synchronously, but we need async token access
|
|
20
|
+
// Keep the existing implementation for backward compatibility
|
|
21
|
+
return {
|
|
22
|
+
'Content-Type': 'application/json',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Make a GET request to the specified path
|
|
27
|
+
*/
|
|
28
|
+
async get(path, customHeaders) {
|
|
29
|
+
return this.request('GET', path, undefined, customHeaders);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Make a POST request to the specified path with optional body
|
|
33
|
+
*/
|
|
34
|
+
async post(path, body, customHeaders) {
|
|
35
|
+
return this.request('POST', path, body, customHeaders);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Make a PUT request to the specified path with optional body
|
|
39
|
+
*/
|
|
40
|
+
async put(path, body, customHeaders) {
|
|
41
|
+
return this.request('PUT', path, body, customHeaders);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Make a DELETE request to the specified path
|
|
45
|
+
*/
|
|
46
|
+
async delete(path, customHeaders) {
|
|
47
|
+
return this.request('DELETE', path, undefined, customHeaders);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Handle HTTP error responses with appropriate error types
|
|
51
|
+
*/
|
|
52
|
+
handleHttpError(statusCode, statusMessage, parsedData, url) {
|
|
53
|
+
const serverMessage = parsedData?.metadata?.error;
|
|
54
|
+
const details = { statusCode, statusMessage, response: parsedData, url };
|
|
55
|
+
if (statusCode === 401) {
|
|
56
|
+
return new WaldeAuthenticationError(serverMessage || 'Authentication required. Please login first.', details);
|
|
57
|
+
}
|
|
58
|
+
if (statusCode === 403) {
|
|
59
|
+
return new WaldeAuthenticationError(serverMessage || 'Access denied. You do not have permission to perform this action.', details);
|
|
60
|
+
}
|
|
61
|
+
if (statusCode >= 500) {
|
|
62
|
+
return new WaldeSystemError(serverMessage || 'A server error occurred. Please try again later.', undefined, // No meaningful cause for server errors
|
|
63
|
+
details);
|
|
64
|
+
}
|
|
65
|
+
if (statusCode >= 400) {
|
|
66
|
+
return new WaldeValidationError(serverMessage || `Request failed with status ${statusCode}`, details);
|
|
67
|
+
}
|
|
68
|
+
return new WaldeNetworkError(`HTTP ${statusCode}: ${statusMessage}`, undefined, details);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Make an HTTP request with authentication
|
|
72
|
+
*/
|
|
73
|
+
async request(method, path, body, customHeaders) {
|
|
74
|
+
const accessToken = await this.tokenProvider.getAccessToken();
|
|
75
|
+
const url = new URL(`${this.baseUrl}${path}`);
|
|
76
|
+
const requestBody = body && (method === 'POST' || method === 'PUT')
|
|
77
|
+
? JSON.stringify(body)
|
|
78
|
+
: undefined;
|
|
79
|
+
const options = {
|
|
80
|
+
hostname: url.hostname,
|
|
81
|
+
port: url.port || (url.protocol === 'https:' ? 443 : 80),
|
|
82
|
+
path: url.pathname + url.search,
|
|
83
|
+
method,
|
|
84
|
+
headers: {
|
|
85
|
+
'Authorization': `Bearer ${accessToken}`,
|
|
86
|
+
'Content-Type': 'application/json',
|
|
87
|
+
...(requestBody && { 'Content-Length': Buffer.byteLength(requestBody) }),
|
|
88
|
+
...(customHeaders || {})
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
const client = url.protocol === 'https:' ? https : http;
|
|
93
|
+
const req = client.request(options, (res) => {
|
|
94
|
+
let data = '';
|
|
95
|
+
res.on('data', (chunk) => {
|
|
96
|
+
data += chunk;
|
|
97
|
+
});
|
|
98
|
+
res.on('end', () => {
|
|
99
|
+
try {
|
|
100
|
+
const contentType = res.headers['content-type'];
|
|
101
|
+
let parsedData;
|
|
102
|
+
if (contentType && contentType.includes('application/json')) {
|
|
103
|
+
parsedData = data ? JSON.parse(data) : null;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
parsedData = data;
|
|
107
|
+
}
|
|
108
|
+
if (!res.statusCode) {
|
|
109
|
+
reject(new WaldeNetworkError('No status code received from server', new Error('Missing status code')));
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (res.statusCode >= 400) {
|
|
113
|
+
reject(this.handleHttpError(res.statusCode, res.statusMessage || '', parsedData, url.toString()));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
resolve(parsedData);
|
|
117
|
+
}
|
|
118
|
+
catch (parseError) {
|
|
119
|
+
reject(new WaldeNetworkError('Failed to parse response', parseError));
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
req.on('error', (error) => {
|
|
124
|
+
reject(error);
|
|
125
|
+
});
|
|
126
|
+
if (requestBody) {
|
|
127
|
+
req.write(requestBody);
|
|
128
|
+
}
|
|
129
|
+
req.end();
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=default-http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-http-client.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TokenProvider } from '../../domain/ports/in/token-provider';
|
|
2
|
+
import { CredentialsProvider } from '@/sdk/domain/ports/out/credentials-provider';
|
|
3
|
+
/**
|
|
4
|
+
* Default implementation of TokenProvider using CredentialsProvider
|
|
5
|
+
*/
|
|
6
|
+
export declare class DefaultTokenProvider implements TokenProvider {
|
|
7
|
+
private readonly credentialsProvider;
|
|
8
|
+
constructor(credentialsProvider: CredentialsProvider);
|
|
9
|
+
/**
|
|
10
|
+
* Get the access token from stored credentials
|
|
11
|
+
*/
|
|
12
|
+
getAccessToken(): Promise<string>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=default-token-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-token-provider.d.ts","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAGlF;;GAEG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAErE;;OAEG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;CAQ/C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { WaldeAuthenticationError } from '@/sdk/domain/errors';
|
|
2
|
+
/**
|
|
3
|
+
* Default implementation of TokenProvider using CredentialsProvider
|
|
4
|
+
*/
|
|
5
|
+
export class DefaultTokenProvider {
|
|
6
|
+
credentialsProvider;
|
|
7
|
+
constructor(credentialsProvider) {
|
|
8
|
+
this.credentialsProvider = credentialsProvider;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Get the access token from stored credentials
|
|
12
|
+
*/
|
|
13
|
+
async getAccessToken() {
|
|
14
|
+
try {
|
|
15
|
+
const credentials = await this.credentialsProvider.retrieve();
|
|
16
|
+
return credentials.idToken;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw new WaldeAuthenticationError('Credentials file not found');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=default-token-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-token-provider.js","sourceRoot":"","sources":["../../../../src/sdk/infra/adapters/default-token-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAG,CAAC;IAEzE;;OAEG;IACI,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO,WAAW,CAAC,OAAO,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,wBAAwB,CAAC,4BAA4B,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ContentFileReader } from '@/sdk/domain/ports/in/content-file-reader';
|
|
2
|
+
/**
|
|
3
|
+
* File system implementation of ContentFileReader
|
|
4
|
+
*/
|
|
5
|
+
export declare class FileContentReader implements ContentFileReader {
|
|
6
|
+
/**
|
|
7
|
+
* Reads a markdown file and extracts frontmatter and body content
|
|
8
|
+
* @param filePath - Path to the markdown file
|
|
9
|
+
* @returns Object containing frontmatter metadata and body content
|
|
10
|
+
*/
|
|
11
|
+
readContentFile(filePath: string): Promise<{
|
|
12
|
+
frontmatter: Record<string, any>;
|
|
13
|
+
body: string;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=file-content-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-content-reader.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/infra/adapters/filesystem/file-content-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAG9E;;GAEG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD;;;;OAIG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACtD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CAaH"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import matter from 'gray-matter';
|
|
3
|
+
import { WaldeLocalError } from '@/sdk/domain/errors';
|
|
4
|
+
/**
|
|
5
|
+
* File system implementation of ContentFileReader
|
|
6
|
+
*/
|
|
7
|
+
export class FileContentReader {
|
|
8
|
+
/**
|
|
9
|
+
* Reads a markdown file and extracts frontmatter and body content
|
|
10
|
+
* @param filePath - Path to the markdown file
|
|
11
|
+
* @returns Object containing frontmatter metadata and body content
|
|
12
|
+
*/
|
|
13
|
+
async readContentFile(filePath) {
|
|
14
|
+
try {
|
|
15
|
+
const fileContent = await readFile(filePath, 'utf-8');
|
|
16
|
+
const parsed = matter(fileContent);
|
|
17
|
+
return {
|
|
18
|
+
frontmatter: parsed.data,
|
|
19
|
+
body: parsed.content
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw new WaldeLocalError('Failed to read content file', error, { filePath });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=file-content-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-content-reader.js","sourceRoot":"","sources":["../../../../../src/sdk/infra/adapters/filesystem/file-content-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,QAAgB;QAI3C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAEnC,OAAO;gBACL,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,IAAI,EAAE,MAAM,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,6BAA6B,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ContentFileWriter } from '@/sdk/domain/ports/out/content-file-writer';
|
|
2
|
+
/**
|
|
3
|
+
* File system implementation for updating content files with returned IDs
|
|
4
|
+
*/
|
|
5
|
+
export declare class FileContentWriter implements ContentFileWriter {
|
|
6
|
+
/**
|
|
7
|
+
* Updates a content file with the content ID while preserving formatting
|
|
8
|
+
* @param filePath - Path to the content file
|
|
9
|
+
* @param contentId - The content ID to add to frontmatter
|
|
10
|
+
*/
|
|
11
|
+
updateContentFile(filePath: string, contentId: string): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=file-content-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-content-writer.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/infra/adapters/filesystem/file-content-writer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAG/E;;GAEG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD;;;;OAIG;IACU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBnF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'fs/promises';
|
|
2
|
+
import matter from 'gray-matter';
|
|
3
|
+
import { WaldeLocalError } from '@/sdk/domain/errors';
|
|
4
|
+
/**
|
|
5
|
+
* File system implementation for updating content files with returned IDs
|
|
6
|
+
*/
|
|
7
|
+
export class FileContentWriter {
|
|
8
|
+
/**
|
|
9
|
+
* Updates a content file with the content ID while preserving formatting
|
|
10
|
+
* @param filePath - Path to the content file
|
|
11
|
+
* @param contentId - The content ID to add to frontmatter
|
|
12
|
+
*/
|
|
13
|
+
async updateContentFile(filePath, contentId) {
|
|
14
|
+
try {
|
|
15
|
+
const fileContent = await readFile(filePath, 'utf-8');
|
|
16
|
+
const parsed = matter(fileContent);
|
|
17
|
+
// Create new frontmatter with ID as first key if it doesn't exist
|
|
18
|
+
let newFrontmatter;
|
|
19
|
+
if (parsed.data.id) {
|
|
20
|
+
// ID already exists, just update it
|
|
21
|
+
newFrontmatter = { ...parsed.data, id: contentId };
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
// ID doesn't exist, make it the first key
|
|
25
|
+
newFrontmatter = { id: contentId, ...parsed.data };
|
|
26
|
+
}
|
|
27
|
+
// Reconstruct file with updated frontmatter
|
|
28
|
+
const updatedContent = matter.stringify(parsed.content, newFrontmatter);
|
|
29
|
+
await writeFile(filePath, updatedContent, 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
throw new WaldeLocalError('Failed to update content file', error, { filePath });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=file-content-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-content-writer.js","sourceRoot":"","sources":["../../../../../src/sdk/infra/adapters/filesystem/file-content-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;QAChE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAEnC,kEAAkE;YAClE,IAAI,cAAmC,CAAC;YAExC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACnB,oCAAoC;gBACpC,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,0CAA0C;gBAC1C,cAAc,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC;YAED,4CAA4C;YAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAExE,MAAM,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,+BAA+B,EAAE,KAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { File } from '@/sdk/domain/entities/file';
|
|
2
|
+
import { FileSystemReader } from '@/sdk/domain/ports/out/file-system-reader';
|
|
3
|
+
/**
|
|
4
|
+
* Reads files from the local filesystem
|
|
5
|
+
*/
|
|
6
|
+
export declare class FileSystemLocalFilesReader implements FileSystemReader {
|
|
7
|
+
/**
|
|
8
|
+
* Recursively reads all files from a directory
|
|
9
|
+
* @param directoryPath - The path to the directory to read
|
|
10
|
+
* @returns Array of File entities with relative paths
|
|
11
|
+
*/
|
|
12
|
+
readAllFiles(directoryPath: string): Promise<File[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Recursively reads files from a directory
|
|
15
|
+
* @param currentPath - Current directory being processed
|
|
16
|
+
* @param basePath - Base directory for calculating relative paths
|
|
17
|
+
* @param files - Array to accumulate files
|
|
18
|
+
*/
|
|
19
|
+
private readDirectoryRecursive;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=file-system-local-files-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-system-local-files-reader.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/infra/adapters/filesystem/file-system-local-files-reader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAG7E;;GAEG;AACH,qBAAa,0BAA2B,YAAW,gBAAgB;IACjE;;;;OAIG;IACU,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAMjE;;;;;OAKG;YACW,sBAAsB;CA8BrC"}
|