spine-framework 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.framework/README.md +129 -0
- package/.framework/cli/bin.cjs +14 -0
- package/.framework/cli/commands/agents.ts +153 -0
- package/.framework/cli/commands/auth.ts +94 -0
- package/.framework/cli/commands/create-app.ts +185 -0
- package/.framework/cli/commands/dev.ts +295 -0
- package/.framework/cli/commands/doctor.ts +442 -0
- package/.framework/cli/commands/generate.ts +332 -0
- package/.framework/cli/commands/init.ts +272 -0
- package/.framework/cli/commands/install-app.ts +391 -0
- package/.framework/cli/commands/items.ts +253 -0
- package/.framework/cli/commands/migrations.ts +141 -0
- package/.framework/cli/commands/pipelines.ts +166 -0
- package/.framework/cli/commands/status.ts +197 -0
- package/.framework/cli/commands/system.ts +184 -0
- package/.framework/cli/commands/test.ts +227 -0
- package/.framework/cli/commands/uninstall-app.ts +166 -0
- package/.framework/cli/context.ts +268 -0
- package/.framework/cli/env-loader.ts +36 -0
- package/.framework/cli/index.ts +106 -0
- package/.framework/cli/welcome.cjs +45 -0
- package/.framework/docs/API.md +384 -0
- package/.framework/docs/STABILITY.md +52 -0
- package/.framework/docs/admin-routes.md +76 -0
- package/.framework/docs/api-docs-progress.md +38 -0
- package/.framework/docs/api-governance.md +146 -0
- package/.framework/docs/api-testing-results.md +212 -0
- package/.framework/docs/apis/admin-configs.md +567 -0
- package/.framework/docs/apis/admin-data.md +272 -0
- package/.framework/docs/apis/index.md +231 -0
- package/.framework/docs/apis/internal.md +295 -0
- package/.framework/docs/apis/runtime.md +537 -0
- package/.framework/docs/assembly-launch-guide.md +138 -0
- package/.framework/docs/audit-results.md +590 -0
- package/.framework/docs/authorization-model.md +170 -0
- package/.framework/docs/db-api-inventory.md +95 -0
- package/.framework/docs/examples/custom-app/README.md +77 -0
- package/.framework/docs/examples/custom-function/README.md +27 -0
- package/.framework/docs/examples/custom-function/handler.ts +48 -0
- package/.framework/docs/examples/custom-webhook/README.md +68 -0
- package/.framework/docs/gap-remediation-backlog.md +103 -0
- package/.framework/docs/guides/cli-guide.md +224 -0
- package/.framework/docs/guides/getting-started.md +103 -0
- package/.framework/docs/guides/import-guide.md +193 -0
- package/.framework/docs/guides/testing-guide.md +229 -0
- package/.framework/docs/permission-examples.md +326 -0
- package/.framework/docs/ui-adoption-verification.md +111 -0
- package/.framework/docs/ui-api-coverage.md +84 -0
- package/.framework/docs/v2-compatibility-audit.md +228 -0
- package/.framework/functions/.gitkeep +1 -0
- package/.framework/functions/_shared/agent-runner.ts +1097 -0
- package/.framework/functions/_shared/app-manifest.ts +184 -0
- package/.framework/functions/_shared/audit.ts +150 -0
- package/.framework/functions/_shared/db.ts +174 -0
- package/.framework/functions/_shared/index.ts +382 -0
- package/.framework/functions/_shared/middleware.ts +490 -0
- package/.framework/functions/_shared/permissions.ts +1325 -0
- package/.framework/functions/_shared/pipeline-runner.ts +731 -0
- package/.framework/functions/_shared/principal.ts +760 -0
- package/.framework/functions/_shared/schema-utils.ts +967 -0
- package/.framework/functions/_shared/testing.ts +258 -0
- package/.framework/functions/_shared/trigger-engine.ts +425 -0
- package/.framework/functions/_shared/webhook-registration.ts +168 -0
- package/.framework/functions/_shared/webhook-registry.ts +129 -0
- package/.framework/functions/account-nodes.ts +111 -0
- package/.framework/functions/admin-data.ts +606 -0
- package/.framework/functions/ai-agents.ts +323 -0
- package/.framework/functions/api-keys.ts +376 -0
- package/.framework/functions/apps.ts +483 -0
- package/.framework/functions/auth.ts +196 -0
- package/.framework/functions/debug-auth.ts +107 -0
- package/.framework/functions/embeddings.ts +556 -0
- package/.framework/functions/integration-routes.ts +523 -0
- package/.framework/functions/integrations.ts +319 -0
- package/.framework/functions/item-progress.ts +272 -0
- package/.framework/functions/logs.ts +438 -0
- package/.framework/functions/observability.ts +275 -0
- package/.framework/functions/pipeline-executions.ts +494 -0
- package/.framework/functions/pipelines.ts +485 -0
- package/.framework/functions/prompt-configs.ts +339 -0
- package/.framework/functions/roles.ts +387 -0
- package/.framework/functions/system-cron.ts +742 -0
- package/.framework/functions/system.ts +323 -0
- package/.framework/functions/tests.ts +119 -0
- package/.framework/functions/timers.ts +357 -0
- package/.framework/functions/triggers.ts +563 -0
- package/.framework/functions/types.ts +604 -0
- package/.framework/migrations/000_foundation.sql +1256 -0
- package/.framework/migrations/001_seed.sql +92 -0
- package/.framework/migrations/002_seed_constraints.sql +13 -0
- package/.framework/migrations/003_auth_user_trigger.sql +59 -0
- package/.framework/src/App.tsx +126 -0
- package/.framework/src/apps/admin/index.tsx +173 -0
- package/.framework/src/components/AppWrapper.tsx +56 -0
- package/.framework/src/components/CustomAppLoader.tsx +116 -0
- package/.framework/src/components/admin/AdminListPage.tsx +151 -0
- package/.framework/src/components/admin/AdminSidebar.tsx +166 -0
- package/.framework/src/components/admin/AdminStatsCard.tsx +62 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +42 -0
- package/.framework/src/components/app-shell/GenericAppShell.tsx +181 -0
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +200 -0
- package/.framework/src/components/app-shell/GenericListPage.tsx +116 -0
- package/.framework/src/components/app-sidebar.tsx +228 -0
- package/.framework/src/components/auth/ProtectedRoute.tsx +88 -0
- package/.framework/src/components/layout/AppShell.tsx +91 -0
- package/.framework/src/components/layout/Header.tsx +88 -0
- package/.framework/src/components/layout/Layout.tsx +95 -0
- package/.framework/src/components/layout/Sidebar.tsx +329 -0
- package/.framework/src/components/runtime/DataDetailHeader.tsx +77 -0
- package/.framework/src/components/runtime/DataDetailPage.tsx +171 -0
- package/.framework/src/components/runtime/DataFilters.tsx +91 -0
- package/.framework/src/components/runtime/DataHeader.tsx +68 -0
- package/.framework/src/components/runtime/DataListPage.tsx +124 -0
- package/.framework/src/components/runtime/DataStats.tsx +70 -0
- package/.framework/src/components/runtime/DataTable.tsx +174 -0
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +134 -0
- package/.framework/src/components/runtime/index.ts +18 -0
- package/.framework/src/components/search-form.tsx +29 -0
- package/.framework/src/components/shared/AgentView.tsx +213 -0
- package/.framework/src/components/shared/FieldRenderer.tsx +478 -0
- package/.framework/src/components/shared/SchemaFields.tsx +226 -0
- package/.framework/src/components/ui/DataTable.tsx +343 -0
- package/.framework/src/components/ui/Form.tsx +281 -0
- package/.framework/src/components/ui/ItemCard.tsx +296 -0
- package/.framework/src/components/ui/ItemListView.tsx +308 -0
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -0
- package/.framework/src/components/ui/Modal.tsx +61 -0
- package/.framework/src/components/ui/RichTextEditor.tsx +210 -0
- package/.framework/src/components/ui/accordion.tsx +82 -0
- package/.framework/src/components/ui/alert-dialog.tsx +197 -0
- package/.framework/src/components/ui/alert.tsx +76 -0
- package/.framework/src/components/ui/aspect-ratio.tsx +11 -0
- package/.framework/src/components/ui/avatar.tsx +110 -0
- package/.framework/src/components/ui/badge.tsx +49 -0
- package/.framework/src/components/ui/breadcrumb.tsx +122 -0
- package/.framework/src/components/ui/button-group.tsx +83 -0
- package/.framework/src/components/ui/button.tsx +65 -0
- package/.framework/src/components/ui/calendar.tsx +222 -0
- package/.framework/src/components/ui/card.tsx +100 -0
- package/.framework/src/components/ui/carousel.tsx +240 -0
- package/.framework/src/components/ui/chart.tsx +373 -0
- package/.framework/src/components/ui/checkbox.tsx +31 -0
- package/.framework/src/components/ui/collapsible.tsx +33 -0
- package/.framework/src/components/ui/combobox.tsx +299 -0
- package/.framework/src/components/ui/command.tsx +193 -0
- package/.framework/src/components/ui/context-menu.tsx +261 -0
- package/.framework/src/components/ui/dialog.tsx +165 -0
- package/.framework/src/components/ui/direction.tsx +22 -0
- package/.framework/src/components/ui/drawer.tsx +132 -0
- package/.framework/src/components/ui/dropdown-menu.tsx +269 -0
- package/.framework/src/components/ui/empty.tsx +104 -0
- package/.framework/src/components/ui/field.tsx +238 -0
- package/.framework/src/components/ui/hover-card.tsx +42 -0
- package/.framework/src/components/ui/input-group.tsx +153 -0
- package/.framework/src/components/ui/input-otp.tsx +87 -0
- package/.framework/src/components/ui/input.tsx +19 -0
- package/.framework/src/components/ui/item.tsx +196 -0
- package/.framework/src/components/ui/kbd.tsx +26 -0
- package/.framework/src/components/ui/label.tsx +22 -0
- package/.framework/src/components/ui/menubar.tsx +277 -0
- package/.framework/src/components/ui/native-select.tsx +61 -0
- package/.framework/src/components/ui/navigation-menu.tsx +164 -0
- package/.framework/src/components/ui/pagination.tsx +129 -0
- package/.framework/src/components/ui/popover.tsx +87 -0
- package/.framework/src/components/ui/progress.tsx +31 -0
- package/.framework/src/components/ui/radio-group.tsx +42 -0
- package/.framework/src/components/ui/resizable.tsx +50 -0
- package/.framework/src/components/ui/scroll-area.tsx +53 -0
- package/.framework/src/components/ui/select.tsx +195 -0
- package/.framework/src/components/ui/separator.tsx +26 -0
- package/.framework/src/components/ui/sheet.tsx +145 -0
- package/.framework/src/components/ui/sidebar.tsx +706 -0
- package/.framework/src/components/ui/skeleton.tsx +13 -0
- package/.framework/src/components/ui/slider.tsx +59 -0
- package/.framework/src/components/ui/sonner.tsx +47 -0
- package/.framework/src/components/ui/spinner.tsx +10 -0
- package/.framework/src/components/ui/switch.tsx +33 -0
- package/.framework/src/components/ui/table-primitives.tsx +141 -0
- package/.framework/src/components/ui/table.tsx +114 -0
- package/.framework/src/components/ui/tabs.tsx +90 -0
- package/.framework/src/components/ui/textarea.tsx +18 -0
- package/.framework/src/components/ui/toggle-group.tsx +89 -0
- package/.framework/src/components/ui/toggle.tsx +45 -0
- package/.framework/src/components/ui/tooltip.tsx +57 -0
- package/.framework/src/contexts/AppContext.tsx +133 -0
- package/.framework/src/contexts/AuthContext.tsx +371 -0
- package/.framework/src/hooks/use-mobile.ts +19 -0
- package/.framework/src/hooks/useApi.ts +526 -0
- package/.framework/src/hooks/useApps.ts +114 -0
- package/.framework/src/hooks/useEntityList.ts +190 -0
- package/.framework/src/hooks/useEntityRecord.ts +308 -0
- package/.framework/src/hooks/useForm.ts +307 -0
- package/.framework/src/hooks/useListSchema.ts +264 -0
- package/.framework/src/hooks/useSchemaRecord.ts +223 -0
- package/.framework/src/index.css +128 -0
- package/.framework/src/lib/api.ts +156 -0
- package/.framework/src/lib/supabase.ts +94 -0
- package/.framework/src/lib/utils.ts +317 -0
- package/.framework/src/main.tsx +27 -0
- package/.framework/src/pages/DashboardPage.tsx +181 -0
- package/.framework/src/pages/NotFoundPage.tsx +39 -0
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +161 -0
- package/.framework/src/pages/admin/AIAgentsPage.tsx +318 -0
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +199 -0
- package/.framework/src/pages/admin/APIKeysPage.tsx +303 -0
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +523 -0
- package/.framework/src/pages/admin/AppDetailPage.tsx +493 -0
- package/.framework/src/pages/admin/AppsPage.tsx +355 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +491 -0
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +534 -0
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +424 -0
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +176 -0
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +109 -0
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +402 -0
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +187 -0
- package/.framework/src/pages/admin/IntegrationsPage.tsx +301 -0
- package/.framework/src/pages/admin/LogsPage.tsx +283 -0
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +85 -0
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +470 -0
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +183 -0
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +279 -0
- package/.framework/src/pages/admin/PipelinesPage.tsx +390 -0
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +299 -0
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +292 -0
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +434 -0
- package/.framework/src/pages/admin/RoleDetailPage.tsx +273 -0
- package/.framework/src/pages/admin/RolesPage.tsx +292 -0
- package/.framework/src/pages/admin/SelectTestPage.tsx +61 -0
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +588 -0
- package/.framework/src/pages/admin/SimpleDashboard.tsx +387 -0
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +172 -0
- package/.framework/src/pages/admin/TestingDashboard.tsx +257 -0
- package/.framework/src/pages/admin/TimerDetailPage.tsx +151 -0
- package/.framework/src/pages/admin/TimersPage.tsx +376 -0
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +149 -0
- package/.framework/src/pages/admin/TriggersPage.tsx +381 -0
- package/.framework/src/pages/admin/TypeDetailPage.tsx +694 -0
- package/.framework/src/pages/admin/TypesPage.tsx +295 -0
- package/.framework/src/pages/auth/LoginPage.tsx +188 -0
- package/.framework/src/pages/auth/RegisterPage.tsx +163 -0
- package/.framework/src/pages/spine-framework/APIPage.tsx +17 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +25 -0
- package/.framework/src/types/auth.ts +125 -0
- package/.framework/src/types/types.ts +407 -0
- package/STRUCTURE.md +150 -0
- package/config/components.json +25 -0
- package/config/deno.lock +108 -0
- package/config/package-lock.json +17183 -0
- package/config/postcss.config.cjs +10 -0
- package/config/tailwind.config.cjs +78 -0
- package/config/tsconfig.build.json +32 -0
- package/config/tsconfig.cli.json +18 -0
- package/config/tsconfig.json +41 -0
- package/config/tsconfig.node.json +17 -0
- package/config/tsconfig.node.tsbuildinfo +1 -0
- package/config/tsconfig.tsbuildinfo +1 -0
- package/config/typedoc.json +16 -0
- package/config/vite.config.d.ts +2 -0
- package/config/vite.config.ts +72 -0
- package/dist/cli/commands/agents.d.ts +39 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/auth.d.ts +36 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/create-app.d.ts +23 -0
- package/dist/cli/commands/create-app.d.ts.map +1 -0
- package/dist/cli/commands/dev.d.ts +39 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/doctor.d.ts +42 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/generate.d.ts +36 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/init.d.ts +30 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/install-app.d.ts +30 -0
- package/dist/cli/commands/install-app.d.ts.map +1 -0
- package/dist/cli/commands/items.d.ts +45 -0
- package/dist/cli/commands/items.d.ts.map +1 -0
- package/dist/cli/commands/migrations.d.ts +41 -0
- package/dist/cli/commands/migrations.d.ts.map +1 -0
- package/dist/cli/commands/pipelines.d.ts +40 -0
- package/dist/cli/commands/pipelines.d.ts.map +1 -0
- package/dist/cli/commands/status.d.ts +23 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/system.d.ts +29 -0
- package/dist/cli/commands/system.d.ts.map +1 -0
- package/dist/cli/commands/test.d.ts +46 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/uninstall-app.d.ts +23 -0
- package/dist/cli/commands/uninstall-app.d.ts.map +1 -0
- package/dist/cli/context.d.ts +88 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/env-loader.d.ts +14 -0
- package/dist/cli/env-loader.d.ts.map +1 -0
- package/dist/cli/index.d.ts +41 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/functions/_shared/agent-runner.d.ts +156 -0
- package/dist/functions/_shared/agent-runner.d.ts.map +1 -0
- package/dist/functions/_shared/app-manifest.d.ts +68 -0
- package/dist/functions/_shared/app-manifest.d.ts.map +1 -0
- package/dist/functions/_shared/audit.d.ts +91 -0
- package/dist/functions/_shared/audit.d.ts.map +1 -0
- package/dist/functions/_shared/db.d.ts +125 -0
- package/dist/functions/_shared/db.d.ts.map +1 -0
- package/dist/functions/_shared/index.d.ts +298 -0
- package/dist/functions/_shared/index.d.ts.map +1 -0
- package/dist/functions/_shared/middleware.d.ts +315 -0
- package/dist/functions/_shared/middleware.d.ts.map +1 -0
- package/dist/functions/_shared/permissions.d.ts +626 -0
- package/dist/functions/_shared/permissions.d.ts.map +1 -0
- package/dist/functions/_shared/pipeline-runner.d.ts +124 -0
- package/dist/functions/_shared/pipeline-runner.d.ts.map +1 -0
- package/dist/functions/_shared/principal.d.ts +284 -0
- package/dist/functions/_shared/principal.d.ts.map +1 -0
- package/dist/functions/_shared/schema-utils.d.ts +181 -0
- package/dist/functions/_shared/schema-utils.d.ts.map +1 -0
- package/dist/functions/_shared/testing.d.ts +172 -0
- package/dist/functions/_shared/testing.d.ts.map +1 -0
- package/dist/functions/_shared/trigger-engine.d.ts +140 -0
- package/dist/functions/_shared/trigger-engine.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registration.d.ts +81 -0
- package/dist/functions/_shared/webhook-registration.d.ts.map +1 -0
- package/dist/functions/_shared/webhook-registry.d.ts +57 -0
- package/dist/functions/_shared/webhook-registry.d.ts.map +1 -0
- package/dist/functions/account-nodes.d.ts +48 -0
- package/dist/functions/account-nodes.d.ts.map +1 -0
- package/dist/functions/admin-data.d.ts +178 -0
- package/dist/functions/admin-data.d.ts.map +1 -0
- package/dist/functions/ai-agents.d.ts +125 -0
- package/dist/functions/ai-agents.d.ts.map +1 -0
- package/dist/functions/api-keys.d.ts +140 -0
- package/dist/functions/api-keys.d.ts.map +1 -0
- package/dist/functions/apps.d.ts +163 -0
- package/dist/functions/apps.d.ts.map +1 -0
- package/dist/functions/auth.d.ts +74 -0
- package/dist/functions/auth.d.ts.map +1 -0
- package/dist/functions/debug-auth.d.ts +33 -0
- package/dist/functions/debug-auth.d.ts.map +1 -0
- package/dist/functions/embeddings.d.ts +205 -0
- package/dist/functions/embeddings.d.ts.map +1 -0
- package/dist/functions/integration-routes.d.ts +45 -0
- package/dist/functions/integration-routes.d.ts.map +1 -0
- package/dist/functions/integrations.d.ts +124 -0
- package/dist/functions/integrations.d.ts.map +1 -0
- package/dist/functions/item-progress.d.ts +41 -0
- package/dist/functions/item-progress.d.ts.map +1 -0
- package/dist/functions/logs.d.ts +162 -0
- package/dist/functions/logs.d.ts.map +1 -0
- package/dist/functions/observability.d.ts +123 -0
- package/dist/functions/observability.d.ts.map +1 -0
- package/dist/functions/pipeline-executions.d.ts +190 -0
- package/dist/functions/pipeline-executions.d.ts.map +1 -0
- package/dist/functions/pipelines.d.ts +171 -0
- package/dist/functions/pipelines.d.ts.map +1 -0
- package/dist/functions/prompt-configs.d.ts +125 -0
- package/dist/functions/prompt-configs.d.ts.map +1 -0
- package/dist/functions/roles.d.ts +118 -0
- package/dist/functions/roles.d.ts.map +1 -0
- package/dist/functions/system-cron.d.ts +65 -0
- package/dist/functions/system-cron.d.ts.map +1 -0
- package/dist/functions/system.d.ts +29 -0
- package/dist/functions/system.d.ts.map +1 -0
- package/dist/functions/tests.d.ts +28 -0
- package/dist/functions/tests.d.ts.map +1 -0
- package/dist/functions/timers.d.ts +139 -0
- package/dist/functions/timers.d.ts.map +1 -0
- package/dist/functions/triggers.d.ts +203 -0
- package/dist/functions/triggers.d.ts.map +1 -0
- package/dist/functions/types.d.ts +151 -0
- package/dist/functions/types.d.ts.map +1 -0
- package/dist/src/types/types.d.ts +364 -0
- package/dist/src/types/types.d.ts.map +1 -0
- package/package.json +192 -0
- package/scripts/app-install-cli.ts +286 -0
- package/scripts/assemble-frontend.sh +79 -0
- package/scripts/assemble-functions.sh +62 -0
- package/scripts/assemble.sh +35 -0
- package/scripts/boundary-check.sh +106 -0
- package/scripts/build-manifest.sh +80 -0
- package/scripts/check-core-integrity.sh +82 -0
- package/scripts/ingest-chunks.cjs +202 -0
- package/scripts/kb-chunk-parser.cjs +312 -0
- package/scripts/kb-chunk-parser.ts +330 -0
- package/scripts/load-test-app-install.ts +484 -0
- package/scripts/netlify-dev-wrapper.sh +22 -0
- package/scripts/verify-integrity.sh +69 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module logs
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Read API for the `v2.logs` table plus a write endpoint for external log
|
|
8
|
+
* ingestion. The `logs` table schema uses internal column names
|
|
9
|
+
* (`level`, `source`, `source_type`, `source_id`, `context`) that differ from
|
|
10
|
+
* the stable frontend contract. All reads are mapped through `mapLogRow`.
|
|
11
|
+
*
|
|
12
|
+
* **Routed by:** `GET/POST /.netlify/functions/logs`
|
|
13
|
+
*
|
|
14
|
+
* **Actions:**
|
|
15
|
+
* | method | ?action | handler |
|
|
16
|
+
* |--------|---------|------------------|
|
|
17
|
+
* | GET | account | listAccount |
|
|
18
|
+
* | GET | target | listTarget |
|
|
19
|
+
* | GET | person | listPerson |
|
|
20
|
+
* | GET | stats | getStats |
|
|
21
|
+
* | GET | search | search |
|
|
22
|
+
* | POST | cleanup | cleanup |
|
|
23
|
+
* | POST | (default)| log |
|
|
24
|
+
*
|
|
25
|
+
* **Authorization:** All operations use `ctx.db` (RLS-scoped, always filtered
|
|
26
|
+
* to `account_id`). No inserts are made by this module — `emitLog` from
|
|
27
|
+
* `_shared/audit.ts` is the canonical write path.
|
|
28
|
+
*
|
|
29
|
+
* **Column mapping (DB → API):**
|
|
30
|
+
* | DB column | API field |
|
|
31
|
+
* |--------------|-------------|
|
|
32
|
+
* | level | event_type |
|
|
33
|
+
* | person_id | actor_id |
|
|
34
|
+
* | source_type | target_type |
|
|
35
|
+
* | source_id | target_id |
|
|
36
|
+
* | source | action |
|
|
37
|
+
* | context | details |
|
|
38
|
+
*
|
|
39
|
+
* @seeAlso audit.ts (emitLog — canonical write path for all system events)
|
|
40
|
+
* @seeAlso observability.ts (aggregated metrics over logs)
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* @chunk-id LOGS_LIST_ACCOUNT_1_0_0
|
|
44
|
+
* @version 1.0.0
|
|
45
|
+
* @hash d512e35890e479c88f4e6130567b16b1143a164705fca4e887aee643cc76a1e5
|
|
46
|
+
* @macro Account Logs List Handler
|
|
47
|
+
* @micro Lists all account log entries with filtering and mapping
|
|
48
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
49
|
+
* @inputs body: any — Request body (unused for GET)
|
|
50
|
+
* @outputs Array of mapped log rows with API field names
|
|
51
|
+
* @depends-on [createHandler, mapLogRow]
|
|
52
|
+
* @depended-by [Netlify function routing]
|
|
53
|
+
* @side-effects [DB queries, row mapping]
|
|
54
|
+
* @tags logs, list, account, pagination
|
|
55
|
+
*/
|
|
56
|
+
export declare const listAccount: (event: any, context: any) => Promise<any>;
|
|
57
|
+
/**
|
|
58
|
+
* @chunk-id LOGS_LIST_TARGET_1_0_0
|
|
59
|
+
* @version 1.0.0
|
|
60
|
+
* @hash 7ea27876f183b59057284ca9007aed6e0e65050b196f00756b8ad5715073e745
|
|
61
|
+
* @macro Target Logs List Handler
|
|
62
|
+
* @micro Lists log entries for specific target entity with filtering
|
|
63
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
64
|
+
* @inputs body: any — Request body (unused for GET)
|
|
65
|
+
* @outputs Array of mapped log rows for target entity
|
|
66
|
+
* @depends-on [createHandler, mapLogRow]
|
|
67
|
+
* @depended-by [Netlify function routing]
|
|
68
|
+
* @side-effects [DB queries, row mapping]
|
|
69
|
+
* @tags logs, list, target, entity-specific
|
|
70
|
+
*/
|
|
71
|
+
export declare const listTarget: (event: any, context: any) => Promise<any>;
|
|
72
|
+
/**
|
|
73
|
+
* @chunk-id LOGS_LIST_PERSON_1_0_0
|
|
74
|
+
* @version 1.0.0
|
|
75
|
+
* @hash 1c502ddeac8766153f1cc9ff6ffc8a7804dd83519d3c2e8b11dcf610fc6d6dfe
|
|
76
|
+
* @macro Person Activity Feed Handler
|
|
77
|
+
* @micro Returns activity feed for person with system event filtering
|
|
78
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
79
|
+
* @inputs body: any — Request body (unused for GET)
|
|
80
|
+
* @outputs Array of mapped log rows for person activity
|
|
81
|
+
* @depends-on [createHandler, mapLogRow]
|
|
82
|
+
* @depended-by [Netlify function routing]
|
|
83
|
+
* @side-effects [DB queries, row mapping]
|
|
84
|
+
* @tags logs, list, person, activity-feed
|
|
85
|
+
*/
|
|
86
|
+
export declare const listPerson: (event: any, context: any) => Promise<any>;
|
|
87
|
+
/**
|
|
88
|
+
* @chunk-id LOGS_GET_STATS_1_0_0
|
|
89
|
+
* @version 1.0.0
|
|
90
|
+
* @hash a25e065d770b9658aa1a7d1db325e044febbac498c06cad735e18167442a2674
|
|
91
|
+
* @macro Logs Statistics Handler
|
|
92
|
+
* @micro Returns log counts by event type with date range filtering
|
|
93
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
94
|
+
* @inputs body: any — Request body (unused for GET)
|
|
95
|
+
* @outputs {total: number, by_type: Record<string, number>} — Log statistics
|
|
96
|
+
* @depends-on [createHandler]
|
|
97
|
+
* @depended-by [Netlify function routing]
|
|
98
|
+
* @side-effects [DB count query, aggregation]
|
|
99
|
+
* @tags logs, stats, analytics, monitoring
|
|
100
|
+
*/
|
|
101
|
+
export declare const getStats: (event: any, context: any) => Promise<any>;
|
|
102
|
+
/**
|
|
103
|
+
* @chunk-id LOGS_SEARCH_1_0_0
|
|
104
|
+
* @version 1.0.0
|
|
105
|
+
* @hash 25f4552cc8b604e280e77c9180dea6435c99f864f8d1578af44ea68793c4c67d
|
|
106
|
+
* @macro Logs Text Search Handler
|
|
107
|
+
* @micro Performs full-text search on log messages with filtering
|
|
108
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
109
|
+
* @inputs body: any — Request body (unused for GET)
|
|
110
|
+
* @outputs Array of mapped log rows matching search query
|
|
111
|
+
* @depends-on [createHandler, mapLogRow]
|
|
112
|
+
* @depended-by [Netlify function routing]
|
|
113
|
+
* @side-effects [DB ILIKE search, row mapping]
|
|
114
|
+
* @tags logs, search, text-search, ilike
|
|
115
|
+
*/
|
|
116
|
+
export declare const search: (event: any, context: any) => Promise<any>;
|
|
117
|
+
/**
|
|
118
|
+
* @chunk-id LOGS_LOG_1_0_0
|
|
119
|
+
* @version 1.0.0
|
|
120
|
+
* @hash 521255a8c1a7e4110e2873050c8b58c8819fa6540bb039d30117946ef741633f
|
|
121
|
+
* @macro Log Entry Writer
|
|
122
|
+
* @micro Writes external log entry with field mapping and validation
|
|
123
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
124
|
+
* @inputs body: object — Log data including event_type and optional fields
|
|
125
|
+
* @outputs {log_id: string} — ID of created log entry
|
|
126
|
+
* @depends-on [createHandler]
|
|
127
|
+
* @depended-by [Netlify function routing]
|
|
128
|
+
* @side-effects [DB insert with field mapping]
|
|
129
|
+
* @tags logs, create, external, instrumentation
|
|
130
|
+
*/
|
|
131
|
+
export declare const log: (event: any, context: any) => Promise<any>;
|
|
132
|
+
/**
|
|
133
|
+
* @chunk-id LOGS_CLEANUP_1_0_0
|
|
134
|
+
* @version 1.0.0
|
|
135
|
+
* @hash 3790847ac4c98e79285483511dcc23c303dc339b4988ac5715c1f165a1bb29c9
|
|
136
|
+
* @macro Logs Cleanup Handler
|
|
137
|
+
* @micro Deletes old log entries beyond retention period
|
|
138
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
139
|
+
* @inputs body: object — days_to_keep (default 90)
|
|
140
|
+
* @outputs {deleted_count: number} — Number of deleted log entries
|
|
141
|
+
* @depends-on [createHandler]
|
|
142
|
+
* @depended-by [Netlify function routing, system-cron.ts]
|
|
143
|
+
* @side-effects [DB delete by date]
|
|
144
|
+
* @tags logs, cleanup, retention, maintenance
|
|
145
|
+
*/
|
|
146
|
+
export declare const cleanup: (event: any, context: any) => Promise<any>;
|
|
147
|
+
/**
|
|
148
|
+
* @chunk-id LOGS_HANDLER_1_0_0
|
|
149
|
+
* @version 1.0.0
|
|
150
|
+
* @hash 62e729c4e43a30a85394c5ed66a1c2a12898135b133b8b712f481670d2351b22
|
|
151
|
+
* @macro Logs Router
|
|
152
|
+
* @micro Routes HTTP methods and actions to appropriate log handlers
|
|
153
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
154
|
+
* @inputs body: any — Request body for POST operations
|
|
155
|
+
* @outputs Varies — Depends on routed handler (listAccount/listTarget/listPerson/getStats/search/cleanup/log)
|
|
156
|
+
* @depends-on [createHandler, listAccount, listTarget, listPerson, getStats, search, cleanup, log]
|
|
157
|
+
* @depended-by [Netlify function routing]
|
|
158
|
+
* @side-effects [Delegates to appropriate handler]
|
|
159
|
+
* @tags logs, router, crud, netlify-function
|
|
160
|
+
*/
|
|
161
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
162
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../.framework/functions/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAuCH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,4CA0BtB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,4CA6BrB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,4CAgCrB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,4CA0BnB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA6BjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CA8Bd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAelB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CA4BlB,CAAA"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module observability
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Aggregated observability metrics API. All handlers delegate to Postgres
|
|
8
|
+
* analytics RPCs that operate over the `v2.logs` table. Results are
|
|
9
|
+
* read-only; no writes occur in this module.
|
|
10
|
+
*
|
|
11
|
+
* **Routed by:** `GET/POST /.netlify/functions/observability`
|
|
12
|
+
*
|
|
13
|
+
* **Actions (all GET unless noted):**
|
|
14
|
+
* | ?action | handler |
|
|
15
|
+
* |-----------------------|------------------------|
|
|
16
|
+
* | event_volume | getEventVolume |
|
|
17
|
+
* | error_rate | getErrorRate |
|
|
18
|
+
* | latency_percentiles | getLatencyPercentiles |
|
|
19
|
+
* | pipeline_stats | getPipelineStats |
|
|
20
|
+
* | top_actors | getTopActors |
|
|
21
|
+
* | cleanup | cleanupOldLogs (POST) |
|
|
22
|
+
*
|
|
23
|
+
* **Authorization:** All read endpoints require account context (RLS-scoped
|
|
24
|
+
* via `ctx.db`). `cleanup` additionally requires the `system_admin` role.
|
|
25
|
+
*
|
|
26
|
+
* INVARIANT: Every handler requires both `from` and `to` date params
|
|
27
|
+
* (except `cleanup`). Requests without them throw immediately.
|
|
28
|
+
*
|
|
29
|
+
* @seeAlso logs.ts (raw log access with filter/search)
|
|
30
|
+
* @seeAlso system-cron.ts (evaluateThresholds calls observability RPCs)
|
|
31
|
+
* @seeAlso pipeline-executions.ts (pipeline_stats RPC aggregates these)
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Returns time-bucketed event volume counts via the `get_event_volume` RPC.
|
|
35
|
+
*
|
|
36
|
+
* Query params: `from` (required, ISO), `to` (required, ISO),
|
|
37
|
+
* `bucket` ('minute'|'hour'|'day', default 'hour')
|
|
38
|
+
*
|
|
39
|
+
* @returns Array of `{ bucket_time, event_type, count }` rows
|
|
40
|
+
* @throws Error('Account context required')
|
|
41
|
+
* @throws Error('from and to dates are required')
|
|
42
|
+
* @sideEffects DB read: get_event_volume RPC
|
|
43
|
+
* @calledBy handler (?action=event_volume)
|
|
44
|
+
*/
|
|
45
|
+
export declare const getEventVolume: (event: any, context: any) => Promise<any>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns aggregate error rate for the account time window via the
|
|
48
|
+
* `get_error_rate` RPC.
|
|
49
|
+
*
|
|
50
|
+
* Query params: `from` (required, ISO), `to` (required, ISO)
|
|
51
|
+
*
|
|
52
|
+
* @returns `{ total: number, errors: number, rate: number }` (0.0–1.0)
|
|
53
|
+
* @throws Error('Account context required')
|
|
54
|
+
* @throws Error('from and to dates are required')
|
|
55
|
+
* @sideEffects DB read: get_error_rate RPC
|
|
56
|
+
* @calledBy handler (?action=error_rate)
|
|
57
|
+
* @calledBy system-cron.ts evaluateThresholds (metric='error_rate')
|
|
58
|
+
*/
|
|
59
|
+
export declare const getErrorRate: (event: any, context: any) => Promise<any>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns request latency percentiles (p50/p90/p99) via the
|
|
62
|
+
* `get_latency_percentiles` RPC.
|
|
63
|
+
*
|
|
64
|
+
* Query params: `from` (required, ISO), `to` (required, ISO),
|
|
65
|
+
* `source` (log source filter, default 'request')
|
|
66
|
+
*
|
|
67
|
+
* @returns `{ p50: number, p90: number, p99: number }` (milliseconds)
|
|
68
|
+
* @throws Error('Account context required')
|
|
69
|
+
* @throws Error('from and to dates are required')
|
|
70
|
+
* @sideEffects DB read: get_latency_percentiles RPC
|
|
71
|
+
* @calledBy handler (?action=latency_percentiles)
|
|
72
|
+
* @calledBy system-cron.ts evaluateThresholds (metric='latency_p95')
|
|
73
|
+
*/
|
|
74
|
+
export declare const getLatencyPercentiles: (event: any, context: any) => Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* Returns per-pipeline execution statistics (success/failure counts,
|
|
77
|
+
* average duration) via the `get_pipeline_stats` RPC.
|
|
78
|
+
*
|
|
79
|
+
* Query params: `from` (required, ISO), `to` (required, ISO)
|
|
80
|
+
*
|
|
81
|
+
* @returns Array of `{ pipeline_id, name, success_count, failure_count, avg_duration_ms }`
|
|
82
|
+
* @throws Error('Account context required')
|
|
83
|
+
* @throws Error('from and to dates are required')
|
|
84
|
+
* @sideEffects DB read: get_pipeline_stats RPC
|
|
85
|
+
* @calledBy handler (?action=pipeline_stats)
|
|
86
|
+
* @calledBy system-cron.ts evaluateThresholds (metric='pipeline_failure_rate')
|
|
87
|
+
*/
|
|
88
|
+
export declare const getPipelineStats: (event: any, context: any) => Promise<any>;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the most active principals (persons) by event count via the
|
|
91
|
+
* `get_top_actors` RPC.
|
|
92
|
+
*
|
|
93
|
+
* Query params: `from` (required, ISO), `to` (required, ISO),
|
|
94
|
+
* `limit` (default 5)
|
|
95
|
+
*
|
|
96
|
+
* @returns Array of `{ person_id, full_name, event_count }` ordered by count desc
|
|
97
|
+
* @throws Error('Account context required')
|
|
98
|
+
* @throws Error('from and to dates are required')
|
|
99
|
+
* @sideEffects DB read: get_top_actors RPC
|
|
100
|
+
* @calledBy handler (?action=top_actors)
|
|
101
|
+
*/
|
|
102
|
+
export declare const getTopActors: (event: any, context: any) => Promise<any>;
|
|
103
|
+
/**
|
|
104
|
+
* Manually triggers cross-account log cleanup via the `cleanup_old_logs`
|
|
105
|
+
* RPC. Requires `system_admin` role — not available to regular users.
|
|
106
|
+
*
|
|
107
|
+
* Query params: `days` (optional, default 90)
|
|
108
|
+
*
|
|
109
|
+
* @returns `{ deleted_count: number }`
|
|
110
|
+
* @throws Error('System admin required') if principal lacks system_admin role
|
|
111
|
+
* @sideEffects DB write: cleanup_old_logs RPC (cross-account DELETE)
|
|
112
|
+
* @calledBy handler (?action=cleanup)
|
|
113
|
+
* @calledBy system-cron.ts cleanupOldLogs (automated daily rotation)
|
|
114
|
+
*/
|
|
115
|
+
export declare const cleanupOldLogs: (event: any, context: any) => Promise<any>;
|
|
116
|
+
/**
|
|
117
|
+
* Netlify function entry point. Dispatches to analytics handler by ?action.
|
|
118
|
+
* All valid ?action values are listed in the module dispatch table.
|
|
119
|
+
* @throws Error('Unknown action: <action>. Valid actions: ...') on mismatch
|
|
120
|
+
* @calledBy Netlify function routing
|
|
121
|
+
*/
|
|
122
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
123
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../.framework/functions/observability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,4CAsBzB,CAAA;AAGF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,4CAoBvB,CAAA;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,4CAqBhC,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,4CAoB3B,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,4CAqBvB,CAAA;AAGF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,4CAezB,CAAA;AAIF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,4CAmBlB,CAAA"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module pipeline-executions
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* Lifecycle management API for the `pipeline_executions` table. Records
|
|
8
|
+
* track individual pipeline runs: status progression (pending → running →
|
|
9
|
+
* completed/failed/cancelled), timing, trigger data, and result payloads.
|
|
10
|
+
*
|
|
11
|
+
* **Routed by:** `GET/POST/PATCH /.netlify/functions/pipeline-executions`
|
|
12
|
+
*
|
|
13
|
+
* **Actions:**
|
|
14
|
+
* | method | ?action | handler |
|
|
15
|
+
* |--------|----------|------------|
|
|
16
|
+
* | GET | list | list |
|
|
17
|
+
* | GET | running | getRunning |
|
|
18
|
+
* | GET | stats | getStats |
|
|
19
|
+
* | POST | cleanup | cleanup |
|
|
20
|
+
* | GET | ?id | get |
|
|
21
|
+
* | GET | (default)| list |
|
|
22
|
+
* | POST | — | create |
|
|
23
|
+
* | PATCH | start | start |
|
|
24
|
+
* | PATCH | complete | complete |
|
|
25
|
+
* | PATCH | cancel | cancel |
|
|
26
|
+
*
|
|
27
|
+
* **Status FSM:** pending → running → completed | failed | cancelled
|
|
28
|
+
*
|
|
29
|
+
* **Authorization:** All operations use `ctx.db` (RLS-scoped to account).
|
|
30
|
+
* Account context required.
|
|
31
|
+
*
|
|
32
|
+
* **Column reference:**
|
|
33
|
+
* `id`, `pipeline_id`, `status`, `trigger_data`, `result`, `error_message`,
|
|
34
|
+
* `started_at`, `completed_at`, `duration_ms`, `created_by`, `account_id`, `created_at`
|
|
35
|
+
*
|
|
36
|
+
* @seeAlso pipelines.ts (pipeline_id FK source)
|
|
37
|
+
* @seeAlso pipeline-runner.ts (runPipeline — calls create/start/complete)
|
|
38
|
+
* @seeAlso audit.ts (emitLog for pipeline_execution.* events)
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* @chunk-id PIPELINE_EXECUTIONS_LIST_1_0_0
|
|
42
|
+
* @version 1.0.0
|
|
43
|
+
* @hash 499006790777b78f0eb610474f6869e94869b5b244d1ecedbb0e216cf68bae70
|
|
44
|
+
* @macro Pipeline Executions List Handler
|
|
45
|
+
* @micro Lists pipeline executions with filtering and joins
|
|
46
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
47
|
+
* @inputs body: any — Request body (unused for GET)
|
|
48
|
+
* @outputs Array of execution records with pipeline and person joins
|
|
49
|
+
* @depends-on [createHandler, SELECT_WITH_JOINS]
|
|
50
|
+
* @depended-by [Netlify function routing]
|
|
51
|
+
* @side-effects [DB queries with joins]
|
|
52
|
+
* @tags pipeline-executions, list, crud, pagination
|
|
53
|
+
*/
|
|
54
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
55
|
+
/**
|
|
56
|
+
* @chunk-id PIPELINE_EXECUTIONS_GET_1_0_0
|
|
57
|
+
* @version 1.0.0
|
|
58
|
+
* @hash b148fbec727984f7623d1fa94ae20dd0550056d5c886b0994651f119dbc68521
|
|
59
|
+
* @macro Pipeline Execution Get Handler
|
|
60
|
+
* @micro Returns single pipeline execution record with joins
|
|
61
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
62
|
+
* @inputs body: any — Request body (unused for GET)
|
|
63
|
+
* @outputs Execution record with pipeline and person joins
|
|
64
|
+
* @depends-on [createHandler, SELECT_WITH_JOINS]
|
|
65
|
+
* @depended-by [Netlify function routing]
|
|
66
|
+
* @side-effects [DB single row query with joins]
|
|
67
|
+
* @tags pipeline-executions, get, crud, single-record
|
|
68
|
+
*/
|
|
69
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
70
|
+
/**
|
|
71
|
+
* @chunk-id PIPELINE_EXECUTIONS_CREATE_1_0_0
|
|
72
|
+
* @version 1.0.0
|
|
73
|
+
* @hash fb1d51a8ca0e30e0d151147edde5516c01a51f2cfcad64105ff07937aa430924
|
|
74
|
+
* @macro Pipeline Execution Create Handler
|
|
75
|
+
* @micro Creates execution record in pending status with audit logging
|
|
76
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
77
|
+
* @inputs body: object — pipeline_id and optional trigger_data
|
|
78
|
+
* @outputs {execution_id: string} — ID of created execution
|
|
79
|
+
* @depends-on [createHandler, emitLog]
|
|
80
|
+
* @depended-by [Netlify function routing, pipeline-runner.ts]
|
|
81
|
+
* @side-effects [DB insert, audit logging]
|
|
82
|
+
* @tags pipeline-executions, create, crud, audit
|
|
83
|
+
*/
|
|
84
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
85
|
+
/**
|
|
86
|
+
* @chunk-id PIPELINE_EXECUTIONS_START_1_0_0
|
|
87
|
+
* @version 1.0.0
|
|
88
|
+
* @hash 25eeada82be4fff26606dc6e784b6e0accaaebaee08514577368cdd146f39aaf
|
|
89
|
+
* @macro Pipeline Execution Start Handler
|
|
90
|
+
* @micro Transitions execution from pending to running with timestamp
|
|
91
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
92
|
+
* @inputs body: object — execution id to start
|
|
93
|
+
* @outputs {success: true} — Confirmation of successful start
|
|
94
|
+
* @depends-on [createHandler, emitLog]
|
|
95
|
+
* @depended-by [Netlify function routing, pipeline-runner.ts]
|
|
96
|
+
* @side-effects [DB update, audit logging]
|
|
97
|
+
* @tags pipeline-executions, start, state-transition, audit
|
|
98
|
+
*/
|
|
99
|
+
export declare const start: (event: any, context: any) => Promise<any>;
|
|
100
|
+
/**
|
|
101
|
+
* @chunk-id PIPELINE_EXECUTIONS_COMPLETE_1_0_0
|
|
102
|
+
* @version 1.0.0
|
|
103
|
+
* @hash 088db36524718ec6d8d85e1051aa5d1c4fc31fb796f284bc1526c195d4686dff
|
|
104
|
+
* @macro Pipeline Execution Complete Handler
|
|
105
|
+
* @micro Transitions execution to completed/failed with duration calculation
|
|
106
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
107
|
+
* @inputs body: object — id, output_data, and optional error_message
|
|
108
|
+
* @outputs {success: true} — Confirmation of successful completion
|
|
109
|
+
* @depends-on [createHandler, emitLog]
|
|
110
|
+
* @depended-by [Netlify function routing, pipeline-runner.ts]
|
|
111
|
+
* @side-effects [DB read for started_at, DB update, audit logging]
|
|
112
|
+
* @tags pipeline-executions, complete, state-transition, audit
|
|
113
|
+
*/
|
|
114
|
+
export declare const complete: (event: any, context: any) => Promise<any>;
|
|
115
|
+
/**
|
|
116
|
+
* @chunk-id PIPELINE_EXECUTIONS_CANCEL_1_0_0
|
|
117
|
+
* @version 1.0.0
|
|
118
|
+
* @hash f45e336099afeb28cb3db099fa428d8637e07876dcabf7ec85de844c25b43d97
|
|
119
|
+
* @macro Pipeline Execution Cancel Handler
|
|
120
|
+
* @micro Cancels execution by setting status to cancelled with timestamp
|
|
121
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
122
|
+
* @inputs body: object — execution id to cancel
|
|
123
|
+
* @outputs {success: true} — Confirmation of successful cancellation
|
|
124
|
+
* @depends-on [createHandler, emitLog]
|
|
125
|
+
* @depended-by [Netlify function routing]
|
|
126
|
+
* @side-effects [DB update, audit logging]
|
|
127
|
+
* @tags pipeline-executions, cancel, state-transition, audit
|
|
128
|
+
*/
|
|
129
|
+
export declare const cancel: (event: any, context: any) => Promise<any>;
|
|
130
|
+
/**
|
|
131
|
+
* @chunk-id PIPELINE_EXECUTIONS_GET_RUNNING_1_0_0
|
|
132
|
+
* @version 1.0.0
|
|
133
|
+
* @hash d43691d1d9063a7421eae3b32ede4bb603efa7b2faf635861f66178fde5641b6
|
|
134
|
+
* @macro Running Pipeline Executions Handler
|
|
135
|
+
* @micro Returns currently running executions with optional pipeline filter
|
|
136
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
137
|
+
* @inputs body: any — Request body (unused for GET)
|
|
138
|
+
* @outputs Array of running execution records with joins
|
|
139
|
+
* @depends-on [createHandler, SELECT_WITH_JOINS]
|
|
140
|
+
* @depended-by [Netlify function routing]
|
|
141
|
+
* @side-effects [DB query with joins]
|
|
142
|
+
* @tags pipeline-executions, running, status-filter, monitoring
|
|
143
|
+
*/
|
|
144
|
+
export declare const getRunning: (event: any, context: any) => Promise<any>;
|
|
145
|
+
/**
|
|
146
|
+
* @chunk-id PIPELINE_EXECUTIONS_GET_STATS_1_0_0
|
|
147
|
+
* @version 1.0.0
|
|
148
|
+
* @hash f80bc6b6b830d1bafcd7d02ecac50c78cab10ceef7441dc477b3193a7b29143e
|
|
149
|
+
* @macro Pipeline Executions Statistics Handler
|
|
150
|
+
* @micro Returns execution counts by status with filtering options
|
|
151
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
152
|
+
* @inputs body: any — Request body (unused for GET)
|
|
153
|
+
* @outputs {total, completed, failed, running} — Status count statistics
|
|
154
|
+
* @depends-on [createHandler]
|
|
155
|
+
* @depended-by [Netlify function routing]
|
|
156
|
+
* @side-effects [DB count query, aggregation]
|
|
157
|
+
* @tags pipeline-executions, stats, analytics, monitoring
|
|
158
|
+
*/
|
|
159
|
+
export declare const getStats: (event: any, context: any) => Promise<any>;
|
|
160
|
+
/**
|
|
161
|
+
* @chunk-id PIPELINE_EXECUTIONS_CLEANUP_1_0_0
|
|
162
|
+
* @version 1.0.0
|
|
163
|
+
* @hash 713c36d875b9e210b16504c324491c66485681a47265ab8cd228c66be58386d4
|
|
164
|
+
* @macro Pipeline Executions Cleanup Handler
|
|
165
|
+
* @micro Deletes old execution records beyond retention period
|
|
166
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
167
|
+
* @inputs body: object — days_to_keep (default 30) and optional status_filter
|
|
168
|
+
* @outputs {deleted_count: number} — Number of deleted execution records
|
|
169
|
+
* @depends-on [createHandler, emitLog]
|
|
170
|
+
* @depended-by [Netlify function routing]
|
|
171
|
+
* @side-effects [DB delete by date, audit logging]
|
|
172
|
+
* @tags pipeline-executions, cleanup, retention, maintenance
|
|
173
|
+
*/
|
|
174
|
+
export declare const cleanup: (event: any, context: any) => Promise<any>;
|
|
175
|
+
/**
|
|
176
|
+
* @chunk-id PIPELINE_EXECUTIONS_HANDLER_1_0_0
|
|
177
|
+
* @version 1.0.0
|
|
178
|
+
* @hash d1ff32ebff977774775afb91952838530a5d628211a7ab7ac5c74aca2e7c77d2
|
|
179
|
+
* @macro Pipeline Executions Router
|
|
180
|
+
* @micro Routes HTTP methods and actions to appropriate pipeline execution handlers
|
|
181
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
182
|
+
* @inputs body: any — Request body for POST/PATCH operations
|
|
183
|
+
* @outputs Varies — Depends on routed handler (list/get/create/start/complete/cancel/getRunning/getStats/cleanup)
|
|
184
|
+
* @depends-on [createHandler, list, get, create, start, complete, cancel, getRunning, getStats, cleanup]
|
|
185
|
+
* @depended-by [Netlify function routing, pipeline-runner.ts]
|
|
186
|
+
* @side-effects [Delegates to appropriate handler]
|
|
187
|
+
* @tags pipeline-executions, router, crud, netlify-function
|
|
188
|
+
*/
|
|
189
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
190
|
+
//# sourceMappingURL=pipeline-executions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-executions.d.ts","sourceRoot":"","sources":["../../.framework/functions/pipeline-executions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAcH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CAwBf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAgBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA+BjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,4CAsBhB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,4CA0CnB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAsBjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,4CAqBrB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,4CA2BnB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAuBlB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAkClB,CAAA"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module pipelines
|
|
3
|
+
* @audience core-contributor
|
|
4
|
+
* @layer api-handler
|
|
5
|
+
* @stability stable
|
|
6
|
+
*
|
|
7
|
+
* CRUD API for the `pipelines` table, plus execution history access.
|
|
8
|
+
* Pipelines are named lists of stages that execute sequentially via `runPipeline`
|
|
9
|
+
* in `_shared/pipeline-runner.ts`.
|
|
10
|
+
*
|
|
11
|
+
* **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/pipelines`
|
|
12
|
+
*
|
|
13
|
+
* **Actions:**
|
|
14
|
+
* | method | ?action | handler |
|
|
15
|
+
* |--------|--------------|-----------------|
|
|
16
|
+
* | GET | by-trigger | listByTrigger |
|
|
17
|
+
* | GET | executions | getExecutions |
|
|
18
|
+
* | POST | toggle | toggle |
|
|
19
|
+
* | GET | ?id | get |
|
|
20
|
+
* | GET | (default) | list |
|
|
21
|
+
* | POST | — | create |
|
|
22
|
+
* | PATCH | — | update |
|
|
23
|
+
* | DELETE | — | remove (hard) |
|
|
24
|
+
*
|
|
25
|
+
* **Authorization:** All operations use `ctx.db` (RLS-scoped). Authenticated
|
|
26
|
+
* principal required for writes.
|
|
27
|
+
*
|
|
28
|
+
* INVARIANT: `remove` is a hard delete (no soft delete for pipelines).
|
|
29
|
+
* INVARIANT: `toggle` is a dedicated POST action — use instead of PATCH for
|
|
30
|
+
* is_active changes to ensure proper audit logging.
|
|
31
|
+
*
|
|
32
|
+
* @seeAlso pipeline-runner.ts (runPipeline — actual execution engine)
|
|
33
|
+
* @seeAlso trigger-engine.ts (calls runPipeline when triggers fire)
|
|
34
|
+
* @seeAlso audit.ts (emitLog for pipeline.* events)
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* @chunk-id PIPELINES_LIST_BY_TRIGGER_1_0_0
|
|
38
|
+
* @version 1.0.0
|
|
39
|
+
* @hash eb5df34b2c5f7b954260202a14cbfbd84967ab03db335bd94894bf66a956a49a
|
|
40
|
+
* @macro Pipelines by Trigger List Handler
|
|
41
|
+
* @micro Lists pipelines filtered by trigger type with sanitization
|
|
42
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
43
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
44
|
+
* @outputs Array of sanitized pipeline records with app/createdBy joins
|
|
45
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
46
|
+
* @depended-by [Netlify function routing]
|
|
47
|
+
* @side-effects [DB queries, permission sanitization]
|
|
48
|
+
* @tags pipelines, list, trigger-type, crud
|
|
49
|
+
*/
|
|
50
|
+
export declare const listByTrigger: (event: any, context: any) => Promise<any>;
|
|
51
|
+
/**
|
|
52
|
+
* @chunk-id PIPELINES_LIST_1_0_0
|
|
53
|
+
* @version 1.0.0
|
|
54
|
+
* @hash af2b426b38e99a1907d3113a5b0b776204be0e51a897974573fb5ebc63b85892
|
|
55
|
+
* @macro Pipelines List Handler
|
|
56
|
+
* @micro Lists all pipelines with optional filtering and sanitization
|
|
57
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
58
|
+
* @inputs body: any — Request body (unused for GET)
|
|
59
|
+
* @outputs Array of sanitized pipeline records with app/createdBy joins
|
|
60
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
61
|
+
* @depended-by [Netlify function routing]
|
|
62
|
+
* @side-effects [DB queries, permission sanitization]
|
|
63
|
+
* @tags pipelines, list, crud, pagination
|
|
64
|
+
*/
|
|
65
|
+
export declare const list: (event: any, context: any) => Promise<any>;
|
|
66
|
+
/**
|
|
67
|
+
* @chunk-id PIPELINES_GET_1_0_0
|
|
68
|
+
* @version 1.0.0
|
|
69
|
+
* @hash 27a956f4dfe17b93c89170d8f3a9f3f792e4b264b48d13017a52d08014008033
|
|
70
|
+
* @macro Pipeline Get Handler
|
|
71
|
+
* @micro Returns single pipeline record with joins and sanitization
|
|
72
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
73
|
+
* @inputs body: any — Request body (unused for GET)
|
|
74
|
+
* @outputs Sanitized pipeline record with app/createdBy joins
|
|
75
|
+
* @depends-on [createHandler, joins, sanitizeRecordData]
|
|
76
|
+
* @depended-by [Netlify function routing]
|
|
77
|
+
* @side-effects [DB single row query, permission sanitization]
|
|
78
|
+
* @tags pipelines, get, crud, single-record
|
|
79
|
+
*/
|
|
80
|
+
export declare const get: (event: any, context: any) => Promise<any>;
|
|
81
|
+
/**
|
|
82
|
+
* @chunk-id PIPELINES_CREATE_1_0_0
|
|
83
|
+
* @version 1.0.0
|
|
84
|
+
* @hash b39ec2f696a5d4a9589b7fce769eb0e174d5b0b17b7f4155dc10b5fe70c09252
|
|
85
|
+
* @macro Pipeline Create Handler
|
|
86
|
+
* @micro Creates pipeline record with validation and audit logging
|
|
87
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
88
|
+
* @inputs body: object — Pipeline data including name, trigger_type, stages
|
|
89
|
+
* @outputs Inserted pipeline record
|
|
90
|
+
* @depends-on [createHandler, emitLog]
|
|
91
|
+
* @depended-by [Netlify function routing]
|
|
92
|
+
* @side-effects [DB insert, audit logging]
|
|
93
|
+
* @tags pipelines, create, crud, audit
|
|
94
|
+
*/
|
|
95
|
+
export declare const create: (event: any, context: any) => Promise<any>;
|
|
96
|
+
/**
|
|
97
|
+
* @chunk-id PIPELINES_UPDATE_1_0_0
|
|
98
|
+
* @version 1.0.0
|
|
99
|
+
* @hash 309910d5389fffcdc6b97b33dfd76f2217bb89e26469f73e4e792f9c41977a8f
|
|
100
|
+
* @macro Pipeline Update Handler
|
|
101
|
+
* @micro Updates pipeline with field allowlist and audit logging
|
|
102
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
103
|
+
* @inputs body: object — Pipeline updates including id and updatable fields
|
|
104
|
+
* @outputs Updated pipeline record
|
|
105
|
+
* @depends-on [createHandler, emitLog]
|
|
106
|
+
* @depended-by [Netlify function routing]
|
|
107
|
+
* @side-effects [DB update, audit logging]
|
|
108
|
+
* @tags pipelines, update, crud, audit
|
|
109
|
+
*/
|
|
110
|
+
export declare const update: (event: any, context: any) => Promise<any>;
|
|
111
|
+
/**
|
|
112
|
+
* @chunk-id PIPELINES_TOGGLE_1_0_0
|
|
113
|
+
* @version 1.0.0
|
|
114
|
+
* @hash 4167ca4a65e675a0e37d0237000acf0fe5fdb23699495ff9f46b39f1a4e93884
|
|
115
|
+
* @macro Pipeline Toggle Handler
|
|
116
|
+
* @micro Activates or deactivates pipeline with audit logging
|
|
117
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
118
|
+
* @inputs body: object — Pipeline id and is_active boolean
|
|
119
|
+
* @outputs Updated pipeline record
|
|
120
|
+
* @depends-on [createHandler, emitLog]
|
|
121
|
+
* @depended-by [Netlify function routing]
|
|
122
|
+
* @side-effects [DB update, audit logging]
|
|
123
|
+
* @tags pipelines, toggle, state-transition, audit
|
|
124
|
+
*/
|
|
125
|
+
export declare const toggle: (event: any, context: any) => Promise<any>;
|
|
126
|
+
/**
|
|
127
|
+
* @chunk-id PIPELINES_GET_EXECUTIONS_1_0_0
|
|
128
|
+
* @version 1.0.0
|
|
129
|
+
* @hash 92b0d0a8f3c7ab12144950a0e1dd614a0d92fb6f5e3451542e396018bd5f783d
|
|
130
|
+
* @macro Pipeline Executions History Handler
|
|
131
|
+
* @micro Returns paginated execution history for a pipeline
|
|
132
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
133
|
+
* @inputs _body: any — Request body (unused for GET)
|
|
134
|
+
* @outputs Array of pipeline_executions rows ordered newest-first
|
|
135
|
+
* @depends-on [createHandler]
|
|
136
|
+
* @depended-by [Netlify function routing]
|
|
137
|
+
* @side-effects [DB query with pagination]
|
|
138
|
+
* @tags pipelines, executions, history, pagination
|
|
139
|
+
*/
|
|
140
|
+
export declare const getExecutions: (event: any, context: any) => Promise<any>;
|
|
141
|
+
/**
|
|
142
|
+
* @chunk-id PIPELINES_REMOVE_1_0_0
|
|
143
|
+
* @version 1.0.0
|
|
144
|
+
* @hash 8d87b1d6e7613f6fbaa77eb100c72359456f4bc38d8c435ac412d414d71e21be
|
|
145
|
+
* @macro Pipeline Remove Handler
|
|
146
|
+
* @micro Hard-deletes pipeline with audit logging
|
|
147
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
148
|
+
* @inputs _body: any — Request body (unused for DELETE)
|
|
149
|
+
* @outputs {success: true} — Confirmation of successful deletion
|
|
150
|
+
* @depends-on [createHandler, emitLog]
|
|
151
|
+
* @depended-by [Netlify function routing]
|
|
152
|
+
* @side-effects [DB delete, audit logging]
|
|
153
|
+
* @tags pipelines, remove, delete, audit
|
|
154
|
+
*/
|
|
155
|
+
export declare const remove: (event: any, context: any) => Promise<any>;
|
|
156
|
+
/**
|
|
157
|
+
* @chunk-id PIPELINES_HANDLER_1_0_0
|
|
158
|
+
* @version 1.0.0
|
|
159
|
+
* @hash 6a2509eb1d183c23578cea419e1d53b579876dc8f8778a9b5577427365da7a68
|
|
160
|
+
* @macro Pipelines Router
|
|
161
|
+
* @micro Routes HTTP methods and actions to appropriate pipeline handlers
|
|
162
|
+
* @inputs ctx: CoreContext — Request context with principal and database
|
|
163
|
+
* @inputs body: any — Request body for POST/PATCH operations
|
|
164
|
+
* @outputs Varies — Depends on routed handler (listByTrigger/getExecutions/toggle/list/get/create/update/remove)
|
|
165
|
+
* @depends-on [createHandler, listByTrigger, getExecutions, toggle, list, get, create, update, remove]
|
|
166
|
+
* @depended-by [Netlify function routing]
|
|
167
|
+
* @side-effects [Delegates to appropriate handler]
|
|
168
|
+
* @tags pipelines, router, crud, netlify-function
|
|
169
|
+
*/
|
|
170
|
+
export declare const handler: (event: any, context: any) => Promise<any>;
|
|
171
|
+
//# sourceMappingURL=pipelines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../.framework/functions/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,4CAiCxB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,IAAI,4CA2Bf,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,GAAG,4CAiBd,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAmCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA6CjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CAqCjB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,4CAoBxB,CAAA;AAIF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,4CA4BjB,CAAA;AAMF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO,4CAqClB,CAAA"}
|