@elevasis/core 0.7.0 → 0.8.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/package.json +3 -3
- package/src/README.md +41 -41
- package/src/__tests__/publish.test.ts +18 -18
- package/src/__tests__/{template-foundations-compatibility.test.ts → template-core-compatibility.test.ts} +99 -99
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +1135 -1131
- package/src/_gen/__tests__/scaffold-contracts.test.ts +53 -53
- package/src/_gen/scaffold-contracts.ts +45 -45
- package/src/auth/multi-tenancy/credentials/README.md +38 -38
- package/src/auth/multi-tenancy/credentials/index.ts +6 -6
- package/src/auth/multi-tenancy/credentials/server/encryption.ts +39 -39
- package/src/auth/multi-tenancy/credentials/server/service.ts +60 -60
- package/src/auth/multi-tenancy/index.ts +17 -17
- package/src/auth/multi-tenancy/invitations/api-schemas.ts +107 -107
- package/src/auth/multi-tenancy/invitations/index.ts +37 -37
- package/src/auth/multi-tenancy/invitations/invitation.ts +86 -86
- package/src/auth/multi-tenancy/invitations/server/index.ts +25 -25
- package/src/auth/multi-tenancy/invitations/server/transforms.ts +24 -24
- package/src/auth/multi-tenancy/invitations/server/workos.ts +24 -24
- package/src/auth/multi-tenancy/invitations/supabase.ts +50 -50
- package/src/auth/multi-tenancy/memberships/api-schemas.ts +126 -126
- package/src/auth/multi-tenancy/memberships/index.ts +21 -21
- package/src/auth/multi-tenancy/memberships/membership.ts +138 -138
- package/src/auth/multi-tenancy/memberships/server/index.ts +15 -15
- package/src/auth/multi-tenancy/memberships/server/transforms.ts +32 -32
- package/src/auth/multi-tenancy/memberships/server/workos.ts +21 -21
- package/src/auth/multi-tenancy/memberships/supabase.ts +46 -46
- package/src/auth/multi-tenancy/organizations/api-schemas.ts +128 -128
- package/src/auth/multi-tenancy/organizations/index.ts +23 -23
- package/src/auth/multi-tenancy/organizations/organization.ts +24 -24
- package/src/auth/multi-tenancy/organizations/server/index.ts +10 -10
- package/src/auth/multi-tenancy/organizations/server/transforms.ts +35 -35
- package/src/auth/multi-tenancy/organizations/server/workos.ts +20 -20
- package/src/auth/multi-tenancy/types.ts +83 -83
- package/src/auth/multi-tenancy/users/api-schemas.ts +194 -194
- package/src/auth/multi-tenancy/users/index.ts +27 -27
- package/src/auth/multi-tenancy/users/server/index.ts +19 -19
- package/src/auth/multi-tenancy/users/server/transforms.ts +21 -21
- package/src/auth/multi-tenancy/users/server/workos.ts +16 -16
- package/src/auth/multi-tenancy/users/user.ts +65 -65
- package/src/business/README.md +52 -52
- package/src/business/__tests__/entities-published.test.ts +33 -33
- package/src/business/acquisition/api-schemas.ts +759 -759
- package/src/business/acquisition/index.ts +109 -109
- package/src/business/acquisition/types.ts +402 -402
- package/src/business/base-entities.test.ts +481 -481
- package/src/business/base-entities.ts +241 -241
- package/src/business/entities-published.ts +24 -24
- package/src/business/index.ts +15 -15
- package/src/business/pdf/browser/pdfmake-browser.ts +229 -229
- package/src/business/pdf/index.ts +10 -10
- package/src/business/pdf/server/index.ts +21 -21
- package/src/business/pdf/server/themes/default.ts +8 -8
- package/src/business/pdf/server/themes/index.ts +9 -9
- package/src/business/pdf/server/themes/types.ts +8 -8
- package/src/business/pdf/types.ts +272 -272
- package/src/business/projects/index.ts +2 -1
- package/src/business/projects/sse-events.ts +21 -0
- package/src/business/projects/types.ts +89 -89
- package/src/business/sales/api-schemas.ts +75 -75
- package/src/business/seo/__tests__/linking.test.ts +549 -549
- package/src/business/seo/__tests__/types.test.ts +404 -404
- package/src/business/seo/index.ts +2 -2
- package/src/business/seo/linking.ts +281 -281
- package/src/business/seo/types.ts +199 -199
- package/src/commands/queue/index.ts +3 -3
- package/src/commands/queue/schemas.test.ts +593 -593
- package/src/commands/queue/schemas.ts +125 -125
- package/src/commands/queue/sse-events.ts +61 -61
- package/src/commands/queue/types/action.ts +52 -52
- package/src/commands/queue/types/checkpoint.ts +44 -44
- package/src/commands/queue/types/index.ts +7 -7
- package/src/commands/queue/types/task.ts +116 -116
- package/src/commands/queue/types.ts +14 -14
- package/src/content/distribution-metadata.ts +61 -61
- package/src/content/index.ts +10 -10
- package/src/deployments/index.ts +22 -22
- package/src/execution/core/__tests__/archived-logs.test.ts +72 -72
- package/src/execution/core/index.ts +11 -11
- package/src/execution/core/runner-types.ts +80 -80
- package/src/execution/core/server/environment.ts +31 -31
- package/src/execution/core/sse-executions.ts +119 -119
- package/src/execution/core/types.ts +29 -29
- package/src/execution/engine/__tests__/fixtures/test-agents.ts +4 -4
- package/src/execution/engine/__tests__/timeout.test.ts +565 -565
- package/src/execution/engine/agent/__tests__/errors.test.ts +508 -508
- package/src/execution/engine/agent/actions/__tests__/processor.test.ts +531 -531
- package/src/execution/engine/agent/actions/executor.ts +205 -205
- package/src/execution/engine/agent/actions/navigate-knowledge-executor.ts +230 -230
- package/src/execution/engine/agent/actions/processor.ts +116 -116
- package/src/execution/engine/agent/actions/types.ts +70 -70
- package/src/execution/engine/agent/core/agent.ts +810 -810
- package/src/execution/engine/agent/core/types.ts +155 -155
- package/src/execution/engine/agent/errors.ts +251 -251
- package/src/execution/engine/agent/index.ts +78 -78
- package/src/execution/engine/agent/knowledge-map/types.ts +106 -106
- package/src/execution/engine/agent/knowledge-map/utils.ts +101 -101
- package/src/execution/engine/agent/memory/__tests__/manager.test.ts +754 -754
- package/src/execution/engine/agent/memory/domains.ts +99 -99
- package/src/execution/engine/agent/memory/manager.ts +365 -365
- package/src/execution/engine/agent/memory/processor.ts +66 -66
- package/src/execution/engine/agent/memory/types.ts +90 -90
- package/src/execution/engine/agent/memory/utils.ts +134 -134
- package/src/execution/engine/agent/observability/logging.ts +467 -467
- package/src/execution/engine/agent/observability/types.ts +64 -64
- package/src/execution/engine/agent/reasoning/adapters/agent-adapter-helpers.ts +349 -349
- package/src/execution/engine/agent/reasoning/processor.ts +92 -92
- package/src/execution/engine/agent/reasoning/prompt-sections/base-actions.ts +134 -134
- package/src/execution/engine/agent/reasoning/prompt-sections/completion.ts +49 -49
- package/src/execution/engine/agent/reasoning/prompt-sections/knowledge-map.ts +93 -93
- package/src/execution/engine/agent/reasoning/prompt-sections/memory.ts +65 -65
- package/src/execution/engine/agent/reasoning/prompt-sections/tools.ts +44 -44
- package/src/execution/engine/agent/reasoning/request-builder.ts +169 -169
- package/src/execution/engine/agent/reasoning/types.ts +18 -18
- package/src/execution/engine/base/errors.ts +118 -118
- package/src/execution/engine/base/index.ts +2 -2
- package/src/execution/engine/base/logging.ts +31 -31
- package/src/execution/engine/base/serialization.ts +324 -324
- package/src/execution/engine/base/types.ts +126 -126
- package/src/execution/engine/base/utils.ts +41 -41
- package/src/execution/engine/index.ts +434 -434
- package/src/execution/engine/interface/index.ts +1 -1
- package/src/execution/engine/interface/types.ts +62 -62
- package/src/execution/engine/llm/__tests__/model-info.test.ts +50 -50
- package/src/execution/engine/llm/__tests__/model-validation.test.ts +321 -321
- package/src/execution/engine/llm/__tests__/response-schema-validator.test.ts +115 -115
- package/src/execution/engine/llm/adapters/__tests__/adapter-factory.test.ts +375 -375
- package/src/execution/engine/llm/adapters/__tests__/anthropic-adapter.test.ts +463 -463
- package/src/execution/engine/llm/adapters/__tests__/anthropic.integration.test.ts +177 -177
- package/src/execution/engine/llm/adapters/__tests__/google-adapter.test.ts +722 -722
- package/src/execution/engine/llm/adapters/__tests__/google.integration.test.ts +376 -376
- package/src/execution/engine/llm/adapters/__tests__/openai-adapter.test.ts +551 -551
- package/src/execution/engine/llm/adapters/__tests__/openrouter-adapter.test.ts +563 -563
- package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +105 -105
- package/src/execution/engine/llm/adapters/__tests__/universal-adapter.test.ts +537 -537
- package/src/execution/engine/llm/adapters/circuit-breaker.ts +147 -147
- package/src/execution/engine/llm/adapters/index.ts +17 -17
- package/src/execution/engine/llm/adapters/mock-adapter.ts +116 -116
- package/src/execution/engine/llm/adapters/server/adapter-factory.ts +130 -130
- package/src/execution/engine/llm/adapters/server/anthropic.ts +137 -137
- package/src/execution/engine/llm/adapters/server/google.ts +283 -283
- package/src/execution/engine/llm/adapters/server/index.ts +12 -12
- package/src/execution/engine/llm/adapters/server/openai.ts +206 -206
- package/src/execution/engine/llm/adapters/server/openrouter.ts +235 -235
- package/src/execution/engine/llm/adapters/universal-adapter.ts +230 -230
- package/src/execution/engine/llm/errors.ts +186 -186
- package/src/execution/engine/llm/model-info.ts +332 -332
- package/src/execution/engine/llm/response-schema-validator.ts +113 -113
- package/src/execution/engine/llm/types.ts +86 -86
- package/src/execution/engine/test-utils/index.ts +6 -6
- package/src/execution/engine/test-utils/mocks.ts +56 -56
- package/src/execution/engine/tools/integration/base-integration-adapter.ts +50 -50
- package/src/execution/engine/tools/integration/index.ts +53 -53
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-adapter.ts +73 -73
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-tools.ts +209 -209
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-company-email/index.ts +82 -82
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-decision-maker-email/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-person-email/index.ts +89 -89
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/verify-email/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/index.ts +16 -16
- package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +293 -293
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +100 -100
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-tools.ts +217 -217
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/get-dataset-items/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/run-actor/index.ts +218 -218
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/start-actor/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/apify/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +361 -361
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-adapter.ts +162 -162
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-tools.ts +594 -594
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-attribute/index.ts +214 -214
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-note/index.ts +152 -152
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-record/index.ts +141 -141
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts +105 -105
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts +118 -118
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-attributes/index.ts +165 -165
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-notes/index.ts +96 -96
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-objects/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.ts +156 -156
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-attribute/index.ts +220 -220
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-record/index.ts +140 -140
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/utils/types.ts +146 -146
- package/src/execution/engine/tools/integration/server/adapters/attio/index.ts +31 -31
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -261
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-adapter.ts +1189 -1189
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-tools.ts +641 -641
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/index.ts +18 -18
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/activate-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/__tests__/index.test.ts +289 -289
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/index.ts +154 -154
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/__tests__/index.test.ts +325 -325
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/index.ts +153 -153
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-delete-leads/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-campaign/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-inbox-test/index.ts +107 -107
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/delete-campaign/index.ts +85 -85
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-account-health/index.ts +91 -91
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/__tests__/index.test.ts +195 -195
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/index.ts +113 -113
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-daily-campaign-analytics/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-emails/index.ts +155 -155
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/__tests__/index.test.ts +196 -196
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/__tests__/index.test.ts +189 -189
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-leads/index.ts +112 -112
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/patch-lead/index.ts +76 -76
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/pause-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/remove-from-subsequence/index.ts +98 -98
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/send-reply/index.ts +126 -126
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/__tests__/index.test.ts +193 -193
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/index.ts +99 -99
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/__tests__/index.test.ts +621 -621
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/index.ts +29 -29
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-adapter.ts +178 -178
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1473 -1473
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/check-credits/index.ts +59 -59
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/verify-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/index.ts +17 -17
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-adapter.ts +80 -80
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/get-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +134 -134
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +75 -75
- package/src/execution/engine/tools/integration/server/adapters/resend/index.ts +27 -27
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-adapter.ts +108 -108
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-tools.ts +132 -132
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/create-envelope/index.ts +274 -274
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/download-document/index.ts +230 -230
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/get-envelope/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/void-envelope/index.ts +90 -90
- package/src/execution/engine/tools/integration/server/adapters/stripe/fetch/utils/types.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-adapter.ts +517 -517
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +309 -309
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/domain-search/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-finder/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-verifier/index.ts +111 -111
- package/src/execution/engine/tools/integration/server/adapters/tomba/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-adapter.ts +78 -78
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-tools.ts +222 -222
- package/src/execution/engine/tools/integration/server/index.ts +61 -61
- package/src/execution/engine/tools/integration/service.ts +161 -161
- package/src/execution/engine/tools/integration/tool.ts +253 -253
- package/src/execution/engine/tools/integration/types/anymailfinder.ts +74 -74
- package/src/execution/engine/tools/integration/types/apify.ts +92 -92
- package/src/execution/engine/tools/integration/types/index.ts +19 -19
- package/src/execution/engine/tools/integration/types/instantly.ts +557 -557
- package/src/execution/engine/tools/integration/types/millionverifier.ts +56 -56
- package/src/execution/engine/tools/integration/types/stripe.ts +162 -162
- package/src/execution/engine/tools/integration/types/tomba.ts +94 -94
- package/src/execution/engine/tools/lead-service-types.ts +884 -884
- package/src/execution/engine/tools/llm/index.ts +11 -11
- package/src/execution/engine/tools/llm/server/index.ts +8 -8
- package/src/execution/engine/tools/llm/server/llm-call-tool.ts +118 -118
- package/src/execution/engine/tools/platform/__tests__/pdf.test.ts +441 -441
- package/src/execution/engine/tools/platform/acquisition/company-tools.ts +248 -248
- package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +319 -319
- package/src/execution/engine/tools/platform/acquisition/index.ts +43 -43
- package/src/execution/engine/tools/platform/acquisition/list-tools.ts +148 -148
- package/src/execution/engine/tools/platform/acquisition/types.ts +260 -260
- package/src/execution/engine/tools/platform/email/index.ts +122 -122
- package/src/execution/engine/tools/platform/email/types.ts +96 -96
- package/src/execution/engine/tools/platform/index.ts +157 -157
- package/src/execution/engine/tools/platform/notification.ts +81 -81
- package/src/execution/engine/tools/platform/pdf/index.ts +110 -110
- package/src/execution/engine/tools/platform/pdf/types.ts +77 -77
- package/src/execution/engine/tools/platform/scheduler.ts +87 -87
- package/src/execution/engine/tools/platform/storage/index.ts +370 -370
- package/src/execution/engine/tools/platform/types.ts +148 -148
- package/src/execution/engine/tools/registry.ts +700 -699
- package/src/execution/engine/tools/tool-maps.ts +786 -786
- package/src/execution/engine/tools/types.ts +233 -233
- package/src/execution/engine/workflow/__tests__/errors.test.ts +139 -139
- package/src/execution/engine/workflow/errors.ts +63 -63
- package/src/execution/engine/workflow/helpers/index.ts +11 -11
- package/src/execution/engine/workflow/helpers/server/index.ts +8 -8
- package/src/execution/engine/workflow/helpers/server/llm-call.ts +93 -93
- package/src/execution/engine/workflow/index.ts +19 -19
- package/src/execution/engine/workflow/log-truncate.ts +26 -26
- package/src/execution/engine/workflow/logging.ts +191 -191
- package/src/execution/engine/workflow/types.ts +182 -182
- package/src/execution/engine/workflow/utils.ts +280 -280
- package/src/execution/engine/workflow/workflow.ts +168 -168
- package/src/execution/index.ts +3 -3
- package/src/execution/scheduler/__tests__/api-schemas.test.ts +733 -733
- package/src/execution/scheduler/__tests__/utils.test.ts +1009 -1009
- package/src/execution/scheduler/api-schemas.ts +296 -296
- package/src/execution/scheduler/index.ts +50 -50
- package/src/execution/scheduler/schemas.ts +264 -264
- package/src/execution/scheduler/types.ts +111 -111
- package/src/execution/scheduler/utils.ts +364 -364
- package/src/forms/index.ts +7 -7
- package/src/forms/schemas.ts +69 -69
- package/src/forms/types.ts +70 -70
- package/src/index.ts +71 -60
- package/src/integrations/credentials/__tests__/schemas.test.ts +82 -82
- package/src/integrations/credentials/__tests__/utils.test.ts +144 -144
- package/src/integrations/credentials/api-schemas.ts +143 -143
- package/src/integrations/credentials/index.ts +32 -32
- package/src/integrations/credentials/schemas.ts +164 -164
- package/src/integrations/credentials/utils.ts +59 -59
- package/src/integrations/oauth/__tests__/provider-registry.test.ts +59 -59
- package/src/integrations/oauth/api-schemas.ts +92 -92
- package/src/integrations/oauth/index.ts +19 -19
- package/src/integrations/oauth/provider-registry.ts +61 -61
- package/src/integrations/oauth/server/__tests__/refresh-concurrent.test.ts +183 -183
- package/src/integrations/oauth/server/__tests__/refresh.test.ts +577 -577
- package/src/integrations/oauth/server/credentials.ts +39 -39
- package/src/integrations/oauth/server/refresh.ts +214 -214
- package/src/integrations/oauth/types.ts +34 -34
- package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +318 -318
- package/src/integrations/webhook-endpoints/api-schemas.ts +102 -102
- package/src/integrations/webhook-endpoints/index.ts +28 -28
- package/src/integrations/webhook-endpoints/types.ts +51 -51
- package/src/operations/activities/api-schemas.ts +79 -79
- package/src/operations/activities/index.ts +9 -9
- package/src/operations/activities/sse-events.ts +30 -30
- package/src/operations/activities/types.ts +63 -63
- package/src/operations/debug-logs/client.ts +60 -60
- package/src/operations/debug-logs/debug-logger.ts +83 -83
- package/src/operations/debug-logs/index.ts +8 -8
- package/src/operations/debug-logs/server.ts +19 -19
- package/src/operations/debug-logs/types.ts +33 -33
- package/src/operations/index.ts +50 -50
- package/src/operations/notifications/api-schemas.ts +91 -91
- package/src/operations/notifications/index.ts +3 -3
- package/src/operations/notifications/sse-events.ts +21 -21
- package/src/operations/notifications/types.ts +47 -47
- package/src/operations/observability/__tests__/openrouter-cost-flow.test.ts +297 -297
- package/src/operations/observability/__tests__/utils.test.ts +54 -54
- package/src/operations/observability/ai-usage-collector.ts +64 -64
- package/src/operations/observability/index.ts +13 -13
- package/src/operations/observability/metrics-collector.ts +49 -49
- package/src/operations/observability/schemas.ts +39 -39
- package/src/operations/observability/types.ts +463 -463
- package/src/operations/observability/utils.ts +77 -77
- package/src/operations/sessions/__tests__/manager.test.ts +821 -821
- package/src/operations/sessions/index.ts +26 -26
- package/src/operations/sessions/server/manager.ts +90 -90
- package/src/operations/sessions/server/session.ts +180 -180
- package/src/operations/sessions/types.ts +98 -98
- package/src/operations/triggers/index.ts +12 -12
- package/src/operations/triggers/webhook/definitions/instantly-account-error.ts +44 -44
- package/src/operations/triggers/webhook/definitions/instantly-auto-reply-received.ts +51 -51
- package/src/operations/triggers/webhook/definitions/instantly-campaign-completed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-email-bounced.ts +49 -49
- package/src/operations/triggers/webhook/definitions/instantly-lead-unsubscribed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-reply-received.ts +54 -54
- package/src/operations/triggers/webhook/index.ts +35 -35
- package/src/operations/triggers/webhook/types.ts +74 -74
- package/src/organization-model/README.md +97 -97
- package/src/organization-model/__tests__/defaults.test.ts +175 -175
- package/src/organization-model/__tests__/domains/customers.test.ts +295 -295
- package/src/organization-model/__tests__/domains/goals.test.ts +479 -479
- package/src/organization-model/__tests__/domains/identity.test.ts +279 -279
- package/src/organization-model/__tests__/domains/navigation.test.ts +212 -212
- package/src/organization-model/__tests__/domains/offerings.test.ts +419 -419
- package/src/organization-model/__tests__/domains/operations.test.ts +203 -203
- package/src/organization-model/__tests__/domains/resource-mappings.test.ts +362 -362
- package/src/organization-model/__tests__/domains/roles.test.ts +347 -347
- package/src/organization-model/__tests__/domains/statuses.test.ts +243 -243
- package/src/organization-model/__tests__/foundation.test.ts +105 -105
- package/src/organization-model/__tests__/graph.test.ts +894 -894
- package/src/organization-model/__tests__/resolve.test.ts +690 -690
- package/src/organization-model/__tests__/schema.test.ts +407 -407
- package/src/organization-model/contracts.ts +14 -14
- package/src/organization-model/defaults.ts +148 -148
- package/src/organization-model/domains/branding.ts +22 -22
- package/src/organization-model/domains/customers.ts +75 -75
- package/src/organization-model/domains/features.ts +22 -22
- package/src/organization-model/domains/goals.ts +80 -80
- package/src/organization-model/domains/identity.ts +94 -94
- package/src/organization-model/domains/navigation.ts +391 -391
- package/src/organization-model/domains/offerings.ts +66 -66
- package/src/organization-model/domains/operations.ts +85 -85
- package/src/organization-model/domains/projects.ts +48 -48
- package/src/organization-model/domains/prospecting.ts +33 -33
- package/src/organization-model/domains/roles.ts +55 -55
- package/src/organization-model/domains/sales.ts +94 -94
- package/src/organization-model/domains/shared.ts +62 -62
- package/src/organization-model/domains/statuses.ts +130 -130
- package/src/organization-model/foundation.ts +97 -97
- package/src/organization-model/graph/build.ts +399 -399
- package/src/organization-model/graph/index.ts +4 -4
- package/src/organization-model/graph/schema.ts +48 -48
- package/src/organization-model/graph/types.ts +40 -40
- package/src/organization-model/index.ts +13 -13
- package/src/organization-model/organization-graph.mdx +272 -272
- package/src/organization-model/organization-model.mdx +320 -320
- package/src/organization-model/published.ts +85 -85
- package/src/organization-model/resolve.ts +66 -66
- package/src/organization-model/schema.ts +287 -287
- package/src/organization-model/types.ts +46 -46
- package/src/platform/api/index.ts +1 -1
- package/src/platform/api/types.ts +35 -35
- package/src/platform/constants/http.ts +37 -37
- package/src/platform/constants/index.ts +5 -5
- package/src/platform/constants/limits.ts +32 -32
- package/src/platform/constants/resilience.ts +51 -51
- package/src/platform/constants/timeouts.ts +20 -20
- package/src/platform/constants/versions.ts +3 -3
- package/src/platform/registry/__tests__/resource-registry-static.test.ts +347 -347
- package/src/platform/registry/__tests__/resource-registry.integration.test.ts +1028 -1028
- package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +393 -393
- package/src/platform/registry/__tests__/resource-registry.test.ts +2005 -2005
- package/src/platform/registry/__tests__/serialization.test.ts +1127 -1127
- package/src/platform/registry/command-view.ts +180 -180
- package/src/platform/registry/domains.ts +165 -165
- package/src/platform/registry/index.ts +93 -93
- package/src/platform/registry/reserved.ts +24 -24
- package/src/platform/registry/resource-metadata.ts +59 -59
- package/src/platform/registry/resource-registry.command-queue-groups.test.ts +129 -129
- package/src/platform/registry/resource-registry.ts +876 -876
- package/src/platform/registry/serialization.ts +273 -273
- package/src/platform/registry/serialized-types.ts +231 -231
- package/src/platform/registry/stats-types.ts +66 -66
- package/src/platform/registry/types.ts +404 -404
- package/src/platform/registry/validation.ts +513 -513
- package/src/platform/resilience/__tests__/rate-limiter.test.ts +471 -471
- package/src/platform/resilience/circuit-breaker.ts +164 -164
- package/src/platform/resilience/errors.ts +68 -68
- package/src/platform/resilience/http-error-mapper.ts +129 -129
- package/src/platform/resilience/index.ts +93 -93
- package/src/platform/resilience/rate-limiter-types.ts +46 -46
- package/src/platform/resilience/rate-limiter.ts +140 -140
- package/src/platform/resilience/retry.ts +89 -89
- package/src/platform/resilience/timeout.ts +63 -63
- package/src/platform/sse/events.ts +37 -34
- package/src/platform/sse/index.ts +7 -7
- package/src/platform/utils/__tests__/validation.test.ts +1083 -1083
- package/src/platform/utils/currency.ts +96 -96
- package/src/platform/utils/debounce.ts +52 -52
- package/src/platform/utils/error.ts +41 -41
- package/src/platform/utils/hmac.test.ts +97 -97
- package/src/platform/utils/index.ts +32 -32
- package/src/platform/utils/server/betterstack-logger.ts +210 -210
- package/src/platform/utils/server/hmac.ts +44 -44
- package/src/platform/utils/server/unsubscribe.ts +111 -111
- package/src/platform/utils/token-counter.ts +96 -96
- package/src/platform/utils/validation.ts +425 -425
- package/src/projects/api-schemas.ts +268 -268
- package/src/published.ts +1 -1
- package/src/reference/_generated/contracts.md +611 -607
- package/src/reference/glossary.md +105 -105
- package/src/requests/__tests__/api-schemas.test.ts +277 -277
- package/src/requests/api-schemas.ts +83 -83
- package/src/requests/index.ts +1 -1
- package/src/scaffold-registry/__tests__/index.test.ts +17 -0
- package/src/scaffold-registry/__tests__/schema.test.ts +329 -230
- package/src/scaffold-registry/index.ts +205 -189
- package/src/scaffold-registry/schema.ts +196 -128
- package/src/server.ts +272 -272
- package/src/supabase/database.types.ts +2719 -2719
- package/src/supabase/helpers.ts +20 -20
- package/src/supabase/index.ts +52 -52
- package/src/supabase/server/client.ts +58 -58
- package/src/test-utils/README.md +38 -38
- package/src/test-utils/browser-mocks.ts +54 -54
- package/src/test-utils/fixtures/api-keys.ts +52 -52
- package/src/test-utils/fixtures/index.ts +4 -4
- package/src/test-utils/fixtures/memberships.ts +80 -80
- package/src/test-utils/fixtures/organizations.ts +69 -69
- package/src/test-utils/fixtures/users.ts +79 -79
- package/src/test-utils/index.ts +11 -11
- package/src/test-utils/mocks/index.ts +2 -2
- package/src/test-utils/mocks/supabase.ts +142 -142
- package/src/test-utils/mocks/workos.ts +108 -108
- package/src/test-utils/rls/RLSTestContext.ts +556 -556
- package/src/test-utils/rls/index.ts +1 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Memberships server-only exports
|
|
3
|
-
* WARNING: Uses @workos-inc/node SDK - DO NOT import in browser code
|
|
4
|
-
*/
|
|
5
|
-
export * from './workos'
|
|
6
|
-
export * from './transforms'
|
|
7
|
-
|
|
8
|
-
// Re-export browser-safe types for convenience
|
|
9
|
-
export type { OrganizationMembership, MembershipWithDetails } from '../membership'
|
|
10
|
-
export type {
|
|
11
|
-
SupabaseOrgMembership,
|
|
12
|
-
SupabaseOrgMembershipInsert,
|
|
13
|
-
SupabaseOrgMembershipUpdate
|
|
14
|
-
} from '../supabase'
|
|
15
|
-
export type { SupabaseMembershipWithOrganization } from '../../../../supabase'
|
|
1
|
+
/**
|
|
2
|
+
* Memberships server-only exports
|
|
3
|
+
* WARNING: Uses @workos-inc/node SDK - DO NOT import in browser code
|
|
4
|
+
*/
|
|
5
|
+
export * from './workos'
|
|
6
|
+
export * from './transforms'
|
|
7
|
+
|
|
8
|
+
// Re-export browser-safe types for convenience
|
|
9
|
+
export type { OrganizationMembership, MembershipWithDetails } from '../membership'
|
|
10
|
+
export type {
|
|
11
|
+
SupabaseOrgMembership,
|
|
12
|
+
SupabaseOrgMembershipInsert,
|
|
13
|
+
SupabaseOrgMembershipUpdate
|
|
14
|
+
} from '../supabase'
|
|
15
|
+
export type { SupabaseMembershipWithOrganization } from '../../../../supabase'
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import type { WorkOSOrganizationMembership } from './workos'
|
|
2
|
-
import type { OrganizationMembership, MembershipStatus } from '../membership'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Map WorkOS status to internal status.
|
|
6
|
-
* WorkOS may return 'pending' but our system only uses 'active' | 'inactive'.
|
|
7
|
-
* Pending memberships from WorkOS are treated as inactive until fully provisioned.
|
|
8
|
-
*/
|
|
9
|
-
function mapWorkOSStatus(workosStatus: string): MembershipStatus {
|
|
10
|
-
if (workosStatus === 'active') return 'active'
|
|
11
|
-
return 'inactive'
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Transform WorkOS membership to internal format
|
|
16
|
-
*/
|
|
17
|
-
export function transformWorkOSMembership(
|
|
18
|
-
workosData: WorkOSOrganizationMembership
|
|
19
|
-
): OrganizationMembership {
|
|
20
|
-
return {
|
|
21
|
-
object: 'organization_membership',
|
|
22
|
-
id: workosData.id,
|
|
23
|
-
userId: workosData.userId,
|
|
24
|
-
organizationId: workosData.organizationId,
|
|
25
|
-
role: {
|
|
26
|
-
slug: workosData.role.slug
|
|
27
|
-
},
|
|
28
|
-
status: mapWorkOSStatus(workosData.status),
|
|
29
|
-
createdAt: workosData.createdAt,
|
|
30
|
-
updatedAt: workosData.updatedAt
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
import type { WorkOSOrganizationMembership } from './workos'
|
|
2
|
+
import type { OrganizationMembership, MembershipStatus } from '../membership'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Map WorkOS status to internal status.
|
|
6
|
+
* WorkOS may return 'pending' but our system only uses 'active' | 'inactive'.
|
|
7
|
+
* Pending memberships from WorkOS are treated as inactive until fully provisioned.
|
|
8
|
+
*/
|
|
9
|
+
function mapWorkOSStatus(workosStatus: string): MembershipStatus {
|
|
10
|
+
if (workosStatus === 'active') return 'active'
|
|
11
|
+
return 'inactive'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Transform WorkOS membership to internal format
|
|
16
|
+
*/
|
|
17
|
+
export function transformWorkOSMembership(
|
|
18
|
+
workosData: WorkOSOrganizationMembership
|
|
19
|
+
): OrganizationMembership {
|
|
20
|
+
return {
|
|
21
|
+
object: 'organization_membership',
|
|
22
|
+
id: workosData.id,
|
|
23
|
+
userId: workosData.userId,
|
|
24
|
+
organizationId: workosData.organizationId,
|
|
25
|
+
role: {
|
|
26
|
+
slug: workosData.role.slug
|
|
27
|
+
},
|
|
28
|
+
status: mapWorkOSStatus(workosData.status),
|
|
29
|
+
createdAt: workosData.createdAt,
|
|
30
|
+
updatedAt: workosData.updatedAt
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WorkOS User Management Membership API Types
|
|
3
|
-
* Re-exported from @workos-inc/node SDK v7.69.2 with consistent naming conventions
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type {
|
|
7
|
-
OrganizationMembership,
|
|
8
|
-
OrganizationMembershipStatus,
|
|
9
|
-
CreateOrganizationMembershipOptions,
|
|
10
|
-
UpdateOrganizationMembershipOptions,
|
|
11
|
-
ListOrganizationMembershipsOptions,
|
|
12
|
-
List
|
|
13
|
-
} from '@workos-inc/node'
|
|
14
|
-
|
|
15
|
-
// Consistent naming convention for the monorepo
|
|
16
|
-
export type WorkOSOrganizationMembership = OrganizationMembership
|
|
17
|
-
export type WorkOSOrganizationMembershipStatus = OrganizationMembershipStatus
|
|
18
|
-
export type WorkOSMembershipListResponse = List<OrganizationMembership>
|
|
19
|
-
export type CreateWorkOSMembershipRequest = CreateOrganizationMembershipOptions
|
|
20
|
-
export type UpdateWorkOSMembershipRequest = UpdateOrganizationMembershipOptions
|
|
21
|
-
export type ListWorkOSMembershipsParams = ListOrganizationMembershipsOptions
|
|
1
|
+
/**
|
|
2
|
+
* WorkOS User Management Membership API Types
|
|
3
|
+
* Re-exported from @workos-inc/node SDK v7.69.2 with consistent naming conventions
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type {
|
|
7
|
+
OrganizationMembership,
|
|
8
|
+
OrganizationMembershipStatus,
|
|
9
|
+
CreateOrganizationMembershipOptions,
|
|
10
|
+
UpdateOrganizationMembershipOptions,
|
|
11
|
+
ListOrganizationMembershipsOptions,
|
|
12
|
+
List
|
|
13
|
+
} from '@workos-inc/node'
|
|
14
|
+
|
|
15
|
+
// Consistent naming convention for the monorepo
|
|
16
|
+
export type WorkOSOrganizationMembership = OrganizationMembership
|
|
17
|
+
export type WorkOSOrganizationMembershipStatus = OrganizationMembershipStatus
|
|
18
|
+
export type WorkOSMembershipListResponse = List<OrganizationMembership>
|
|
19
|
+
export type CreateWorkOSMembershipRequest = CreateOrganizationMembershipOptions
|
|
20
|
+
export type UpdateWorkOSMembershipRequest = UpdateOrganizationMembershipOptions
|
|
21
|
+
export type ListWorkOSMembershipsParams = ListOrganizationMembershipsOptions
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
// Use generated Supabase types from packages/core/src/types/supabase/database.types.ts
|
|
2
|
-
import type { TablesInsert, TablesUpdate } from '../../../supabase/database.types'
|
|
3
|
-
import type { OrganizationMembership } from './membership'
|
|
4
|
-
import type { SupabaseOrgMembership } from '../../../supabase'
|
|
5
|
-
|
|
6
|
-
// Re-export from centralized location for backward compatibility
|
|
7
|
-
export type { SupabaseOrgMembership } from '../../../supabase'
|
|
8
|
-
|
|
9
|
-
// Supabase org_memberships table types (auto-generated)
|
|
10
|
-
export type SupabaseOrgMembershipInsert = TablesInsert<'org_memberships'>
|
|
11
|
-
export type SupabaseOrgMembershipUpdate = TablesUpdate<'org_memberships'>
|
|
12
|
-
|
|
13
|
-
// Available fields from generated types:
|
|
14
|
-
// {
|
|
15
|
-
// id: string
|
|
16
|
-
// user_id: string
|
|
17
|
-
// organization_id: string
|
|
18
|
-
// workos_membership_id: string
|
|
19
|
-
// membership_status: string | null (default: 'active')
|
|
20
|
-
// role_slug: string | null (default: 'member')
|
|
21
|
-
// created_at: string | null
|
|
22
|
-
// updated_at: string | null
|
|
23
|
-
// }
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Map Supabase status to internal status.
|
|
27
|
-
* Database constraint only allows 'active' | 'inactive'.
|
|
28
|
-
*/
|
|
29
|
-
function mapSupabaseStatus(status: string | null): 'active' | 'inactive' {
|
|
30
|
-
if (status === 'active') return 'active'
|
|
31
|
-
return 'inactive'
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Transform Supabase to internal format
|
|
35
|
-
export function transformSupabaseToMembership(supabaseData: SupabaseOrgMembership): OrganizationMembership {
|
|
36
|
-
return {
|
|
37
|
-
object: 'organization_membership',
|
|
38
|
-
id: supabaseData.workos_membership_id ?? supabaseData.id,
|
|
39
|
-
userId: supabaseData.user_id, // Always use Supabase user_id
|
|
40
|
-
organizationId: supabaseData.organization_id, // Always use Supabase organization_id
|
|
41
|
-
role: { slug: supabaseData.role_slug || 'member' },
|
|
42
|
-
status: mapSupabaseStatus(supabaseData.membership_status),
|
|
43
|
-
createdAt: supabaseData.created_at || new Date().toISOString(),
|
|
44
|
-
updatedAt: supabaseData.updated_at || new Date().toISOString()
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
// Use generated Supabase types from packages/core/src/types/supabase/database.types.ts
|
|
2
|
+
import type { TablesInsert, TablesUpdate } from '../../../supabase/database.types'
|
|
3
|
+
import type { OrganizationMembership } from './membership'
|
|
4
|
+
import type { SupabaseOrgMembership } from '../../../supabase'
|
|
5
|
+
|
|
6
|
+
// Re-export from centralized location for backward compatibility
|
|
7
|
+
export type { SupabaseOrgMembership } from '../../../supabase'
|
|
8
|
+
|
|
9
|
+
// Supabase org_memberships table types (auto-generated)
|
|
10
|
+
export type SupabaseOrgMembershipInsert = TablesInsert<'org_memberships'>
|
|
11
|
+
export type SupabaseOrgMembershipUpdate = TablesUpdate<'org_memberships'>
|
|
12
|
+
|
|
13
|
+
// Available fields from generated types:
|
|
14
|
+
// {
|
|
15
|
+
// id: string
|
|
16
|
+
// user_id: string
|
|
17
|
+
// organization_id: string
|
|
18
|
+
// workos_membership_id: string
|
|
19
|
+
// membership_status: string | null (default: 'active')
|
|
20
|
+
// role_slug: string | null (default: 'member')
|
|
21
|
+
// created_at: string | null
|
|
22
|
+
// updated_at: string | null
|
|
23
|
+
// }
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Map Supabase status to internal status.
|
|
27
|
+
* Database constraint only allows 'active' | 'inactive'.
|
|
28
|
+
*/
|
|
29
|
+
function mapSupabaseStatus(status: string | null): 'active' | 'inactive' {
|
|
30
|
+
if (status === 'active') return 'active'
|
|
31
|
+
return 'inactive'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Transform Supabase to internal format
|
|
35
|
+
export function transformSupabaseToMembership(supabaseData: SupabaseOrgMembership): OrganizationMembership {
|
|
36
|
+
return {
|
|
37
|
+
object: 'organization_membership',
|
|
38
|
+
id: supabaseData.workos_membership_id ?? supabaseData.id,
|
|
39
|
+
userId: supabaseData.user_id, // Always use Supabase user_id
|
|
40
|
+
organizationId: supabaseData.organization_id, // Always use Supabase organization_id
|
|
41
|
+
role: { slug: supabaseData.role_slug || 'member' },
|
|
42
|
+
status: mapSupabaseStatus(supabaseData.membership_status),
|
|
43
|
+
createdAt: supabaseData.created_at || new Date().toISOString(),
|
|
44
|
+
updatedAt: supabaseData.updated_at || new Date().toISOString()
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Organizations Domain - Zod Validation Schemas
|
|
3
|
-
*
|
|
4
|
-
* Validation schemas for organization management endpoints.
|
|
5
|
-
* Includes request bodies, query params, and path params.
|
|
6
|
-
*
|
|
7
|
-
* Security:
|
|
8
|
-
* - All schemas use .strict() to prevent mass assignment attacks
|
|
9
|
-
* - UUID/WorkOS ID validation prevents invalid references
|
|
10
|
-
* - String length limits prevent DoS
|
|
11
|
-
* - Domain and metadata size limits
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { z } from 'zod'
|
|
15
|
-
import { UuidSchema } from '../../../platform/utils/validation'
|
|
16
|
-
|
|
17
|
-
// ============================================================================
|
|
18
|
-
// Shared Schemas
|
|
19
|
-
// ============================================================================
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Organization name validation
|
|
23
|
-
* - Alphanumeric, spaces, hyphens, underscores only
|
|
24
|
-
* - 2-100 characters
|
|
25
|
-
*
|
|
26
|
-
* Security: Prevents injection, DoS via long names
|
|
27
|
-
*/
|
|
28
|
-
export const OrganizationNameSchema = z.string()
|
|
29
|
-
.min(2, 'Organization name must be at least 2 characters')
|
|
30
|
-
.max(100, 'Organization name must be at most 100 characters')
|
|
31
|
-
.trim()
|
|
32
|
-
.regex(/^[a-zA-Z0-9\s\-_]+$/, 'Organization name must contain only letters, numbers, spaces, hyphens, and underscores')
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Organization ID validation
|
|
36
|
-
* Supports both UUID and WorkOS org_ prefixed IDs
|
|
37
|
-
*/
|
|
38
|
-
export const OrganizationIdSchema = z.union([
|
|
39
|
-
UuidSchema,
|
|
40
|
-
z.string().regex(/^org_[a-zA-Z0-9]+$/, 'Invalid WorkOS organization ID')
|
|
41
|
-
])
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Organization domain data schema
|
|
45
|
-
*/
|
|
46
|
-
export const OrganizationDomainSchema = z.object({
|
|
47
|
-
domain: z.string().min(3).max(255),
|
|
48
|
-
state: z.enum(['verified', 'pending', 'failed']).optional()
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
// ============================================================================
|
|
52
|
-
// Path Parameters
|
|
53
|
-
// ============================================================================
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Validate organization ID in URL path
|
|
57
|
-
* Used by: GET/PUT/DELETE /organizations/:id
|
|
58
|
-
*/
|
|
59
|
-
export const OrganizationIdParamSchema = z
|
|
60
|
-
.object({
|
|
61
|
-
id: OrganizationIdSchema
|
|
62
|
-
})
|
|
63
|
-
.strict()
|
|
64
|
-
|
|
65
|
-
// ============================================================================
|
|
66
|
-
// Request Bodies
|
|
67
|
-
// ============================================================================
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Create new organization
|
|
71
|
-
* POST /organizations
|
|
72
|
-
*
|
|
73
|
-
* Security:
|
|
74
|
-
* - Name format validated (alphanumeric + spaces + hyphens + underscores)
|
|
75
|
-
* - Domain array size limited (max 10)
|
|
76
|
-
* - Metadata size limited (10KB)
|
|
77
|
-
* - Strict mode prevents unknown field injection
|
|
78
|
-
*/
|
|
79
|
-
export const CreateOrganizationSchema = z
|
|
80
|
-
.object({
|
|
81
|
-
name: OrganizationNameSchema,
|
|
82
|
-
domainData: z.array(OrganizationDomainSchema).max(10).optional(),
|
|
83
|
-
metadata: z.record(z.string(), z.unknown())
|
|
84
|
-
.refine(
|
|
85
|
-
val => JSON.stringify(val).length <= 10240,
|
|
86
|
-
'Metadata must be under 10KB'
|
|
87
|
-
)
|
|
88
|
-
.optional()
|
|
89
|
-
})
|
|
90
|
-
.strict()
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Update organization
|
|
94
|
-
* PUT /organizations/:id
|
|
95
|
-
*
|
|
96
|
-
* Security:
|
|
97
|
-
* - All fields optional (partial update)
|
|
98
|
-
* - Same validation as create
|
|
99
|
-
*/
|
|
100
|
-
export const UpdateOrganizationSchema = CreateOrganizationSchema.partial().strict()
|
|
101
|
-
|
|
102
|
-
// ============================================================================
|
|
103
|
-
// Query Parameters
|
|
104
|
-
// ============================================================================
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* List organizations with filters
|
|
108
|
-
* GET /organizations
|
|
109
|
-
*
|
|
110
|
-
* Security:
|
|
111
|
-
* - Limit bounded (prevents DoS)
|
|
112
|
-
* - WorkOS pagination cursors
|
|
113
|
-
*/
|
|
114
|
-
export const ListOrganizationsQuerySchema = z.object({
|
|
115
|
-
limit: z.coerce.number().int().min(1).max(100).default(20),
|
|
116
|
-
before: z.string().optional(), // WorkOS pagination cursor
|
|
117
|
-
after: z.string().optional() // WorkOS pagination cursor
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
// ============================================================================
|
|
121
|
-
// TypeScript Type Exports
|
|
122
|
-
// ============================================================================
|
|
123
|
-
|
|
124
|
-
// Export inferred types for use in route handlers
|
|
125
|
-
export type CreateOrganizationInput = z.infer<typeof CreateOrganizationSchema>
|
|
126
|
-
export type UpdateOrganizationInput = z.infer<typeof UpdateOrganizationSchema>
|
|
127
|
-
export type ListOrganizationsQuery = z.infer<typeof ListOrganizationsQuerySchema>
|
|
128
|
-
export type OrganizationIdParam = z.infer<typeof OrganizationIdParamSchema>
|
|
1
|
+
/**
|
|
2
|
+
* Organizations Domain - Zod Validation Schemas
|
|
3
|
+
*
|
|
4
|
+
* Validation schemas for organization management endpoints.
|
|
5
|
+
* Includes request bodies, query params, and path params.
|
|
6
|
+
*
|
|
7
|
+
* Security:
|
|
8
|
+
* - All schemas use .strict() to prevent mass assignment attacks
|
|
9
|
+
* - UUID/WorkOS ID validation prevents invalid references
|
|
10
|
+
* - String length limits prevent DoS
|
|
11
|
+
* - Domain and metadata size limits
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { z } from 'zod'
|
|
15
|
+
import { UuidSchema } from '../../../platform/utils/validation'
|
|
16
|
+
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Shared Schemas
|
|
19
|
+
// ============================================================================
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Organization name validation
|
|
23
|
+
* - Alphanumeric, spaces, hyphens, underscores only
|
|
24
|
+
* - 2-100 characters
|
|
25
|
+
*
|
|
26
|
+
* Security: Prevents injection, DoS via long names
|
|
27
|
+
*/
|
|
28
|
+
export const OrganizationNameSchema = z.string()
|
|
29
|
+
.min(2, 'Organization name must be at least 2 characters')
|
|
30
|
+
.max(100, 'Organization name must be at most 100 characters')
|
|
31
|
+
.trim()
|
|
32
|
+
.regex(/^[a-zA-Z0-9\s\-_]+$/, 'Organization name must contain only letters, numbers, spaces, hyphens, and underscores')
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Organization ID validation
|
|
36
|
+
* Supports both UUID and WorkOS org_ prefixed IDs
|
|
37
|
+
*/
|
|
38
|
+
export const OrganizationIdSchema = z.union([
|
|
39
|
+
UuidSchema,
|
|
40
|
+
z.string().regex(/^org_[a-zA-Z0-9]+$/, 'Invalid WorkOS organization ID')
|
|
41
|
+
])
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Organization domain data schema
|
|
45
|
+
*/
|
|
46
|
+
export const OrganizationDomainSchema = z.object({
|
|
47
|
+
domain: z.string().min(3).max(255),
|
|
48
|
+
state: z.enum(['verified', 'pending', 'failed']).optional()
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Path Parameters
|
|
53
|
+
// ============================================================================
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Validate organization ID in URL path
|
|
57
|
+
* Used by: GET/PUT/DELETE /organizations/:id
|
|
58
|
+
*/
|
|
59
|
+
export const OrganizationIdParamSchema = z
|
|
60
|
+
.object({
|
|
61
|
+
id: OrganizationIdSchema
|
|
62
|
+
})
|
|
63
|
+
.strict()
|
|
64
|
+
|
|
65
|
+
// ============================================================================
|
|
66
|
+
// Request Bodies
|
|
67
|
+
// ============================================================================
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Create new organization
|
|
71
|
+
* POST /organizations
|
|
72
|
+
*
|
|
73
|
+
* Security:
|
|
74
|
+
* - Name format validated (alphanumeric + spaces + hyphens + underscores)
|
|
75
|
+
* - Domain array size limited (max 10)
|
|
76
|
+
* - Metadata size limited (10KB)
|
|
77
|
+
* - Strict mode prevents unknown field injection
|
|
78
|
+
*/
|
|
79
|
+
export const CreateOrganizationSchema = z
|
|
80
|
+
.object({
|
|
81
|
+
name: OrganizationNameSchema,
|
|
82
|
+
domainData: z.array(OrganizationDomainSchema).max(10).optional(),
|
|
83
|
+
metadata: z.record(z.string(), z.unknown())
|
|
84
|
+
.refine(
|
|
85
|
+
val => JSON.stringify(val).length <= 10240,
|
|
86
|
+
'Metadata must be under 10KB'
|
|
87
|
+
)
|
|
88
|
+
.optional()
|
|
89
|
+
})
|
|
90
|
+
.strict()
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Update organization
|
|
94
|
+
* PUT /organizations/:id
|
|
95
|
+
*
|
|
96
|
+
* Security:
|
|
97
|
+
* - All fields optional (partial update)
|
|
98
|
+
* - Same validation as create
|
|
99
|
+
*/
|
|
100
|
+
export const UpdateOrganizationSchema = CreateOrganizationSchema.partial().strict()
|
|
101
|
+
|
|
102
|
+
// ============================================================================
|
|
103
|
+
// Query Parameters
|
|
104
|
+
// ============================================================================
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* List organizations with filters
|
|
108
|
+
* GET /organizations
|
|
109
|
+
*
|
|
110
|
+
* Security:
|
|
111
|
+
* - Limit bounded (prevents DoS)
|
|
112
|
+
* - WorkOS pagination cursors
|
|
113
|
+
*/
|
|
114
|
+
export const ListOrganizationsQuerySchema = z.object({
|
|
115
|
+
limit: z.coerce.number().int().min(1).max(100).default(20),
|
|
116
|
+
before: z.string().optional(), // WorkOS pagination cursor
|
|
117
|
+
after: z.string().optional() // WorkOS pagination cursor
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
// ============================================================================
|
|
121
|
+
// TypeScript Type Exports
|
|
122
|
+
// ============================================================================
|
|
123
|
+
|
|
124
|
+
// Export inferred types for use in route handlers
|
|
125
|
+
export type CreateOrganizationInput = z.infer<typeof CreateOrganizationSchema>
|
|
126
|
+
export type UpdateOrganizationInput = z.infer<typeof UpdateOrganizationSchema>
|
|
127
|
+
export type ListOrganizationsQuery = z.infer<typeof ListOrganizationsQuerySchema>
|
|
128
|
+
export type OrganizationIdParam = z.infer<typeof OrganizationIdParamSchema>
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Organization types - browser-safe exports only
|
|
3
|
-
* For WorkOS types and transforms, use @repo/core/server
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// Core organization types (browser-safe)
|
|
7
|
-
export type { Organization, OrganizationSummary } from './organization'
|
|
8
|
-
|
|
9
|
-
// Validation schemas
|
|
10
|
-
export {
|
|
11
|
-
CreateOrganizationSchema,
|
|
12
|
-
UpdateOrganizationSchema,
|
|
13
|
-
ListOrganizationsQuerySchema,
|
|
14
|
-
OrganizationIdParamSchema,
|
|
15
|
-
OrganizationNameSchema,
|
|
16
|
-
OrganizationDomainSchema,
|
|
17
|
-
type CreateOrganizationInput,
|
|
18
|
-
type UpdateOrganizationInput,
|
|
19
|
-
type ListOrganizationsQuery,
|
|
20
|
-
type OrganizationIdParam
|
|
21
|
-
} from './api-schemas'
|
|
22
|
-
|
|
23
|
-
// Note: WorkOS types and transforms available via @repo/core/server
|
|
1
|
+
/**
|
|
2
|
+
* Organization types - browser-safe exports only
|
|
3
|
+
* For WorkOS types and transforms, use @repo/core/server
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Core organization types (browser-safe)
|
|
7
|
+
export type { Organization, OrganizationSummary } from './organization'
|
|
8
|
+
|
|
9
|
+
// Validation schemas
|
|
10
|
+
export {
|
|
11
|
+
CreateOrganizationSchema,
|
|
12
|
+
UpdateOrganizationSchema,
|
|
13
|
+
ListOrganizationsQuerySchema,
|
|
14
|
+
OrganizationIdParamSchema,
|
|
15
|
+
OrganizationNameSchema,
|
|
16
|
+
OrganizationDomainSchema,
|
|
17
|
+
type CreateOrganizationInput,
|
|
18
|
+
type UpdateOrganizationInput,
|
|
19
|
+
type ListOrganizationsQuery,
|
|
20
|
+
type OrganizationIdParam
|
|
21
|
+
} from './api-schemas'
|
|
22
|
+
|
|
23
|
+
// Note: WorkOS types and transforms available via @repo/core/server
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Organization representation using WorkOS data only
|
|
3
|
-
*/
|
|
4
|
-
export interface Organization {
|
|
5
|
-
// WorkOS Organization Data
|
|
6
|
-
workosId: string
|
|
7
|
-
name: string
|
|
8
|
-
domains: string[]
|
|
9
|
-
createdAt: string
|
|
10
|
-
updatedAt: string
|
|
11
|
-
stripeCustomerId?: string
|
|
12
|
-
externalId: string | null
|
|
13
|
-
workosMetadata: Record<string, string>
|
|
14
|
-
|
|
15
|
-
// Calculated/Derived Fields
|
|
16
|
-
primaryDomain?: string
|
|
17
|
-
verifiedDomains: string[]
|
|
18
|
-
pendingDomains: string[]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface OrganizationSummary {
|
|
22
|
-
totalOrganizations: number
|
|
23
|
-
verifiedOrganizations: number
|
|
24
|
-
pendingOrganizations: number
|
|
1
|
+
/**
|
|
2
|
+
* Organization representation using WorkOS data only
|
|
3
|
+
*/
|
|
4
|
+
export interface Organization {
|
|
5
|
+
// WorkOS Organization Data
|
|
6
|
+
workosId: string
|
|
7
|
+
name: string
|
|
8
|
+
domains: string[]
|
|
9
|
+
createdAt: string
|
|
10
|
+
updatedAt: string
|
|
11
|
+
stripeCustomerId?: string
|
|
12
|
+
externalId: string | null
|
|
13
|
+
workosMetadata: Record<string, string>
|
|
14
|
+
|
|
15
|
+
// Calculated/Derived Fields
|
|
16
|
+
primaryDomain?: string
|
|
17
|
+
verifiedDomains: string[]
|
|
18
|
+
pendingDomains: string[]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface OrganizationSummary {
|
|
22
|
+
totalOrganizations: number
|
|
23
|
+
verifiedOrganizations: number
|
|
24
|
+
pendingOrganizations: number
|
|
25
25
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Organizations server-only exports
|
|
3
|
-
* WARNING: Uses @workos-inc/node SDK - DO NOT import in browser code
|
|
4
|
-
*/
|
|
5
|
-
export * from './workos'
|
|
6
|
-
export * from './transforms'
|
|
7
|
-
|
|
8
|
-
// Re-export browser-safe types for convenience
|
|
9
|
-
export type { Organization, OrganizationSummary } from '../organization'
|
|
10
|
-
export type { SupabaseOrganization, SupabaseOrganizationInsert, SupabaseOrganizationUpdate } from '../../../../supabase'
|
|
1
|
+
/**
|
|
2
|
+
* Organizations server-only exports
|
|
3
|
+
* WARNING: Uses @workos-inc/node SDK - DO NOT import in browser code
|
|
4
|
+
*/
|
|
5
|
+
export * from './workos'
|
|
6
|
+
export * from './transforms'
|
|
7
|
+
|
|
8
|
+
// Re-export browser-safe types for convenience
|
|
9
|
+
export type { Organization, OrganizationSummary } from '../organization'
|
|
10
|
+
export type { SupabaseOrganization, SupabaseOrganizationInsert, SupabaseOrganizationUpdate } from '../../../../supabase'
|