@withbuddi/buddi 0.1.0-pre.36 → 0.1.0-pre.37
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/examples/agents/concierge/agent.md +5 -0
- package/examples/skills/letterhead/SKILL.md +21 -0
- package/examples/skills/letterhead/assets/letterhead.md +16 -0
- package/examples/skills/letterhead/assets/logo.svg +6 -0
- package/extension/manifest.json +2 -2
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js +38 -3
- package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.d.ts +25 -0
- package/node_modules/@buddi/cli/dist/doctor.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor.js +28 -0
- package/node_modules/@buddi/cli/dist/doctor.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/actions/approvals.d.ts +7 -0
- package/node_modules/@buddi/core/dist/actions/approvals.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/actions/approvals.js +11 -1
- package/node_modules/@buddi/core/dist/actions/approvals.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/catalog.js +2 -2
- package/node_modules/@buddi/core/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.d.ts +60 -1
- package/node_modules/@buddi/core/dist/agents/skills.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/agents/skills.js +157 -17
- package/node_modules/@buddi/core/dist/agents/skills.js.map +1 -1
- package/node_modules/@buddi/core/dist/day-month.d.ts +52 -0
- package/node_modules/@buddi/core/dist/day-month.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/day-month.js +101 -0
- package/node_modules/@buddi/core/dist/day-month.js.map +1 -0
- package/node_modules/@buddi/core/dist/host/build.d.ts +11 -2
- package/node_modules/@buddi/core/dist/host/build.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/host/build.js +115 -4
- package/node_modules/@buddi/core/dist/host/build.js.map +1 -1
- package/node_modules/@buddi/core/dist/host/http.d.ts +35 -0
- package/node_modules/@buddi/core/dist/host/http.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/host/http.js +133 -29
- package/node_modules/@buddi/core/dist/host/http.js.map +1 -1
- package/node_modules/@buddi/core/dist/host/types.d.ts +72 -1
- package/node_modules/@buddi/core/dist/host/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/index.d.ts +2 -0
- package/node_modules/@buddi/core/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/index.js +2 -0
- package/node_modules/@buddi/core/dist/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/store.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/store.js +28 -5
- package/node_modules/@buddi/core/dist/onboarding/store.js.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/types.d.ts +10 -0
- package/node_modules/@buddi/core/dist/onboarding/types.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/onboarding/types.js.map +1 -1
- package/node_modules/@buddi/core/dist/pages.d.ts +145 -11
- package/node_modules/@buddi/core/dist/pages.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/pages.js +113 -5
- package/node_modules/@buddi/core/dist/pages.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.d.ts +4 -0
- package/node_modules/@buddi/core/dist/plugin/index.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/index.js +2 -0
- package/node_modules/@buddi/core/dist/plugin/index.js.map +1 -1
- package/node_modules/@buddi/core/dist/plugin/sign-in.d.ts +78 -0
- package/node_modules/@buddi/core/dist/plugin/sign-in.d.ts.map +1 -0
- package/node_modules/@buddi/core/dist/plugin/sign-in.js +54 -0
- package/node_modules/@buddi/core/dist/plugin/sign-in.js.map +1 -0
- package/node_modules/@buddi/core/dist/plugin/version.d.ts +1 -1
- package/node_modules/@buddi/core/dist/plugin/version.js +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts +7 -0
- package/node_modules/@buddi/core/dist/provider-accounts.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/provider-accounts.js +15 -0
- package/node_modules/@buddi/core/dist/provider-accounts.js.map +1 -1
- package/node_modules/@buddi/core/dist/questions/types.d.ts +1 -1
- package/node_modules/@buddi/core/dist/questions/types.js +1 -1
- package/node_modules/@buddi/core/dist/queue/jobs.d.ts +57 -2
- package/node_modules/@buddi/core/dist/queue/jobs.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/queue/jobs.js +114 -0
- package/node_modules/@buddi/core/dist/queue/jobs.js.map +1 -1
- package/node_modules/@buddi/core/dist/queue/worker.d.ts +24 -2
- package/node_modules/@buddi/core/dist/queue/worker.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/queue/worker.js +66 -11
- package/node_modules/@buddi/core/dist/queue/worker.js.map +1 -1
- package/node_modules/@buddi/core/dist/registry.d.ts +8 -0
- package/node_modules/@buddi/core/dist/registry.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/registry.js +15 -2
- package/node_modules/@buddi/core/dist/registry.js.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/scrub.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/secrets/scrub.js +15 -0
- package/node_modules/@buddi/core/dist/secrets/scrub.js.map +1 -1
- package/node_modules/@buddi/core/dist/tools.d.ts +29 -0
- package/node_modules/@buddi/core/dist/tools.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/tools.js.map +1 -1
- package/node_modules/@buddi/core/dist/views.d.ts +12 -12
- package/node_modules/@buddi/core/dist/widgets.d.ts +14 -1
- package/node_modules/@buddi/core/dist/widgets.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/widgets.js +30 -0
- package/node_modules/@buddi/core/dist/widgets.js.map +1 -1
- package/node_modules/@buddi/core/migrations/074_owner_identity.sql +14 -0
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalog.js +3 -3
- package/node_modules/@buddi/gateway/dist/agents/catalog.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js +11 -4
- package/node_modules/@buddi/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js +36 -2
- package/node_modules/@buddi/gateway/dist/agents/owner-tools.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts +19 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js +108 -0
- package/node_modules/@buddi/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +4 -4
- package/node_modules/@buddi/gateway/dist/agents/platform.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/agents/platform.js +11 -0
- package/node_modules/@buddi/gateway/dist/agents/platform.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js +4 -1
- package/node_modules/@buddi/gateway/dist/bootstrap.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/evals/golden.d.ts +33 -1
- package/node_modules/@buddi/gateway/dist/evals/golden.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/evals/golden.js +168 -3
- package/node_modules/@buddi/gateway/dist/evals/golden.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.d.ts +1 -0
- package/node_modules/@buddi/gateway/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/index.js +1 -0
- package/node_modules/@buddi/gateway/dist/index.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/dates.d.ts +98 -0
- package/node_modules/@buddi/gateway/dist/missions/dates.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/dates.js +252 -0
- package/node_modules/@buddi/gateway/dist/missions/dates.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/missions/execute.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js +16 -1
- package/node_modules/@buddi/gateway/dist/missions/execute.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/report.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/missions/report.js +1 -0
- package/node_modules/@buddi/gateway/dist/missions/report.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/ollama-local.d.ts +90 -0
- package/node_modules/@buddi/gateway/dist/ollama-local.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/ollama-local.js +201 -0
- package/node_modules/@buddi/gateway/dist/ollama-local.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts +8 -0
- package/node_modules/@buddi/gateway/dist/plugins-cli.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/plugins-cli.js +22 -1
- package/node_modules/@buddi/gateway/dist/plugins-cli.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/serve.js +50 -5
- package/node_modules/@buddi/gateway/dist/serve.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/surfaces/pending-question.js +2 -2
- package/node_modules/@buddi/gateway/dist/system-context.d.ts +21 -1
- package/node_modules/@buddi/gateway/dist/system-context.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/system-context.js +76 -2
- package/node_modules/@buddi/gateway/dist/system-context.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/approvals.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/approvals.js +4 -2
- package/node_modules/@buddi/gateway/dist/telegram/approvals.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.js +6 -1
- package/node_modules/@buddi/gateway/dist/telegram/channel.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/html.d.ts +34 -0
- package/node_modules/@buddi/gateway/dist/telegram/html.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/telegram/html.js +263 -0
- package/node_modules/@buddi/gateway/dist/telegram/html.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/telegram/notify.d.ts +6 -0
- package/node_modules/@buddi/gateway/dist/telegram/notify.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/telegram/notify.js +25 -3
- package/node_modules/@buddi/gateway/dist/telegram/notify.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/facts.d.ts +2 -0
- package/node_modules/@buddi/gateway/dist/tips/facts.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/facts.js +4 -1
- package/node_modules/@buddi/gateway/dist/tips/facts.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/rules.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/tips/rules.js +10 -0
- package/node_modules/@buddi/gateway/dist/tips/rules.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-routes.js +72 -9
- package/node_modules/@buddi/gateway/dist/web/api-routes.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-scan.d.ts +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-scan.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/api-scan.js +1 -0
- package/node_modules/@buddi/gateway/dist/web/api-scan.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/chat.js +9 -0
- package/node_modules/@buddi/gateway/dist/web/chat.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/composer.d.ts +45 -0
- package/node_modules/@buddi/gateway/dist/web/composer.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/composer.js +85 -0
- package/node_modules/@buddi/gateway/dist/web/composer.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/market.d.ts +20 -1
- package/node_modules/@buddi/gateway/dist/web/market.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/market.js +41 -1
- package/node_modules/@buddi/gateway/dist/web/market.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/people.d.ts +44 -0
- package/node_modules/@buddi/gateway/dist/web/people.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/people.js +114 -0
- package/node_modules/@buddi/gateway/dist/web/people.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/server.d.ts +4 -0
- package/node_modules/@buddi/gateway/dist/web/server.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/server.js +137 -11
- package/node_modules/@buddi/gateway/dist/web/server.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/skill-bundles.d.ts +101 -0
- package/node_modules/@buddi/gateway/dist/web/skill-bundles.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/skill-bundles.js +439 -0
- package/node_modules/@buddi/gateway/dist/web/skill-bundles.js.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/skills.d.ts +57 -1
- package/node_modules/@buddi/gateway/dist/web/skills.d.ts.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/skills.js +171 -9
- package/node_modules/@buddi/gateway/dist/web/skills.js.map +1 -1
- package/node_modules/@buddi/gateway/dist/web/zip-read.d.ts +31 -0
- package/node_modules/@buddi/gateway/dist/web/zip-read.d.ts.map +1 -0
- package/node_modules/@buddi/gateway/dist/web/zip-read.js +125 -0
- package/node_modules/@buddi/gateway/dist/web/zip-read.js.map +1 -0
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/index.d.ts +1 -0
- package/node_modules/@buddi/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/runtime/dist/index.js +1 -0
- package/node_modules/@buddi/runtime/dist/index.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/loop.js +11 -1
- package/node_modules/@buddi/runtime/dist/loop.js.map +1 -1
- package/node_modules/@buddi/runtime/dist/plugin-sign-in.d.ts +12 -0
- package/node_modules/@buddi/runtime/dist/plugin-sign-in.d.ts.map +1 -0
- package/node_modules/@buddi/runtime/dist/plugin-sign-in.js +397 -0
- package/node_modules/@buddi/runtime/dist/plugin-sign-in.js.map +1 -0
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/tools/write.d.ts.map +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/tools/write.js +1 -0
- package/node_modules/@buddi/tool-artifacts/dist/tools/write.js.map +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/widgets.d.ts.map +1 -1
- package/node_modules/@buddi/tool-email/dist/widgets.js +2 -1
- package/node_modules/@buddi/tool-email/dist/widgets.js.map +1 -1
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-host/dist/index.d.ts +2 -1
- package/node_modules/@buddi/tool-host/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-host/dist/index.js +3 -2
- package/node_modules/@buddi/tool-host/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-host/dist/process.d.ts +4 -0
- package/node_modules/@buddi/tool-host/dist/process.d.ts.map +1 -1
- package/node_modules/@buddi/tool-host/dist/process.js +4 -2
- package/node_modules/@buddi/tool-host/dist/process.js.map +1 -1
- package/node_modules/@buddi/tool-host/dist/service.d.ts +66 -17
- package/node_modules/@buddi/tool-host/dist/service.d.ts.map +1 -1
- package/node_modules/@buddi/tool-host/dist/service.js +172 -9
- package/node_modules/@buddi/tool-host/dist/service.js.map +1 -1
- package/node_modules/@buddi/tool-host/dist/skill-run.d.ts +55 -0
- package/node_modules/@buddi/tool-host/dist/skill-run.d.ts.map +1 -0
- package/node_modules/@buddi/tool-host/dist/skill-run.js +132 -0
- package/node_modules/@buddi/tool-host/dist/skill-run.js.map +1 -0
- package/node_modules/@buddi/tool-mcp/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/index.d.ts +1 -0
- package/node_modules/@buddi/tool-memory/dist/index.d.ts.map +1 -1
- package/node_modules/@buddi/tool-memory/dist/index.js +7 -2
- package/node_modules/@buddi/tool-memory/dist/index.js.map +1 -1
- package/node_modules/@buddi/tool-memory/dist/people.d.ts +218 -0
- package/node_modules/@buddi/tool-memory/dist/people.d.ts.map +1 -0
- package/node_modules/@buddi/tool-memory/dist/people.js +582 -0
- package/node_modules/@buddi/tool-memory/dist/people.js.map +1 -0
- package/node_modules/@buddi/tool-memory/dist/preamble.d.ts +4 -1
- package/node_modules/@buddi/tool-memory/dist/preamble.d.ts.map +1 -1
- package/node_modules/@buddi/tool-memory/dist/preamble.js +25 -7
- package/node_modules/@buddi/tool-memory/dist/preamble.js.map +1 -1
- package/node_modules/@buddi/tool-memory/migrations/002_people.sql +40 -0
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/node_modules/imapflow/CHANGELOG.md +8 -0
- package/node_modules/imapflow/dist/cjs/commands/append.js +27 -3
- package/node_modules/imapflow/dist/cjs/commands/store.js +31 -6
- package/node_modules/imapflow/dist/cjs/imap-flow.d.ts +1 -1
- package/node_modules/imapflow/dist/cjs/imap-flow.js +1 -1
- package/node_modules/imapflow/dist/cjs/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/cjs/package-info.js +1 -1
- package/node_modules/imapflow/dist/esm/commands/append.js +27 -3
- package/node_modules/imapflow/dist/esm/commands/store.js +31 -6
- package/node_modules/imapflow/dist/esm/imap-flow.d.ts +1 -1
- package/node_modules/imapflow/dist/esm/imap-flow.js +1 -1
- package/node_modules/imapflow/dist/esm/package-info.d.ts +1 -1
- package/node_modules/imapflow/dist/esm/package-info.js +1 -1
- package/node_modules/imapflow/package.json +4 -4
- package/node_modules/pino/CONTRIBUTING.md +5 -1
- package/node_modules/pino/LICENSE +1 -1
- package/node_modules/pino/README.md +1 -1
- package/node_modules/pino/SECURITY.md +18 -2
- package/node_modules/pino/browser.js +68 -8
- package/node_modules/pino/docs/api.md +75 -4
- package/node_modules/pino/docs/asynchronous.md +18 -3
- package/node_modules/pino/docs/browser.md +63 -0
- package/node_modules/pino/docs/child-loggers.md +22 -1
- package/node_modules/pino/docs/ecosystem.md +1 -0
- package/node_modules/pino/docs/help.md +11 -3
- package/node_modules/pino/docs/lts.md +29 -0
- package/node_modules/pino/docs/pretty.md +3 -0
- package/node_modules/pino/docs/redaction.md +3 -8
- package/node_modules/pino/docs/transports.md +71 -0
- package/node_modules/pino/docs/web.md +11 -14
- package/node_modules/pino/eslint.config.js +15 -7
- package/node_modules/pino/lib/caller.js +10 -0
- package/node_modules/pino/lib/meta.js +1 -1
- package/node_modules/pino/lib/multistream.js +15 -7
- package/node_modules/pino/lib/redaction.js +8 -3
- package/node_modules/pino/lib/symbols.js +3 -1
- package/node_modules/pino/lib/tools.js +2 -2
- package/node_modules/pino/lib/transport.js +14 -1
- package/node_modules/pino/lib/worker.js +4 -1
- package/node_modules/pino/package.json +14 -22
- package/node_modules/pino/pino.d.ts +709 -736
- package/node_modules/pino/pino.js +27 -2
- package/node_modules/pino/test/basic.test.js +66 -0
- package/node_modules/pino/test/browser-bindings.test.js +114 -0
- package/node_modules/pino/test/browser-redaction.test.js +264 -0
- package/node_modules/pino/test/browser-set-bindings.test.js +99 -0
- package/node_modules/pino/test/caller.test.js +20 -0
- package/node_modules/pino/test/escaping.test.js +17 -0
- package/node_modules/pino/test/fixtures/caller-loop.js +6 -0
- package/node_modules/pino/test/fixtures/ts/transpile.cjs +3 -3
- package/node_modules/pino/test/helper.js +6 -2
- package/node_modules/pino/test/multistream.test.js +64 -0
- package/node_modules/pino/test/redact.test.js +30 -0
- package/node_modules/pino/test/smoke.js +59 -0
- package/node_modules/pino/test/transport/core.test.js +85 -0
- package/node_modules/pino/test/transport/sync-false.test.js +12 -0
- package/node_modules/pino/test/transport/uses-pino-config.test.js +4 -4
- package/node_modules/pino/test/types/pino-import.tst.cts +30 -0
- package/node_modules/pino/test/types/pino-import.tst.js +73 -0
- package/node_modules/pino/test/types/pino-multistream.tst.ts +49 -0
- package/node_modules/pino/test/types/pino-top-export.tst.ts +32 -0
- package/node_modules/pino/test/types/{pino-transport.test-d.ts → pino-transport.tst.ts} +85 -70
- package/node_modules/pino/test/types/pino-type-only.tst.ts +77 -0
- package/node_modules/pino/test/types/pino.ts +14 -7
- package/node_modules/pino/test/types/{pino.test-d.ts → pino.tst.ts} +135 -137
- package/node_modules/pino/test/types/tsconfig.json +10 -0
- package/node_modules/pino/tsconfig.json +6 -6
- package/node_modules/real-require/README.md +6 -6
- package/node_modules/real-require/package.json +10 -21
- package/node_modules/real-require/src/index.js +2 -2
- package/package.json +2 -2
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
- package/packages/cli/dist/doctor-probes.js +38 -3
- package/packages/cli/dist/doctor-probes.js.map +1 -1
- package/packages/cli/dist/doctor.d.ts +25 -0
- package/packages/cli/dist/doctor.d.ts.map +1 -1
- package/packages/cli/dist/doctor.js +28 -0
- package/packages/cli/dist/doctor.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/actions/approvals.d.ts +7 -0
- package/packages/core/dist/actions/approvals.d.ts.map +1 -1
- package/packages/core/dist/actions/approvals.js +11 -1
- package/packages/core/dist/actions/approvals.js.map +1 -1
- package/packages/core/dist/agents/catalog.d.ts.map +1 -1
- package/packages/core/dist/agents/catalog.js +2 -2
- package/packages/core/dist/agents/catalog.js.map +1 -1
- package/packages/core/dist/agents/skills.d.ts +60 -1
- package/packages/core/dist/agents/skills.d.ts.map +1 -1
- package/packages/core/dist/agents/skills.js +157 -17
- package/packages/core/dist/agents/skills.js.map +1 -1
- package/packages/core/dist/day-month.d.ts +52 -0
- package/packages/core/dist/day-month.d.ts.map +1 -0
- package/packages/core/dist/day-month.js +101 -0
- package/packages/core/dist/day-month.js.map +1 -0
- package/packages/core/dist/host/build.d.ts +11 -2
- package/packages/core/dist/host/build.d.ts.map +1 -1
- package/packages/core/dist/host/build.js +115 -4
- package/packages/core/dist/host/build.js.map +1 -1
- package/packages/core/dist/host/http.d.ts +35 -0
- package/packages/core/dist/host/http.d.ts.map +1 -1
- package/packages/core/dist/host/http.js +133 -29
- package/packages/core/dist/host/http.js.map +1 -1
- package/packages/core/dist/host/types.d.ts +72 -1
- package/packages/core/dist/host/types.d.ts.map +1 -1
- package/packages/core/dist/index.d.ts +2 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +2 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/onboarding/store.d.ts.map +1 -1
- package/packages/core/dist/onboarding/store.js +28 -5
- package/packages/core/dist/onboarding/store.js.map +1 -1
- package/packages/core/dist/onboarding/types.d.ts +10 -0
- package/packages/core/dist/onboarding/types.d.ts.map +1 -1
- package/packages/core/dist/onboarding/types.js.map +1 -1
- package/packages/core/dist/pages.d.ts +145 -11
- package/packages/core/dist/pages.d.ts.map +1 -1
- package/packages/core/dist/pages.js +113 -5
- package/packages/core/dist/pages.js.map +1 -1
- package/packages/core/dist/plugin/index.d.ts +4 -0
- package/packages/core/dist/plugin/index.d.ts.map +1 -1
- package/packages/core/dist/plugin/index.js +2 -0
- package/packages/core/dist/plugin/index.js.map +1 -1
- package/packages/core/dist/plugin/sign-in.d.ts +78 -0
- package/packages/core/dist/plugin/sign-in.d.ts.map +1 -0
- package/packages/core/dist/plugin/sign-in.js +54 -0
- package/packages/core/dist/plugin/sign-in.js.map +1 -0
- package/packages/core/dist/plugin/version.d.ts +1 -1
- package/packages/core/dist/plugin/version.js +1 -1
- package/packages/core/dist/provider-accounts.d.ts +7 -0
- package/packages/core/dist/provider-accounts.d.ts.map +1 -1
- package/packages/core/dist/provider-accounts.js +15 -0
- package/packages/core/dist/provider-accounts.js.map +1 -1
- package/packages/core/dist/questions/types.d.ts +1 -1
- package/packages/core/dist/questions/types.js +1 -1
- package/packages/core/dist/queue/jobs.d.ts +57 -2
- package/packages/core/dist/queue/jobs.d.ts.map +1 -1
- package/packages/core/dist/queue/jobs.js +114 -0
- package/packages/core/dist/queue/jobs.js.map +1 -1
- package/packages/core/dist/queue/worker.d.ts +24 -2
- package/packages/core/dist/queue/worker.d.ts.map +1 -1
- package/packages/core/dist/queue/worker.js +66 -11
- package/packages/core/dist/queue/worker.js.map +1 -1
- package/packages/core/dist/registry.d.ts +8 -0
- package/packages/core/dist/registry.d.ts.map +1 -1
- package/packages/core/dist/registry.js +15 -2
- package/packages/core/dist/registry.js.map +1 -1
- package/packages/core/dist/secrets/scrub.d.ts.map +1 -1
- package/packages/core/dist/secrets/scrub.js +15 -0
- package/packages/core/dist/secrets/scrub.js.map +1 -1
- package/packages/core/dist/tools.d.ts +29 -0
- package/packages/core/dist/tools.d.ts.map +1 -1
- package/packages/core/dist/tools.js.map +1 -1
- package/packages/core/dist/views.d.ts +12 -12
- package/packages/core/dist/widgets.d.ts +14 -1
- package/packages/core/dist/widgets.d.ts.map +1 -1
- package/packages/core/dist/widgets.js +30 -0
- package/packages/core/dist/widgets.js.map +1 -1
- package/packages/core/migrations/074_owner_identity.sql +14 -0
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/catalog.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalog.js +3 -3
- package/packages/gateway/dist/agents/catalog.js.map +1 -1
- package/packages/gateway/dist/agents/catalogue-package.d.ts +8 -0
- package/packages/gateway/dist/agents/catalogue-package.d.ts.map +1 -1
- package/packages/gateway/dist/agents/catalogue-package.js +11 -4
- package/packages/gateway/dist/agents/catalogue-package.js.map +1 -1
- package/packages/gateway/dist/agents/owner-tools.d.ts.map +1 -1
- package/packages/gateway/dist/agents/owner-tools.js +36 -2
- package/packages/gateway/dist/agents/owner-tools.js.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.d.ts +19 -0
- package/packages/gateway/dist/agents/platform-catalogue.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform-catalogue.js +108 -0
- package/packages/gateway/dist/agents/platform-catalogue.js.map +1 -1
- package/packages/gateway/dist/agents/platform.d.ts +4 -4
- package/packages/gateway/dist/agents/platform.d.ts.map +1 -1
- package/packages/gateway/dist/agents/platform.js +11 -0
- package/packages/gateway/dist/agents/platform.js.map +1 -1
- package/packages/gateway/dist/bootstrap.d.ts.map +1 -1
- package/packages/gateway/dist/bootstrap.js +4 -1
- package/packages/gateway/dist/bootstrap.js.map +1 -1
- package/packages/gateway/dist/evals/golden.d.ts +33 -1
- package/packages/gateway/dist/evals/golden.d.ts.map +1 -1
- package/packages/gateway/dist/evals/golden.js +168 -3
- package/packages/gateway/dist/evals/golden.js.map +1 -1
- package/packages/gateway/dist/index.d.ts +1 -0
- package/packages/gateway/dist/index.d.ts.map +1 -1
- package/packages/gateway/dist/index.js +1 -0
- package/packages/gateway/dist/index.js.map +1 -1
- package/packages/gateway/dist/missions/dates.d.ts +98 -0
- package/packages/gateway/dist/missions/dates.d.ts.map +1 -0
- package/packages/gateway/dist/missions/dates.js +252 -0
- package/packages/gateway/dist/missions/dates.js.map +1 -0
- package/packages/gateway/dist/missions/execute.d.ts +8 -0
- package/packages/gateway/dist/missions/execute.d.ts.map +1 -1
- package/packages/gateway/dist/missions/execute.js +16 -1
- package/packages/gateway/dist/missions/execute.js.map +1 -1
- package/packages/gateway/dist/missions/report.d.ts.map +1 -1
- package/packages/gateway/dist/missions/report.js +1 -0
- package/packages/gateway/dist/missions/report.js.map +1 -1
- package/packages/gateway/dist/ollama-local.d.ts +90 -0
- package/packages/gateway/dist/ollama-local.d.ts.map +1 -0
- package/packages/gateway/dist/ollama-local.js +201 -0
- package/packages/gateway/dist/ollama-local.js.map +1 -0
- package/packages/gateway/dist/plugins-cli.d.ts +8 -0
- package/packages/gateway/dist/plugins-cli.d.ts.map +1 -1
- package/packages/gateway/dist/plugins-cli.js +22 -1
- package/packages/gateway/dist/plugins-cli.js.map +1 -1
- package/packages/gateway/dist/serve.d.ts.map +1 -1
- package/packages/gateway/dist/serve.js +50 -5
- package/packages/gateway/dist/serve.js.map +1 -1
- package/packages/gateway/dist/surfaces/pending-question.js +2 -2
- package/packages/gateway/dist/system-context.d.ts +21 -1
- package/packages/gateway/dist/system-context.d.ts.map +1 -1
- package/packages/gateway/dist/system-context.js +76 -2
- package/packages/gateway/dist/system-context.js.map +1 -1
- package/packages/gateway/dist/telegram/approvals.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/approvals.js +4 -2
- package/packages/gateway/dist/telegram/approvals.js.map +1 -1
- package/packages/gateway/dist/telegram/channel.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/channel.js +6 -1
- package/packages/gateway/dist/telegram/channel.js.map +1 -1
- package/packages/gateway/dist/telegram/html.d.ts +34 -0
- package/packages/gateway/dist/telegram/html.d.ts.map +1 -0
- package/packages/gateway/dist/telegram/html.js +263 -0
- package/packages/gateway/dist/telegram/html.js.map +1 -0
- package/packages/gateway/dist/telegram/notify.d.ts +6 -0
- package/packages/gateway/dist/telegram/notify.d.ts.map +1 -1
- package/packages/gateway/dist/telegram/notify.js +25 -3
- package/packages/gateway/dist/telegram/notify.js.map +1 -1
- package/packages/gateway/dist/tips/facts.d.ts +2 -0
- package/packages/gateway/dist/tips/facts.d.ts.map +1 -1
- package/packages/gateway/dist/tips/facts.js +4 -1
- package/packages/gateway/dist/tips/facts.js.map +1 -1
- package/packages/gateway/dist/tips/rules.d.ts.map +1 -1
- package/packages/gateway/dist/tips/rules.js +10 -0
- package/packages/gateway/dist/tips/rules.js.map +1 -1
- package/packages/gateway/dist/web/api-routes.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-routes.js +72 -9
- package/packages/gateway/dist/web/api-routes.js.map +1 -1
- package/packages/gateway/dist/web/api-scan.d.ts +1 -1
- package/packages/gateway/dist/web/api-scan.d.ts.map +1 -1
- package/packages/gateway/dist/web/api-scan.js +1 -0
- package/packages/gateway/dist/web/api-scan.js.map +1 -1
- package/packages/gateway/dist/web/chat.d.ts.map +1 -1
- package/packages/gateway/dist/web/chat.js +9 -0
- package/packages/gateway/dist/web/chat.js.map +1 -1
- package/packages/gateway/dist/web/composer.d.ts +45 -0
- package/packages/gateway/dist/web/composer.d.ts.map +1 -0
- package/packages/gateway/dist/web/composer.js +85 -0
- package/packages/gateway/dist/web/composer.js.map +1 -0
- package/packages/gateway/dist/web/market.d.ts +20 -1
- package/packages/gateway/dist/web/market.d.ts.map +1 -1
- package/packages/gateway/dist/web/market.js +41 -1
- package/packages/gateway/dist/web/market.js.map +1 -1
- package/packages/gateway/dist/web/people.d.ts +44 -0
- package/packages/gateway/dist/web/people.d.ts.map +1 -0
- package/packages/gateway/dist/web/people.js +114 -0
- package/packages/gateway/dist/web/people.js.map +1 -0
- package/packages/gateway/dist/web/server.d.ts +4 -0
- package/packages/gateway/dist/web/server.d.ts.map +1 -1
- package/packages/gateway/dist/web/server.js +137 -11
- package/packages/gateway/dist/web/server.js.map +1 -1
- package/packages/gateway/dist/web/skill-bundles.d.ts +101 -0
- package/packages/gateway/dist/web/skill-bundles.d.ts.map +1 -0
- package/packages/gateway/dist/web/skill-bundles.js +439 -0
- package/packages/gateway/dist/web/skill-bundles.js.map +1 -0
- package/packages/gateway/dist/web/skills.d.ts +57 -1
- package/packages/gateway/dist/web/skills.d.ts.map +1 -1
- package/packages/gateway/dist/web/skills.js +171 -9
- package/packages/gateway/dist/web/skills.js.map +1 -1
- package/packages/gateway/dist/web/zip-read.d.ts +31 -0
- package/packages/gateway/dist/web/zip-read.d.ts.map +1 -0
- package/packages/gateway/dist/web/zip-read.js +125 -0
- package/packages/gateway/dist/web/zip-read.js.map +1 -0
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/index.d.ts +1 -0
- package/packages/runtime/dist/index.d.ts.map +1 -1
- package/packages/runtime/dist/index.js +1 -0
- package/packages/runtime/dist/index.js.map +1 -1
- package/packages/runtime/dist/loop.js +11 -1
- package/packages/runtime/dist/loop.js.map +1 -1
- package/packages/runtime/dist/plugin-sign-in.d.ts +12 -0
- package/packages/runtime/dist/plugin-sign-in.d.ts.map +1 -0
- package/packages/runtime/dist/plugin-sign-in.js +397 -0
- package/packages/runtime/dist/plugin-sign-in.js.map +1 -0
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/artifacts/dist/tools/write.d.ts.map +1 -1
- package/packages/tools/artifacts/dist/tools/write.js +1 -0
- package/packages/tools/artifacts/dist/tools/write.js.map +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/widgets.d.ts.map +1 -1
- package/packages/tools/email/dist/widgets.js +2 -1
- package/packages/tools/email/dist/widgets.js.map +1 -1
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/host/dist/index.d.ts +2 -1
- package/packages/tools/host/dist/index.d.ts.map +1 -1
- package/packages/tools/host/dist/index.js +3 -2
- package/packages/tools/host/dist/index.js.map +1 -1
- package/packages/tools/host/dist/process.d.ts +4 -0
- package/packages/tools/host/dist/process.d.ts.map +1 -1
- package/packages/tools/host/dist/process.js +4 -2
- package/packages/tools/host/dist/process.js.map +1 -1
- package/packages/tools/host/dist/service.d.ts +66 -17
- package/packages/tools/host/dist/service.d.ts.map +1 -1
- package/packages/tools/host/dist/service.js +172 -9
- package/packages/tools/host/dist/service.js.map +1 -1
- package/packages/tools/host/dist/skill-run.d.ts +55 -0
- package/packages/tools/host/dist/skill-run.d.ts.map +1 -0
- package/packages/tools/host/dist/skill-run.js +132 -0
- package/packages/tools/host/dist/skill-run.js.map +1 -0
- package/packages/tools/mcp/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/index.d.ts +1 -0
- package/packages/tools/memory/dist/index.d.ts.map +1 -1
- package/packages/tools/memory/dist/index.js +7 -2
- package/packages/tools/memory/dist/index.js.map +1 -1
- package/packages/tools/memory/dist/people.d.ts +218 -0
- package/packages/tools/memory/dist/people.d.ts.map +1 -0
- package/packages/tools/memory/dist/people.js +582 -0
- package/packages/tools/memory/dist/people.js.map +1 -0
- package/packages/tools/memory/dist/preamble.d.ts +4 -1
- package/packages/tools/memory/dist/preamble.d.ts.map +1 -1
- package/packages/tools/memory/dist/preamble.js +25 -7
- package/packages/tools/memory/dist/preamble.js.map +1 -1
- package/packages/tools/memory/migrations/002_people.sql +40 -0
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/packages/web/dist/assets/{index-B_P_ux2I.css → index-CN1AXMI1.css} +1 -1
- package/packages/web/dist/assets/index-CQRE9LJX.js +145 -0
- package/packages/web/dist/assets/{lottie_light-Dj5SSwxs.js → lottie_light-CKJ88Yuk.js} +1 -1
- package/packages/web/dist/build.json +1 -1
- package/packages/web/dist/index.html +2 -2
- package/packages/web/dist/precache.json +4 -4
- package/node_modules/pino/test/types/pino-import.test-d.cts +0 -30
- package/node_modules/pino/test/types/pino-multistream.test-d.ts +0 -28
- package/node_modules/pino/test/types/pino-top-export.test-d.ts +0 -34
- package/node_modules/pino/test/types/pino-type-only.test-d.ts +0 -75
- package/node_modules/thread-stream/node_modules/real-require/LICENSE.md +0 -21
- package/node_modules/thread-stream/node_modules/real-require/README.md +0 -51
- package/node_modules/thread-stream/node_modules/real-require/package.json +0 -38
- package/node_modules/thread-stream/node_modules/real-require/src/index.js +0 -14
- package/packages/web/dist/assets/index-CjOzIGL7.js +0 -134
|
@@ -43,7 +43,8 @@ const {
|
|
|
43
43
|
hooksSym,
|
|
44
44
|
nestedKeyStrSym,
|
|
45
45
|
mixinMergeStrategySym,
|
|
46
|
-
msgPrefixSym
|
|
46
|
+
msgPrefixSym,
|
|
47
|
+
transportUsesMultistreamSym
|
|
47
48
|
} = symbols
|
|
48
49
|
const { epochTime, nullTime } = time
|
|
49
50
|
const { pid } = process
|
|
@@ -130,7 +131,9 @@ function pino (...args) {
|
|
|
130
131
|
const stringifyFn = stringify.bind({
|
|
131
132
|
[stringifySafeSym]: stringifySafe
|
|
132
133
|
})
|
|
133
|
-
const stringifiers = redact
|
|
134
|
+
const stringifiers = redact
|
|
135
|
+
? Object.assign(Object.create(null), redaction(redact, stringifyFn))
|
|
136
|
+
: Object.create(null)
|
|
134
137
|
const formatOpts = redact
|
|
135
138
|
? { stringify: stringifiers[redactFmtSym] }
|
|
136
139
|
: { stringify: stringifyFn }
|
|
@@ -165,6 +168,28 @@ function pino (...args) {
|
|
|
165
168
|
assertDefaultLevelFound(level, customLevels, useOnlyCustomLevels)
|
|
166
169
|
const levels = mappings(customLevels, useOnlyCustomLevels)
|
|
167
170
|
|
|
171
|
+
if (stream && stream[transportUsesMultistreamSym] === true) {
|
|
172
|
+
let sampleLabel = typeof level === 'string' ? level : undefined
|
|
173
|
+
if (!sampleLabel || levels[sampleLabel] === undefined) {
|
|
174
|
+
sampleLabel = Object.keys(levels)[0]
|
|
175
|
+
}
|
|
176
|
+
const sampleNumber = levels[sampleLabel]
|
|
177
|
+
let ok = false
|
|
178
|
+
try {
|
|
179
|
+
const formatted = formatters.level(sampleLabel, sampleNumber)
|
|
180
|
+
ok = formatted && typeof formatted === 'object' && formatted.level === sampleNumber
|
|
181
|
+
} catch {
|
|
182
|
+
ok = false
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (!ok) {
|
|
186
|
+
process.emitWarning(
|
|
187
|
+
'custom formatters.level detected with multiple transport targets/pipelines; ensure logs include a numeric "level" field or they may be dropped',
|
|
188
|
+
{ code: 'PINO_TRANSPORT_MULTI_TARGETS_LEVEL_FORMATTER' }
|
|
189
|
+
)
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
168
193
|
if (typeof stream.emit === 'function') {
|
|
169
194
|
stream.emit('message', { code: 'PINO_CONFIG', config: { levels, messageKey, errorKey } })
|
|
170
195
|
}
|
|
@@ -884,3 +884,69 @@ test('grandchild message should inherent parent prefix', async () => {
|
|
|
884
884
|
const { msg } = await once(stream, 'data')
|
|
885
885
|
assert.equal(msg, 'My name is Bond James Bond')
|
|
886
886
|
})
|
|
887
|
+
|
|
888
|
+
test('logs an object with an own enumerable __proto__ key', async () => {
|
|
889
|
+
const stream = sink()
|
|
890
|
+
const instance = pino(stream)
|
|
891
|
+
// JSON.parse produces an own enumerable __proto__ key from any untrusted JSON
|
|
892
|
+
const obj = JSON.parse('{"__proto__":{"x":1},"user":"bob"}')
|
|
893
|
+
instance.info(obj, 'incoming request')
|
|
894
|
+
const result = await once(stream, 'data')
|
|
895
|
+
check(assert.equal.bind(assert), result, 30, 'incoming request')
|
|
896
|
+
assert.equal(result.user, 'bob')
|
|
897
|
+
})
|
|
898
|
+
|
|
899
|
+
test('logs a redacted object with an own enumerable __proto__ key', async () => {
|
|
900
|
+
const stream = sink()
|
|
901
|
+
const instance = pino({ redact: ['user'] }, stream)
|
|
902
|
+
const obj = JSON.parse('{"__proto__":{"x":1},"user":"bob"}')
|
|
903
|
+
instance.info(obj, 'incoming request')
|
|
904
|
+
const result = await once(stream, 'data')
|
|
905
|
+
check(assert.equal.bind(assert), result, 30, 'incoming request')
|
|
906
|
+
assert.equal(result.user, '[Redacted]')
|
|
907
|
+
})
|
|
908
|
+
|
|
909
|
+
test('logs child bindings with an own enumerable __proto__ key', async () => {
|
|
910
|
+
const stream = sink()
|
|
911
|
+
const bindings = JSON.parse('{"__proto__":{"x":1},"reqId":"abc"}')
|
|
912
|
+
const instance = pino(stream).child(bindings)
|
|
913
|
+
instance.info('incoming request')
|
|
914
|
+
const result = await once(stream, 'data')
|
|
915
|
+
check(assert.equal.bind(assert), result, 30, 'incoming request')
|
|
916
|
+
assert.equal(result.reqId, 'abc')
|
|
917
|
+
})
|
|
918
|
+
|
|
919
|
+
test('logs an object with keys named after Object.prototype members', async () => {
|
|
920
|
+
const stream = sink()
|
|
921
|
+
const instance = pino(stream)
|
|
922
|
+
const obj = {
|
|
923
|
+
toString: 'a',
|
|
924
|
+
constructor: 'b',
|
|
925
|
+
valueOf: 'c',
|
|
926
|
+
hasOwnProperty: 'd',
|
|
927
|
+
propertyIsEnumerable: 'e',
|
|
928
|
+
toLocaleString: 'f',
|
|
929
|
+
isPrototypeOf: 'g'
|
|
930
|
+
}
|
|
931
|
+
instance.info(obj, 'incoming request')
|
|
932
|
+
const result = await once(stream, 'data')
|
|
933
|
+
check(assert.equal.bind(assert), result, 30, 'incoming request')
|
|
934
|
+
assert.equal(result.toString, 'a')
|
|
935
|
+
assert.equal(result.constructor, 'b')
|
|
936
|
+
assert.equal(result.valueOf, 'c')
|
|
937
|
+
assert.equal(result.hasOwnProperty, 'd')
|
|
938
|
+
assert.equal(result.propertyIsEnumerable, 'e')
|
|
939
|
+
assert.equal(result.toLocaleString, 'f')
|
|
940
|
+
assert.equal(result.isPrototypeOf, 'g')
|
|
941
|
+
})
|
|
942
|
+
|
|
943
|
+
test('logs a redacted object with keys named after Object.prototype members', async () => {
|
|
944
|
+
const stream = sink()
|
|
945
|
+
const instance = pino({ redact: ['secret'] }, stream)
|
|
946
|
+
instance.info({ toString: 'a', valueOf: 'b', secret: 'x' }, 'incoming request')
|
|
947
|
+
const result = await once(stream, 'data')
|
|
948
|
+
check(assert.equal.bind(assert), result, 30, 'incoming request')
|
|
949
|
+
assert.equal(result.toString, 'a')
|
|
950
|
+
assert.equal(result.valueOf, 'b')
|
|
951
|
+
assert.equal(result.secret, '[Redacted]')
|
|
952
|
+
})
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const test = require('tape')
|
|
4
|
+
const pino = require('../browser')
|
|
5
|
+
|
|
6
|
+
test('bindings returns an empty object on the root logger', ({ end, same }) => {
|
|
7
|
+
const instance = pino({ browser: {} })
|
|
8
|
+
|
|
9
|
+
same(instance.bindings(), {})
|
|
10
|
+
|
|
11
|
+
end()
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
test('bindings contains child bindings', ({ end, same }) => {
|
|
15
|
+
const instance = pino({ browser: {} })
|
|
16
|
+
const child = instance.child({ foo: 'bar' })
|
|
17
|
+
|
|
18
|
+
same(child.bindings(), { foo: 'bar' })
|
|
19
|
+
|
|
20
|
+
end()
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
test('bindings contains bindings from nested children', ({ end, same }) => {
|
|
24
|
+
const instance = pino({ browser: {} })
|
|
25
|
+
const child = instance
|
|
26
|
+
.child({ foo: 'bar' })
|
|
27
|
+
.child({ a: 2 })
|
|
28
|
+
|
|
29
|
+
same(child.bindings(), { foo: 'bar', a: 2 })
|
|
30
|
+
|
|
31
|
+
end()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
test('child bindings overwrite parent bindings with the same key', ({ end, same }) => {
|
|
35
|
+
const instance = pino({ browser: {} })
|
|
36
|
+
const child = instance
|
|
37
|
+
.child({ foo: 'bar' })
|
|
38
|
+
.child({ foo: 'baz' })
|
|
39
|
+
|
|
40
|
+
same(child.bindings(), { foo: 'baz' })
|
|
41
|
+
|
|
42
|
+
end()
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
test('bindings contains bindings added with setBindings', ({ end, same }) => {
|
|
46
|
+
const instance = pino({ browser: {} })
|
|
47
|
+
|
|
48
|
+
instance.setBindings({ foo: 'bar' })
|
|
49
|
+
|
|
50
|
+
same(instance.bindings(), { foo: 'bar' })
|
|
51
|
+
|
|
52
|
+
end()
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
test('newly set bindings overwrite old bindings', ({ end, same }) => {
|
|
56
|
+
const instance = pino({ browser: {} })
|
|
57
|
+
|
|
58
|
+
instance.setBindings({ foo: 'bar' })
|
|
59
|
+
instance.setBindings({ foo: 'baz' })
|
|
60
|
+
|
|
61
|
+
same(instance.bindings(), { foo: 'baz' })
|
|
62
|
+
|
|
63
|
+
end()
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
test('setBindings on child merges with child bindings', ({ end, same }) => {
|
|
67
|
+
const instance = pino({ browser: {} })
|
|
68
|
+
const child = instance.child({ child: true })
|
|
69
|
+
|
|
70
|
+
child.setBindings({ later: 'yes' })
|
|
71
|
+
|
|
72
|
+
same(child.bindings(), {
|
|
73
|
+
child: true,
|
|
74
|
+
later: 'yes'
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
end()
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
test('child inherits bindings set on parent before child creation', ({ end, same }) => {
|
|
81
|
+
const instance = pino({ browser: {} })
|
|
82
|
+
|
|
83
|
+
instance.setBindings({ foo: 'bar' })
|
|
84
|
+
|
|
85
|
+
const child = instance.child({})
|
|
86
|
+
|
|
87
|
+
same(child.bindings(), { foo: 'bar' })
|
|
88
|
+
|
|
89
|
+
end()
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
test('child does not inherit bindings set on parent after child creation', ({ end, same }) => {
|
|
93
|
+
const instance = pino({ browser: {} })
|
|
94
|
+
const child = instance.child({})
|
|
95
|
+
|
|
96
|
+
instance.setBindings({ foo: 'bar' })
|
|
97
|
+
|
|
98
|
+
same(instance.bindings(), { foo: 'bar' })
|
|
99
|
+
same(child.bindings(), {})
|
|
100
|
+
|
|
101
|
+
end()
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
test('bindings returns a copy of the bindings', ({ end, same }) => {
|
|
105
|
+
const instance = pino({ browser: {} })
|
|
106
|
+
instance.setBindings({ foo: 'bar' })
|
|
107
|
+
|
|
108
|
+
const bindings = instance.bindings()
|
|
109
|
+
bindings.foo = 'baz'
|
|
110
|
+
|
|
111
|
+
same(instance.bindings(), { foo: 'bar' })
|
|
112
|
+
|
|
113
|
+
end()
|
|
114
|
+
})
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
// eslint-disable-next-line
|
|
3
|
+
if (typeof $1 !== 'undefined') $1 = arguments.callee.caller.arguments[0]
|
|
4
|
+
|
|
5
|
+
const test = require('tape')
|
|
6
|
+
const pino = require('../browser')
|
|
7
|
+
|
|
8
|
+
test('redact option as array redacts specified paths', ({ end, is }) => {
|
|
9
|
+
const instance = pino({
|
|
10
|
+
browser: {
|
|
11
|
+
asObject: true,
|
|
12
|
+
write (o) {
|
|
13
|
+
is(o.password, '[Redacted]')
|
|
14
|
+
is(o.username, 'john')
|
|
15
|
+
end()
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
redact: ['password']
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
instance.info({ password: 'secret', username: 'john' })
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
test('redact option as object with custom censor', ({ end, is }) => {
|
|
25
|
+
const instance = pino({
|
|
26
|
+
browser: {
|
|
27
|
+
asObject: true,
|
|
28
|
+
write (o) {
|
|
29
|
+
is(o.secret, '***HIDDEN***')
|
|
30
|
+
is(o.visible, 'data')
|
|
31
|
+
end()
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
redact: {
|
|
35
|
+
paths: ['secret'],
|
|
36
|
+
censor: '***HIDDEN***'
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
instance.info({ secret: 'sensitive', visible: 'data' })
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
test('redact nested paths', ({ end, is }) => {
|
|
44
|
+
const instance = pino({
|
|
45
|
+
browser: {
|
|
46
|
+
asObject: true,
|
|
47
|
+
write (o) {
|
|
48
|
+
is(o.user.password, '[Redacted]')
|
|
49
|
+
is(o.user.name, 'alice')
|
|
50
|
+
end()
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
redact: ['user.password']
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
instance.info({ user: { name: 'alice', password: 'secret123' } })
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
test('redact with wildcard paths', ({ end, is }) => {
|
|
60
|
+
const instance = pino({
|
|
61
|
+
browser: {
|
|
62
|
+
asObject: true,
|
|
63
|
+
write (o) {
|
|
64
|
+
is(o.items[0].secret, '[Redacted]')
|
|
65
|
+
is(o.items[1].secret, '[Redacted]')
|
|
66
|
+
is(o.items[0].id, 1)
|
|
67
|
+
is(o.items[1].id, 2)
|
|
68
|
+
end()
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
redact: ['items[*].secret']
|
|
72
|
+
})
|
|
73
|
+
|
|
74
|
+
instance.info({
|
|
75
|
+
items: [
|
|
76
|
+
{ id: 1, secret: 'a' },
|
|
77
|
+
{ id: 2, secret: 'b' }
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
test('redact with remove option removes the key entirely', ({ end, is }) => {
|
|
83
|
+
const instance = pino({
|
|
84
|
+
browser: {
|
|
85
|
+
asObject: true,
|
|
86
|
+
write (o) {
|
|
87
|
+
is(o.removeMe, undefined)
|
|
88
|
+
is(o.keepMe, 'visible')
|
|
89
|
+
end()
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
redact: {
|
|
93
|
+
paths: ['removeMe'],
|
|
94
|
+
remove: true
|
|
95
|
+
}
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
instance.info({ removeMe: 'gone', keepMe: 'visible' })
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
test('redact throws on invalid paths option', ({ end, throws }) => {
|
|
102
|
+
throws(() => {
|
|
103
|
+
pino({
|
|
104
|
+
browser: { asObject: true },
|
|
105
|
+
redact: { paths: 'not-an-array' }
|
|
106
|
+
})
|
|
107
|
+
}, /pino – redact must contain an array of strings/)
|
|
108
|
+
end()
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
test('redact works with child loggers', ({ end, is }) => {
|
|
112
|
+
const parent = pino({
|
|
113
|
+
browser: {
|
|
114
|
+
asObject: true,
|
|
115
|
+
write (o) {
|
|
116
|
+
is(o.password, '[Redacted]')
|
|
117
|
+
is(o.childBinding, 'value')
|
|
118
|
+
end()
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
redact: ['password']
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
const child = parent.child({ childBinding: 'value' })
|
|
125
|
+
child.info({ password: 'secret' })
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
test('redact multiple paths', ({ end, is }) => {
|
|
129
|
+
const instance = pino({
|
|
130
|
+
browser: {
|
|
131
|
+
asObject: true,
|
|
132
|
+
write (o) {
|
|
133
|
+
is(o.password, '[Redacted]')
|
|
134
|
+
is(o.creditCard, '[Redacted]')
|
|
135
|
+
is(o.ssn, '[Redacted]')
|
|
136
|
+
is(o.name, 'bob')
|
|
137
|
+
end()
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
redact: ['password', 'creditCard', 'ssn']
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
instance.info({
|
|
144
|
+
password: 'secret',
|
|
145
|
+
creditCard: '1234-5678-9012-3456',
|
|
146
|
+
ssn: '123-45-6789',
|
|
147
|
+
name: 'bob'
|
|
148
|
+
})
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
test('redact with bracket notation for hyphenated keys', ({ end, is }) => {
|
|
152
|
+
const instance = pino({
|
|
153
|
+
browser: {
|
|
154
|
+
asObject: true,
|
|
155
|
+
write (o) {
|
|
156
|
+
is(o['api-key'], '[Redacted]')
|
|
157
|
+
is(o.name, 'test')
|
|
158
|
+
end()
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
redact: ['["api-key"]']
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
instance.info({ 'api-key': 'sensitive', name: 'test' })
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
test('redact works with asObjectBindingsOnly mode', ({ end, is, deepEqual }) => {
|
|
168
|
+
const instance = pino({
|
|
169
|
+
browser: {
|
|
170
|
+
asObjectBindingsOnly: true,
|
|
171
|
+
write (o, ...args) {
|
|
172
|
+
is(o.password, '[Redacted]')
|
|
173
|
+
is(o.username, 'john')
|
|
174
|
+
deepEqual(args, ['remaining', 'args'])
|
|
175
|
+
end()
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
redact: ['password']
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
instance.info({ password: 'secret', username: 'john' }, 'remaining', 'args')
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
test('redact works with asObjectBindingsOnly mode and object message', ({ end, is, ok }) => {
|
|
185
|
+
const instance = pino({
|
|
186
|
+
browser: {
|
|
187
|
+
asObjectBindingsOnly: true,
|
|
188
|
+
write (o, ...args) {
|
|
189
|
+
is(o.password, '[Redacted]')
|
|
190
|
+
is(o.foo, 'bar')
|
|
191
|
+
ok(o.time)
|
|
192
|
+
is(args.length, 0)
|
|
193
|
+
end()
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
redact: ['password']
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
instance.info({ password: 'secret', foo: 'bar' })
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
test('redact with asObjectBindingsOnly and child logger merges multiple bindings', ({ end, is, ok }) => {
|
|
203
|
+
const parent = pino({
|
|
204
|
+
browser: {
|
|
205
|
+
asObjectBindingsOnly: true,
|
|
206
|
+
write (o, ...args) {
|
|
207
|
+
is(o.password, '[Redacted]')
|
|
208
|
+
is(o.parentBinding, 'parent')
|
|
209
|
+
is(o.childBinding, 'child')
|
|
210
|
+
is(o.logData, 'value')
|
|
211
|
+
ok(o.time)
|
|
212
|
+
end()
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
redact: ['password']
|
|
216
|
+
})
|
|
217
|
+
|
|
218
|
+
const child = parent.child({ parentBinding: 'parent' }).child({ childBinding: 'child' })
|
|
219
|
+
child.info({ logData: 'value', password: 'secret' })
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
test('formatters.level works with asObject mode', ({ end, is, ok }) => {
|
|
223
|
+
const instance = pino({
|
|
224
|
+
browser: {
|
|
225
|
+
asObject: true,
|
|
226
|
+
write (o) {
|
|
227
|
+
is(o.levelLabel, 'info')
|
|
228
|
+
is(o.levelValue, 30)
|
|
229
|
+
is(o.msg, 'test message')
|
|
230
|
+
ok(o.time)
|
|
231
|
+
end()
|
|
232
|
+
},
|
|
233
|
+
formatters: {
|
|
234
|
+
level (label, number) {
|
|
235
|
+
return { levelLabel: label, levelValue: number }
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
})
|
|
240
|
+
|
|
241
|
+
instance.info('test message')
|
|
242
|
+
})
|
|
243
|
+
|
|
244
|
+
test('formatters.level with asObject and object message', ({ end, is, ok }) => {
|
|
245
|
+
const instance = pino({
|
|
246
|
+
browser: {
|
|
247
|
+
asObject: true,
|
|
248
|
+
write (o) {
|
|
249
|
+
is(o.levelLabel, 'warn')
|
|
250
|
+
is(o.levelValue, 40)
|
|
251
|
+
is(o.data, 'value')
|
|
252
|
+
ok(o.time)
|
|
253
|
+
end()
|
|
254
|
+
},
|
|
255
|
+
formatters: {
|
|
256
|
+
level (label, number) {
|
|
257
|
+
return { levelLabel: label, levelValue: number }
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
})
|
|
262
|
+
|
|
263
|
+
instance.warn({ data: 'value' })
|
|
264
|
+
})
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
const test = require('tape')
|
|
3
|
+
const pino = require('../browser')
|
|
4
|
+
|
|
5
|
+
test('setBindings is a function on the root logger', ({ end, is }) => {
|
|
6
|
+
const instance = pino({ browser: {} })
|
|
7
|
+
|
|
8
|
+
is(typeof instance.setBindings, 'function')
|
|
9
|
+
end()
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
test('setBindings adds bindings to subsequent log calls', ({ end, is }) => {
|
|
13
|
+
const instance = pino({
|
|
14
|
+
browser: {
|
|
15
|
+
asObject: true,
|
|
16
|
+
write: function (o) {
|
|
17
|
+
is(o.answer, 42)
|
|
18
|
+
is(o.msg, 'test')
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
instance.setBindings({ answer: 42 })
|
|
24
|
+
instance.info('test')
|
|
25
|
+
end()
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
test('setBindings merges with existing bindings', ({ end, is }) => {
|
|
29
|
+
let expected
|
|
30
|
+
const instance = pino({
|
|
31
|
+
browser: {
|
|
32
|
+
asObject: true,
|
|
33
|
+
write: function (o) {
|
|
34
|
+
is(o.a, expected.a)
|
|
35
|
+
is(o.b, expected.b)
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
instance.setBindings({ a: 1 })
|
|
41
|
+
expected = { a: 1, b: undefined }
|
|
42
|
+
instance.info('first')
|
|
43
|
+
|
|
44
|
+
instance.setBindings({ b: 2 })
|
|
45
|
+
expected = { a: 1, b: 2 }
|
|
46
|
+
instance.info('second')
|
|
47
|
+
end()
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
test('setBindings on a child logger merges with the child bindings', ({ end, is }) => {
|
|
51
|
+
const instance = pino({
|
|
52
|
+
browser: {
|
|
53
|
+
asObject: true,
|
|
54
|
+
write: function (o) {
|
|
55
|
+
is(o.child, true)
|
|
56
|
+
is(o.later, 'yes')
|
|
57
|
+
is(o.msg, 'test')
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
const child = instance.child({ child: true })
|
|
63
|
+
child.setBindings({ later: 'yes' })
|
|
64
|
+
child.info('test')
|
|
65
|
+
end()
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
test('setBindings works with customLevels', ({ end, is }) => {
|
|
69
|
+
const instance = pino({
|
|
70
|
+
customLevels: { success: 35 },
|
|
71
|
+
browser: {
|
|
72
|
+
asObject: true,
|
|
73
|
+
write: function (o) {
|
|
74
|
+
is(o.answer, 42)
|
|
75
|
+
is(o.msg, 'test')
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
instance.setBindings({ answer: 42 })
|
|
81
|
+
instance.success('test')
|
|
82
|
+
end()
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
test('setBindings bindings are transmitted', ({ end, same }) => {
|
|
86
|
+
const instance = pino({
|
|
87
|
+
browser: {
|
|
88
|
+
transmit: {
|
|
89
|
+
send (level, logEvent) {
|
|
90
|
+
same(logEvent.bindings, [{ answer: 42 }])
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
instance.setBindings({ answer: 42 })
|
|
97
|
+
instance.info('test')
|
|
98
|
+
end()
|
|
99
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const test = require('node:test')
|
|
4
|
+
const assert = require('node:assert')
|
|
5
|
+
const loop = require('./fixtures/caller-loop.js')
|
|
6
|
+
|
|
7
|
+
test('returns a callstack of absolute paths', () => {
|
|
8
|
+
const callers = loop(7).map(fileName => fileName.substring(__dirname.length))
|
|
9
|
+
|
|
10
|
+
// default callstack size is 10, but the top 2 are dropped
|
|
11
|
+
assert.equal(callers.length, 8)
|
|
12
|
+
assert.match(callers[0], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
13
|
+
assert.match(callers[1], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
14
|
+
assert.match(callers[2], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
15
|
+
assert.match(callers[3], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
16
|
+
assert.match(callers[4], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
17
|
+
assert.match(callers[5], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
18
|
+
assert.match(callers[6], /^[/\\]fixtures[/\\]caller-loop\.js$/)
|
|
19
|
+
assert.match(callers[7], /^[/\\]caller\.test\.js$/)
|
|
20
|
+
})
|
|
@@ -36,6 +36,23 @@ testEscape('\\r', '\r')
|
|
|
36
36
|
testEscape('\\t', '\t')
|
|
37
37
|
testEscape('\\b', '\b')
|
|
38
38
|
|
|
39
|
+
test('correctly escape child binding keys', async () => {
|
|
40
|
+
const stream = sink()
|
|
41
|
+
const key = 'x"}\n{"level":60,"msg":"forged"}\n{"swallow'
|
|
42
|
+
const instance = pino(stream).child({ [key]: true })
|
|
43
|
+
|
|
44
|
+
instance.info('hello')
|
|
45
|
+
const result = await once(stream, 'data')
|
|
46
|
+
delete result.time
|
|
47
|
+
assert.deepEqual(result, {
|
|
48
|
+
pid,
|
|
49
|
+
hostname,
|
|
50
|
+
level: 30,
|
|
51
|
+
msg: 'hello',
|
|
52
|
+
[key]: true
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
|
|
39
56
|
const toEscape = [
|
|
40
57
|
'\u0000', // NUL Null character
|
|
41
58
|
'\u0001', // SOH Start of Heading
|
|
@@ -7,7 +7,7 @@ const existsSync = fs.existsSync
|
|
|
7
7
|
const stat = fs.promises.stat
|
|
8
8
|
|
|
9
9
|
// Hardcoded parameters
|
|
10
|
-
const esVersions = ['
|
|
10
|
+
const esVersions = ['es6', 'es2017', 'esnext']
|
|
11
11
|
const filesToTranspile = ['to-file-transport.ts']
|
|
12
12
|
|
|
13
13
|
async function transpile () {
|
|
@@ -23,8 +23,8 @@ async function transpile () {
|
|
|
23
23
|
const shouldTranspile = !existsSync(targetFileName) || (await stat(targetFileName)).mtimeMs < sourceStat.mtimeMs
|
|
24
24
|
|
|
25
25
|
if (shouldTranspile) {
|
|
26
|
-
await execa('tsc', ['--target', esVersion, '--module', 'commonjs', sourceFileName])
|
|
27
|
-
await execa('mv', [intermediateFileName, targetFileName])
|
|
26
|
+
await execa('tsc', [ '--ignoreConfig', '--types', 'node', '--target', esVersion, '--module', 'commonjs', sourceFileName ])
|
|
27
|
+
await execa('mv', [ intermediateFileName, targetFileName ])
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -88,14 +88,18 @@ function watchForWrite (filename, testString) {
|
|
|
88
88
|
const threshold = TIMEOUT / INTERVAL
|
|
89
89
|
let counter = 0
|
|
90
90
|
const interval = setInterval(() => {
|
|
91
|
-
|
|
91
|
+
const exists = existsSync(filename)
|
|
92
|
+
if (exists && readFileSync(filename).includes(testString)) {
|
|
92
93
|
clearInterval(interval)
|
|
93
94
|
resolve()
|
|
94
95
|
} else if (counter <= threshold) {
|
|
95
96
|
counter++
|
|
96
97
|
} else {
|
|
97
98
|
clearInterval(interval)
|
|
98
|
-
reject(new Error(
|
|
99
|
+
reject(new Error(
|
|
100
|
+
`'${testString}' hasn't been written to ${filename} within ${TIMEOUT} ms. ` +
|
|
101
|
+
(exists ? 'File exists, but content is still incomplete.' : 'File not yet created.')
|
|
102
|
+
))
|
|
99
103
|
}
|
|
100
104
|
}, INTERVAL)
|
|
101
105
|
})
|