@mdfriday/foundry 26.4.19 → 26.5.1
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/dist/cjs/index.js +1 -1
- package/dist/cjs/obsidian/mobile.js +1 -1
- package/dist/cjs/worker/pool-manager.js +341 -362
- package/dist/cjs/worker/worker-node.js +110 -132
- package/dist/esm/index.js +1 -1
- package/dist/esm/obsidian/mobile.js +1 -1
- package/dist/types/internal/application/batch-task-queue.d.ts +17 -0
- package/dist/types/internal/application/container.d.ts +68 -1
- package/dist/types/internal/application/identity.d.ts +173 -0
- package/dist/types/internal/application/incremental-build-coordinator.d.ts +28 -0
- package/dist/types/internal/application/incremental-ssg.d.ts +4 -0
- package/dist/types/internal/application/index.d.ts +5 -4
- package/dist/types/internal/application/publish.d.ts +37 -0
- package/dist/types/internal/application/ssg-parallel.d.ts +6 -0
- package/dist/types/internal/application/ssg.d.ts +15 -0
- package/dist/types/internal/application/wiki-service-config.d.ts +65 -0
- package/dist/types/internal/application/wiki-service.d.ts +199 -0
- package/dist/types/internal/application/worker/pool-manager.d.ts +43 -0
- package/dist/types/internal/application/worker/worker-browser.d.ts +6 -0
- package/dist/types/internal/application/worker/worker-main.d.ts +12 -0
- package/dist/types/internal/application/worker/worker-state.d.ts +23 -0
- package/dist/types/internal/application/workspace.d.ts +98 -0
- package/dist/types/internal/domain/config/entity/config.d.ts +40 -0
- package/dist/types/internal/domain/config/entity/language.d.ts +51 -0
- package/dist/types/internal/domain/config/entity/markdown.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/module.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/root.d.ts +39 -0
- package/dist/types/internal/domain/config/entity/service.d.ts +36 -0
- package/dist/types/internal/domain/config/entity/social.d.ts +43 -0
- package/dist/types/internal/domain/config/entity/taxonomy.d.ts +39 -0
- package/dist/types/internal/domain/config/factory/config.d.ts +3 -0
- package/dist/types/internal/domain/config/factory/loader.d.ts +24 -0
- package/dist/types/internal/domain/config/factory/provider.d.ts +10 -0
- package/dist/types/internal/domain/config/factory/sourcedescriptor.d.ts +12 -0
- package/dist/types/internal/domain/config/type.d.ts +56 -0
- package/dist/types/internal/domain/config/vo/language.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/markdown.d.ts +13 -0
- package/dist/types/internal/domain/config/vo/module.d.ts +9 -0
- package/dist/types/internal/domain/config/vo/root.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/service.d.ts +6 -0
- package/dist/types/internal/domain/config/vo/social.d.ts +16 -0
- package/dist/types/internal/domain/config/vo/taxonomy.d.ts +12 -0
- package/dist/types/internal/domain/content/entity/content.d.ts +36 -0
- package/dist/types/internal/domain/content/entity/page.d.ts +23 -0
- package/dist/types/internal/domain/content/entity/pagebuilder.d.ts +83 -0
- package/dist/types/internal/domain/content/entity/pagecollector.d.ts +3 -0
- package/dist/types/internal/domain/content/entity/pagecontent.d.ts +14 -0
- package/dist/types/internal/domain/content/entity/pagemap.d.ts +69 -0
- package/dist/types/internal/domain/content/entity/pagesource.d.ts +52 -0
- package/dist/types/internal/domain/content/entity/pagetrees.d.ts +12 -0
- package/dist/types/internal/domain/content/entity/paginator.d.ts +19 -0
- package/dist/types/internal/domain/content/entity/section.d.ts +15 -0
- package/dist/types/internal/domain/content/entity/shortcode.d.ts +39 -0
- package/dist/types/internal/domain/content/entity/standalone.d.ts +9 -0
- package/dist/types/internal/domain/content/entity/taxonomy.d.ts +15 -0
- package/dist/types/internal/domain/content/entity/term.d.ts +6 -0
- package/dist/types/internal/domain/content/entity/translator.d.ts +22 -0
- package/dist/types/internal/domain/content/type.d.ts +6 -0
- package/dist/types/internal/domain/content/vo/classifier.d.ts +24 -0
- package/dist/types/internal/domain/content/vo/frontmatter.d.ts +65 -0
- package/dist/types/internal/domain/content/vo/kind.d.ts +10 -0
- package/dist/types/internal/domain/fs/entity/basefs.d.ts +23 -0
- package/dist/types/internal/domain/fs/entity/fs.d.ts +13 -0
- package/dist/types/internal/domain/fs/entity/originfs.d.ts +6 -0
- package/dist/types/internal/domain/fs/entity/overlaydir.d.ts +44 -0
- package/dist/types/internal/domain/fs/entity/overlayfs.d.ts +79 -0
- package/dist/types/internal/domain/fs/entity/service.d.ts +15 -0
- package/dist/types/internal/domain/fs/factory/fs.d.ts +4 -0
- package/dist/types/internal/domain/fs/type.d.ts +95 -0
- package/dist/types/internal/domain/fs/vo/dir.d.ts +41 -0
- package/dist/types/internal/domain/fs/vo/file.d.ts +28 -0
- package/dist/types/internal/domain/fs/vo/fileinfo.d.ts +23 -0
- package/dist/types/internal/domain/fs/vo/filemeta.d.ts +45 -0
- package/dist/types/internal/domain/fs/vo/filesystemscollector.d.ts +17 -0
- package/dist/types/internal/domain/fs/vo/filevitural.d.ts +8 -0
- package/dist/types/internal/domain/fs/vo/osfs.d.ts +12 -0
- package/dist/types/internal/domain/fs/vo/overlay-factory.d.ts +4 -0
- package/dist/types/internal/domain/fs/vo/overlayfs-factory.d.ts +42 -0
- package/dist/types/internal/domain/fs/vo/overlayoptions.d.ts +44 -0
- package/dist/types/internal/domain/fs/vo/static-copier.d.ts +22 -0
- package/dist/types/internal/domain/fs/vo/walkway.d.ts +22 -0
- package/dist/types/internal/domain/identity/entity/user.d.ts +100 -0
- package/dist/types/internal/domain/identity/factory/user-factory.d.ts +183 -0
- package/dist/types/internal/domain/identity/repository/index.d.ts +30 -0
- package/dist/types/internal/domain/identity/type.d.ts +17 -0
- package/dist/types/internal/domain/identity/value-object/device.d.ts +26 -0
- package/dist/types/internal/domain/identity/value-object/email.d.ts +29 -0
- package/dist/types/internal/domain/identity/value-object/license.d.ts +91 -0
- package/dist/types/internal/domain/identity/value-object/server-config.d.ts +37 -0
- package/dist/types/internal/domain/identity/value-object/sync-config.d.ts +47 -0
- package/dist/types/internal/domain/identity/value-object/token.d.ts +35 -0
- package/dist/types/internal/domain/markdown/entity/markdown.d.ts +41 -0
- package/dist/types/internal/domain/markdown/factory/it/config.d.ts +60 -0
- package/dist/types/internal/domain/markdown/factory/it/index.d.ts +21 -1
- package/dist/types/internal/domain/markdown/factory/it/parserresult.d.ts +3 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/callout-plugin.d.ts +40 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/latex-plugin.d.ts +23 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/mermaid-plugin.d.ts +24 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/tag-plugin.d.ts +71 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/wikilink-plugin.d.ts +28 -0
- package/dist/types/internal/domain/markdown/factory/it/plugins/wikilink.d.ts +31 -0
- package/dist/types/internal/domain/markdown/factory/it/tableofcontents.d.ts +21 -0
- package/dist/types/internal/domain/markdown/factory/it/util/path.d.ts +11 -0
- package/dist/types/internal/domain/markdown/factory/it/util/slugger-fallback.d.ts +6 -0
- package/dist/types/internal/domain/markdown/type.d.ts +159 -0
- package/dist/types/internal/domain/markdown/vo/config.d.ts +48 -0
- package/dist/types/internal/domain/markdown/vo/content.d.ts +92 -0
- package/dist/types/internal/domain/markdown/vo/context.d.ts +9 -0
- package/dist/types/internal/domain/markdown/vo/highlight.d.ts +15 -0
- package/dist/types/internal/domain/markdown/vo/pageparser.d.ts +9 -0
- package/dist/types/internal/domain/markdown/vo/parseinfo.d.ts +36 -0
- package/dist/types/internal/domain/markdown/vo/parserresult.d.ts +6 -0
- package/dist/types/internal/domain/markdown/vo/shortcode.d.ts +31 -1
- package/dist/types/internal/domain/markdown/vo/tableofcontents.d.ts +21 -0
- package/dist/types/internal/domain/module/entity/lang.d.ts +12 -0
- package/dist/types/internal/domain/module/entity/module.d.ts +73 -0
- package/dist/types/internal/domain/module/factory/module.d.ts +6 -0
- package/dist/types/internal/domain/module/type.d.ts +58 -0
- package/dist/types/internal/domain/module/vo/cache.d.ts +48 -0
- package/dist/types/internal/domain/module/vo/httpclient.d.ts +14 -0
- package/dist/types/internal/domain/module/vo/module.d.ts +76 -0
- package/dist/types/internal/domain/module/vo/mount.d.ts +39 -0
- package/dist/types/internal/domain/module/vo/themes.d.ts +38 -0
- package/dist/types/internal/domain/module/vo/zipextractor.d.ts +31 -0
- package/dist/types/internal/domain/paths/entity/path.d.ts +28 -0
- package/dist/types/internal/domain/paths/factory/pathfactory.d.ts +82 -0
- package/dist/types/internal/domain/paths/type.d.ts +133 -1
- package/dist/types/internal/domain/paths/vo/pathcomponents.d.ts +94 -0
- package/dist/types/internal/domain/paths/vo/pathparser.d.ts +77 -0
- package/dist/types/internal/domain/publish/entity/publisher.d.ts +26 -0
- package/dist/types/internal/domain/publish/factory/publisher-factory.d.ts +17 -0
- package/dist/types/internal/domain/publish/repository/http-client.d.ts +21 -0
- package/dist/types/internal/domain/publish/repository/manifest-repository.d.ts +27 -0
- package/dist/types/internal/domain/publish/type.d.ts +49 -0
- package/dist/types/internal/domain/publish/value-object/ftp-publisher.d.ts +30 -0
- package/dist/types/internal/domain/publish/value-object/mdfriday-publisher.d.ts +57 -0
- package/dist/types/internal/domain/publish/value-object/netlify-publisher.d.ts +55 -0
- package/dist/types/internal/domain/publish/value-object/publish-config.d.ts +38 -0
- package/dist/types/internal/domain/publish/value-object/publish-manifest.d.ts +50 -0
- package/dist/types/internal/domain/resources/entity/http.d.ts +11 -0
- package/dist/types/internal/domain/resources/entity/integrity.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/minifier.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/publisher.d.ts +24 -0
- package/dist/types/internal/domain/resources/entity/resource.d.ts +4 -0
- package/dist/types/internal/domain/resources/entity/resources.d.ts +40 -0
- package/dist/types/internal/domain/resources/entity/template.d.ts +4 -0
- package/dist/types/internal/domain/resources/factory/resource.d.ts +4 -0
- package/dist/types/internal/domain/site/entity/language.d.ts +55 -0
- package/dist/types/internal/domain/site/entity/menu-builder.d.ts +50 -0
- package/dist/types/internal/domain/site/entity/navigation.d.ts +8 -0
- package/dist/types/internal/domain/site/entity/page.d.ts +88 -0
- package/dist/types/internal/domain/site/entity/pagegraph.d.ts +85 -0
- package/dist/types/internal/domain/site/entity/pager.d.ts +6 -0
- package/dist/types/internal/domain/site/entity/publisher.d.ts +26 -0
- package/dist/types/internal/domain/site/entity/ref.d.ts +27 -0
- package/dist/types/internal/domain/site/entity/site.d.ts +178 -0
- package/dist/types/internal/domain/site/factory/navigation-factory.d.ts +6 -0
- package/dist/types/internal/domain/site/factory/site.d.ts +4 -0
- package/dist/types/internal/domain/site/service/html-link-processor.d.ts +44 -0
- package/dist/types/internal/domain/site/type.d.ts +100 -0
- package/dist/types/internal/domain/site/valueobject/author.d.ts +16 -0
- package/dist/types/internal/domain/site/valueobject/baseurl.d.ts +39 -0
- package/dist/types/internal/domain/site/valueobject/menu.d.ts +49 -0
- package/dist/types/internal/domain/site/valueobject/organization.d.ts +37 -0
- package/dist/types/internal/domain/site/valueobject/path.d.ts +50 -0
- package/dist/types/internal/domain/site/valueobject/version.d.ts +14 -0
- package/dist/types/internal/domain/template/entity/executor.d.ts +22 -0
- package/dist/types/internal/domain/template/entity/lookup.d.ts +55 -0
- package/dist/types/internal/domain/template/entity/parser.d.ts +40 -0
- package/dist/types/internal/domain/template/entity/template.d.ts +87 -0
- package/dist/types/internal/domain/template/factory/template.d.ts +61 -0
- package/dist/types/internal/domain/template/type.d.ts +109 -0
- package/dist/types/internal/domain/template/vo/baseof.d.ts +47 -0
- package/dist/types/internal/domain/template/vo/info.d.ts +28 -0
- package/dist/types/internal/domain/template/vo/namespace.d.ts +91 -0
- package/dist/types/internal/domain/template/vo/registry.d.ts +160 -0
- package/dist/types/internal/domain/wiki/entity/concept.d.ts +31 -0
- package/dist/types/internal/domain/wiki/entity/connection.d.ts +29 -0
- package/dist/types/internal/domain/wiki/entity/conversation.d.ts +65 -0
- package/dist/types/internal/domain/wiki/entity/embedding-index.d.ts +60 -0
- package/dist/types/internal/domain/wiki/entity/entity.d.ts +32 -0
- package/dist/types/internal/domain/wiki/entity/knowledge-base.d.ts +292 -0
- package/dist/types/internal/domain/wiki/entity/operation-log.d.ts +82 -0
- package/dist/types/internal/domain/wiki/factory/wiki-factory.d.ts +41 -0
- package/dist/types/internal/domain/wiki/index.d.ts +22 -0
- package/dist/types/internal/domain/wiki/repository/conversation-repository.interface.d.ts +29 -0
- package/dist/types/internal/domain/wiki/repository/crypto-service.d.ts +16 -0
- package/dist/types/internal/domain/wiki/repository/embedding-provider.d.ts +12 -0
- package/dist/types/internal/domain/wiki/repository/file-system.d.ts +43 -0
- package/dist/types/internal/domain/wiki/repository/index.d.ts +14 -0
- package/dist/types/internal/domain/wiki/repository/kb-repository.interface.d.ts +30 -0
- package/dist/types/internal/domain/wiki/repository/llm-http-client.d.ts +40 -0
- package/dist/types/internal/domain/wiki/repository/llm-provider.d.ts +34 -0
- package/dist/types/internal/domain/wiki/repository/path-service.d.ts +32 -0
- package/dist/types/internal/domain/wiki/repository/wiki-page-repository.interface.d.ts +49 -0
- package/dist/types/internal/domain/wiki/value-object/connection-type.d.ts +24 -0
- package/dist/types/internal/domain/wiki/value-object/content-annotator.d.ts +61 -0
- package/dist/types/internal/domain/wiki/value-object/entity-id.d.ts +17 -0
- package/dist/types/internal/domain/wiki/value-object/entity-type.d.ts +24 -0
- package/dist/types/internal/domain/wiki/value-object/extraction-parser.d.ts +27 -0
- package/dist/types/internal/domain/wiki/value-object/extraction-result.d.ts +32 -0
- package/dist/types/internal/domain/wiki/value-object/retrieval.d.ts +228 -0
- package/dist/types/internal/domain/wiki/value-object/source-record.d.ts +17 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-config.d.ts +40 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-index-generator.d.ts +31 -0
- package/dist/types/internal/domain/wiki/value-object/wiki-page-renderer.d.ts +42 -0
- package/dist/types/internal/domain/workspace/entity/authentication.d.ts +29 -0
- package/dist/types/internal/domain/workspace/entity/project.d.ts +173 -0
- package/dist/types/internal/domain/workspace/entity/workspace.d.ts +85 -0
- package/dist/types/internal/domain/workspace/factory/workspace-factory.d.ts +107 -0
- package/dist/types/internal/domain/workspace/repository/file-system.d.ts +241 -0
- package/dist/types/internal/domain/workspace/repository/index.d.ts +6 -0
- package/dist/types/internal/domain/workspace/repository.d.ts +72 -0
- package/dist/types/internal/domain/workspace/type.d.ts +18 -0
- package/dist/types/internal/domain/workspace/value-object/folder-structure.d.ts +41 -0
- package/dist/types/internal/domain/workspace/value-object/project-metadata.d.ts +36 -0
- package/dist/types/internal/domain/workspace/value-object/workspace-metadata.d.ts +7 -0
- package/dist/types/internal/infrastructure/embedding/embedding-provider.interface.d.ts +33 -0
- package/dist/types/internal/infrastructure/embedding/index.d.ts +5 -0
- package/dist/types/internal/infrastructure/embedding/ollama-embedding-provider.d.ts +24 -0
- package/dist/types/internal/infrastructure/http/netlify-http-client.d.ts +20 -0
- package/dist/types/internal/infrastructure/http/node-http-client.d.ts +3 -0
- package/dist/types/internal/infrastructure/index.d.ts +8 -0
- package/dist/types/internal/infrastructure/llm/fetch-http-client.d.ts +24 -0
- package/dist/types/internal/infrastructure/llm/index.d.ts +6 -0
- package/dist/types/internal/infrastructure/llm/llm-config.d.ts +80 -0
- package/dist/types/internal/infrastructure/llm/lmstudio-provider.d.ts +55 -0
- package/dist/types/internal/infrastructure/llm/node-llm-http-client.d.ts +21 -0
- package/dist/types/internal/infrastructure/llm/ollama-provider.d.ts +17 -0
- package/dist/types/internal/infrastructure/llm/openai-compatible-provider.d.ts +70 -0
- package/dist/types/internal/infrastructure/llm/provider-factory.d.ts +36 -0
- package/dist/types/internal/infrastructure/llm/provider.d.ts +77 -0
- package/dist/types/internal/infrastructure/node/index.d.ts +11 -0
- package/dist/types/internal/infrastructure/node/node-conversation-repository.d.ts +21 -0
- package/dist/types/internal/infrastructure/node/node-crypto-service.d.ts +10 -0
- package/dist/types/internal/infrastructure/node/node-file-system.d.ts +29 -0
- package/dist/types/internal/infrastructure/node/node-kb-repository.d.ts +18 -0
- package/dist/types/internal/infrastructure/node/node-path-service.d.ts +14 -0
- package/dist/types/internal/infrastructure/node/node-wiki-page-repository.d.ts +25 -0
- package/dist/types/internal/infrastructure/persistence/node-file-system.d.ts +8 -0
- package/dist/types/internal/infrastructure/persistence/node-manifest-repository.d.ts +31 -0
- package/dist/types/internal/infrastructure/persistence/node-snapshot-repository.d.ts +28 -0
- package/dist/types/internal/infrastructure/persistence/node-workspace-repository.d.ts +9 -0
- package/dist/types/pkg/cahce/cache.d.ts +56 -0
- package/dist/types/pkg/lang/data.d.ts +21 -0
- package/dist/types/pkg/lang/index.d.ts +46 -0
- package/dist/types/pkg/lang/service.d.ts +49 -0
- package/dist/types/pkg/lang/types.d.ts +29 -0
- package/dist/types/pkg/log/http.d.ts +16 -0
- package/dist/types/pkg/log/manager.d.ts +57 -0
- package/dist/types/pkg/maps/scratch.d.ts +25 -0
- package/dist/types/pkg/md/parser/item.d.ts +3 -3
- package/dist/types/pkg/media/type.d.ts +19 -0
- package/dist/types/pkg/page-filter/index.d.ts +29 -0
- package/dist/types/pkg/paths/index.d.ts +9 -0
- package/dist/types/pkg/text/index.d.ts +4 -0
- package/dist/types/pkg/web/server/livereload-server.d.ts +7 -0
- package/dist/types/pkg/web/watcher/content-file-watcher.d.ts +3 -0
- package/package.json +21 -15
- package/dist/types/index.d.ts +0 -20
- package/dist/types/internal/interfaces/obsidian/adapters/identity-adapter.d.ts +0 -5
- package/dist/types/internal/interfaces/obsidian/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/adapters/workspace-adapter.d.ts +0 -8
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/identity-adapter.d.ts +0 -6
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/desktop/adapters/workspace-adapter.d.ts +0 -12
- package/dist/types/internal/interfaces/obsidian/desktop/container.d.ts +0 -7
- package/dist/types/internal/interfaces/obsidian/desktop/index.d.ts +0 -22
- package/dist/types/internal/interfaces/obsidian/index.d.ts +0 -7
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/identity-adapter.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/index.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/mobile/adapters/workspace-adapter.d.ts +0 -13
- package/dist/types/internal/interfaces/obsidian/mobile/config-types.d.ts +0 -13
- package/dist/types/internal/interfaces/obsidian/mobile/container.d.ts +0 -6
- package/dist/types/internal/interfaces/obsidian/mobile/index.d.ts +0 -16
- package/dist/types/internal/interfaces/obsidian/mobile.d.ts +0 -2
- package/dist/types/internal/interfaces/obsidian/services/auth.service.d.ts +0 -11
- package/dist/types/internal/interfaces/obsidian/services/build.service.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/services/config.service.d.ts +0 -31
- package/dist/types/internal/interfaces/obsidian/services/domain.service.d.ts +0 -15
- package/dist/types/internal/interfaces/obsidian/services/license.service.d.ts +0 -22
- package/dist/types/internal/interfaces/obsidian/services/project.service.d.ts +0 -17
- package/dist/types/internal/interfaces/obsidian/services/publish.service.d.ts +0 -11
- package/dist/types/internal/interfaces/obsidian/services/serve.service.d.ts +0 -18
- package/dist/types/internal/interfaces/obsidian/services/workspace.service.d.ts +0 -10
- package/dist/types/internal/interfaces/obsidian/types/auth.d.ts +0 -27
- package/dist/types/internal/interfaces/obsidian/types/build.d.ts +0 -23
- package/dist/types/internal/interfaces/obsidian/types/config.d.ts +0 -16
- package/dist/types/internal/interfaces/obsidian/types/domain.d.ts +0 -46
- package/dist/types/internal/interfaces/obsidian/types/index.d.ts +0 -9
- package/dist/types/internal/interfaces/obsidian/types/license.d.ts +0 -87
- package/dist/types/internal/interfaces/obsidian/types/project.d.ts +0 -56
- package/dist/types/internal/interfaces/obsidian/types/publish.d.ts +0 -33
- package/dist/types/internal/interfaces/obsidian/types/serve.d.ts +0 -46
- package/dist/types/internal/interfaces/obsidian/types/workspace.d.ts +0 -27
- package/dist/types/pkg/log/browser-manager.d.ts +0 -20
- package/dist/types/pkg/log/browser.d.ts +0 -25
- package/dist/types/pkg/media/buildin.d.ts +0 -3
|
@@ -2,6 +2,9 @@ import { User } from '../entity/user';
|
|
|
2
2
|
import { ServerConfig } from '../value-object/server-config';
|
|
3
3
|
import { Device } from '../value-object/device';
|
|
4
4
|
import { HttpClient, IdentityStorageProvider } from '../repository/index';
|
|
5
|
+
/**
|
|
6
|
+
* Trial License Response
|
|
7
|
+
*/
|
|
5
8
|
export interface TrialLicenseResponse {
|
|
6
9
|
email: string;
|
|
7
10
|
license_key: string;
|
|
@@ -10,6 +13,9 @@ export interface TrialLicenseResponse {
|
|
|
10
13
|
success: boolean;
|
|
11
14
|
validity_days: number;
|
|
12
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* License Activation Response
|
|
18
|
+
*/
|
|
13
19
|
export interface LicenseActivationResponse {
|
|
14
20
|
activated: boolean;
|
|
15
21
|
first_time: boolean;
|
|
@@ -41,6 +47,9 @@ export interface LicenseActivationResponse {
|
|
|
41
47
|
status: string;
|
|
42
48
|
};
|
|
43
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Domain Info Response
|
|
52
|
+
*/
|
|
44
53
|
export interface DomainInfo {
|
|
45
54
|
subdomain: string;
|
|
46
55
|
full_domain: string;
|
|
@@ -48,61 +57,232 @@ export interface DomainInfo {
|
|
|
48
57
|
folder: string;
|
|
49
58
|
created_at: number;
|
|
50
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Subdomain Check Response
|
|
62
|
+
*/
|
|
51
63
|
export interface SubdomainCheckResponse {
|
|
52
64
|
available: boolean;
|
|
53
65
|
message?: string;
|
|
54
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Subdomain Update Response
|
|
69
|
+
*/
|
|
55
70
|
export interface SubdomainUpdateResponse {
|
|
56
71
|
new_subdomain: string;
|
|
57
72
|
old_subdomain: string;
|
|
58
73
|
full_domain: string;
|
|
59
74
|
message: string;
|
|
60
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* UserFactory Options
|
|
78
|
+
*/
|
|
61
79
|
export interface UserFactoryOptions {
|
|
62
80
|
httpClient: HttpClient;
|
|
63
81
|
storageProvider: IdentityStorageProvider;
|
|
64
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* UserFactory
|
|
85
|
+
*
|
|
86
|
+
* 负责创建和加载 User 聚合根
|
|
87
|
+
*
|
|
88
|
+
* 职责:
|
|
89
|
+
* - 创建新用户(注册)
|
|
90
|
+
* - 加载现有用户(从存储)
|
|
91
|
+
* - 用户登录
|
|
92
|
+
* - 用户登出
|
|
93
|
+
* - 管理用户持久化
|
|
94
|
+
*/
|
|
65
95
|
export declare class UserFactory {
|
|
66
96
|
private httpClient;
|
|
67
97
|
private storageProvider;
|
|
68
98
|
constructor(options: UserFactoryOptions);
|
|
99
|
+
/**
|
|
100
|
+
* 创建匿名用户(未登录状态)
|
|
101
|
+
*/
|
|
69
102
|
createAnonymous(serverConfig?: ServerConfig): User;
|
|
103
|
+
/**
|
|
104
|
+
* 从存储加载用户
|
|
105
|
+
*/
|
|
70
106
|
load(): Promise<User | null>;
|
|
107
|
+
/**
|
|
108
|
+
* 保存用户到存储(合并保存 token, license, server config, sync config)
|
|
109
|
+
*
|
|
110
|
+
* ⚠️ 采用合并策略:先加载现有数据,再用新数据覆盖,避免丢失其他字段
|
|
111
|
+
*/
|
|
71
112
|
save(user: User): Promise<void>;
|
|
113
|
+
/**
|
|
114
|
+
* 加载已保存的服务器配置
|
|
115
|
+
*/
|
|
72
116
|
loadServerConfig(): Promise<ServerConfig | null>;
|
|
117
|
+
/**
|
|
118
|
+
* 用户登录
|
|
119
|
+
*
|
|
120
|
+
* @param email - 用户邮箱
|
|
121
|
+
* @param password - 用户密码
|
|
122
|
+
* @param serverConfig - 可选的服务器配置
|
|
123
|
+
* @returns 登录成功的 User 实例
|
|
124
|
+
*/
|
|
73
125
|
login(email: string, password: string, serverConfig?: ServerConfig): Promise<User>;
|
|
126
|
+
/**
|
|
127
|
+
* 用户注册
|
|
128
|
+
*
|
|
129
|
+
* @param email - 用户邮箱
|
|
130
|
+
* @param password - 用户密码
|
|
131
|
+
* @param serverConfig - 可选的服务器配置
|
|
132
|
+
* @returns 注册成功的 User 实例
|
|
133
|
+
*/
|
|
74
134
|
register(email: string, password: string, serverConfig?: ServerConfig): Promise<User>;
|
|
135
|
+
/**
|
|
136
|
+
* 用户登出
|
|
137
|
+
*/
|
|
75
138
|
logout(): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* 更新服务器配置
|
|
141
|
+
*/
|
|
76
142
|
updateServerConfig(user: User, updates: {
|
|
77
143
|
apiUrl?: string;
|
|
78
144
|
websiteUrl?: string;
|
|
79
145
|
}): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* 申请试用 License
|
|
148
|
+
*
|
|
149
|
+
* @param email - 用户邮箱
|
|
150
|
+
* @param serverConfig - 可选的服务器配置
|
|
151
|
+
* @returns 试用 License 信息和自动生成的凭证
|
|
152
|
+
*/
|
|
80
153
|
requestTrialLicense(email: string, serverConfig?: ServerConfig): Promise<TrialLicenseResponse>;
|
|
154
|
+
/**
|
|
155
|
+
* 使用 License Key 登录
|
|
156
|
+
*
|
|
157
|
+
* License Key 可以自动生成 email 和 password
|
|
158
|
+
* 登录成功后会保存 License Key,用户可以后续使用
|
|
159
|
+
*
|
|
160
|
+
* @param licenseKey - License Key (MDF-XXXX-XXXX-XXXX)
|
|
161
|
+
* @param serverConfig - 可选的服务器配置
|
|
162
|
+
* @returns 登录成功的 User 实例
|
|
163
|
+
*/
|
|
81
164
|
loginWithLicense(licenseKey: string, serverConfig?: ServerConfig): Promise<User>;
|
|
165
|
+
/**
|
|
166
|
+
* 激活 License
|
|
167
|
+
*
|
|
168
|
+
* @param user - 已登录的用户
|
|
169
|
+
* @param licenseKey - License Key
|
|
170
|
+
* @param device - 设备信息(可选,不提供则自动生成)
|
|
171
|
+
* @returns 更新后的 User(包含激活的 License)
|
|
172
|
+
*/
|
|
82
173
|
activateLicense(user: User, licenseKey: string, device?: Device): Promise<User>;
|
|
174
|
+
/**
|
|
175
|
+
* 完整的试用流程:申请 → 登录 → 激活
|
|
176
|
+
*
|
|
177
|
+
* 简化用户操作:只需提供邮箱,自动完成所有步骤
|
|
178
|
+
*
|
|
179
|
+
* @param email - 用户邮箱
|
|
180
|
+
* @param serverConfig - 可选的服务器配置
|
|
181
|
+
* @returns 已激活 License 的 User
|
|
182
|
+
*/
|
|
83
183
|
requestAndActivateTrial(email: string, serverConfig?: ServerConfig): Promise<User>;
|
|
184
|
+
/**
|
|
185
|
+
* 自动刷新 Token(如果需要)
|
|
186
|
+
*
|
|
187
|
+
* 当用户使用 License 登录后,token 会在 30 天后过期
|
|
188
|
+
* 此方法检查 token 是否即将过期或已过期,如果是则自动使用 license 重新登录
|
|
189
|
+
*
|
|
190
|
+
* @param user - 当前用户
|
|
191
|
+
* @returns 更新后的用户(如果刷新了 token)或原用户
|
|
192
|
+
*/
|
|
84
193
|
refreshTokenIfNeeded(user: User): Promise<User>;
|
|
194
|
+
/**
|
|
195
|
+
* 执行需要认证的请求,自动处理 token 刷新
|
|
196
|
+
*
|
|
197
|
+
* 这是一个包装方法,模仿 @friday/src/hugoverse.ts 的 requestWithTokenRefresh
|
|
198
|
+
* 当请求返回 401 时,自动刷新 token 并重试
|
|
199
|
+
*
|
|
200
|
+
* @param user - 当前用户
|
|
201
|
+
* @param requestFn - 执行实际请求的函数,接收 token 字符串作为参数
|
|
202
|
+
* @returns 请求结果
|
|
203
|
+
*/
|
|
85
204
|
requestWithAutoRefresh<T>(user: User, requestFn: (tokenValue: string) => Promise<T>): Promise<T>;
|
|
205
|
+
/**
|
|
206
|
+
* 获取 License 使用量信息
|
|
207
|
+
*
|
|
208
|
+
* @param user - 当前用户
|
|
209
|
+
* @returns License 使用量信息
|
|
210
|
+
*/
|
|
86
211
|
getLicenseUsage(user: User): Promise<LicenseUsageResponse | null>;
|
|
212
|
+
/**
|
|
213
|
+
* 获取 License 详细信息
|
|
214
|
+
*
|
|
215
|
+
* @param user - 当前用户
|
|
216
|
+
* @param licenseKey - 可选的 License Key,如果不提供则从 user 的 license 中获取
|
|
217
|
+
* @returns License 详细信息
|
|
218
|
+
*/
|
|
87
219
|
getLicenseInfo(user: User, licenseKey?: string): Promise<any>;
|
|
220
|
+
/**
|
|
221
|
+
* 重置 License 使用量
|
|
222
|
+
* 清除同步数据库和发布数据
|
|
223
|
+
*
|
|
224
|
+
* @param user - 当前用户
|
|
225
|
+
* @returns 重置结果
|
|
226
|
+
*/
|
|
88
227
|
resetUsage(user: User): Promise<{
|
|
89
228
|
success: boolean;
|
|
90
229
|
message?: string;
|
|
91
230
|
}>;
|
|
231
|
+
/**
|
|
232
|
+
* 获取域名信息
|
|
233
|
+
*
|
|
234
|
+
* @param user - 当前用户
|
|
235
|
+
* @returns 域名信息(包括子域名和自定义域名)
|
|
236
|
+
*/
|
|
92
237
|
getDomains(user: User): Promise<DomainInfo | null>;
|
|
238
|
+
/**
|
|
239
|
+
* 检查子域名可用性
|
|
240
|
+
*
|
|
241
|
+
* @param user - 当前用户
|
|
242
|
+
* @param subdomain - 要检查的子域名
|
|
243
|
+
* @returns 可用性检查结果
|
|
244
|
+
*/
|
|
93
245
|
checkSubdomainAvailability(user: User, subdomain: string): Promise<SubdomainCheckResponse | null>;
|
|
246
|
+
/**
|
|
247
|
+
* 更新子域名
|
|
248
|
+
*
|
|
249
|
+
* @param user - 当前用户
|
|
250
|
+
* @param newSubdomain - 新的子域名
|
|
251
|
+
* @returns 更新结果
|
|
252
|
+
*/
|
|
94
253
|
updateSubdomain(user: User, newSubdomain: string): Promise<SubdomainUpdateResponse | null>;
|
|
254
|
+
/**
|
|
255
|
+
* 检查自定义域名 DNS 配置
|
|
256
|
+
*
|
|
257
|
+
* @param user - 当前用户
|
|
258
|
+
* @param domain - 要检查的域名
|
|
259
|
+
* @returns DNS 检查结果
|
|
260
|
+
*/
|
|
95
261
|
checkCustomDomain(user: User, domain: string): Promise<{
|
|
96
262
|
dns_valid: boolean;
|
|
97
263
|
ready: boolean;
|
|
98
264
|
message: string;
|
|
99
265
|
resolved_ips?: string[];
|
|
100
266
|
} | null>;
|
|
267
|
+
/**
|
|
268
|
+
* 添加自定义域名
|
|
269
|
+
*
|
|
270
|
+
* @param user - 当前用户
|
|
271
|
+
* @param domain - 要添加的域名
|
|
272
|
+
* @returns 添加结果
|
|
273
|
+
*/
|
|
101
274
|
addCustomDomain(user: User, domain: string): Promise<{
|
|
102
275
|
domain: string;
|
|
103
276
|
status: string;
|
|
104
277
|
message: string;
|
|
105
278
|
} | null>;
|
|
279
|
+
/**
|
|
280
|
+
* 检查自定义域名 HTTPS 证书状态
|
|
281
|
+
*
|
|
282
|
+
* @param user - 当前用户
|
|
283
|
+
* @param domain - 要检查的域名
|
|
284
|
+
* @returns HTTPS 状态
|
|
285
|
+
*/
|
|
106
286
|
checkCustomDomainHttpsStatus(user: User, domain: string): Promise<{
|
|
107
287
|
status: string;
|
|
108
288
|
tls_ready: boolean;
|
|
@@ -111,6 +291,9 @@ export declare class UserFactory {
|
|
|
111
291
|
certificate?: any;
|
|
112
292
|
} | null>;
|
|
113
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* License Usage Response (from API)
|
|
296
|
+
*/
|
|
114
297
|
export interface LicenseUsageResponse {
|
|
115
298
|
devices: {
|
|
116
299
|
count: number;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Repository Interfaces
|
|
3
|
+
*
|
|
4
|
+
* 定义 Identity Domain 需要的存储接口
|
|
5
|
+
* 由 Infrastructure 层或其他 Domain 提供实现
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* HTTP Client 接口
|
|
9
|
+
* 用于发送 HTTP 请求(登录、注册等)
|
|
10
|
+
*/
|
|
1
11
|
export interface HttpClient {
|
|
2
12
|
post(url: string, data: any, headers?: Record<string, string>): Promise<HttpResponse>;
|
|
3
13
|
postForm(url: string, data: Record<string, string>): Promise<HttpResponse>;
|
|
@@ -9,7 +19,21 @@ export interface HttpResponse {
|
|
|
9
19
|
data: any;
|
|
10
20
|
text(): Promise<string>;
|
|
11
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Identity Storage Provider 接口
|
|
24
|
+
*
|
|
25
|
+
* 定义 Identity Domain 需要的存储能力
|
|
26
|
+
* 实现由 Workspace Domain 提供(通过 Application Layer 协调)
|
|
27
|
+
*
|
|
28
|
+
* 这是依赖倒置的关键:
|
|
29
|
+
* - Identity Domain 定义自己需要什么存储能力
|
|
30
|
+
* - Workspace Domain 实现这些能力
|
|
31
|
+
* - Application Layer 负责组装
|
|
32
|
+
*/
|
|
12
33
|
export interface IdentityStorageProvider {
|
|
34
|
+
/**
|
|
35
|
+
* 保存用户数据(合并 token, license, server config, sync config 到一个文件)
|
|
36
|
+
*/
|
|
13
37
|
saveUserData(data: {
|
|
14
38
|
token?: any;
|
|
15
39
|
license?: any;
|
|
@@ -17,6 +41,9 @@ export interface IdentityStorageProvider {
|
|
|
17
41
|
serverConfig?: any;
|
|
18
42
|
email?: string;
|
|
19
43
|
}): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* 加载用户数据
|
|
46
|
+
*/
|
|
20
47
|
loadUserData(): Promise<{
|
|
21
48
|
token?: any;
|
|
22
49
|
license?: any;
|
|
@@ -24,5 +51,8 @@ export interface IdentityStorageProvider {
|
|
|
24
51
|
serverConfig?: any;
|
|
25
52
|
email?: string;
|
|
26
53
|
} | null>;
|
|
54
|
+
/**
|
|
55
|
+
* 清除用户数据
|
|
56
|
+
*/
|
|
27
57
|
clearUserData(): Promise<void>;
|
|
28
58
|
}
|
|
@@ -1,17 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Domain Types
|
|
3
|
+
*
|
|
4
|
+
* 这些是简单的数据传输对象 (DTOs),不是 Domain 对象
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* User credentials (用于登录/注册)
|
|
8
|
+
*/
|
|
1
9
|
export interface UserCredentials {
|
|
2
10
|
email: string;
|
|
3
11
|
password: string;
|
|
4
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* User profile (用户资料)
|
|
15
|
+
*/
|
|
5
16
|
export interface UserProfile {
|
|
6
17
|
email: string;
|
|
7
18
|
name?: string;
|
|
8
19
|
avatar?: string;
|
|
9
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Login response (登录响应)
|
|
23
|
+
*/
|
|
10
24
|
export interface LoginResponse {
|
|
11
25
|
token: string;
|
|
12
26
|
expiresAt?: number;
|
|
13
27
|
user?: UserProfile;
|
|
14
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Register response (注册响应)
|
|
31
|
+
*/
|
|
15
32
|
export interface RegisterResponse {
|
|
16
33
|
token: string;
|
|
17
34
|
expiresAt?: number;
|
|
@@ -1,13 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Device Value Object
|
|
3
|
+
*
|
|
4
|
+
* 不可变的设备值对象
|
|
5
|
+
* 用于 License 激活时的设备识别
|
|
6
|
+
*/
|
|
1
7
|
export type DeviceType = 'desktop' | 'mobile' | 'tablet';
|
|
2
8
|
export declare class Device {
|
|
3
9
|
private readonly id;
|
|
4
10
|
private readonly name;
|
|
5
11
|
private readonly type;
|
|
6
12
|
private constructor();
|
|
13
|
+
/**
|
|
14
|
+
* 创建 Device 实例
|
|
15
|
+
*/
|
|
7
16
|
static create(id: string, name: string, type: DeviceType): Device;
|
|
17
|
+
/**
|
|
18
|
+
* 从当前环境创建 Device
|
|
19
|
+
* 使用浏览器特征生成稳定的设备指纹
|
|
20
|
+
*/
|
|
8
21
|
static createFromEnvironment(): Promise<Device>;
|
|
22
|
+
/**
|
|
23
|
+
* 生成稳定的设备指纹
|
|
24
|
+
* 使用浏览器/系统特征,在会话间保持稳定
|
|
25
|
+
* 适配 Node.js 和 Browser/Electron 环境
|
|
26
|
+
*/
|
|
9
27
|
private static generateFingerprint;
|
|
28
|
+
/**
|
|
29
|
+
* 获取设备名称
|
|
30
|
+
* 适配 Node.js 和 Browser/Electron 环境
|
|
31
|
+
*/
|
|
10
32
|
private static getDeviceName;
|
|
33
|
+
/**
|
|
34
|
+
* 获取设备类型
|
|
35
|
+
* 适配 Node.js 和 Browser/Electron 环境
|
|
36
|
+
*/
|
|
11
37
|
private static getDeviceType;
|
|
12
38
|
getId(): string;
|
|
13
39
|
getName(): string;
|
|
@@ -1,12 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Email Value Object
|
|
3
|
+
*
|
|
4
|
+
* 不可变的电子邮件地址值对象
|
|
5
|
+
*/
|
|
1
6
|
export declare class Email {
|
|
2
7
|
private readonly value;
|
|
3
8
|
private constructor();
|
|
9
|
+
/**
|
|
10
|
+
* 创建 Email 实例
|
|
11
|
+
*/
|
|
4
12
|
static create(email: string): Email;
|
|
13
|
+
/**
|
|
14
|
+
* 验证邮箱格式
|
|
15
|
+
*/
|
|
5
16
|
static isValid(email: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* 获取邮箱字符串
|
|
19
|
+
*/
|
|
6
20
|
getValue(): string;
|
|
21
|
+
/**
|
|
22
|
+
* 获取邮箱域名
|
|
23
|
+
*/
|
|
7
24
|
getDomain(): string;
|
|
25
|
+
/**
|
|
26
|
+
* 获取用户名部分
|
|
27
|
+
*/
|
|
8
28
|
getLocalPart(): string;
|
|
29
|
+
/**
|
|
30
|
+
* 比较两个 Email 是否相等
|
|
31
|
+
*/
|
|
9
32
|
equals(other: Email): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* 转换为字符串
|
|
35
|
+
*/
|
|
10
36
|
toString(): string;
|
|
37
|
+
/**
|
|
38
|
+
* 序列化为 JSON
|
|
39
|
+
*/
|
|
11
40
|
toJSON(): string;
|
|
12
41
|
}
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* License Value Object
|
|
3
|
+
*
|
|
4
|
+
* 不可变的许可证值对象
|
|
5
|
+
*
|
|
6
|
+
* License Key format: MDF-XXXX-XXXX-XXXX
|
|
7
|
+
* - License key 可以直接生成 email 和 password
|
|
8
|
+
* - email = [key-without-prefix]@mdfriday.com
|
|
9
|
+
* - password = base64(key-without-prefix)
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* License Features
|
|
13
|
+
*/
|
|
1
14
|
export interface LicenseFeatures {
|
|
2
15
|
maxDevices: number;
|
|
3
16
|
maxIps: number;
|
|
@@ -10,6 +23,9 @@ export interface LicenseFeatures {
|
|
|
10
23
|
customSubDomain: boolean;
|
|
11
24
|
validityDays: number;
|
|
12
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* License Plan Type
|
|
28
|
+
*/
|
|
13
29
|
export type LicensePlan = 'free' | 'starter' | 'enjoy' | 'creator' | 'pro' | 'enterprise';
|
|
14
30
|
export declare class License {
|
|
15
31
|
private readonly key;
|
|
@@ -20,7 +36,13 @@ export declare class License {
|
|
|
20
36
|
private readonly activated;
|
|
21
37
|
private readonly firstTime;
|
|
22
38
|
private constructor();
|
|
39
|
+
/**
|
|
40
|
+
* 创建 License 实例
|
|
41
|
+
*/
|
|
23
42
|
static create(key: string, plan: LicensePlan, expiresAt: number, features: LicenseFeatures, activatedAt?: number, activated?: boolean, firstTime?: boolean): License;
|
|
43
|
+
/**
|
|
44
|
+
* 从 JSON 数据创建 License
|
|
45
|
+
*/
|
|
24
46
|
static fromJSON(data: {
|
|
25
47
|
key: string;
|
|
26
48
|
plan: LicensePlan;
|
|
@@ -30,25 +52,91 @@ export declare class License {
|
|
|
30
52
|
activated?: boolean;
|
|
31
53
|
firstTime?: boolean;
|
|
32
54
|
}): License;
|
|
55
|
+
/**
|
|
56
|
+
* 验证 License Key 格式
|
|
57
|
+
* Expected format: MDF-XXXX-XXXX-XXXX (alphanumeric)
|
|
58
|
+
*/
|
|
33
59
|
static isValidFormat(key: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* 检查 License 是否已过期
|
|
62
|
+
*/
|
|
34
63
|
isExpired(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* 检查 License 是否有效(未过期)
|
|
66
|
+
*/
|
|
35
67
|
isValid(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* 获取剩余天数
|
|
70
|
+
*/
|
|
36
71
|
getDaysRemaining(): number;
|
|
72
|
+
/**
|
|
73
|
+
* 从 License Key 生成 Email
|
|
74
|
+
* Format: [key-without-prefix]@mdfriday.com
|
|
75
|
+
* Example: MDF-ABC1-DEF2-GHI3 → abc1-def2-ghi3@mdfriday.com
|
|
76
|
+
*/
|
|
37
77
|
getEmail(): string;
|
|
78
|
+
/**
|
|
79
|
+
* 从 License Key 生成 Password
|
|
80
|
+
* Uses base64 encoding of the key portion (without MDF- prefix)
|
|
81
|
+
* 适配 Browser 和 Node.js 环境
|
|
82
|
+
*/
|
|
38
83
|
getPassword(): string;
|
|
84
|
+
/**
|
|
85
|
+
* Manual base64 encoding fallback
|
|
86
|
+
*/
|
|
39
87
|
private manualBase64Encode;
|
|
88
|
+
/**
|
|
89
|
+
* 获取 License Key(原始格式)
|
|
90
|
+
*/
|
|
40
91
|
getKey(): string;
|
|
92
|
+
/**
|
|
93
|
+
* 获取掩码后的 License Key
|
|
94
|
+
* Shows: MDF-••••-••••-XXXX
|
|
95
|
+
*/
|
|
41
96
|
getMaskedKey(): string;
|
|
97
|
+
/**
|
|
98
|
+
* 获取 Plan
|
|
99
|
+
*/
|
|
42
100
|
getPlan(): LicensePlan;
|
|
101
|
+
/**
|
|
102
|
+
* 获取格式化的 Plan 名称
|
|
103
|
+
*/
|
|
43
104
|
getFormattedPlan(): string;
|
|
105
|
+
/**
|
|
106
|
+
* 获取过期时间戳
|
|
107
|
+
*/
|
|
44
108
|
getExpiresAt(): number;
|
|
109
|
+
/**
|
|
110
|
+
* 获取格式化的过期日期
|
|
111
|
+
*/
|
|
45
112
|
getFormattedExpiresAt(): string;
|
|
113
|
+
/**
|
|
114
|
+
* 获取 Features
|
|
115
|
+
*/
|
|
46
116
|
getFeatures(): LicenseFeatures;
|
|
117
|
+
/**
|
|
118
|
+
* 获取激活时间
|
|
119
|
+
*/
|
|
47
120
|
getActivatedAt(): number;
|
|
121
|
+
/**
|
|
122
|
+
* 获取激活状态
|
|
123
|
+
*/
|
|
48
124
|
isActivated(): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* 是否首次激活
|
|
127
|
+
*/
|
|
49
128
|
isFirstTime(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* 检查是否是试用 License
|
|
131
|
+
*/
|
|
50
132
|
isTrial(): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* 比较两个 License 是否相同
|
|
135
|
+
*/
|
|
51
136
|
equals(other: License): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* 序列化为 JSON
|
|
139
|
+
*/
|
|
52
140
|
toJSON(): {
|
|
53
141
|
key: string;
|
|
54
142
|
plan: LicensePlan;
|
|
@@ -58,6 +146,9 @@ export declare class License {
|
|
|
58
146
|
activated: boolean;
|
|
59
147
|
firstTime: boolean;
|
|
60
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* 转换为存储格式(包含掩码)
|
|
151
|
+
*/
|
|
61
152
|
toStorageFormat(): {
|
|
62
153
|
key: string;
|
|
63
154
|
maskedKey: string;
|
|
@@ -1,19 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ServerConfig Value Object
|
|
3
|
+
*
|
|
4
|
+
* 不可变的服务器配置值对象
|
|
5
|
+
*/
|
|
1
6
|
export declare class ServerConfig {
|
|
2
7
|
private readonly apiUrl;
|
|
3
8
|
private readonly websiteUrl;
|
|
4
9
|
private constructor();
|
|
10
|
+
/**
|
|
11
|
+
* 创建 ServerConfig 实例
|
|
12
|
+
*/
|
|
5
13
|
static create(apiUrl: string, websiteUrl?: string): ServerConfig;
|
|
14
|
+
/**
|
|
15
|
+
* 从 JSON 数据创建 ServerConfig
|
|
16
|
+
*/
|
|
6
17
|
static fromJSON(data: {
|
|
7
18
|
apiUrl: string;
|
|
8
19
|
websiteUrl?: string;
|
|
9
20
|
}): ServerConfig;
|
|
21
|
+
/**
|
|
22
|
+
* 创建默认配置
|
|
23
|
+
*
|
|
24
|
+
* 用户可以通过 mdf auth:config 命令修改服务器 URL
|
|
25
|
+
*/
|
|
10
26
|
static createDefault(): ServerConfig;
|
|
27
|
+
/**
|
|
28
|
+
* 验证 URL 格式
|
|
29
|
+
*/
|
|
11
30
|
private static isValidUrl;
|
|
31
|
+
/**
|
|
32
|
+
* 获取 API URL
|
|
33
|
+
*/
|
|
12
34
|
getApiUrl(): string;
|
|
35
|
+
/**
|
|
36
|
+
* 获取网站 URL
|
|
37
|
+
*/
|
|
13
38
|
getWebsiteUrl(): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* 更新 API URL(返回新实例)
|
|
41
|
+
*/
|
|
14
42
|
withApiUrl(apiUrl: string): ServerConfig;
|
|
43
|
+
/**
|
|
44
|
+
* 更新网站 URL(返回新实例)
|
|
45
|
+
*/
|
|
15
46
|
withWebsiteUrl(websiteUrl?: string): ServerConfig;
|
|
47
|
+
/**
|
|
48
|
+
* 比较两个 ServerConfig 是否相等
|
|
49
|
+
*/
|
|
16
50
|
equals(other: ServerConfig): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* 序列化为 JSON
|
|
53
|
+
*/
|
|
17
54
|
toJSON(): {
|
|
18
55
|
apiUrl: string;
|
|
19
56
|
websiteUrl?: string;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sync Configuration Value Object
|
|
3
|
+
*
|
|
4
|
+
* 同步配置值对象,用于存储 CouchDB 同步配置信息
|
|
5
|
+
* 此配置从 License 激活时由后端返回
|
|
6
|
+
*/
|
|
1
7
|
export interface SyncConfigData {
|
|
2
8
|
dbEndpoint: string;
|
|
3
9
|
dbName: string;
|
|
@@ -14,17 +20,55 @@ export declare class SyncConfig {
|
|
|
14
20
|
private readonly userDir;
|
|
15
21
|
private readonly status;
|
|
16
22
|
private constructor();
|
|
23
|
+
/**
|
|
24
|
+
* 创建 SyncConfig 实例
|
|
25
|
+
*/
|
|
17
26
|
static create(data: SyncConfigData): SyncConfig;
|
|
27
|
+
/**
|
|
28
|
+
* 从 JSON 数据创建 SyncConfig
|
|
29
|
+
*/
|
|
18
30
|
static fromJSON(data: SyncConfigData): SyncConfig;
|
|
31
|
+
/**
|
|
32
|
+
* 获取数据库端点 URL(包含数据库名)
|
|
33
|
+
*/
|
|
19
34
|
getDbEndpoint(): string;
|
|
35
|
+
/**
|
|
36
|
+
* 获取数据库名称
|
|
37
|
+
*/
|
|
20
38
|
getDbName(): string;
|
|
39
|
+
/**
|
|
40
|
+
* 获取用户邮箱
|
|
41
|
+
*/
|
|
21
42
|
getEmail(): string;
|
|
43
|
+
/**
|
|
44
|
+
* 获取数据库密码
|
|
45
|
+
*/
|
|
22
46
|
getDbPassword(): string;
|
|
47
|
+
/**
|
|
48
|
+
* 获取用户目录
|
|
49
|
+
*/
|
|
23
50
|
getUserDir(): string;
|
|
51
|
+
/**
|
|
52
|
+
* 获取同步账号状态
|
|
53
|
+
*/
|
|
24
54
|
getStatus(): string;
|
|
55
|
+
/**
|
|
56
|
+
* 检查同步账号是否激活
|
|
57
|
+
*/
|
|
25
58
|
isActive(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* 获取 CouchDB URI(不包含数据库名)
|
|
61
|
+
* 例如:https://couch.example.com/dbname -> https://couch.example.com
|
|
62
|
+
*/
|
|
26
63
|
getCouchDbUri(): string;
|
|
64
|
+
/**
|
|
65
|
+
* 序列化为 JSON
|
|
66
|
+
*/
|
|
27
67
|
toJSON(): SyncConfigData;
|
|
68
|
+
/**
|
|
69
|
+
* 转换为 Obsidian LiveSync 插件格式
|
|
70
|
+
* 用于直接配置 Obsidian 的 LiveSync 插件
|
|
71
|
+
*/
|
|
28
72
|
toObsidianLiveSyncFormat(): {
|
|
29
73
|
couchDB_URI: string;
|
|
30
74
|
couchDB_DBNAME: string;
|
|
@@ -35,5 +79,8 @@ export declare class SyncConfig {
|
|
|
35
79
|
syncOnSave: boolean;
|
|
36
80
|
liveSync: boolean;
|
|
37
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* 比较两个 SyncConfig 是否相同
|
|
84
|
+
*/
|
|
38
85
|
equals(other: SyncConfig): boolean;
|
|
39
86
|
}
|