ysk-omni 1.0.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/.env.example +80 -0
- package/LICENSE +21 -0
- package/README-ZH.md +51 -0
- package/README.md +41 -0
- package/dist/app.d.ts +3 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +277 -0
- package/dist/app.js.map +1 -0
- package/dist/catalog/curated.d.ts +14 -0
- package/dist/catalog/curated.d.ts.map +1 -0
- package/dist/catalog/curated.js +30 -0
- package/dist/catalog/curated.js.map +1 -0
- package/dist/cli/commands/admin-otp.d.ts +10 -0
- package/dist/cli/commands/admin-otp.d.ts.map +1 -0
- package/dist/cli/commands/admin-otp.js +82 -0
- package/dist/cli/commands/admin-otp.js.map +1 -0
- package/dist/cli/commands/admin-panel.d.ts +13 -0
- package/dist/cli/commands/admin-panel.d.ts.map +1 -0
- package/dist/cli/commands/admin-panel.js +98 -0
- package/dist/cli/commands/admin-panel.js.map +1 -0
- package/dist/cli/commands/admin-sessions.d.ts +6 -0
- package/dist/cli/commands/admin-sessions.d.ts.map +1 -0
- package/dist/cli/commands/admin-sessions.js +62 -0
- package/dist/cli/commands/admin-sessions.js.map +1 -0
- package/dist/cli/commands/api-features.d.ts +8 -0
- package/dist/cli/commands/api-features.d.ts.map +1 -0
- package/dist/cli/commands/api-features.js +136 -0
- package/dist/cli/commands/api-features.js.map +1 -0
- package/dist/cli/commands/audit.d.ts +7 -0
- package/dist/cli/commands/audit.d.ts.map +1 -0
- package/dist/cli/commands/audit.js +48 -0
- package/dist/cli/commands/audit.js.map +1 -0
- package/dist/cli/commands/catalog.d.ts +26 -0
- package/dist/cli/commands/catalog.d.ts.map +1 -0
- package/dist/cli/commands/catalog.js +223 -0
- package/dist/cli/commands/catalog.js.map +1 -0
- package/dist/cli/commands/chats.d.ts +10 -0
- package/dist/cli/commands/chats.d.ts.map +1 -0
- package/dist/cli/commands/chats.js +97 -0
- package/dist/cli/commands/chats.js.map +1 -0
- package/dist/cli/commands/conversations.d.ts +10 -0
- package/dist/cli/commands/conversations.d.ts.map +1 -0
- package/dist/cli/commands/conversations.js +68 -0
- package/dist/cli/commands/conversations.js.map +1 -0
- package/dist/cli/commands/ddos.d.ts +18 -0
- package/dist/cli/commands/ddos.d.ts.map +1 -0
- package/dist/cli/commands/ddos.js +298 -0
- package/dist/cli/commands/ddos.js.map +1 -0
- package/dist/cli/commands/docs.d.ts +13 -0
- package/dist/cli/commands/docs.d.ts.map +1 -0
- package/dist/cli/commands/docs.js +104 -0
- package/dist/cli/commands/docs.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +6 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +207 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/key.d.ts +42 -0
- package/dist/cli/commands/key.d.ts.map +1 -0
- package/dist/cli/commands/key.js +192 -0
- package/dist/cli/commands/key.js.map +1 -0
- package/dist/cli/commands/logs.d.ts +19 -0
- package/dist/cli/commands/logs.d.ts.map +1 -0
- package/dist/cli/commands/logs.js +104 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +5 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +25 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/models.d.ts +5 -0
- package/dist/cli/commands/models.d.ts.map +1 -0
- package/dist/cli/commands/models.js +68 -0
- package/dist/cli/commands/models.js.map +1 -0
- package/dist/cli/commands/open.d.ts +7 -0
- package/dist/cli/commands/open.d.ts.map +1 -0
- package/dist/cli/commands/open.js +24 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/queue.d.ts +33 -0
- package/dist/cli/commands/queue.d.ts.map +1 -0
- package/dist/cli/commands/queue.js +467 -0
- package/dist/cli/commands/queue.js.map +1 -0
- package/dist/cli/commands/restart.d.ts +8 -0
- package/dist/cli/commands/restart.d.ts.map +1 -0
- package/dist/cli/commands/restart.js +36 -0
- package/dist/cli/commands/restart.js.map +1 -0
- package/dist/cli/commands/runtimes.d.ts +9 -0
- package/dist/cli/commands/runtimes.d.ts.map +1 -0
- package/dist/cli/commands/runtimes.js +87 -0
- package/dist/cli/commands/runtimes.js.map +1 -0
- package/dist/cli/commands/seed.d.ts +5 -0
- package/dist/cli/commands/seed.d.ts.map +1 -0
- package/dist/cli/commands/seed.js +22 -0
- package/dist/cli/commands/seed.js.map +1 -0
- package/dist/cli/commands/settings.d.ts +13 -0
- package/dist/cli/commands/settings.d.ts.map +1 -0
- package/dist/cli/commands/settings.js +182 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +6 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +70 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +9 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +140 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +3 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +83 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/status.d.ts +6 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +70 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +11 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +51 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/update.d.ts +9 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +182 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/version.d.ts +2 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +16 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +835 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/auto-migrate.d.ts +14 -0
- package/dist/cli/lib/auto-migrate.d.ts.map +1 -0
- package/dist/cli/lib/auto-migrate.js +42 -0
- package/dist/cli/lib/auto-migrate.js.map +1 -0
- package/dist/cli/lib/db-keys.d.ts +51 -0
- package/dist/cli/lib/db-keys.d.ts.map +1 -0
- package/dist/cli/lib/db-keys.js +207 -0
- package/dist/cli/lib/db-keys.js.map +1 -0
- package/dist/cli/lib/env-file.d.ts +14 -0
- package/dist/cli/lib/env-file.d.ts.map +1 -0
- package/dist/cli/lib/env-file.js +143 -0
- package/dist/cli/lib/env-file.js.map +1 -0
- package/dist/cli/lib/paths.d.ts +27 -0
- package/dist/cli/lib/paths.d.ts.map +1 -0
- package/dist/cli/lib/paths.js +87 -0
- package/dist/cli/lib/paths.js.map +1 -0
- package/dist/cli/lib/pm2-runner.d.ts +14 -0
- package/dist/cli/lib/pm2-runner.d.ts.map +1 -0
- package/dist/cli/lib/pm2-runner.js +179 -0
- package/dist/cli/lib/pm2-runner.js.map +1 -0
- package/dist/cli/lib/print-table.d.ts +3 -0
- package/dist/cli/lib/print-table.d.ts.map +1 -0
- package/dist/cli/lib/print-table.js +29 -0
- package/dist/cli/lib/print-table.js.map +1 -0
- package/dist/cli/lib/print.d.ts +10 -0
- package/dist/cli/lib/print.d.ts.map +1 -0
- package/dist/cli/lib/print.js +28 -0
- package/dist/cli/lib/print.js.map +1 -0
- package/dist/cli/lib/process-mgr.d.ts +23 -0
- package/dist/cli/lib/process-mgr.d.ts.map +1 -0
- package/dist/cli/lib/process-mgr.js +207 -0
- package/dist/cli/lib/process-mgr.js.map +1 -0
- package/dist/cli/lib/run-prisma.d.ts +13 -0
- package/dist/cli/lib/run-prisma.d.ts.map +1 -0
- package/dist/cli/lib/run-prisma.js +99 -0
- package/dist/cli/lib/run-prisma.js.map +1 -0
- package/dist/cli/lib/runner-info.d.ts +20 -0
- package/dist/cli/lib/runner-info.d.ts.map +1 -0
- package/dist/cli/lib/runner-info.js +120 -0
- package/dist/cli/lib/runner-info.js.map +1 -0
- package/dist/cli/lib/runtime-context.d.ts +23 -0
- package/dist/cli/lib/runtime-context.d.ts.map +1 -0
- package/dist/cli/lib/runtime-context.js +60 -0
- package/dist/cli/lib/runtime-context.js.map +1 -0
- package/dist/cli/lib/seed-admin.d.ts +17 -0
- package/dist/cli/lib/seed-admin.d.ts.map +1 -0
- package/dist/cli/lib/seed-admin.js +80 -0
- package/dist/cli/lib/seed-admin.js.map +1 -0
- package/dist/cli/lib/spinner.d.ts +20 -0
- package/dist/cli/lib/spinner.d.ts.map +1 -0
- package/dist/cli/lib/spinner.js +72 -0
- package/dist/cli/lib/spinner.js.map +1 -0
- package/dist/config/constants.d.ts +143 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +355 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/cors.d.ts +3 -0
- package/dist/config/cors.d.ts.map +1 -0
- package/dist/config/cors.js +30 -0
- package/dist/config/cors.js.map +1 -0
- package/dist/config/database.d.ts +4 -0
- package/dist/config/database.d.ts.map +1 -0
- package/dist/config/database.js +18 -0
- package/dist/config/database.js.map +1 -0
- package/dist/config/env.d.ts +48 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +163 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/omni-home.d.ts +3 -0
- package/dist/config/omni-home.d.ts.map +1 -0
- package/dist/config/omni-home.js +16 -0
- package/dist/config/omni-home.js.map +1 -0
- package/dist/controllers/admin/api-features.handlers.d.ts +6 -0
- package/dist/controllers/admin/api-features.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/api-features.handlers.js +62 -0
- package/dist/controllers/admin/api-features.handlers.js.map +1 -0
- package/dist/controllers/admin/audit.handlers.d.ts +5 -0
- package/dist/controllers/admin/audit.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/audit.handlers.js +79 -0
- package/dist/controllers/admin/audit.handlers.js.map +1 -0
- package/dist/controllers/admin/auth.handlers.d.ts +8 -0
- package/dist/controllers/admin/auth.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/auth.handlers.js +56 -0
- package/dist/controllers/admin/auth.handlers.js.map +1 -0
- package/dist/controllers/admin/catalog.handlers.d.ts +10 -0
- package/dist/controllers/admin/catalog.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/catalog.handlers.js +170 -0
- package/dist/controllers/admin/catalog.handlers.js.map +1 -0
- package/dist/controllers/admin/chats.handlers.d.ts +6 -0
- package/dist/controllers/admin/chats.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/chats.handlers.js +22 -0
- package/dist/controllers/admin/chats.handlers.js.map +1 -0
- package/dist/controllers/admin/conversations.handlers.d.ts +9 -0
- package/dist/controllers/admin/conversations.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/conversations.handlers.js +70 -0
- package/dist/controllers/admin/conversations.handlers.js.map +1 -0
- package/dist/controllers/admin/core.handlers.d.ts +13 -0
- package/dist/controllers/admin/core.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/core.handlers.js +201 -0
- package/dist/controllers/admin/core.handlers.js.map +1 -0
- package/dist/controllers/admin/ddos.handlers.d.ts +13 -0
- package/dist/controllers/admin/ddos.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/ddos.handlers.js +178 -0
- package/dist/controllers/admin/ddos.handlers.js.map +1 -0
- package/dist/controllers/admin/documents.handlers.d.ts +8 -0
- package/dist/controllers/admin/documents.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/documents.handlers.js +207 -0
- package/dist/controllers/admin/documents.handlers.js.map +1 -0
- package/dist/controllers/admin/keys.handlers.d.ts +8 -0
- package/dist/controllers/admin/keys.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/keys.handlers.js +84 -0
- package/dist/controllers/admin/keys.handlers.js.map +1 -0
- package/dist/controllers/admin/media.handlers.d.ts +27 -0
- package/dist/controllers/admin/media.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/media.handlers.js +637 -0
- package/dist/controllers/admin/media.handlers.js.map +1 -0
- package/dist/controllers/admin/playground.handlers.d.ts +6 -0
- package/dist/controllers/admin/playground.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/playground.handlers.js +76 -0
- package/dist/controllers/admin/playground.handlers.js.map +1 -0
- package/dist/controllers/admin/pm2.handlers.d.ts +15 -0
- package/dist/controllers/admin/pm2.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/pm2.handlers.js +161 -0
- package/dist/controllers/admin/pm2.handlers.js.map +1 -0
- package/dist/controllers/admin/queue.handlers.d.ts +16 -0
- package/dist/controllers/admin/queue.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/queue.handlers.js +159 -0
- package/dist/controllers/admin/queue.handlers.js.map +1 -0
- package/dist/controllers/admin/runtimes.handlers.d.ts +6 -0
- package/dist/controllers/admin/runtimes.handlers.d.ts.map +1 -0
- package/dist/controllers/admin/runtimes.handlers.js +54 -0
- package/dist/controllers/admin/runtimes.handlers.js.map +1 -0
- package/dist/controllers/admin/types.d.ts +7 -0
- package/dist/controllers/admin/types.d.ts.map +1 -0
- package/dist/controllers/admin/types.js +3 -0
- package/dist/controllers/admin/types.js.map +1 -0
- package/dist/controllers/admin.controller.d.ts +87 -0
- package/dist/controllers/admin.controller.d.ts.map +1 -0
- package/dist/controllers/admin.controller.js +58 -0
- package/dist/controllers/admin.controller.js.map +1 -0
- package/dist/controllers/anthropic.controller.d.ts +5 -0
- package/dist/controllers/anthropic.controller.d.ts.map +1 -0
- package/dist/controllers/anthropic.controller.js +37 -0
- package/dist/controllers/anthropic.controller.js.map +1 -0
- package/dist/controllers/api-key.controller.d.ts +7 -0
- package/dist/controllers/api-key.controller.d.ts.map +1 -0
- package/dist/controllers/api-key.controller.js +51 -0
- package/dist/controllers/api-key.controller.js.map +1 -0
- package/dist/controllers/assistants.controller.d.ts +13 -0
- package/dist/controllers/assistants.controller.d.ts.map +1 -0
- package/dist/controllers/assistants.controller.js +75 -0
- package/dist/controllers/assistants.controller.js.map +1 -0
- package/dist/controllers/audio.controller.d.ts +10 -0
- package/dist/controllers/audio.controller.d.ts.map +1 -0
- package/dist/controllers/audio.controller.js +43 -0
- package/dist/controllers/audio.controller.js.map +1 -0
- package/dist/controllers/chat.controller.d.ts +5 -0
- package/dist/controllers/chat.controller.d.ts.map +1 -0
- package/dist/controllers/chat.controller.js +34 -0
- package/dist/controllers/chat.controller.js.map +1 -0
- package/dist/controllers/document.controller.d.ts +8 -0
- package/dist/controllers/document.controller.d.ts.map +1 -0
- package/dist/controllers/document.controller.js +54 -0
- package/dist/controllers/document.controller.js.map +1 -0
- package/dist/controllers/files.controller.d.ts +12 -0
- package/dist/controllers/files.controller.d.ts.map +1 -0
- package/dist/controllers/files.controller.js +144 -0
- package/dist/controllers/files.controller.js.map +1 -0
- package/dist/controllers/health.controller.d.ts +6 -0
- package/dist/controllers/health.controller.d.ts.map +1 -0
- package/dist/controllers/health.controller.js +39 -0
- package/dist/controllers/health.controller.js.map +1 -0
- package/dist/controllers/images.controller.d.ts +6 -0
- package/dist/controllers/images.controller.d.ts.map +1 -0
- package/dist/controllers/images.controller.js +66 -0
- package/dist/controllers/images.controller.js.map +1 -0
- package/dist/controllers/media-assets.controller.d.ts +6 -0
- package/dist/controllers/media-assets.controller.d.ts.map +1 -0
- package/dist/controllers/media-assets.controller.js +51 -0
- package/dist/controllers/media-assets.controller.js.map +1 -0
- package/dist/controllers/models.controller.d.ts +7 -0
- package/dist/controllers/models.controller.d.ts.map +1 -0
- package/dist/controllers/models.controller.js +44 -0
- package/dist/controllers/models.controller.js.map +1 -0
- package/dist/controllers/responses.controller.d.ts +7 -0
- package/dist/controllers/responses.controller.d.ts.map +1 -0
- package/dist/controllers/responses.controller.js +83 -0
- package/dist/controllers/responses.controller.js.map +1 -0
- package/dist/controllers/videos.controller.d.ts +7 -0
- package/dist/controllers/videos.controller.d.ts.map +1 -0
- package/dist/controllers/videos.controller.js +46 -0
- package/dist/controllers/videos.controller.js.map +1 -0
- package/dist/dto/admin-auth.dto.d.ts +10 -0
- package/dist/dto/admin-auth.dto.d.ts.map +1 -0
- package/dist/dto/admin-auth.dto.js +12 -0
- package/dist/dto/admin-auth.dto.js.map +1 -0
- package/dist/dto/admin.dto.d.ts +153 -0
- package/dist/dto/admin.dto.d.ts.map +1 -0
- package/dist/dto/admin.dto.js +78 -0
- package/dist/dto/admin.dto.js.map +1 -0
- package/dist/dto/anthropic-messages.dto.d.ts +77 -0
- package/dist/dto/anthropic-messages.dto.d.ts.map +1 -0
- package/dist/dto/anthropic-messages.dto.js +65 -0
- package/dist/dto/anthropic-messages.dto.js.map +1 -0
- package/dist/dto/api-key.dto.d.ts +27 -0
- package/dist/dto/api-key.dto.d.ts.map +1 -0
- package/dist/dto/api-key.dto.js +15 -0
- package/dist/dto/api-key.dto.js.map +1 -0
- package/dist/dto/audio.dto.d.ts +64 -0
- package/dist/dto/audio.dto.d.ts.map +1 -0
- package/dist/dto/audio.dto.js +29 -0
- package/dist/dto/audio.dto.js.map +1 -0
- package/dist/dto/chat.dto.d.ts +451 -0
- package/dist/dto/chat.dto.d.ts.map +1 -0
- package/dist/dto/chat.dto.js +116 -0
- package/dist/dto/chat.dto.js.map +1 -0
- package/dist/dto/conversation.dto.d.ts +286 -0
- package/dist/dto/conversation.dto.d.ts.map +1 -0
- package/dist/dto/conversation.dto.js +78 -0
- package/dist/dto/conversation.dto.js.map +1 -0
- package/dist/dto/ddos.dto.d.ts +191 -0
- package/dist/dto/ddos.dto.d.ts.map +1 -0
- package/dist/dto/ddos.dto.js +57 -0
- package/dist/dto/ddos.dto.js.map +1 -0
- package/dist/dto/document.dto.d.ts +21 -0
- package/dist/dto/document.dto.d.ts.map +1 -0
- package/dist/dto/document.dto.js +12 -0
- package/dist/dto/document.dto.js.map +1 -0
- package/dist/dto/files.dto.d.ts +17 -0
- package/dist/dto/files.dto.d.ts.map +1 -0
- package/dist/dto/files.dto.js +21 -0
- package/dist/dto/files.dto.js.map +1 -0
- package/dist/dto/images.dto.d.ts +68 -0
- package/dist/dto/images.dto.d.ts.map +1 -0
- package/dist/dto/images.dto.js +40 -0
- package/dist/dto/images.dto.js.map +1 -0
- package/dist/dto/index.d.ts +13 -0
- package/dist/dto/index.d.ts.map +1 -0
- package/dist/dto/index.js +44 -0
- package/dist/dto/index.js.map +1 -0
- package/dist/dto/queue.dto.d.ts +126 -0
- package/dist/dto/queue.dto.d.ts.map +1 -0
- package/dist/dto/queue.dto.js +33 -0
- package/dist/dto/queue.dto.js.map +1 -0
- package/dist/dto/responses.dto.d.ts +76 -0
- package/dist/dto/responses.dto.d.ts.map +1 -0
- package/dist/dto/responses.dto.js +139 -0
- package/dist/dto/responses.dto.js.map +1 -0
- package/dist/dto/videos.dto.d.ts +46 -0
- package/dist/dto/videos.dto.d.ts.map +1 -0
- package/dist/dto/videos.dto.js +38 -0
- package/dist/dto/videos.dto.js.map +1 -0
- package/dist/entities/api-key-created.entity.d.ts +6 -0
- package/dist/entities/api-key-created.entity.d.ts.map +1 -0
- package/dist/entities/api-key-created.entity.js +3 -0
- package/dist/entities/api-key-created.entity.js.map +1 -0
- package/dist/entities/api-key-public.entity.d.ts +20 -0
- package/dist/entities/api-key-public.entity.d.ts.map +1 -0
- package/dist/entities/api-key-public.entity.js +3 -0
- package/dist/entities/api-key-public.entity.js.map +1 -0
- package/dist/entities/api-key.entity.d.ts +21 -0
- package/dist/entities/api-key.entity.d.ts.map +1 -0
- package/dist/entities/api-key.entity.js +3 -0
- package/dist/entities/api-key.entity.js.map +1 -0
- package/dist/entities/audit-log-create-input.entity.d.ts +9 -0
- package/dist/entities/audit-log-create-input.entity.d.ts.map +1 -0
- package/dist/entities/audit-log-create-input.entity.js +3 -0
- package/dist/entities/audit-log-create-input.entity.js.map +1 -0
- package/dist/entities/audit-log.entity.d.ts +12 -0
- package/dist/entities/audit-log.entity.d.ts.map +1 -0
- package/dist/entities/audit-log.entity.js +3 -0
- package/dist/entities/audit-log.entity.js.map +1 -0
- package/dist/entities/chat-request-status.type.d.ts +2 -0
- package/dist/entities/chat-request-status.type.d.ts.map +1 -0
- package/dist/entities/chat-request-status.type.js +3 -0
- package/dist/entities/chat-request-status.type.js.map +1 -0
- package/dist/entities/chat-request.entity.d.ts +18 -0
- package/dist/entities/chat-request.entity.d.ts.map +1 -0
- package/dist/entities/chat-request.entity.js +3 -0
- package/dist/entities/chat-request.entity.js.map +1 -0
- package/dist/entities/document-public.entity.d.ts +9 -0
- package/dist/entities/document-public.entity.d.ts.map +1 -0
- package/dist/entities/document-public.entity.js +3 -0
- package/dist/entities/document-public.entity.js.map +1 -0
- package/dist/entities/document-storage-type.type.d.ts +2 -0
- package/dist/entities/document-storage-type.type.d.ts.map +1 -0
- package/dist/entities/document-storage-type.type.js +3 -0
- package/dist/entities/document-storage-type.type.js.map +1 -0
- package/dist/entities/document.entity.d.ts +16 -0
- package/dist/entities/document.entity.d.ts.map +1 -0
- package/dist/entities/document.entity.js +3 -0
- package/dist/entities/document.entity.js.map +1 -0
- package/dist/entities/encrypted-payload.entity.d.ts +6 -0
- package/dist/entities/encrypted-payload.entity.d.ts.map +1 -0
- package/dist/entities/encrypted-payload.entity.js +3 -0
- package/dist/entities/encrypted-payload.entity.js.map +1 -0
- package/dist/entities/index.d.ts +12 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +3 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/exceptions/error-codes.d.ts +30 -0
- package/dist/exceptions/error-codes.d.ts.map +1 -0
- package/dist/exceptions/error-codes.js +32 -0
- package/dist/exceptions/error-codes.js.map +1 -0
- package/dist/exceptions/exception.factory.d.ts +33 -0
- package/dist/exceptions/exception.factory.d.ts.map +1 -0
- package/dist/exceptions/exception.factory.js +90 -0
- package/dist/exceptions/exception.factory.js.map +1 -0
- package/dist/exceptions/http.exception.d.ts +28 -0
- package/dist/exceptions/http.exception.d.ts.map +1 -0
- package/dist/exceptions/http.exception.js +75 -0
- package/dist/exceptions/http.exception.js.map +1 -0
- package/dist/interfaces/anthropic-message.interface.d.ts +27 -0
- package/dist/interfaces/anthropic-message.interface.d.ts.map +1 -0
- package/dist/interfaces/anthropic-message.interface.js +4 -0
- package/dist/interfaces/anthropic-message.interface.js.map +1 -0
- package/dist/interfaces/api-features.type.d.ts +45 -0
- package/dist/interfaces/api-features.type.d.ts.map +1 -0
- package/dist/interfaces/api-features.type.js +61 -0
- package/dist/interfaces/api-features.type.js.map +1 -0
- package/dist/interfaces/api-key-mode.type.d.ts +8 -0
- package/dist/interfaces/api-key-mode.type.d.ts.map +1 -0
- package/dist/interfaces/api-key-mode.type.js +3 -0
- package/dist/interfaces/api-key-mode.type.js.map +1 -0
- package/dist/interfaces/api-key-role.type.d.ts +3 -0
- package/dist/interfaces/api-key-role.type.d.ts.map +1 -0
- package/dist/interfaces/api-key-role.type.js +3 -0
- package/dist/interfaces/api-key-role.type.js.map +1 -0
- package/dist/interfaces/app-settings.type.d.ts +10 -0
- package/dist/interfaces/app-settings.type.d.ts.map +1 -0
- package/dist/interfaces/app-settings.type.js +3 -0
- package/dist/interfaces/app-settings.type.js.map +1 -0
- package/dist/interfaces/auth.interface.d.ts +5 -0
- package/dist/interfaces/auth.interface.d.ts.map +1 -0
- package/dist/interfaces/auth.interface.js +3 -0
- package/dist/interfaces/auth.interface.js.map +1 -0
- package/dist/interfaces/authenticated-api-key.interface.d.ts +18 -0
- package/dist/interfaces/authenticated-api-key.interface.d.ts.map +1 -0
- package/dist/interfaces/authenticated-api-key.interface.js +3 -0
- package/dist/interfaces/authenticated-api-key.interface.js.map +1 -0
- package/dist/interfaces/auto-ban-event.interface.d.ts +11 -0
- package/dist/interfaces/auto-ban-event.interface.d.ts.map +1 -0
- package/dist/interfaces/auto-ban-event.interface.js +3 -0
- package/dist/interfaces/auto-ban-event.interface.js.map +1 -0
- package/dist/interfaces/built-engine-request.interface.d.ts +19 -0
- package/dist/interfaces/built-engine-request.interface.d.ts.map +1 -0
- package/dist/interfaces/built-engine-request.interface.js +3 -0
- package/dist/interfaces/built-engine-request.interface.js.map +1 -0
- package/dist/interfaces/chat-context.interface.d.ts +9 -0
- package/dist/interfaces/chat-context.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-context.interface.js +3 -0
- package/dist/interfaces/chat-context.interface.js.map +1 -0
- package/dist/interfaces/chat-job-payload.interface.d.ts +28 -0
- package/dist/interfaces/chat-job-payload.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-job-payload.interface.js +3 -0
- package/dist/interfaces/chat-job-payload.interface.js.map +1 -0
- package/dist/interfaces/chat-list-query.interface.d.ts +16 -0
- package/dist/interfaces/chat-list-query.interface.d.ts.map +1 -0
- package/dist/interfaces/chat-list-query.interface.js +3 -0
- package/dist/interfaces/chat-list-query.interface.js.map +1 -0
- package/dist/interfaces/document-context-result.interface.d.ts +7 -0
- package/dist/interfaces/document-context-result.interface.d.ts.map +1 -0
- package/dist/interfaces/document-context-result.interface.js +3 -0
- package/dist/interfaces/document-context-result.interface.js.map +1 -0
- package/dist/interfaces/engine-collected-output.interface.d.ts +33 -0
- package/dist/interfaces/engine-collected-output.interface.d.ts.map +1 -0
- package/dist/interfaces/engine-collected-output.interface.js +3 -0
- package/dist/interfaces/engine-collected-output.interface.js.map +1 -0
- package/dist/interfaces/engine-json-result.interface.d.ts +7 -0
- package/dist/interfaces/engine-json-result.interface.d.ts.map +1 -0
- package/dist/interfaces/engine-json-result.interface.js +3 -0
- package/dist/interfaces/engine-json-result.interface.js.map +1 -0
- package/dist/interfaces/engine-response-meta.interface.d.ts +14 -0
- package/dist/interfaces/engine-response-meta.interface.d.ts.map +1 -0
- package/dist/interfaces/engine-response-meta.interface.js +3 -0
- package/dist/interfaces/engine-response-meta.interface.js.map +1 -0
- package/dist/interfaces/engine-run-options.interface.d.ts +66 -0
- package/dist/interfaces/engine-run-options.interface.d.ts.map +1 -0
- package/dist/interfaces/engine-run-options.interface.js +3 -0
- package/dist/interfaces/engine-run-options.interface.js.map +1 -0
- package/dist/interfaces/engine-run-result.interface.d.ts +8 -0
- package/dist/interfaces/engine-run-result.interface.d.ts.map +1 -0
- package/dist/interfaces/engine-run-result.interface.js +3 -0
- package/dist/interfaces/engine-run-result.interface.js.map +1 -0
- package/dist/interfaces/engine-stream-event.type.d.ts +20 -0
- package/dist/interfaces/engine-stream-event.type.d.ts.map +1 -0
- package/dist/interfaces/engine-stream-event.type.js +3 -0
- package/dist/interfaces/engine-stream-event.type.js.map +1 -0
- package/dist/interfaces/engine.interface.d.ts +6 -0
- package/dist/interfaces/engine.interface.d.ts.map +1 -0
- package/dist/interfaces/engine.interface.js +3 -0
- package/dist/interfaces/engine.interface.js.map +1 -0
- package/dist/interfaces/execute-completion-options.interface.d.ts +17 -0
- package/dist/interfaces/execute-completion-options.interface.d.ts.map +1 -0
- package/dist/interfaces/execute-completion-options.interface.js +3 -0
- package/dist/interfaces/execute-completion-options.interface.js.map +1 -0
- package/dist/interfaces/express.interface.d.ts +13 -0
- package/dist/interfaces/express.interface.d.ts.map +1 -0
- package/dist/interfaces/express.interface.js +3 -0
- package/dist/interfaces/express.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +47 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +7 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/install-channel.type.d.ts +2 -0
- package/dist/interfaces/install-channel.type.d.ts.map +1 -0
- package/dist/interfaces/install-channel.type.js +3 -0
- package/dist/interfaces/install-channel.type.js.map +1 -0
- package/dist/interfaces/map-completion-options.interface.d.ts +20 -0
- package/dist/interfaces/map-completion-options.interface.d.ts.map +1 -0
- package/dist/interfaces/map-completion-options.interface.js +3 -0
- package/dist/interfaces/map-completion-options.interface.js.map +1 -0
- package/dist/interfaces/materialized-document.interface.d.ts +10 -0
- package/dist/interfaces/materialized-document.interface.d.ts.map +1 -0
- package/dist/interfaces/materialized-document.interface.js +3 -0
- package/dist/interfaces/materialized-document.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts +25 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-choice.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts +51 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-chunk.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts +55 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion-request.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-completion.interface.d.ts +21 -0
- package/dist/interfaces/open-ai-chat-completion.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-completion.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-completion.interface.js.map +1 -0
- package/dist/interfaces/open-ai-chat-message.interface.d.ts +9 -0
- package/dist/interfaces/open-ai-chat-message.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-chat-message.interface.js +3 -0
- package/dist/interfaces/open-ai-chat-message.interface.js.map +1 -0
- package/dist/interfaces/open-ai-model-list.interface.d.ts +6 -0
- package/dist/interfaces/open-ai-model-list.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-model-list.interface.js +3 -0
- package/dist/interfaces/open-ai-model-list.interface.js.map +1 -0
- package/dist/interfaces/open-ai-model.interface.d.ts +10 -0
- package/dist/interfaces/open-ai-model.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-model.interface.js +3 -0
- package/dist/interfaces/open-ai-model.interface.js.map +1 -0
- package/dist/interfaces/open-ai-response.interface.d.ts +32 -0
- package/dist/interfaces/open-ai-response.interface.d.ts.map +1 -0
- package/dist/interfaces/open-ai-response.interface.js +3 -0
- package/dist/interfaces/open-ai-response.interface.js.map +1 -0
- package/dist/interfaces/open-ai-role.type.d.ts +2 -0
- package/dist/interfaces/open-ai-role.type.d.ts.map +1 -0
- package/dist/interfaces/open-ai-role.type.js +3 -0
- package/dist/interfaces/open-ai-role.type.js.map +1 -0
- package/dist/interfaces/openai.interface.d.ts +11 -0
- package/dist/interfaces/openai.interface.d.ts.map +1 -0
- package/dist/interfaces/openai.interface.js +3 -0
- package/dist/interfaces/openai.interface.js.map +1 -0
- package/dist/interfaces/pm2-runtime-config.interface.d.ts +24 -0
- package/dist/interfaces/pm2-runtime-config.interface.d.ts.map +1 -0
- package/dist/interfaces/pm2-runtime-config.interface.js +3 -0
- package/dist/interfaces/pm2-runtime-config.interface.js.map +1 -0
- package/dist/interfaces/proxy-ip-config.interface.d.ts +12 -0
- package/dist/interfaces/proxy-ip-config.interface.d.ts.map +1 -0
- package/dist/interfaces/proxy-ip-config.interface.js +3 -0
- package/dist/interfaces/proxy-ip-config.interface.js.map +1 -0
- package/dist/interfaces/proxy-ip-source.type.d.ts +7 -0
- package/dist/interfaces/proxy-ip-source.type.d.ts.map +1 -0
- package/dist/interfaces/proxy-ip-source.type.js +3 -0
- package/dist/interfaces/proxy-ip-source.type.js.map +1 -0
- package/dist/interfaces/resolved-policy.interface.d.ts +15 -0
- package/dist/interfaces/resolved-policy.interface.d.ts.map +1 -0
- package/dist/interfaces/resolved-policy.interface.js +3 -0
- package/dist/interfaces/resolved-policy.interface.js.map +1 -0
- package/dist/interfaces/runner-mode.type.d.ts +2 -0
- package/dist/interfaces/runner-mode.type.d.ts.map +1 -0
- package/dist/interfaces/runner-mode.type.js +3 -0
- package/dist/interfaces/runner-mode.type.js.map +1 -0
- package/dist/interfaces/software-check.interface.d.ts +14 -0
- package/dist/interfaces/software-check.interface.d.ts.map +1 -0
- package/dist/interfaces/software-check.interface.js +3 -0
- package/dist/interfaces/software-check.interface.js.map +1 -0
- package/dist/interfaces/software-id.type.d.ts +2 -0
- package/dist/interfaces/software-id.type.d.ts.map +1 -0
- package/dist/interfaces/software-id.type.js +3 -0
- package/dist/interfaces/software-id.type.js.map +1 -0
- package/dist/interfaces/software-level.type.d.ts +2 -0
- package/dist/interfaces/software-level.type.d.ts.map +1 -0
- package/dist/interfaces/software-level.type.js +3 -0
- package/dist/interfaces/software-level.type.js.map +1 -0
- package/dist/interfaces/system-software-report.interface.d.ts +6 -0
- package/dist/interfaces/system-software-report.interface.d.ts.map +1 -0
- package/dist/interfaces/system-software-report.interface.js +3 -0
- package/dist/interfaces/system-software-report.interface.js.map +1 -0
- package/dist/interfaces/tracked-connection.interface.d.ts +16 -0
- package/dist/interfaces/tracked-connection.interface.d.ts.map +1 -0
- package/dist/interfaces/tracked-connection.interface.js +3 -0
- package/dist/interfaces/tracked-connection.interface.js.map +1 -0
- package/dist/interfaces/update-progress.type.d.ts +16 -0
- package/dist/interfaces/update-progress.type.d.ts.map +1 -0
- package/dist/interfaces/update-progress.type.js +3 -0
- package/dist/interfaces/update-progress.type.js.map +1 -0
- package/dist/interfaces/update-result.interface.d.ts +11 -0
- package/dist/interfaces/update-result.interface.d.ts.map +1 -0
- package/dist/interfaces/update-result.interface.js +3 -0
- package/dist/interfaces/update-result.interface.js.map +1 -0
- package/dist/interfaces/version-info.interface.d.ts +21 -0
- package/dist/interfaces/version-info.interface.d.ts.map +1 -0
- package/dist/interfaces/version-info.interface.js +3 -0
- package/dist/interfaces/version-info.interface.js.map +1 -0
- package/dist/interfaces/version-status.type.d.ts +3 -0
- package/dist/interfaces/version-status.type.d.ts.map +1 -0
- package/dist/interfaces/version-status.type.js +3 -0
- package/dist/interfaces/version-status.type.js.map +1 -0
- package/dist/middlewares/auth.middleware.d.ts +13 -0
- package/dist/middlewares/auth.middleware.d.ts.map +1 -0
- package/dist/middlewares/auth.middleware.js +147 -0
- package/dist/middlewares/auth.middleware.js.map +1 -0
- package/dist/middlewares/client-ip.middleware.d.ts +11 -0
- package/dist/middlewares/client-ip.middleware.d.ts.map +1 -0
- package/dist/middlewares/client-ip.middleware.js +19 -0
- package/dist/middlewares/client-ip.middleware.js.map +1 -0
- package/dist/middlewares/concurrency.middleware.d.ts +6 -0
- package/dist/middlewares/concurrency.middleware.d.ts.map +1 -0
- package/dist/middlewares/concurrency.middleware.js +16 -0
- package/dist/middlewares/concurrency.middleware.js.map +1 -0
- package/dist/middlewares/connection-tracker.middleware.d.ts +33 -0
- package/dist/middlewares/connection-tracker.middleware.d.ts.map +1 -0
- package/dist/middlewares/connection-tracker.middleware.js +99 -0
- package/dist/middlewares/connection-tracker.middleware.js.map +1 -0
- package/dist/middlewares/error.middleware.d.ts +4 -0
- package/dist/middlewares/error.middleware.d.ts.map +1 -0
- package/dist/middlewares/error.middleware.js +42 -0
- package/dist/middlewares/error.middleware.js.map +1 -0
- package/dist/middlewares/index.d.ts +11 -0
- package/dist/middlewares/index.d.ts.map +1 -0
- package/dist/middlewares/index.js +35 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/rate-limit.middleware.d.ts +11 -0
- package/dist/middlewares/rate-limit.middleware.d.ts.map +1 -0
- package/dist/middlewares/rate-limit.middleware.js +152 -0
- package/dist/middlewares/rate-limit.middleware.js.map +1 -0
- package/dist/middlewares/request-id.middleware.d.ts +3 -0
- package/dist/middlewares/request-id.middleware.d.ts.map +1 -0
- package/dist/middlewares/request-id.middleware.js +12 -0
- package/dist/middlewares/request-id.middleware.js.map +1 -0
- package/dist/middlewares/upload-images.middleware.d.ts +3 -0
- package/dist/middlewares/upload-images.middleware.d.ts.map +1 -0
- package/dist/middlewares/upload-images.middleware.js +29 -0
- package/dist/middlewares/upload-images.middleware.js.map +1 -0
- package/dist/middlewares/upload.middleware.d.ts +2 -0
- package/dist/middlewares/upload.middleware.d.ts.map +1 -0
- package/dist/middlewares/upload.middleware.js +26 -0
- package/dist/middlewares/upload.middleware.js.map +1 -0
- package/dist/middlewares/validate.middleware.d.ts +6 -0
- package/dist/middlewares/validate.middleware.d.ts.map +1 -0
- package/dist/middlewares/validate.middleware.js +40 -0
- package/dist/middlewares/validate.middleware.js.map +1 -0
- package/dist/routes/admin.routes.d.ts +3 -0
- package/dist/routes/admin.routes.d.ts.map +1 -0
- package/dist/routes/admin.routes.js +136 -0
- package/dist/routes/admin.routes.js.map +1 -0
- package/dist/routes/index.d.ts +3 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +46 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/v1/api-keys.routes.d.ts +3 -0
- package/dist/routes/v1/api-keys.routes.d.ts.map +1 -0
- package/dist/routes/v1/api-keys.routes.js +13 -0
- package/dist/routes/v1/api-keys.routes.js.map +1 -0
- package/dist/routes/v1/assistants.routes.d.ts +3 -0
- package/dist/routes/v1/assistants.routes.d.ts.map +1 -0
- package/dist/routes/v1/assistants.routes.js +13 -0
- package/dist/routes/v1/assistants.routes.js.map +1 -0
- package/dist/routes/v1/audio.routes.d.ts +3 -0
- package/dist/routes/v1/audio.routes.d.ts.map +1 -0
- package/dist/routes/v1/audio.routes.js +14 -0
- package/dist/routes/v1/audio.routes.js.map +1 -0
- package/dist/routes/v1/chat.routes.d.ts +3 -0
- package/dist/routes/v1/chat.routes.d.ts.map +1 -0
- package/dist/routes/v1/chat.routes.js +13 -0
- package/dist/routes/v1/chat.routes.js.map +1 -0
- package/dist/routes/v1/documents.routes.d.ts +3 -0
- package/dist/routes/v1/documents.routes.d.ts.map +1 -0
- package/dist/routes/v1/documents.routes.js +15 -0
- package/dist/routes/v1/documents.routes.js.map +1 -0
- package/dist/routes/v1/files.routes.d.ts +3 -0
- package/dist/routes/v1/files.routes.d.ts.map +1 -0
- package/dist/routes/v1/files.routes.js +16 -0
- package/dist/routes/v1/files.routes.js.map +1 -0
- package/dist/routes/v1/images.routes.d.ts +3 -0
- package/dist/routes/v1/images.routes.d.ts.map +1 -0
- package/dist/routes/v1/images.routes.js +14 -0
- package/dist/routes/v1/images.routes.js.map +1 -0
- package/dist/routes/v1/media-assets.routes.d.ts +3 -0
- package/dist/routes/v1/media-assets.routes.d.ts.map +1 -0
- package/dist/routes/v1/media-assets.routes.js +12 -0
- package/dist/routes/v1/media-assets.routes.js.map +1 -0
- package/dist/routes/v1/messages.routes.d.ts +3 -0
- package/dist/routes/v1/messages.routes.d.ts.map +1 -0
- package/dist/routes/v1/messages.routes.js +13 -0
- package/dist/routes/v1/messages.routes.js.map +1 -0
- package/dist/routes/v1/models.routes.d.ts +3 -0
- package/dist/routes/v1/models.routes.d.ts.map +1 -0
- package/dist/routes/v1/models.routes.js +11 -0
- package/dist/routes/v1/models.routes.js.map +1 -0
- package/dist/routes/v1/responses.routes.d.ts +3 -0
- package/dist/routes/v1/responses.routes.d.ts.map +1 -0
- package/dist/routes/v1/responses.routes.js +15 -0
- package/dist/routes/v1/responses.routes.js.map +1 -0
- package/dist/routes/v1/threads.routes.d.ts +3 -0
- package/dist/routes/v1/threads.routes.d.ts.map +1 -0
- package/dist/routes/v1/threads.routes.js +15 -0
- package/dist/routes/v1/threads.routes.js.map +1 -0
- package/dist/routes/v1/videos.routes.d.ts +3 -0
- package/dist/routes/v1/videos.routes.d.ts.map +1 -0
- package/dist/routes/v1/videos.routes.js +14 -0
- package/dist/routes/v1/videos.routes.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +121 -0
- package/dist/server.js.map +1 -0
- package/dist/services/abuse-guard.service.d.ts +19 -0
- package/dist/services/abuse-guard.service.d.ts.map +1 -0
- package/dist/services/abuse-guard.service.js +243 -0
- package/dist/services/abuse-guard.service.js.map +1 -0
- package/dist/services/admin-auth.service.d.ts +32 -0
- package/dist/services/admin-auth.service.d.ts.map +1 -0
- package/dist/services/admin-auth.service.js +202 -0
- package/dist/services/admin-auth.service.js.map +1 -0
- package/dist/services/api-features.service.d.ts +15 -0
- package/dist/services/api-features.service.d.ts.map +1 -0
- package/dist/services/api-features.service.js +92 -0
- package/dist/services/api-features.service.js.map +1 -0
- package/dist/services/api-key.service.d.ts +52 -0
- package/dist/services/api-key.service.d.ts.map +1 -0
- package/dist/services/api-key.service.js +296 -0
- package/dist/services/api-key.service.js.map +1 -0
- package/dist/services/assistants.service.d.ts +130 -0
- package/dist/services/assistants.service.d.ts.map +1 -0
- package/dist/services/assistants.service.js +329 -0
- package/dist/services/assistants.service.js.map +1 -0
- package/dist/services/audit.service.d.ts +10 -0
- package/dist/services/audit.service.d.ts.map +1 -0
- package/dist/services/audit.service.js +38 -0
- package/dist/services/audit.service.js.map +1 -0
- package/dist/services/chat-admin.service.d.ts +76 -0
- package/dist/services/chat-admin.service.d.ts.map +1 -0
- package/dist/services/chat-admin.service.js +220 -0
- package/dist/services/chat-admin.service.js.map +1 -0
- package/dist/services/chat-request-builder.service.d.ts +23 -0
- package/dist/services/chat-request-builder.service.d.ts.map +1 -0
- package/dist/services/chat-request-builder.service.js +325 -0
- package/dist/services/chat-request-builder.service.js.map +1 -0
- package/dist/services/chat.service.d.ts +27 -0
- package/dist/services/chat.service.d.ts.map +1 -0
- package/dist/services/chat.service.js +1088 -0
- package/dist/services/chat.service.js.map +1 -0
- package/dist/services/conversation.service.d.ts +104 -0
- package/dist/services/conversation.service.d.ts.map +1 -0
- package/dist/services/conversation.service.js +254 -0
- package/dist/services/conversation.service.js.map +1 -0
- package/dist/services/ddos-policy.service.d.ts +41 -0
- package/dist/services/ddos-policy.service.d.ts.map +1 -0
- package/dist/services/ddos-policy.service.js +263 -0
- package/dist/services/ddos-policy.service.js.map +1 -0
- package/dist/services/document.service.d.ts +62 -0
- package/dist/services/document.service.d.ts.map +1 -0
- package/dist/services/document.service.js +344 -0
- package/dist/services/document.service.js.map +1 -0
- package/dist/services/encryption.service.d.ts +8 -0
- package/dist/services/encryption.service.d.ts.map +1 -0
- package/dist/services/encryption.service.js +34 -0
- package/dist/services/encryption.service.js.map +1 -0
- package/dist/services/engine-session-map.service.d.ts +11 -0
- package/dist/services/engine-session-map.service.d.ts.map +1 -0
- package/dist/services/engine-session-map.service.js +59 -0
- package/dist/services/engine-session-map.service.js.map +1 -0
- package/dist/services/engine-slot.service.d.ts +21 -0
- package/dist/services/engine-slot.service.d.ts.map +1 -0
- package/dist/services/engine-slot.service.js +55 -0
- package/dist/services/engine-slot.service.js.map +1 -0
- package/dist/services/hf/client.d.ts +18 -0
- package/dist/services/hf/client.d.ts.map +1 -0
- package/dist/services/hf/client.js +202 -0
- package/dist/services/hf/client.js.map +1 -0
- package/dist/services/hf/delete-local.d.ts +5 -0
- package/dist/services/hf/delete-local.d.ts.map +1 -0
- package/dist/services/hf/delete-local.js +46 -0
- package/dist/services/hf/delete-local.js.map +1 -0
- package/dist/services/hf/hub-search.d.ts +66 -0
- package/dist/services/hf/hub-search.d.ts.map +1 -0
- package/dist/services/hf/hub-search.js +272 -0
- package/dist/services/hf/hub-search.js.map +1 -0
- package/dist/services/hf/record-pull.d.ts +6 -0
- package/dist/services/hf/record-pull.d.ts.map +1 -0
- package/dist/services/hf/record-pull.js +80 -0
- package/dist/services/hf/record-pull.js.map +1 -0
- package/dist/services/hf/registry.d.ts +27 -0
- package/dist/services/hf/registry.d.ts.map +1 -0
- package/dist/services/hf/registry.js +77 -0
- package/dist/services/hf/registry.js.map +1 -0
- package/dist/services/hf/spec.d.ts +33 -0
- package/dist/services/hf/spec.d.ts.map +1 -0
- package/dist/services/hf/spec.js +175 -0
- package/dist/services/hf/spec.js.map +1 -0
- package/dist/services/ip-blacklist.service.d.ts +44 -0
- package/dist/services/ip-blacklist.service.d.ts.map +1 -0
- package/dist/services/ip-blacklist.service.js +145 -0
- package/dist/services/ip-blacklist.service.js.map +1 -0
- package/dist/services/media/audio-worker.d.ts +23 -0
- package/dist/services/media/audio-worker.d.ts.map +1 -0
- package/dist/services/media/audio-worker.js +81 -0
- package/dist/services/media/audio-worker.js.map +1 -0
- package/dist/services/media/format-convert.d.ts +37 -0
- package/dist/services/media/format-convert.d.ts.map +1 -0
- package/dist/services/media/format-convert.js +215 -0
- package/dist/services/media/format-convert.js.map +1 -0
- package/dist/services/media/media-jobs.service.d.ts +46 -0
- package/dist/services/media/media-jobs.service.d.ts.map +1 -0
- package/dist/services/media/media-jobs.service.js +193 -0
- package/dist/services/media/media-jobs.service.js.map +1 -0
- package/dist/services/media/media-orchestrator.service.d.ts +53 -0
- package/dist/services/media/media-orchestrator.service.d.ts.map +1 -0
- package/dist/services/media/media-orchestrator.service.js +228 -0
- package/dist/services/media/media-orchestrator.service.js.map +1 -0
- package/dist/services/media/media-store.service.d.ts +39 -0
- package/dist/services/media/media-store.service.d.ts.map +1 -0
- package/dist/services/media/media-store.service.js +154 -0
- package/dist/services/media/media-store.service.js.map +1 -0
- package/dist/services/media/providers/http-worker.provider.d.ts +9 -0
- package/dist/services/media/providers/http-worker.provider.d.ts.map +1 -0
- package/dist/services/media/providers/http-worker.provider.js +73 -0
- package/dist/services/media/providers/http-worker.provider.js.map +1 -0
- package/dist/services/media/providers/media-provider.interface.d.ts +44 -0
- package/dist/services/media/providers/media-provider.interface.d.ts.map +1 -0
- package/dist/services/media/providers/media-provider.interface.js +4 -0
- package/dist/services/media/providers/media-provider.interface.js.map +1 -0
- package/dist/services/media/providers/mock.provider.d.ts +8 -0
- package/dist/services/media/providers/mock.provider.d.ts.map +1 -0
- package/dist/services/media/providers/mock.provider.js +43 -0
- package/dist/services/media/providers/mock.provider.js.map +1 -0
- package/dist/services/media/providers/stub.provider.d.ts +8 -0
- package/dist/services/media/providers/stub.provider.d.ts.map +1 -0
- package/dist/services/media/providers/stub.provider.js +14 -0
- package/dist/services/media/providers/stub.provider.js.map +1 -0
- package/dist/services/media/video-fixture.d.ts +3 -0
- package/dist/services/media/video-fixture.d.ts.map +1 -0
- package/dist/services/media/video-fixture.js +40 -0
- package/dist/services/media/video-fixture.js.map +1 -0
- package/dist/services/models.service.d.ts +49 -0
- package/dist/services/models.service.d.ts.map +1 -0
- package/dist/services/models.service.js +162 -0
- package/dist/services/models.service.js.map +1 -0
- package/dist/services/pm2-config.d.ts +12 -0
- package/dist/services/pm2-config.d.ts.map +1 -0
- package/dist/services/pm2-config.js +156 -0
- package/dist/services/pm2-config.js.map +1 -0
- package/dist/services/pm2.service.d.ts +207 -0
- package/dist/services/pm2.service.d.ts.map +1 -0
- package/dist/services/pm2.service.js +789 -0
- package/dist/services/pm2.service.js.map +1 -0
- package/dist/services/policy.service.d.ts +8 -0
- package/dist/services/policy.service.d.ts.map +1 -0
- package/dist/services/policy.service.js +112 -0
- package/dist/services/policy.service.js.map +1 -0
- package/dist/services/queue/chat-queue.service.d.ts +107 -0
- package/dist/services/queue/chat-queue.service.d.ts.map +1 -0
- package/dist/services/queue/chat-queue.service.js +557 -0
- package/dist/services/queue/chat-queue.service.js.map +1 -0
- package/dist/services/queue/chat-worker.service.d.ts +12 -0
- package/dist/services/queue/chat-worker.service.d.ts.map +1 -0
- package/dist/services/queue/chat-worker.service.js +136 -0
- package/dist/services/queue/chat-worker.service.js.map +1 -0
- package/dist/services/queue/fair-claim.d.ts +41 -0
- package/dist/services/queue/fair-claim.d.ts.map +1 -0
- package/dist/services/queue/fair-claim.js +54 -0
- package/dist/services/queue/fair-claim.js.map +1 -0
- package/dist/services/queue/job-waiter.d.ts +40 -0
- package/dist/services/queue/job-waiter.d.ts.map +1 -0
- package/dist/services/queue/job-waiter.js +77 -0
- package/dist/services/queue/job-waiter.js.map +1 -0
- package/dist/services/queue/queue-backend.factory.d.ts +12 -0
- package/dist/services/queue/queue-backend.factory.d.ts.map +1 -0
- package/dist/services/queue/queue-backend.factory.js +41 -0
- package/dist/services/queue/queue-backend.factory.js.map +1 -0
- package/dist/services/queue/queue-backend.interface.d.ts +67 -0
- package/dist/services/queue/queue-backend.interface.d.ts.map +1 -0
- package/dist/services/queue/queue-backend.interface.js +19 -0
- package/dist/services/queue/queue-backend.interface.js.map +1 -0
- package/dist/services/queue/queue-policy.service.d.ts +19 -0
- package/dist/services/queue/queue-policy.service.d.ts.map +1 -0
- package/dist/services/queue/queue-policy.service.js +99 -0
- package/dist/services/queue/queue-policy.service.js.map +1 -0
- package/dist/services/response-store.service.d.ts +14 -0
- package/dist/services/response-store.service.d.ts.map +1 -0
- package/dist/services/response-store.service.js +77 -0
- package/dist/services/response-store.service.js.map +1 -0
- package/dist/services/role-normalize.service.d.ts +5 -0
- package/dist/services/role-normalize.service.d.ts.map +1 -0
- package/dist/services/role-normalize.service.js +22 -0
- package/dist/services/role-normalize.service.js.map +1 -0
- package/dist/services/runtimes/echo.d.ts +17 -0
- package/dist/services/runtimes/echo.d.ts.map +1 -0
- package/dist/services/runtimes/echo.js +40 -0
- package/dist/services/runtimes/echo.js.map +1 -0
- package/dist/services/runtimes/engine-manager.d.ts +47 -0
- package/dist/services/runtimes/engine-manager.d.ts.map +1 -0
- package/dist/services/runtimes/engine-manager.js +191 -0
- package/dist/services/runtimes/engine-manager.js.map +1 -0
- package/dist/services/runtimes/llama-server.d.ts +37 -0
- package/dist/services/runtimes/llama-server.d.ts.map +1 -0
- package/dist/services/runtimes/llama-server.js +153 -0
- package/dist/services/runtimes/llama-server.js.map +1 -0
- package/dist/services/runtimes/runtime-catalog.d.ts +49 -0
- package/dist/services/runtimes/runtime-catalog.d.ts.map +1 -0
- package/dist/services/runtimes/runtime-catalog.js +510 -0
- package/dist/services/runtimes/runtime-catalog.js.map +1 -0
- package/dist/services/runtimes/runtime-install.d.ts +45 -0
- package/dist/services/runtimes/runtime-install.d.ts.map +1 -0
- package/dist/services/runtimes/runtime-install.js +159 -0
- package/dist/services/runtimes/runtime-install.js.map +1 -0
- package/dist/services/runtimes/vllm.d.ts +14 -0
- package/dist/services/runtimes/vllm.d.ts.map +1 -0
- package/dist/services/runtimes/vllm.js +105 -0
- package/dist/services/runtimes/vllm.js.map +1 -0
- package/dist/services/settings.service.d.ts +7 -0
- package/dist/services/settings.service.d.ts.map +1 -0
- package/dist/services/settings.service.js +87 -0
- package/dist/services/settings.service.js.map +1 -0
- package/dist/services/stats.service.d.ts +104 -0
- package/dist/services/stats.service.d.ts.map +1 -0
- package/dist/services/stats.service.js +218 -0
- package/dist/services/stats.service.js.map +1 -0
- package/dist/services/system-health.service.d.ts +15 -0
- package/dist/services/system-health.service.d.ts.map +1 -0
- package/dist/services/system-health.service.js +259 -0
- package/dist/services/system-health.service.js.map +1 -0
- package/dist/services/update.service.d.ts +35 -0
- package/dist/services/update.service.d.ts.map +1 -0
- package/dist/services/update.service.js +449 -0
- package/dist/services/update.service.js.map +1 -0
- package/dist/services/usage.service.d.ts +49 -0
- package/dist/services/usage.service.d.ts.map +1 -0
- package/dist/services/usage.service.js +175 -0
- package/dist/services/usage.service.js.map +1 -0
- package/dist/services/vram-scheduler.d.ts +39 -0
- package/dist/services/vram-scheduler.d.ts.map +1 -0
- package/dist/services/vram-scheduler.js +84 -0
- package/dist/services/vram-scheduler.js.map +1 -0
- package/dist/utils/anthropic-mapper.d.ts +20 -0
- package/dist/utils/anthropic-mapper.d.ts.map +1 -0
- package/dist/utils/anthropic-mapper.js +254 -0
- package/dist/utils/anthropic-mapper.js.map +1 -0
- package/dist/utils/api-key-crypto.d.ts +10 -0
- package/dist/utils/api-key-crypto.d.ts.map +1 -0
- package/dist/utils/api-key-crypto.js +52 -0
- package/dist/utils/api-key-crypto.js.map +1 -0
- package/dist/utils/api-key-id.d.ts +13 -0
- package/dist/utils/api-key-id.d.ts.map +1 -0
- package/dist/utils/api-key-id.js +51 -0
- package/dist/utils/api-key-id.js.map +1 -0
- package/dist/utils/async-handler.d.ts +5 -0
- package/dist/utils/async-handler.d.ts.map +1 -0
- package/dist/utils/async-handler.js +9 -0
- package/dist/utils/async-handler.js.map +1 -0
- package/dist/utils/client-ip.d.ts +28 -0
- package/dist/utils/client-ip.d.ts.map +1 -0
- package/dist/utils/client-ip.js +184 -0
- package/dist/utils/client-ip.js.map +1 -0
- package/dist/utils/engine-event-parse.d.ts +24 -0
- package/dist/utils/engine-event-parse.d.ts.map +1 -0
- package/dist/utils/engine-event-parse.js +192 -0
- package/dist/utils/engine-event-parse.js.map +1 -0
- package/dist/utils/engine-session.d.ts +25 -0
- package/dist/utils/engine-session.d.ts.map +1 -0
- package/dist/utils/engine-session.js +80 -0
- package/dist/utils/engine-session.js.map +1 -0
- package/dist/utils/file-sniff.d.ts +16 -0
- package/dist/utils/file-sniff.d.ts.map +1 -0
- package/dist/utils/file-sniff.js +151 -0
- package/dist/utils/file-sniff.js.map +1 -0
- package/dist/utils/fs-safe.d.ts +5 -0
- package/dist/utils/fs-safe.d.ts.map +1 -0
- package/dist/utils/fs-safe.js +26 -0
- package/dist/utils/fs-safe.js.map +1 -0
- package/dist/utils/id.d.ts +7 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +28 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +14 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +56 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/ip-match.d.ts +15 -0
- package/dist/utils/ip-match.d.ts.map +1 -0
- package/dist/utils/ip-match.js +133 -0
- package/dist/utils/ip-match.js.map +1 -0
- package/dist/utils/list-sort.d.ts +14 -0
- package/dist/utils/list-sort.d.ts.map +1 -0
- package/dist/utils/list-sort.js +58 -0
- package/dist/utils/list-sort.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +38 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/message-content.d.ts +24 -0
- package/dist/utils/message-content.d.ts.map +1 -0
- package/dist/utils/message-content.js +68 -0
- package/dist/utils/message-content.js.map +1 -0
- package/dist/utils/model-allowlist.d.ts +14 -0
- package/dist/utils/model-allowlist.d.ts.map +1 -0
- package/dist/utils/model-allowlist.js +84 -0
- package/dist/utils/model-allowlist.js.map +1 -0
- package/dist/utils/openai-mapper.d.ts +19 -0
- package/dist/utils/openai-mapper.d.ts.map +1 -0
- package/dist/utils/openai-mapper.js +182 -0
- package/dist/utils/openai-mapper.js.map +1 -0
- package/dist/utils/path-safe.d.ts +4 -0
- package/dist/utils/path-safe.d.ts.map +1 -0
- package/dist/utils/path-safe.js +49 -0
- package/dist/utils/path-safe.js.map +1 -0
- package/dist/utils/prisma-bytes.d.ts +8 -0
- package/dist/utils/prisma-bytes.d.ts.map +1 -0
- package/dist/utils/prisma-bytes.js +14 -0
- package/dist/utils/prisma-bytes.js.map +1 -0
- package/dist/utils/request-meta.d.ts +12 -0
- package/dist/utils/request-meta.d.ts.map +1 -0
- package/dist/utils/request-meta.js +26 -0
- package/dist/utils/request-meta.js.map +1 -0
- package/dist/utils/responses-mapper.d.ts +9 -0
- package/dist/utils/responses-mapper.d.ts.map +1 -0
- package/dist/utils/responses-mapper.js +56 -0
- package/dist/utils/responses-mapper.js.map +1 -0
- package/dist/utils/role-normalize.d.ts +9 -0
- package/dist/utils/role-normalize.d.ts.map +1 -0
- package/dist/utils/role-normalize.js +29 -0
- package/dist/utils/role-normalize.js.map +1 -0
- package/dist/utils/ssrf.d.ts +11 -0
- package/dist/utils/ssrf.d.ts.map +1 -0
- package/dist/utils/ssrf.js +114 -0
- package/dist/utils/ssrf.js.map +1 -0
- package/dist/utils/stream.d.ts +7 -0
- package/dist/utils/stream.d.ts.map +1 -0
- package/dist/utils/stream.js +70 -0
- package/dist/utils/stream.js.map +1 -0
- package/dist/utils/vision-remote.d.ts +28 -0
- package/dist/utils/vision-remote.d.ts.map +1 -0
- package/dist/utils/vision-remote.js +206 -0
- package/dist/utils/vision-remote.js.map +1 -0
- package/docs/en/README.md +25 -0
- package/docs/en/admin.md +44 -0
- package/docs/en/api.md +78 -0
- package/docs/en/architecture.md +44 -0
- package/docs/en/catalog.md +30 -0
- package/docs/en/cli.md +180 -0
- package/docs/en/configuration.md +52 -0
- package/docs/en/development.md +49 -0
- package/docs/en/getting-started.md +64 -0
- package/docs/en/keys.md +30 -0
- package/docs/en/media.md +38 -0
- package/docs/en/operations.md +40 -0
- package/docs/en/runtimes.md +20 -0
- package/docs/zh/README.md +25 -0
- package/docs/zh/admin.md +44 -0
- package/docs/zh/api.md +78 -0
- package/docs/zh/architecture.md +44 -0
- package/docs/zh/catalog.md +30 -0
- package/docs/zh/cli.md +180 -0
- package/docs/zh/configuration.md +52 -0
- package/docs/zh/development.md +49 -0
- package/docs/zh/getting-started.md +62 -0
- package/docs/zh/keys.md +30 -0
- package/docs/zh/media.md +38 -0
- package/docs/zh/operations.md +40 -0
- package/docs/zh/runtimes.md +20 -0
- package/package.json +108 -0
- package/prisma/migrations/20260714084159_init_sqlite/migration.sql +106 -0
- package/prisma/migrations/20260714090338_safe_mode_admin/migration.sql +36 -0
- package/prisma/migrations/20260714120000_ip_whitelist_blacklist/migration.sql +19 -0
- package/prisma/migrations/20260714220000_chat_conversations/migration.sql +22 -0
- package/prisma/migrations/20260714230000_conversation_context/migration.sql +6 -0
- package/prisma/migrations/20260715140000_admin_otp_session/migration.sql +29 -0
- package/prisma/migrations/20260715150000_chat_jobs/migration.sql +33 -0
- package/prisma/migrations/20260715161921_api_responses_assistants/migration.sql +80 -0
- package/prisma/migrations/20260716060000_media_assets/migration.sql +25 -0
- package/prisma/migrations/20260716070000_media_jobs/migration.sql +17 -0
- package/prisma/migrations/20260813160000_grok_session_aliases/migration.sql +14 -0
- package/prisma/migrations/20260924180000_api_key_allowed_models/migration.sql +2 -0
- package/prisma/migrations/20260924190000_rename_grok_session_columns/migration.sql +5 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +391 -0
- package/prisma/seed.ts +71 -0
- package/public/admin/allowed-extensions.js +41 -0
- package/public/admin/app.js +9980 -0
- package/public/admin/assets/logo.svg +37 -0
- package/public/admin/boot.js +2551 -0
- package/public/admin/boot.js.map +1 -0
- package/public/admin/disabled.html +131 -0
- package/public/admin/i18n.js +2442 -0
- package/public/admin/index.html +26 -0
- package/public/admin/styles.css +5764 -0
- package/public/admin/vendor/marked.min.js +6 -0
- package/public/admin/vendor/purify.min.js +3 -0
- package/scripts/api-audit-run.sh +52 -0
- package/scripts/cli-audit-run.sh +214 -0
- package/scripts/generate-allowed-extensions.cjs +23 -0
- package/scripts/install.sh +34 -0
- package/scripts/omni-openai-worker.mjs +144 -0
- package/scripts/postinstall.cjs +5 -0
- package/scripts/prepare.cjs +102 -0
- package/scripts/smoke.sh +32 -0
- package/scripts/start-tiny-media-worker.sh +14 -0
- package/scripts/tiny-media-worker.py +491 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* marked v15.0.7 - a markdown parser
|
|
3
|
+
* Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)
|
|
4
|
+
* https://github.com/markedjs/marked
|
|
5
|
+
*/
|
|
6
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).marked={})}(this,(function(e){"use strict";function t(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}function n(t){e.defaults=t}e.defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};const s={exec:()=>null};function r(e,t=""){let n="string"==typeof e?e:e.source;const s={replace:(e,t)=>{let r="string"==typeof t?t:t.source;return r=r.replace(i.caret,"$1"),n=n.replace(e,r),s},getRegex:()=>new RegExp(n,t)};return s}const i={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},l=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,o=/(?:[*+-]|\d{1,9}[.)])/,a=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,c=r(a).replace(/bull/g,o).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),h=r(a).replace(/bull/g,o).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),p=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,u=/(?!\s*\])(?:\\.|[^\[\]\\])+/,g=r(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",u).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),k=r(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,o).getRegex(),d="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",f=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,x=r("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",f).replace("tag",d).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),b=r(p).replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",d).getRegex(),w={blockquote:r(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",b).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:g,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:l,html:x,lheading:c,list:k,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:b,table:s,text:/^[^\n]+/},m=r("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",d).getRegex(),y={...w,lheading:h,table:m,paragraph:r(p).replace("hr",l).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",m).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",d).getRegex()},$={...w,html:r("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",f).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:s,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:r(p).replace("hr",l).replace("heading"," *#{1,6} *[^\n]").replace("lheading",c).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},R=/^( {2,}|\\)\n(?!\s*$)/,S=/[\p{P}\p{S}]/u,T=/[\s\p{P}\p{S}]/u,z=/[^\s\p{P}\p{S}]/u,A=r(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,T).getRegex(),_=/(?!~)[\p{P}\p{S}]/u,P=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,I=r(P,"u").replace(/punct/g,S).getRegex(),L=r(P,"u").replace(/punct/g,_).getRegex(),B="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",C=r(B,"gu").replace(/notPunctSpace/g,z).replace(/punctSpace/g,T).replace(/punct/g,S).getRegex(),q=r(B,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,_).getRegex(),E=r("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,z).replace(/punctSpace/g,T).replace(/punct/g,S).getRegex(),Z=r(/\\(punct)/,"gu").replace(/punct/g,S).getRegex(),v=r(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),D=r(f).replace("(?:--\x3e|$)","--\x3e").getRegex(),M=r("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",D).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),O=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Q=r(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",O).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),j=r(/^!?\[(label)\]\[(ref)\]/).replace("label",O).replace("ref",u).getRegex(),N=r(/^!?\[(ref)\](?:\[\])?/).replace("ref",u).getRegex(),G={_backpedal:s,anyPunctuation:Z,autolink:v,blockSkip:/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<[^<>]*?>/g,br:R,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:s,emStrongLDelim:I,emStrongRDelimAst:C,emStrongRDelimUnd:E,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:Q,nolink:N,punctuation:A,reflink:j,reflinkSearch:r("reflink|nolink(?!\\()","g").replace("reflink",j).replace("nolink",N).getRegex(),tag:M,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,url:s},H={...G,link:r(/^!?\[(label)\]\((.*?)\)/).replace("label",O).getRegex(),reflink:r(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",O).getRegex()},X={...G,emStrongRDelimAst:q,emStrongLDelim:L,url:r(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},F={...X,br:r(R).replace("{2,}","*").getRegex(),text:r(X.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},U={normal:w,gfm:y,pedantic:$},J={normal:G,gfm:X,breaks:F,pedantic:H},K={"&":"&","<":"<",">":">",'"':""","'":"'"},V=e=>K[e];function W(e,t){if(t){if(i.escapeTest.test(e))return e.replace(i.escapeReplace,V)}else if(i.escapeTestNoEncode.test(e))return e.replace(i.escapeReplaceNoEncode,V);return e}function Y(e){try{e=encodeURI(e).replace(i.percentDecode,"%")}catch{return null}return e}function ee(e,t){const n=e.replace(i.findPipe,((e,t,n)=>{let s=!1,r=t;for(;--r>=0&&"\\"===n[r];)s=!s;return s?"|":" |"})).split(i.splitPipe);let s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push("");for(;s<n.length;s++)n[s]=n[s].trim().replace(i.slashPipe,"|");return n}function te(e,t,n){const s=e.length;if(0===s)return"";let r=0;for(;r<s;){if(e.charAt(s-r-1)!==t)break;r++}return e.slice(0,s-r)}function ne(e,t,n,s,r){const i=t.href,l=t.title||null,o=e[1].replace(r.other.outputLinkReplace,"$1");if("!"!==e[0].charAt(0)){s.state.inLink=!0;const e={type:"link",raw:n,href:i,title:l,text:o,tokens:s.inlineTokens(o)};return s.state.inLink=!1,e}return{type:"image",raw:n,href:i,title:l,text:o}}class se{options;rules;lexer;constructor(t){this.options=t||e.defaults}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:te(e,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const e=t[0],n=function(e,t,n){const s=e.match(n.other.indentCodeCompensation);if(null===s)return t;const r=s[1];return t.split("\n").map((e=>{const t=e.match(n.other.beginningSpace);if(null===t)return e;const[s]=t;return s.length>=r.length?e.slice(r.length):e})).join("\n")}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){const t=te(e,"#");this.options.pedantic?e=t.trim():t&&!this.rules.other.endingSpaceChar.test(t)||(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:te(t[0],"\n")}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let e=te(t[0],"\n").split("\n"),n="",s="";const r=[];for(;e.length>0;){let t=!1;const i=[];let l;for(l=0;l<e.length;l++)if(this.rules.other.blockquoteStart.test(e[l]))i.push(e[l]),t=!0;else{if(t)break;i.push(e[l])}e=e.slice(l);const o=i.join("\n"),a=o.replace(this.rules.other.blockquoteSetextReplace,"\n $1").replace(this.rules.other.blockquoteSetextReplace2,"");n=n?`${n}\n${o}`:o,s=s?`${s}\n${a}`:a;const c=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(a,r,!0),this.lexer.state.top=c,0===e.length)break;const h=r.at(-1);if("code"===h?.type)break;if("blockquote"===h?.type){const t=h,i=t.raw+"\n"+e.join("\n"),l=this.blockquote(i);r[r.length-1]=l,n=n.substring(0,n.length-t.raw.length)+l.raw,s=s.substring(0,s.length-t.text.length)+l.text;break}if("list"!==h?.type);else{const t=h,i=t.raw+"\n"+e.join("\n"),l=this.list(i);r[r.length-1]=l,n=n.substring(0,n.length-h.raw.length)+l.raw,s=s.substring(0,s.length-t.raw.length)+l.raw,e=i.substring(r.at(-1).raw.length).split("\n")}}return{type:"blockquote",raw:n,tokens:r,text:s}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim();const s=n.length>1,r={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");const i=this.rules.other.listItemRegex(n);let l=!1;for(;e;){let n=!1,s="",o="";if(!(t=i.exec(e)))break;if(this.rules.block.hr.test(e))break;s=t[0],e=e.substring(s.length);let a=t[2].split("\n",1)[0].replace(this.rules.other.listReplaceTabs,(e=>" ".repeat(3*e.length))),c=e.split("\n",1)[0],h=!a.trim(),p=0;if(this.options.pedantic?(p=2,o=a.trimStart()):h?p=t[1].length+1:(p=t[2].search(this.rules.other.nonSpaceChar),p=p>4?1:p,o=a.slice(p),p+=t[1].length),h&&this.rules.other.blankLine.test(c)&&(s+=c+"\n",e=e.substring(c.length+1),n=!0),!n){const t=this.rules.other.nextBulletRegex(p),n=this.rules.other.hrRegex(p),r=this.rules.other.fencesBeginRegex(p),i=this.rules.other.headingBeginRegex(p),l=this.rules.other.htmlBeginRegex(p);for(;e;){const u=e.split("\n",1)[0];let g;if(c=u,this.options.pedantic?(c=c.replace(this.rules.other.listReplaceNesting," "),g=c):g=c.replace(this.rules.other.tabCharGlobal," "),r.test(c))break;if(i.test(c))break;if(l.test(c))break;if(t.test(c))break;if(n.test(c))break;if(g.search(this.rules.other.nonSpaceChar)>=p||!c.trim())o+="\n"+g.slice(p);else{if(h)break;if(a.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4)break;if(r.test(a))break;if(i.test(a))break;if(n.test(a))break;o+="\n"+c}h||c.trim()||(h=!0),s+=u+"\n",e=e.substring(u.length+1),a=g.slice(p)}}r.loose||(l?r.loose=!0:this.rules.other.doubleBlankLine.test(s)&&(l=!0));let u,g=null;this.options.gfm&&(g=this.rules.other.listIsTask.exec(o),g&&(u="[ ] "!==g[0],o=o.replace(this.rules.other.listReplaceTask,""))),r.items.push({type:"list_item",raw:s,task:!!g,checked:u,loose:!1,text:o,tokens:[]}),r.raw+=s}const o=r.items.at(-1);if(!o)return;o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd(),r.raw=r.raw.trimEnd();for(let e=0;e<r.items.length;e++)if(this.lexer.state.top=!1,r.items[e].tokens=this.lexer.blockTokens(r.items[e].text,[]),!r.loose){const t=r.items[e].tokens.filter((e=>"space"===e.type)),n=t.length>0&&t.some((e=>this.rules.other.anyLine.test(e.raw)));r.loose=n}if(r.loose)for(let e=0;e<r.items.length;e++)r.items[e].loose=!0;return r}}html(e){const t=this.rules.block.html.exec(e);if(t){return{type:"html",block:!0,raw:t[0],pre:"pre"===t[1]||"script"===t[1]||"style"===t[1],text:t[0]}}}def(e){const t=this.rules.block.def.exec(e);if(t){const e=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),n=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:e,raw:t[0],href:n,title:s}}}table(e){const t=this.rules.block.table.exec(e);if(!t)return;if(!this.rules.other.tableDelimiter.test(t[2]))return;const n=ee(t[1]),s=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split("\n"):[],i={type:"table",raw:t[0],header:[],align:[],rows:[]};if(n.length===s.length){for(const e of s)this.rules.other.tableAlignRight.test(e)?i.align.push("right"):this.rules.other.tableAlignCenter.test(e)?i.align.push("center"):this.rules.other.tableAlignLeft.test(e)?i.align.push("left"):i.align.push(null);for(let e=0;e<n.length;e++)i.header.push({text:n[e],tokens:this.lexer.inline(n[e]),header:!0,align:i.align[e]});for(const e of r)i.rows.push(ee(e,i.header.length).map(((e,t)=>({text:e,tokens:this.lexer.inline(e),header:!1,align:i.align[t]}))));return i}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:"="===t[2].charAt(0)?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const e="\n"===t[1].charAt(t[1].length-1)?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:e,tokens:this.lexer.inline(e)}}}text(e){const t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const e=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(e)){if(!this.rules.other.endAngleBracket.test(e))return;const t=te(e.slice(0,-1),"\\");if((e.length-t.length)%2==0)return}else{const e=function(e,t){if(-1===e.indexOf(t[1]))return-1;let n=0;for(let s=0;s<e.length;s++)if("\\"===e[s])s++;else if(e[s]===t[0])n++;else if(e[s]===t[1]&&(n--,n<0))return s;return-1}(t[2],"()");if(e>-1){const n=(0===t[0].indexOf("!")?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=""}}let n=t[2],s="";if(this.options.pedantic){const e=this.rules.other.pedanticHrefTitle.exec(n);e&&(n=e[1],s=e[3])}else s=t[3]?t[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(n=this.options.pedantic&&!this.rules.other.endAngleBracket.test(e)?n.slice(1):n.slice(1,-1)),ne(t,{href:n?n.replace(this.rules.inline.anyPunctuation,"$1"):n,title:s?s.replace(this.rules.inline.anyPunctuation,"$1"):s},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){const e=t[(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," ").toLowerCase()];if(!e){const e=n[0].charAt(0);return{type:"text",raw:e,text:e}}return ne(n,e,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s)return;if(s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[2]||"")||!n||this.rules.inline.punctuation.exec(n)){const n=[...s[0]].length-1;let r,i,l=n,o=0;const a="*"===s[0][0]?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(a.lastIndex=0,t=t.slice(-1*e.length+n);null!=(s=a.exec(t));){if(r=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!r)continue;if(i=[...r].length,s[3]||s[4]){l+=i;continue}if((s[5]||s[6])&&n%3&&!((n+i)%3)){o+=i;continue}if(l-=i,l>0)continue;i=Math.min(i,i+l+o);const t=[...s[0]][0].length,a=e.slice(0,n+s.index+t+i);if(Math.min(n,i)%2){const e=a.slice(1,-1);return{type:"em",raw:a,text:e,tokens:this.lexer.inlineTokens(e)}}const c=a.slice(2,-2);return{type:"strong",raw:a,text:c,tokens:this.lexer.inlineTokens(c)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(this.rules.other.newLineCharGlobal," ");const n=this.rules.other.nonSpaceChar.test(e),s=this.rules.other.startingSpaceChar.test(e)&&this.rules.other.endingSpaceChar.test(e);return n&&s&&(e=e.substring(1,e.length-1)),{type:"codespan",raw:t[0],text:e}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let e,n;return"@"===t[2]?(e=t[1],n="mailto:"+e):(e=t[1],n=e),{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if("@"===t[2])e=t[0],n="mailto:"+e;else{let s;do{s=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??""}while(s!==t[0]);e=t[0],n="www."===t[1]?"http://"+t[0]:t[0]}return{type:"link",raw:t[0],text:e,href:n,tokens:[{type:"text",raw:e,text:e}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){const e=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:e}}}}class re{tokens;options;state;tokenizer;inlineQueue;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||e.defaults,this.options.tokenizer=this.options.tokenizer||new se,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const n={other:i,block:U.normal,inline:J.normal};this.options.pedantic?(n.block=U.pedantic,n.inline=J.pedantic):this.options.gfm&&(n.block=U.gfm,this.options.breaks?n.inline=J.breaks:n.inline=J.gfm),this.tokenizer.rules=n}static get rules(){return{block:U,inline:J}}static lex(e,t){return new re(t).lex(e)}static lexInline(e,t){return new re(t).inlineTokens(e)}lex(e){e=e.replace(i.carriageReturn,"\n"),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){const t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(i.tabCharGlobal," ").replace(i.spaceLine,""));e;){let s;if(this.options.extensions?.block?.some((n=>!!(s=n.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0))))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);const n=t.at(-1);1===s.raw.length&&void 0!==n?n.raw+="\n":t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);const n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+s.raw,n.text+="\n"+s.text,this.inlineQueue.at(-1).src=n.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);const n=t.at(-1);"paragraph"===n?.type||"text"===n?.type?(n.raw+="\n"+s.raw,n.text+="\n"+s.raw,this.inlineQueue.at(-1).src=n.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}let r=e;if(this.options.extensions?.startBlock){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startBlock.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(r=e.substring(0,t+1))}if(this.state.top&&(s=this.tokenizer.paragraph(r))){const i=t.at(-1);n&&"paragraph"===i?.type?(i.raw+="\n"+s.raw,i.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(s),n=r.length!==e.length,e=e.substring(s.raw.length)}else if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);const n=t.at(-1);"text"===n?.type?(n.raw+="\n"+s.raw,n.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=n.text):t.push(s)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,s=null;if(this.tokens.links){const e=Object.keys(this.tokens.links);if(e.length>0)for(;null!=(s=this.tokenizer.rules.inline.reflinkSearch.exec(n));)e.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(s=this.tokenizer.rules.inline.blockSkip.exec(n));)n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(s=this.tokenizer.rules.inline.anyPunctuation.exec(n));)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let r=!1,i="";for(;e;){let s;if(r||(i=""),r=!1,this.options.extensions?.inline?.some((n=>!!(s=n.call({lexer:this},e,t))&&(e=e.substring(s.raw.length),t.push(s),!0))))continue;if(s=this.tokenizer.escape(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.tag(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.link(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(s.raw.length);const n=t.at(-1);"text"===s.type&&"text"===n?.type?(n.raw+=s.raw,n.text+=s.text):t.push(s);continue}if(s=this.tokenizer.emStrong(e,n,i)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.codespan(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.br(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.del(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.autolink(e)){e=e.substring(s.raw.length),t.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(e))){e=e.substring(s.raw.length),t.push(s);continue}let l=e;if(this.options.extensions?.startInline){let t=1/0;const n=e.slice(1);let s;this.options.extensions.startInline.forEach((e=>{s=e.call({lexer:this},n),"number"==typeof s&&s>=0&&(t=Math.min(t,s))})),t<1/0&&t>=0&&(l=e.substring(0,t+1))}if(s=this.tokenizer.inlineText(l)){e=e.substring(s.raw.length),"_"!==s.raw.slice(-1)&&(i=s.raw.slice(-1)),r=!0;const n=t.at(-1);"text"===n?.type?(n.raw+=s.raw,n.text+=s.text):t.push(s)}else if(e){const t="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(t);break}throw new Error(t)}}return t}}class ie{options;parser;constructor(t){this.options=t||e.defaults}space(e){return""}code({text:e,lang:t,escaped:n}){const s=(t||"").match(i.notSpaceStart)?.[0],r=e.replace(i.endingNewline,"")+"\n";return s?'<pre><code class="language-'+W(s)+'">'+(n?r:W(r,!0))+"</code></pre>\n":"<pre><code>"+(n?r:W(r,!0))+"</code></pre>\n"}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return"<hr>\n"}list(e){const t=e.ordered,n=e.start;let s="";for(let t=0;t<e.items.length;t++){const n=e.items[t];s+=this.listitem(n)}const r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+s+"</"+r+">\n"}listitem(e){let t="";if(e.task){const n=this.checkbox({checked:!!e.checked});e.loose?"paragraph"===e.tokens[0]?.type?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&"text"===e.tokens[0].tokens[0].type&&(e.tokens[0].tokens[0].text=n+" "+W(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`<li>${t}</li>\n`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t="",n="";for(let t=0;t<e.header.length;t++)n+=this.tablecell(e.header[t]);t+=this.tablerow({text:n});let s="";for(let t=0;t<e.rows.length;t++){const r=e.rows[t];n="";for(let e=0;e<r.length;e++)n+=this.tablecell(r[e]);s+=this.tablerow({text:n})}return s&&(s=`<tbody>${s}</tbody>`),"<table>\n<thead>\n"+t+"</thead>\n"+s+"</table>\n"}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){const t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${W(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){const s=this.parser.parseInline(n),r=Y(e);if(null===r)return s;let i='<a href="'+(e=r)+'"';return t&&(i+=' title="'+W(t)+'"'),i+=">"+s+"</a>",i}image({href:e,title:t,text:n}){const s=Y(e);if(null===s)return W(n);let r=`<img src="${e=s}" alt="${n}"`;return t&&(r+=` title="${W(t)}"`),r+=">",r}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:W(e.text)}}class le{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}}class oe{options;renderer;textRenderer;constructor(t){this.options=t||e.defaults,this.options.renderer=this.options.renderer||new ie,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new le}static parse(e,t){return new oe(t).parse(e)}static parseInline(e,t){return new oe(t).parseInline(e)}parse(e,t=!0){let n="";for(let s=0;s<e.length;s++){const r=e[s];if(this.options.extensions?.renderers?.[r.type]){const e=r,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(!1!==t||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(e.type)){n+=t||"";continue}}const i=r;switch(i.type){case"space":n+=this.renderer.space(i);continue;case"hr":n+=this.renderer.hr(i);continue;case"heading":n+=this.renderer.heading(i);continue;case"code":n+=this.renderer.code(i);continue;case"table":n+=this.renderer.table(i);continue;case"blockquote":n+=this.renderer.blockquote(i);continue;case"list":n+=this.renderer.list(i);continue;case"html":n+=this.renderer.html(i);continue;case"paragraph":n+=this.renderer.paragraph(i);continue;case"text":{let r=i,l=this.renderer.text(r);for(;s+1<e.length&&"text"===e[s+1].type;)r=e[++s],l+="\n"+this.renderer.text(r);n+=t?this.renderer.paragraph({type:"paragraph",raw:l,text:l,tokens:[{type:"text",raw:l,text:l,escaped:!0}]}):l;continue}default:{const e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}parseInline(e,t=this.renderer){let n="";for(let s=0;s<e.length;s++){const r=e[s];if(this.options.extensions?.renderers?.[r.type]){const e=this.options.extensions.renderers[r.type].call({parser:this},r);if(!1!==e||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(r.type)){n+=e||"";continue}}const i=r;switch(i.type){case"escape":case"text":n+=t.text(i);break;case"html":n+=t.html(i);break;case"link":n+=t.link(i);break;case"image":n+=t.image(i);break;case"strong":n+=t.strong(i);break;case"em":n+=t.em(i);break;case"codespan":n+=t.codespan(i);break;case"br":n+=t.br(i);break;case"del":n+=t.del(i);break;default:{const e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw new Error(e)}}}return n}}class ae{options;block;constructor(t){this.options=t||e.defaults}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?re.lex:re.lexInline}provideParser(){return this.block?oe.parse:oe.parseInline}}class ce{defaults={async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null};options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=oe;Renderer=ie;TextRenderer=le;Lexer=re;Tokenizer=se;Hooks=ae;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(const s of e)switch(n=n.concat(t.call(this,s)),s.type){case"table":{const e=s;for(const s of e.header)n=n.concat(this.walkTokens(s.tokens,t));for(const s of e.rows)for(const e of s)n=n.concat(this.walkTokens(e.tokens,t));break}case"list":{const e=s;n=n.concat(this.walkTokens(e.items,t));break}default:{const e=s;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach((s=>{const r=e[s].flat(1/0);n=n.concat(this.walkTokens(r,t))})):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){const t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach((e=>{const n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach((e=>{if(!e.name)throw new Error("extension name required");if("renderer"in e){const n=t.renderers[e.name];t.renderers[e.name]=n?function(...t){let s=e.renderer.apply(this,t);return!1===s&&(s=n.apply(this,t)),s}:e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw new Error("extension level must be 'block' or 'inline'");const n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)})),n.extensions=t),e.renderer){const t=this.defaults.renderer||new ie(this.defaults);for(const n in e.renderer){if(!(n in t))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;const s=n,r=e.renderer[s],i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){const t=this.defaults.tokenizer||new se(this.defaults);for(const n in e.tokenizer){if(!(n in t))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;const s=n,r=e.tokenizer[s],i=t[s];t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){const t=this.defaults.hooks||new ae;for(const n in e.hooks){if(!(n in t))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;const s=n,r=e.hooks[s],i=t[s];ae.passThroughHooks.has(n)?t[s]=e=>{if(this.defaults.async)return Promise.resolve(r.call(t,e)).then((e=>i.call(t,e)));const n=r.call(t,e);return i.call(t,n)}:t[s]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){const t=this.defaults.walkTokens,s=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(s.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}})),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return re.lex(e,t??this.defaults)}parser(e,t){return oe.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{const s={...n},r={...this.defaults,...s},i=this.onError(!!r.silent,!!r.async);if(!0===this.defaults.async&&!1===s.async)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(null==t)return i(new Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));r.hooks&&(r.hooks.options=r,r.hooks.block=e);const l=r.hooks?r.hooks.provideLexer():e?re.lex:re.lexInline,o=r.hooks?r.hooks.provideParser():e?oe.parse:oe.parseInline;if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(t):t).then((e=>l(e,r))).then((e=>r.hooks?r.hooks.processAllTokens(e):e)).then((e=>r.walkTokens?Promise.all(this.walkTokens(e,r.walkTokens)).then((()=>e)):e)).then((e=>o(e,r))).then((e=>r.hooks?r.hooks.postprocess(e):e)).catch(i);try{r.hooks&&(t=r.hooks.preprocess(t));let e=l(t,r);r.hooks&&(e=r.hooks.processAllTokens(e)),r.walkTokens&&this.walkTokens(e,r.walkTokens);let n=o(e,r);return r.hooks&&(n=r.hooks.postprocess(n)),n}catch(e){return i(e)}}}onError(e,t){return n=>{if(n.message+="\nPlease report this to https://github.com/markedjs/marked.",e){const e="<p>An error occurred:</p><pre>"+W(n.message+"",!0)+"</pre>";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}}const he=new ce;function pe(e,t){return he.parse(e,t)}pe.options=pe.setOptions=function(e){return he.setOptions(e),pe.defaults=he.defaults,n(pe.defaults),pe},pe.getDefaults=t,pe.defaults=e.defaults,pe.use=function(...e){return he.use(...e),pe.defaults=he.defaults,n(pe.defaults),pe},pe.walkTokens=function(e,t){return he.walkTokens(e,t)},pe.parseInline=he.parseInline,pe.Parser=oe,pe.parser=oe.parse,pe.Renderer=ie,pe.TextRenderer=le,pe.Lexer=re,pe.lexer=re.lex,pe.Tokenizer=se,pe.Hooks=ae,pe.parse=pe;const ue=pe.options,ge=pe.setOptions,ke=pe.use,de=pe.walkTokens,fe=pe.parseInline,xe=pe,be=oe.parse,we=re.lex;e.Hooks=ae,e.Lexer=re,e.Marked=ce,e.Parser=oe,e.Renderer=ie,e.TextRenderer=le,e.Tokenizer=se,e.getDefaults=t,e.lexer=we,e.marked=pe,e.options=ue,e.parse=xe,e.parseInline=fe,e.parser=be,e.setOptions=ge,e.use=ke,e.walkTokens=de}));
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=R(Array.prototype.forEach),m=R(Array.prototype.lastIndexOf),p=R(Array.prototype.pop),f=R(Array.prototype.push),d=R(Array.prototype.splice),h=R(String.prototype.toLowerCase),g=R(String.prototype.toString),T=R(String.prototype.match),y=R(String.prototype.replace),E=R(String.prototype.indexOf),A=R(String.prototype.trim),_=R(Object.prototype.hasOwnProperty),S=R(RegExp.prototype.test),b=(N=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return s(N,t)});var N;function R(e){return function(t){for(var n=arguments.length,o=new Array(n>1?n-1:0),r=1;r<n;r++)o[r-1]=arguments[r];return c(e,t,o)}}function w(e,o){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function O(e){for(let t=0;t<e.length;t++){_(e,t)||(e[t]=null)}return e}function D(t){const n=l(null);for(const[o,r]of e(t)){_(t,o)&&(Array.isArray(r)?n[o]=O(r):r&&"object"==typeof r&&r.constructor===Object?n[o]=D(r):n[o]=r)}return n}function v(e,t){for(;null!==e;){const n=r(e,t);if(n){if(n.get)return R(n.get);if("function"==typeof n.value)return R(n.value)}e=o(e)}return function(){return null}}const L=i(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),C=i(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),x=i(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),M=i(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),k=i(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),I=i(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),U=i(["#text"]),z=i(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),P=i(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),H=i(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),F=i(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),B=a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),W=a(/<%[\w\W]*|[\w\W]*%>/gm),G=a(/\$\{[\w\W]*/gm),Y=a(/^data-[\-\w.\u00B7-\uFFFF]+$/),j=a(/^aria-[\-\w]+$/),X=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),q=a(/^(?:\w+script|data):/i),$=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),K=a(/^html$/i),V=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var Z=Object.freeze({__proto__:null,ARIA_ATTR:j,ATTR_WHITESPACE:$,CUSTOM_ELEMENT:V,DATA_ATTR:Y,DOCTYPE_NAME:K,ERB_EXPR:W,IS_ALLOWED_URI:X,IS_SCRIPT_OR_DATA:q,MUSTACHE_EXPR:B,TMPLIT_EXPR:G});const J=1,Q=3,ee=7,te=8,ne=9,oe=function(){return"undefined"==typeof window?null:window};var re=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:oe();const o=e=>t(e);if(o.version="3.2.4",o.removed=[],!n||!n.document||n.document.nodeType!==ne||!n.Element)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:N,Node:R,Element:O,NodeFilter:B,NamedNodeMap:W=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:G,DOMParser:Y,trustedTypes:j}=n,q=O.prototype,$=v(q,"cloneNode"),V=v(q,"remove"),re=v(q,"nextSibling"),ie=v(q,"childNodes"),ae=v(q,"parentNode");if("function"==typeof N){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let le,ce="";const{implementation:se,createNodeIterator:ue,createDocumentFragment:me,getElementsByTagName:pe}=r,{importNode:fe}=a;let de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};o.isSupported="function"==typeof e&&"function"==typeof ae&&se&&void 0!==se.createHTMLDocument;const{MUSTACHE_EXPR:he,ERB_EXPR:ge,TMPLIT_EXPR:Te,DATA_ATTR:ye,ARIA_ATTR:Ee,IS_SCRIPT_OR_DATA:Ae,ATTR_WHITESPACE:_e,CUSTOM_ELEMENT:Se}=Z;let{IS_ALLOWED_URI:be}=Z,Ne=null;const Re=w({},[...L,...C,...x,...k,...U]);let we=null;const Oe=w({},[...z,...P,...H,...F]);let De=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ve=null,Le=null,Ce=!0,xe=!0,Me=!1,ke=!0,Ie=!1,Ue=!0,ze=!1,Pe=!1,He=!1,Fe=!1,Be=!1,We=!1,Ge=!0,Ye=!1,je=!0,Xe=!1,qe={},$e=null;const Ke=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ve=null;const Ze=w({},["audio","video","img","source","image","track"]);let Je=null;const Qe=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),et="http://www.w3.org/1998/Math/MathML",tt="http://www.w3.org/2000/svg",nt="http://www.w3.org/1999/xhtml";let ot=nt,rt=!1,it=null;const at=w({},[et,tt,nt],g);let lt=w({},["mi","mo","mn","ms","mtext"]),ct=w({},["annotation-xml"]);const st=w({},["title","style","font","a","script"]);let ut=null;const mt=["application/xhtml+xml","text/html"];let pt=null,ft=null;const dt=r.createElement("form"),ht=function(e){return e instanceof RegExp||e instanceof Function},gt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ft||ft!==e){if(e&&"object"==typeof e||(e={}),e=D(e),ut=-1===mt.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,pt="application/xhtml+xml"===ut?g:h,Ne=_(e,"ALLOWED_TAGS")?w({},e.ALLOWED_TAGS,pt):Re,we=_(e,"ALLOWED_ATTR")?w({},e.ALLOWED_ATTR,pt):Oe,it=_(e,"ALLOWED_NAMESPACES")?w({},e.ALLOWED_NAMESPACES,g):at,Je=_(e,"ADD_URI_SAFE_ATTR")?w(D(Qe),e.ADD_URI_SAFE_ATTR,pt):Qe,Ve=_(e,"ADD_DATA_URI_TAGS")?w(D(Ze),e.ADD_DATA_URI_TAGS,pt):Ze,$e=_(e,"FORBID_CONTENTS")?w({},e.FORBID_CONTENTS,pt):Ke,ve=_(e,"FORBID_TAGS")?w({},e.FORBID_TAGS,pt):{},Le=_(e,"FORBID_ATTR")?w({},e.FORBID_ATTR,pt):{},qe=!!_(e,"USE_PROFILES")&&e.USE_PROFILES,Ce=!1!==e.ALLOW_ARIA_ATTR,xe=!1!==e.ALLOW_DATA_ATTR,Me=e.ALLOW_UNKNOWN_PROTOCOLS||!1,ke=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Ie=e.SAFE_FOR_TEMPLATES||!1,Ue=!1!==e.SAFE_FOR_XML,ze=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Be=e.RETURN_DOM_FRAGMENT||!1,We=e.RETURN_TRUSTED_TYPE||!1,He=e.FORCE_BODY||!1,Ge=!1!==e.SANITIZE_DOM,Ye=e.SANITIZE_NAMED_PROPS||!1,je=!1!==e.KEEP_CONTENT,Xe=e.IN_PLACE||!1,be=e.ALLOWED_URI_REGEXP||X,ot=e.NAMESPACE||nt,lt=e.MATHML_TEXT_INTEGRATION_POINTS||lt,ct=e.HTML_INTEGRATION_POINTS||ct,De=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(De.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ht(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(De.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(De.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Ie&&(xe=!1),Be&&(Fe=!0),qe&&(Ne=w({},U),we=[],!0===qe.html&&(w(Ne,L),w(we,z)),!0===qe.svg&&(w(Ne,C),w(we,P),w(we,F)),!0===qe.svgFilters&&(w(Ne,x),w(we,P),w(we,F)),!0===qe.mathMl&&(w(Ne,k),w(we,H),w(we,F))),e.ADD_TAGS&&(Ne===Re&&(Ne=D(Ne)),w(Ne,e.ADD_TAGS,pt)),e.ADD_ATTR&&(we===Oe&&(we=D(we)),w(we,e.ADD_ATTR,pt)),e.ADD_URI_SAFE_ATTR&&w(Je,e.ADD_URI_SAFE_ATTR,pt),e.FORBID_CONTENTS&&($e===Ke&&($e=D($e)),w($e,e.FORBID_CONTENTS,pt)),je&&(Ne["#text"]=!0),ze&&w(Ne,["html","head","body"]),Ne.table&&(w(Ne,["tbody"]),delete ve.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw b('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');le=e.TRUSTED_TYPES_POLICY,ce=le.createHTML("")}else void 0===le&&(le=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(j,c)),null!==le&&"string"==typeof ce&&(ce=le.createHTML(""));i&&i(e),ft=e}},Tt=w({},[...C,...x,...M]),yt=w({},[...k,...I]),Et=function(e){f(o.removed,{element:e});try{ae(e).removeChild(e)}catch(t){V(e)}},At=function(e,t){try{f(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){f(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Be)try{Et(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},_t=function(e){let t=null,n=null;if(He)e="<remove></remove>"+e;else{const t=T(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ut&&ot===nt&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const o=le?le.createHTML(e):e;if(ot===nt)try{t=(new Y).parseFromString(o,ut)}catch(e){}if(!t||!t.documentElement){t=se.createDocument(ot,"template",null);try{t.documentElement.innerHTML=rt?ce:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),ot===nt?pe.call(t,ze?"html":"body")[0]:ze?t.documentElement:i},St=function(e){return ue.call(e.ownerDocument||e,e,B.SHOW_ELEMENT|B.SHOW_COMMENT|B.SHOW_TEXT|B.SHOW_PROCESSING_INSTRUCTION|B.SHOW_CDATA_SECTION,null)},bt=function(e){return e instanceof G&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof W)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Nt=function(e){return"function"==typeof R&&e instanceof R};function Rt(e,t,n){u(e,(e=>{e.call(o,t,n,ft)}))}const wt=function(e){let t=null;if(Rt(de.beforeSanitizeElements,e,null),bt(e))return Et(e),!0;const n=pt(e.nodeName);if(Rt(de.uponSanitizeElement,e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Nt(e.firstElementChild)&&S(/<[/\w]/g,e.innerHTML)&&S(/<[/\w]/g,e.textContent))return Et(e),!0;if(e.nodeType===ee)return Et(e),!0;if(Ue&&e.nodeType===te&&S(/<[/\w]/g,e.data))return Et(e),!0;if(!Ne[n]||ve[n]){if(!ve[n]&&Dt(n)){if(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,n))return!1;if(De.tagNameCheck instanceof Function&&De.tagNameCheck(n))return!1}if(je&&!$e[n]){const t=ae(e)||e.parentNode,n=ie(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=$(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,re(e))}}}return Et(e),!0}return e instanceof O&&!function(e){let t=ae(e);t&&t.tagName||(t={namespaceURI:ot,tagName:"template"});const n=h(e.tagName),o=h(t.tagName);return!!it[e.namespaceURI]&&(e.namespaceURI===tt?t.namespaceURI===nt?"svg"===n:t.namespaceURI===et?"svg"===n&&("annotation-xml"===o||lt[o]):Boolean(Tt[n]):e.namespaceURI===et?t.namespaceURI===nt?"math"===n:t.namespaceURI===tt?"math"===n&&ct[o]:Boolean(yt[n]):e.namespaceURI===nt?!(t.namespaceURI===tt&&!ct[o])&&!(t.namespaceURI===et&&!lt[o])&&!yt[n]&&(st[n]||!Tt[n]):!("application/xhtml+xml"!==ut||!it[e.namespaceURI]))}(e)?(Et(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!S(/<\/no(script|embed|frames)/i,e.innerHTML)?(Ie&&e.nodeType===Q&&(t=e.textContent,u([he,ge,Te],(e=>{t=y(t,e," ")})),e.textContent!==t&&(f(o.removed,{element:e.cloneNode()}),e.textContent=t)),Rt(de.afterSanitizeElements,e,null),!1):(Et(e),!0)},Ot=function(e,t,n){if(Ge&&("id"===t||"name"===t)&&(n in r||n in dt))return!1;if(xe&&!Le[t]&&S(ye,t));else if(Ce&&S(Ee,t));else if(!we[t]||Le[t]){if(!(Dt(e)&&(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,e)||De.tagNameCheck instanceof Function&&De.tagNameCheck(e))&&(De.attributeNameCheck instanceof RegExp&&S(De.attributeNameCheck,t)||De.attributeNameCheck instanceof Function&&De.attributeNameCheck(t))||"is"===t&&De.allowCustomizedBuiltInElements&&(De.tagNameCheck instanceof RegExp&&S(De.tagNameCheck,n)||De.tagNameCheck instanceof Function&&De.tagNameCheck(n))))return!1}else if(Je[t]);else if(S(be,y(n,_e,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ve[e]){if(Me&&!S(Ae,y(n,_e,"")));else if(n)return!1}else;return!0},Dt=function(e){return"annotation-xml"!==e&&T(e,Se)},vt=function(e){Rt(de.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||bt(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=pt(a);let m="value"===a?c:A(c);if(n.attrName=s,n.attrValue=m,n.keepAttr=!0,n.forceKeepAttr=void 0,Rt(de.uponSanitizeAttribute,e,n),m=n.attrValue,!Ye||"id"!==s&&"name"!==s||(At(a,e),m="user-content-"+m),Ue&&S(/((--!?|])>)|<\/(style|title)/i,m)){At(a,e);continue}if(n.forceKeepAttr)continue;if(At(a,e),!n.keepAttr)continue;if(!ke&&S(/\/>/i,m)){At(a,e);continue}Ie&&u([he,ge,Te],(e=>{m=y(m,e," ")}));const f=pt(e.nodeName);if(Ot(f,s,m)){if(le&&"object"==typeof j&&"function"==typeof j.getAttributeType)if(l);else switch(j.getAttributeType(f,s)){case"TrustedHTML":m=le.createHTML(m);break;case"TrustedScriptURL":m=le.createScriptURL(m)}try{l?e.setAttributeNS(l,a,m):e.setAttribute(a,m),bt(e)?Et(e):p(o.removed)}catch(e){}}}Rt(de.afterSanitizeAttributes,e,null)},Lt=function e(t){let n=null;const o=St(t);for(Rt(de.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)Rt(de.uponSanitizeShadowNode,n,null),wt(n),vt(n),n.content instanceof s&&e(n.content);Rt(de.afterSanitizeShadowDOM,t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(rt=!e,rt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Nt(e)){if("function"!=typeof e.toString)throw b("toString is not a function");if("string"!=typeof(e=e.toString()))throw b("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Pe||gt(t),o.removed=[],"string"==typeof e&&(Xe=!1),Xe){if(e.nodeName){const t=pt(e.nodeName);if(!Ne[t]||ve[t])throw b("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof R)n=_t("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===J&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!Ie&&!ze&&-1===e.indexOf("<"))return le&&We?le.createHTML(e):e;if(n=_t(e),!n)return Fe?null:We?ce:""}n&&He&&Et(n.firstChild);const c=St(Xe?e:n);for(;i=c.nextNode();)wt(i),vt(i),i.content instanceof s&&Lt(i.content);if(Xe)return e;if(Fe){if(Be)for(l=me.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(we.shadowroot||we.shadowrootmode)&&(l=fe.call(a,l,!0)),l}let m=ze?n.outerHTML:n.innerHTML;return ze&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&S(K,n.ownerDocument.doctype.name)&&(m="<!DOCTYPE "+n.ownerDocument.doctype.name+">\n"+m),Ie&&u([he,ge,Te],(e=>{m=y(m,e," ")})),le&&We?le.createHTML(m):m},o.setConfig=function(){gt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Pe=!0},o.clearConfig=function(){ft=null,Pe=!1},o.isValidAttribute=function(e,t,n){ft||gt({});const o=pt(e),r=pt(t);return Ot(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&f(de[e],t)},o.removeHook=function(e,t){if(void 0!==t){const n=m(de[e],t);return-1===n?void 0:d(de[e],n,1)[0]}return p(de[e])},o.removeHooks=function(e){de[e]=[]},o.removeAllHooks=function(){de={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},o}();return re}));
|
|
3
|
+
//# sourceMappingURL=purify.min.js.map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# API audit against a running gateway (optional; unit/integration tests are primary).
|
|
3
|
+
# Usage: API_KEY=omni_live_... ADMIN_KEY=omni_live_... BASE_URL=http://127.0.0.1:3850 bash scripts/api-audit-run.sh
|
|
4
|
+
set -u
|
|
5
|
+
BASE_URL="${BASE_URL:-http://127.0.0.1:3850}"
|
|
6
|
+
API_KEY="${API_KEY:-}"
|
|
7
|
+
ADMIN_KEY="${ADMIN_KEY:-$API_KEY}"
|
|
8
|
+
|
|
9
|
+
if [[ -z "$API_KEY" ]]; then
|
|
10
|
+
echo "Set API_KEY (and optionally ADMIN_KEY, BASE_URL)"
|
|
11
|
+
echo "Prefer: npm test (in-process full matrix with mocks)"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
pass=0
|
|
16
|
+
fail=0
|
|
17
|
+
run() {
|
|
18
|
+
local name="$1" method="$2" path="$3" key="$4"
|
|
19
|
+
shift 4 || true
|
|
20
|
+
local code
|
|
21
|
+
code=$(curl -sS -o /tmp/gog-api-audit.json -w '%{http_code}' -X "$method" \
|
|
22
|
+
"${BASE_URL}${path}" \
|
|
23
|
+
-H "Authorization: Bearer ${key}" \
|
|
24
|
+
-H "Content-Type: application/json" \
|
|
25
|
+
"$@" || echo 000)
|
|
26
|
+
if [[ "$code" =~ ^2 ]]; then
|
|
27
|
+
echo "PASS $name ($code)"
|
|
28
|
+
pass=$((pass + 1))
|
|
29
|
+
else
|
|
30
|
+
echo "FAIL $name ($code) $(head -c 120 /tmp/gog-api-audit.json 2>/dev/null)"
|
|
31
|
+
fail=$((fail + 1))
|
|
32
|
+
fi
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
run "health" GET "/health" ""
|
|
36
|
+
run "ready" GET "/ready" ""
|
|
37
|
+
run "models" GET "/v1/models" "$API_KEY"
|
|
38
|
+
run "models-one" GET "/v1/models/grok-4.5" "$API_KEY"
|
|
39
|
+
run "chat" POST "/v1/chat/completions" "$API_KEY" \
|
|
40
|
+
-d '{"model":"grok-4.5","messages":[{"role":"user","content":"Reply: pong"}],"stream":false}'
|
|
41
|
+
run "messages" POST "/v1/messages" "$API_KEY" \
|
|
42
|
+
-d '{"model":"grok-4.5","max_tokens":32,"messages":[{"role":"user","content":"hi"}]}'
|
|
43
|
+
run "responses" POST "/v1/responses" "$API_KEY" \
|
|
44
|
+
-d '{"model":"grok-4.5","input":"hi","stream":false}'
|
|
45
|
+
run "admin-me" GET "/admin/api/me" "$ADMIN_KEY"
|
|
46
|
+
run "admin-stats" GET "/admin/api/stats" "$ADMIN_KEY"
|
|
47
|
+
run "admin-queue" GET "/admin/api/queue/stats" "$ADMIN_KEY"
|
|
48
|
+
run "admin-ddos" GET "/admin/api/ddos/policy" "$ADMIN_KEY"
|
|
49
|
+
run "admin-features" GET "/admin/api/api-features" "$ADMIN_KEY"
|
|
50
|
+
|
|
51
|
+
echo "SUMMARY pass=$pass fail=$fail"
|
|
52
|
+
[[ $fail -eq 0 ]]
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Strict ysk-omni CLI audit: run every leaf command once in an isolated --home.
|
|
3
|
+
# Usage: bash scripts/cli-audit-run.sh
|
|
4
|
+
set -u
|
|
5
|
+
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
6
|
+
cd "$ROOT"
|
|
7
|
+
|
|
8
|
+
HOME_CLI="${HOME_CLI:-/tmp/ysk-omni-cli-audit-$$}"
|
|
9
|
+
PORT="${PORT:-13947}"
|
|
10
|
+
BIN=(node dist/cli/index.js --home "$HOME_CLI" --port "$PORT")
|
|
11
|
+
REPORT="${REPORT:-$HOME_CLI/audit-report.tsv}"
|
|
12
|
+
mkdir -p "$HOME_CLI"
|
|
13
|
+
: >"$REPORT"
|
|
14
|
+
|
|
15
|
+
pass=0
|
|
16
|
+
fail=0
|
|
17
|
+
skip=0
|
|
18
|
+
expect_fail=0
|
|
19
|
+
|
|
20
|
+
run() {
|
|
21
|
+
local name="$1"
|
|
22
|
+
shift
|
|
23
|
+
local expect="${1:-0}" # 0 = expect success, 1 = expect non-zero, skip = skip
|
|
24
|
+
shift || true
|
|
25
|
+
if [[ "$expect" == "skip" ]]; then
|
|
26
|
+
echo -e "SKIP\t$name\t$1" | tee -a "$REPORT"
|
|
27
|
+
skip=$((skip + 1))
|
|
28
|
+
return 0
|
|
29
|
+
fi
|
|
30
|
+
local out rc
|
|
31
|
+
set +e
|
|
32
|
+
out="$("${BIN[@]}" "$@" 2>&1)"
|
|
33
|
+
rc=$?
|
|
34
|
+
set -e
|
|
35
|
+
local summary
|
|
36
|
+
summary="$(echo "$out" | tr '\n' ' ' | head -c 160)"
|
|
37
|
+
if [[ "$expect" == "0" ]]; then
|
|
38
|
+
if [[ $rc -eq 0 ]]; then
|
|
39
|
+
echo -e "PASS\t$name\t$rc\t$summary" | tee -a "$REPORT"
|
|
40
|
+
pass=$((pass + 1))
|
|
41
|
+
else
|
|
42
|
+
echo -e "FAIL\t$name\t$rc\t$summary" | tee -a "$REPORT"
|
|
43
|
+
fail=$((fail + 1))
|
|
44
|
+
fi
|
|
45
|
+
else
|
|
46
|
+
# expect non-zero
|
|
47
|
+
if [[ $rc -ne 0 ]]; then
|
|
48
|
+
echo -e "PASS\t$name\t$rc (expected fail)\t$summary" | tee -a "$REPORT"
|
|
49
|
+
expect_fail=$((expect_fail + 1))
|
|
50
|
+
pass=$((pass + 1))
|
|
51
|
+
else
|
|
52
|
+
echo -e "FAIL\t$name\t$rc (wanted fail)\t$summary" | tee -a "$REPORT"
|
|
53
|
+
fail=$((fail + 1))
|
|
54
|
+
fi
|
|
55
|
+
fi
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
echo "=== ysk-omni CLI audit ==="
|
|
59
|
+
echo "HOME=$HOME_CLI PORT=$PORT"
|
|
60
|
+
echo "BIN=${BIN[*]}"
|
|
61
|
+
echo
|
|
62
|
+
|
|
63
|
+
# L help
|
|
64
|
+
run "help" 0 --help
|
|
65
|
+
run "help-key" 0 help key
|
|
66
|
+
run "help-admin" 0 help admin
|
|
67
|
+
run "help-queue" 0 help queue
|
|
68
|
+
run "help-ddos" 0 help ddos
|
|
69
|
+
run "help-settings" 0 help settings
|
|
70
|
+
run "help-api" 0 help api
|
|
71
|
+
run "help-docs" 0 help docs
|
|
72
|
+
run "help-chats" 0 help chats
|
|
73
|
+
run "help-conversations" 0 help conversations
|
|
74
|
+
run "help-audit" 0 help audit
|
|
75
|
+
run "help-logs" 0 help logs
|
|
76
|
+
run "help-update" 0 help update
|
|
77
|
+
|
|
78
|
+
# A basics (no DB yet for some)
|
|
79
|
+
run "version" 0 version
|
|
80
|
+
run "open" 0 open
|
|
81
|
+
run "open-admin" 0 open --admin
|
|
82
|
+
# doctor before setup: expect non-zero (.env missing)
|
|
83
|
+
run "doctor-before-setup" 1 doctor
|
|
84
|
+
|
|
85
|
+
# Setup (may try pm2 global install — ignore side effects)
|
|
86
|
+
run "setup" 0 setup
|
|
87
|
+
run "migrate" 0 migrate
|
|
88
|
+
run "seed" 0 seed
|
|
89
|
+
run "doctor" 0 doctor
|
|
90
|
+
|
|
91
|
+
# Capture a key id for later
|
|
92
|
+
KEY_OUT="$("${BIN[@]}" key create -n audit-key -r client -m safe 2>&1)" || true
|
|
93
|
+
KEY_ID="$(echo "$KEY_OUT" | sed -n 's/^[[:space:]]*id:[[:space:]]*//p' | head -1)"
|
|
94
|
+
echo "KEY_ID=$KEY_ID"
|
|
95
|
+
|
|
96
|
+
run "key-create" 0 key create -n audit-key2 -r client
|
|
97
|
+
run "key-list" 0 key list
|
|
98
|
+
if [[ -n "${KEY_ID:-}" ]]; then
|
|
99
|
+
run "key-show" 0 key show "$KEY_ID"
|
|
100
|
+
run "key-update" 0 key update "$KEY_ID" -n audit-renamed --rate-limit 99
|
|
101
|
+
run "key-revoke" 0 key revoke "$KEY_ID"
|
|
102
|
+
run "key-activate" 0 key activate "$KEY_ID"
|
|
103
|
+
else
|
|
104
|
+
run "key-show" skip "no key id"
|
|
105
|
+
run "key-update" skip "no key id"
|
|
106
|
+
run "key-revoke" skip "no key id"
|
|
107
|
+
run "key-activate" skip "no key id"
|
|
108
|
+
fi
|
|
109
|
+
run "key-admin" 0 key admin -n audit-admin
|
|
110
|
+
# bare key defaults to admin create
|
|
111
|
+
run "key-bare" 0 key
|
|
112
|
+
|
|
113
|
+
# Admin panel
|
|
114
|
+
run "admin" 0 admin
|
|
115
|
+
run "admin-status" 0 admin status
|
|
116
|
+
run "admin-off" 0 admin off
|
|
117
|
+
run "admin-on" 0 admin on
|
|
118
|
+
run "admin-otp" 0 admin otp
|
|
119
|
+
run "admin-sessions" 0 admin sessions
|
|
120
|
+
run "admin-sessions-list" 0 admin sessions list
|
|
121
|
+
run "admin-sessions-revoke-expired" 0 admin sessions revoke all-expired
|
|
122
|
+
|
|
123
|
+
# Settings
|
|
124
|
+
run "settings" 0 settings
|
|
125
|
+
run "settings-get" 0 settings get
|
|
126
|
+
run "settings-set" 0 settings set --global-safe off --max-turns 8
|
|
127
|
+
run "settings-preset" 0 settings preset local
|
|
128
|
+
|
|
129
|
+
# Queue
|
|
130
|
+
run "queue" 0 queue
|
|
131
|
+
run "queue-stats" 0 queue stats
|
|
132
|
+
run "queue-policy" 0 queue policy
|
|
133
|
+
run "queue-policy-get" 0 queue policy get
|
|
134
|
+
run "queue-policy-set" 0 queue policy set --enabled on --global-concurrency 3
|
|
135
|
+
run "queue-policy-preset" 0 queue policy preset balanced
|
|
136
|
+
run "queue-pause" 0 queue pause
|
|
137
|
+
run "queue-resume" 0 queue resume
|
|
138
|
+
run "queue-drain" 0 queue drain
|
|
139
|
+
run "queue-undrain" 0 queue undrain
|
|
140
|
+
run "queue-jobs" 0 queue jobs
|
|
141
|
+
run "queue-job-missing" 1 queue job 00000000-0000-4000-8000-000000000000
|
|
142
|
+
run "queue-cancel-missing" 1 queue cancel 00000000-0000-4000-8000-000000000000
|
|
143
|
+
run "queue-requeue-missing" 1 queue requeue 00000000-0000-4000-8000-000000000000
|
|
144
|
+
run "queue-priority-missing" 1 queue priority 00000000-0000-4000-8000-000000000000 10
|
|
145
|
+
run "queue-purge-dead-noyes" 1 queue purge-dead
|
|
146
|
+
run "queue-purge-dead" 0 queue purge-dead -y
|
|
147
|
+
|
|
148
|
+
# DDoS
|
|
149
|
+
run "ddos" 0 ddos
|
|
150
|
+
run "ddos-policy" 0 ddos policy
|
|
151
|
+
run "ddos-policy-get" 0 ddos policy get
|
|
152
|
+
run "ddos-policy-set" 0 ddos policy set --auto-ban on --rate-limit-max 100
|
|
153
|
+
run "ddos-policy-preset" 0 ddos policy preset balanced
|
|
154
|
+
run "ddos-policy-reset" 0 ddos policy reset
|
|
155
|
+
run "ddos-ban" 0 ddos ban 203.0.113.1 --ttl 60 --reason audit
|
|
156
|
+
run "ddos-blacklist" 0 ddos blacklist
|
|
157
|
+
run "ddos-unban" 0 ddos unban 203.0.113.1
|
|
158
|
+
|
|
159
|
+
# Data
|
|
160
|
+
run "docs" 0 docs
|
|
161
|
+
run "docs-list" 0 docs list
|
|
162
|
+
run "docs-show-missing" 1 docs show 00000000-0000-4000-8000-000000000000
|
|
163
|
+
run "docs-delete-noyes" 1 docs delete 00000000-0000-4000-8000-000000000000
|
|
164
|
+
run "docs-delete-missing" 1 docs delete 00000000-0000-4000-8000-000000000000 -y
|
|
165
|
+
run "chats" 0 chats
|
|
166
|
+
run "chats-list" 0 chats list
|
|
167
|
+
run "chats-show-missing" 1 chats show 00000000-0000-4000-8000-000000000000
|
|
168
|
+
run "conversations" 0 conversations
|
|
169
|
+
run "conversations-list" 0 conversations list
|
|
170
|
+
run "conversations-delete-noyes" 1 conversations delete 00000000-0000-4000-8000-000000000000
|
|
171
|
+
run "conversations-delete-missing" 1 conversations delete 00000000-0000-4000-8000-000000000000 -y
|
|
172
|
+
run "audit" 0 audit
|
|
173
|
+
run "audit-list" 0 audit list
|
|
174
|
+
run "stats" 0 stats
|
|
175
|
+
|
|
176
|
+
# API features
|
|
177
|
+
run "api-features" 0 api features
|
|
178
|
+
run "api-features-get" 0 api features get
|
|
179
|
+
run "api-features-set" 0 api features set --tools on --vision on
|
|
180
|
+
run "api-features-preset" 0 api features preset open
|
|
181
|
+
|
|
182
|
+
# Logs
|
|
183
|
+
run "logs" 0 logs -n 5
|
|
184
|
+
run "logs-show" 0 logs show -n 5
|
|
185
|
+
run "logs-clear" 0 logs clear
|
|
186
|
+
|
|
187
|
+
# Runtime (detached start/stop) — no PM2
|
|
188
|
+
run "start" 0 start
|
|
189
|
+
sleep 2
|
|
190
|
+
run "status" 0 status
|
|
191
|
+
run "models" 0 models
|
|
192
|
+
run "stop" 0 stop
|
|
193
|
+
run "restart" 0 restart
|
|
194
|
+
sleep 2
|
|
195
|
+
run "stop-after-restart" 0 stop
|
|
196
|
+
|
|
197
|
+
# Update check only
|
|
198
|
+
run "update-check" 0 update --check
|
|
199
|
+
|
|
200
|
+
# JSON mode sample
|
|
201
|
+
run "json-settings" 0 --json settings get
|
|
202
|
+
run "json-queue" 0 --json queue stats
|
|
203
|
+
run "json-api" 0 --json api features get
|
|
204
|
+
|
|
205
|
+
echo
|
|
206
|
+
echo "=== SUMMARY ==="
|
|
207
|
+
echo "PASS=$pass FAIL=$fail SKIP=$skip (expected-fail-as-pass counted in PASS)"
|
|
208
|
+
echo "Report: $REPORT"
|
|
209
|
+
echo "Home: $HOME_CLI"
|
|
210
|
+
|
|
211
|
+
if [[ $fail -gt 0 ]]; then
|
|
212
|
+
exit 1
|
|
213
|
+
fi
|
|
214
|
+
exit 0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const root = path.resolve(__dirname, '..');
|
|
4
|
+
const src = fs.readFileSync(path.join(root, 'src/config/constants.ts'), 'utf8');
|
|
5
|
+
const m = src.match(/ALLOWED_UPLOAD_EXTENSIONS\s*=\s*new Set\(\[([\s\S]*?)\]\)/);
|
|
6
|
+
if (!m) {
|
|
7
|
+
console.error('ALLOWED_UPLOAD_EXTENSIONS not found');
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const exts = [...m[1].matchAll(/'\.([a-z0-9]+)'/g)].map((x) => '.' + x[1]);
|
|
11
|
+
if (!exts.length) {
|
|
12
|
+
console.error('No extensions parsed');
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const outPath = path.join(root, 'public/admin/allowed-extensions.js');
|
|
16
|
+
const content = `// AUTO-GENERATED by scripts/generate-allowed-extensions.cjs — do not edit.
|
|
17
|
+
// Source: src/config/constants.ts ALLOWED_UPLOAD_EXTENSIONS
|
|
18
|
+
export const CHAT_ALLOWED_EXTENSIONS = new Set(${JSON.stringify(exts, null, 2)});
|
|
19
|
+
|
|
20
|
+
export const CHAT_FILE_ACCEPT = [...CHAT_ALLOWED_EXTENSIONS].join(',');
|
|
21
|
+
`;
|
|
22
|
+
fs.writeFileSync(outPath, content);
|
|
23
|
+
console.log(`Wrote ${outPath} (${exts.length} extensions)`);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Install ysk-omni globally from the npm registry (recommended path).
|
|
3
|
+
# Does NOT clone GitHub or use `npm install -g github:…`.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
PKG="${GCTOAC_NPM_PACKAGE:-ysk-omni}"
|
|
7
|
+
VERSION="${GCTOAC_NPM_VERSION:-latest}"
|
|
8
|
+
|
|
9
|
+
echo "[ysk-omni] Installing ${PKG}@${VERSION} globally from npm…"
|
|
10
|
+
npm install -g "${PKG}@${VERSION}" --no-fund --no-audit
|
|
11
|
+
|
|
12
|
+
BIN_DIR="$(npm config get prefix)/bin"
|
|
13
|
+
echo ""
|
|
14
|
+
echo "[ysk-omni] Done."
|
|
15
|
+
echo "[ysk-omni] Package: ${PKG}@${VERSION}"
|
|
16
|
+
echo "[ysk-omni] Bins: $BIN_DIR/ysk-omni , $BIN_DIR/ysko"
|
|
17
|
+
echo ""
|
|
18
|
+
|
|
19
|
+
if ! command -v ysk-omni >/dev/null 2>&1; then
|
|
20
|
+
echo "[ysk-omni] NOTE: $BIN_DIR is not on your PATH."
|
|
21
|
+
echo " Add this to ~/.bashrc or ~/.zshrc:"
|
|
22
|
+
echo " export PATH=\"$BIN_DIR:\$PATH\""
|
|
23
|
+
echo ""
|
|
24
|
+
if [[ -x "$BIN_DIR/ysk-omni" ]]; then
|
|
25
|
+
"$BIN_DIR/ysk-omni" version || true
|
|
26
|
+
fi
|
|
27
|
+
else
|
|
28
|
+
ysk-omni version || true
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo "Next:"
|
|
32
|
+
echo " ysk-omni doctor"
|
|
33
|
+
echo " ysk-omni setup"
|
|
34
|
+
echo " ysk-omni start"
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Demo OpenAI-shaped media worker for YSK Omni.
|
|
4
|
+
* Point OMNI_IMAGE_URL / OMNI_TTS_URL / OMNI_STT_URL / OMNI_VIDEO_URL here.
|
|
5
|
+
* Not a real diffusion / whisper / Comfy process.
|
|
6
|
+
*/
|
|
7
|
+
import http from 'node:http';
|
|
8
|
+
import { spawnSync } from 'node:child_process';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import os from 'node:os';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
|
|
13
|
+
const PNG_1X1 = Buffer.from(
|
|
14
|
+
'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==',
|
|
15
|
+
'base64',
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
function wavBytes() {
|
|
19
|
+
const samples = 800;
|
|
20
|
+
const dataSize = samples * 2;
|
|
21
|
+
const buf = Buffer.alloc(44 + dataSize);
|
|
22
|
+
buf.write('RIFF', 0);
|
|
23
|
+
buf.writeUInt32LE(36 + dataSize, 4);
|
|
24
|
+
buf.write('WAVE', 8);
|
|
25
|
+
buf.write('fmt ', 12);
|
|
26
|
+
buf.writeUInt32LE(16, 16);
|
|
27
|
+
buf.writeUInt16LE(1, 20);
|
|
28
|
+
buf.writeUInt16LE(1, 22);
|
|
29
|
+
buf.writeUInt32LE(8000, 24);
|
|
30
|
+
buf.writeUInt32LE(16000, 28);
|
|
31
|
+
buf.writeUInt16LE(2, 32);
|
|
32
|
+
buf.writeUInt16LE(16, 34);
|
|
33
|
+
buf.write('data', 36);
|
|
34
|
+
buf.writeUInt32LE(dataSize, 40);
|
|
35
|
+
return buf;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let mp4Cache = null;
|
|
39
|
+
function mp4Bytes() {
|
|
40
|
+
if (mp4Cache) return mp4Cache;
|
|
41
|
+
const tmp = path.join(os.tmpdir(), 'ysk-omni-openai-worker.mp4');
|
|
42
|
+
const ff = spawnSync(
|
|
43
|
+
'ffmpeg',
|
|
44
|
+
[
|
|
45
|
+
'-y',
|
|
46
|
+
'-f',
|
|
47
|
+
'lavfi',
|
|
48
|
+
'-i',
|
|
49
|
+
'color=c=0x1a1a2e:s=32x32:d=0.2',
|
|
50
|
+
'-c:v',
|
|
51
|
+
'libx264',
|
|
52
|
+
'-pix_fmt',
|
|
53
|
+
'yuv420p',
|
|
54
|
+
'-t',
|
|
55
|
+
'0.2',
|
|
56
|
+
'-movflags',
|
|
57
|
+
'+faststart',
|
|
58
|
+
'-metadata',
|
|
59
|
+
'comment=ysk-omni-video-fixture',
|
|
60
|
+
tmp,
|
|
61
|
+
],
|
|
62
|
+
{ encoding: 'utf8' },
|
|
63
|
+
);
|
|
64
|
+
if (ff.status === 0 && fs.existsSync(tmp)) {
|
|
65
|
+
mp4Cache = fs.readFileSync(tmp);
|
|
66
|
+
return mp4Cache;
|
|
67
|
+
}
|
|
68
|
+
mp4Cache = Buffer.from('ftypisomysk-omni-video-fixture');
|
|
69
|
+
return mp4Cache;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function readBody(req) {
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const chunks = [];
|
|
75
|
+
req.on('data', (c) => chunks.push(c));
|
|
76
|
+
req.on('end', () => resolve(Buffer.concat(chunks)));
|
|
77
|
+
req.on('error', reject);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const server = http.createServer(async (req, res) => {
|
|
82
|
+
const url = req.url || '/';
|
|
83
|
+
try {
|
|
84
|
+
if (req.method === 'GET' && (url === '/health' || url === '/')) {
|
|
85
|
+
res.setHeader('Content-Type', 'application/json');
|
|
86
|
+
res.end(JSON.stringify({ ok: true, worker: 'ysk-omni-openai-worker' }));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (req.method === 'POST' && url.includes('/v1/images/generations')) {
|
|
90
|
+
await readBody(req);
|
|
91
|
+
res.setHeader('Content-Type', 'application/json');
|
|
92
|
+
res.end(
|
|
93
|
+
JSON.stringify({
|
|
94
|
+
created: Math.floor(Date.now() / 1000),
|
|
95
|
+
data: [{ b64_json: PNG_1X1.toString('base64') }],
|
|
96
|
+
}),
|
|
97
|
+
);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (req.method === 'POST' && url.includes('/v1/images/edits')) {
|
|
101
|
+
await readBody(req);
|
|
102
|
+
res.setHeader('Content-Type', 'application/json');
|
|
103
|
+
res.end(
|
|
104
|
+
JSON.stringify({
|
|
105
|
+
created: Math.floor(Date.now() / 1000),
|
|
106
|
+
data: [{ b64_json: PNG_1X1.toString('base64') }],
|
|
107
|
+
}),
|
|
108
|
+
);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (req.method === 'POST' && url.includes('/v1/audio/speech')) {
|
|
112
|
+
await readBody(req);
|
|
113
|
+
const wav = wavBytes();
|
|
114
|
+
res.setHeader('Content-Type', 'audio/wav');
|
|
115
|
+
res.end(wav);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (req.method === 'POST' && url.includes('/v1/audio/transcriptions')) {
|
|
119
|
+
await readBody(req);
|
|
120
|
+
res.setHeader('Content-Type', 'application/json');
|
|
121
|
+
res.end(JSON.stringify({ text: 'ysk-omni-stt-fixture' }));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (req.method === 'POST' && url.includes('/v1/videos')) {
|
|
125
|
+
await readBody(req);
|
|
126
|
+
const mp4 = mp4Bytes();
|
|
127
|
+
res.setHeader('Content-Type', 'video/mp4');
|
|
128
|
+
res.end(mp4);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
res.statusCode = 404;
|
|
132
|
+
res.end(JSON.stringify({ error: 'not found' }));
|
|
133
|
+
} catch (err) {
|
|
134
|
+
res.statusCode = 500;
|
|
135
|
+
res.end(String(err instanceof Error ? err.message : err));
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
const port = Number(process.env.OMNI_WORKER_PORT || 3860);
|
|
140
|
+
server.listen(port, '127.0.0.1', () => {
|
|
141
|
+
const addr = server.address();
|
|
142
|
+
const p = addr && typeof addr === 'object' ? addr.port : port;
|
|
143
|
+
process.stdout.write(`ysk-omni-openai-worker http://127.0.0.1:${p}\n`);
|
|
144
|
+
});
|