workos 0.12.0-beta.1 → 0.12.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.
Files changed (96) hide show
  1. package/README.md +6 -4
  2. package/dist/bin.js +4 -2
  3. package/dist/bin.js.map +1 -1
  4. package/dist/commands/debug.js +0 -1
  5. package/dist/commands/debug.js.map +1 -1
  6. package/dist/commands/login.js +0 -4
  7. package/dist/commands/login.js.map +1 -1
  8. package/dist/emulate/core/id.d.ts +16 -1
  9. package/dist/emulate/core/id.js +16 -1
  10. package/dist/emulate/core/id.js.map +1 -1
  11. package/dist/emulate/core/index.d.ts +1 -1
  12. package/dist/emulate/core/index.js +1 -1
  13. package/dist/emulate/core/index.js.map +1 -1
  14. package/dist/emulate/core/middleware/auth.d.ts +1 -4
  15. package/dist/emulate/core/middleware/auth.js +7 -18
  16. package/dist/emulate/core/middleware/auth.js.map +1 -1
  17. package/dist/emulate/core/pagination.d.ts +6 -0
  18. package/dist/emulate/core/pagination.js +9 -1
  19. package/dist/emulate/core/pagination.js.map +1 -1
  20. package/dist/emulate/core/server.js +20 -46
  21. package/dist/emulate/core/server.js.map +1 -1
  22. package/dist/emulate/core/store.d.ts +2 -0
  23. package/dist/emulate/core/store.js +22 -1
  24. package/dist/emulate/core/store.js.map +1 -1
  25. package/dist/emulate/workos/constants.d.ts +56 -0
  26. package/dist/emulate/workos/constants.js +56 -0
  27. package/dist/emulate/workos/constants.js.map +1 -0
  28. package/dist/emulate/workos/entities.js.map +1 -1
  29. package/dist/emulate/workos/event-bus.d.ts +6 -1
  30. package/dist/emulate/workos/event-bus.js +33 -8
  31. package/dist/emulate/workos/event-bus.js.map +1 -1
  32. package/dist/emulate/workos/helpers.d.ts +17 -8
  33. package/dist/emulate/workos/helpers.js +61 -368
  34. package/dist/emulate/workos/helpers.js.map +1 -1
  35. package/dist/emulate/workos/index.js +42 -39
  36. package/dist/emulate/workos/index.js.map +1 -1
  37. package/dist/emulate/workos/role-helpers.d.ts +21 -0
  38. package/dist/emulate/workos/role-helpers.js +130 -0
  39. package/dist/emulate/workos/role-helpers.js.map +1 -0
  40. package/dist/emulate/workos/routes/api-keys.js +5 -8
  41. package/dist/emulate/workos/routes/api-keys.js.map +1 -1
  42. package/dist/emulate/workos/routes/audit-logs.js +6 -9
  43. package/dist/emulate/workos/routes/audit-logs.js.map +1 -1
  44. package/dist/emulate/workos/routes/auth.js +7 -6
  45. package/dist/emulate/workos/routes/auth.js.map +1 -1
  46. package/dist/emulate/workos/routes/authorization-checks.js +5 -17
  47. package/dist/emulate/workos/routes/authorization-checks.js.map +1 -1
  48. package/dist/emulate/workos/routes/authorization-org-roles.js +29 -171
  49. package/dist/emulate/workos/routes/authorization-org-roles.js.map +1 -1
  50. package/dist/emulate/workos/routes/authorization-permissions.js +5 -16
  51. package/dist/emulate/workos/routes/authorization-permissions.js.map +1 -1
  52. package/dist/emulate/workos/routes/authorization-resources.js +4 -15
  53. package/dist/emulate/workos/routes/authorization-resources.js.map +1 -1
  54. package/dist/emulate/workos/routes/authorization-roles.d.ts +1 -1
  55. package/dist/emulate/workos/routes/authorization-roles.js +9 -132
  56. package/dist/emulate/workos/routes/authorization-roles.js.map +1 -1
  57. package/dist/emulate/workos/routes/config.js +3 -2
  58. package/dist/emulate/workos/routes/config.js.map +1 -1
  59. package/dist/emulate/workos/routes/connect.js +3 -7
  60. package/dist/emulate/workos/routes/connect.js.map +1 -1
  61. package/dist/emulate/workos/routes/connections.js +3 -7
  62. package/dist/emulate/workos/routes/connections.js.map +1 -1
  63. package/dist/emulate/workos/routes/directories.js +7 -23
  64. package/dist/emulate/workos/routes/directories.js.map +1 -1
  65. package/dist/emulate/workos/routes/events.js +3 -6
  66. package/dist/emulate/workos/routes/events.js.map +1 -1
  67. package/dist/emulate/workos/routes/feature-flags.js +20 -48
  68. package/dist/emulate/workos/routes/feature-flags.js.map +1 -1
  69. package/dist/emulate/workos/routes/invitations.js +10 -13
  70. package/dist/emulate/workos/routes/invitations.js.map +1 -1
  71. package/dist/emulate/workos/routes/memberships.js +3 -7
  72. package/dist/emulate/workos/routes/memberships.js.map +1 -1
  73. package/dist/emulate/workos/routes/organizations.js +13 -15
  74. package/dist/emulate/workos/routes/organizations.js.map +1 -1
  75. package/dist/emulate/workos/routes/pipes.js +3 -7
  76. package/dist/emulate/workos/routes/pipes.js.map +1 -1
  77. package/dist/emulate/workos/routes/radar.js +3 -7
  78. package/dist/emulate/workos/routes/radar.js.map +1 -1
  79. package/dist/emulate/workos/routes/sso.js +7 -6
  80. package/dist/emulate/workos/routes/sso.js.map +1 -1
  81. package/dist/emulate/workos/routes/users.js +3 -7
  82. package/dist/emulate/workos/routes/users.js.map +1 -1
  83. package/dist/emulate/workos/routes/webhook-endpoints.js +3 -7
  84. package/dist/emulate/workos/routes/webhook-endpoints.js.map +1 -1
  85. package/dist/emulate/workos/store.js +68 -59
  86. package/dist/emulate/workos/store.js.map +1 -1
  87. package/dist/lib/run-with-core.js +0 -3
  88. package/dist/lib/run-with-core.js.map +1 -1
  89. package/dist/lib/settings.js +1 -1
  90. package/dist/lib/settings.js.map +1 -1
  91. package/dist/utils/help-json.js +1 -23
  92. package/dist/utils/help-json.js.map +1 -1
  93. package/dist/utils/register-subcommand.d.ts +5 -2
  94. package/dist/utils/register-subcommand.js +16 -19
  95. package/dist/utils/register-subcommand.js.map +1 -1
  96. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/emulate/workos/store.ts"],"names":[],"mappings":"AA6FA,MAAM,UAAU,cAAc,CAAC,KAAY;IACzC,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,UAAU,CAAqB,sBAAsB,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC3G,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAA2B,6BAA6B,EAAE,YAAY,EAAE;YAC3G,iBAAiB;YACjB,QAAQ;SACT,CAAC;QACF,uBAAuB,EAAE,KAAK,CAAC,UAAU,CAA+B,iCAAiC,EAAE,IAAI,EAAE;YAC/G,iBAAiB;YACjB,SAAS;SACV,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAa,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACrF,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAgB,iBAAiB,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC;QACpF,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAA0B,4BAA4B,EAAE,oBAAoB,EAAE;YAChH,SAAS;SACV,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,UAAU,CAAsB,wBAAwB,EAAE,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9G,UAAU,EAAE,KAAK,CAAC,UAAU,CAAkB,oBAAoB,EAAE,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9F,WAAW,EAAE,KAAK,CAAC,UAAU,CAA6B,qBAAqB,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5G,SAAS,EAAE,KAAK,CAAC,UAAU,CAA0B,mBAAmB,EAAE,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3G,UAAU,EAAE,KAAK,CAAC,UAAU,CAAiB,mBAAmB,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1F,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,oBAAoB,EAAE,MAAM,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAClG,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,qBAAqB,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC1G,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAyB,2BAA2B,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9G,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,yBAAyB,EAAE,WAAW,EAAE;YAC9F,SAAS;YACT,UAAU;SACX,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,UAAU,CAAqB,uBAAuB,EAAE,KAAK,EAAE;YAClF,OAAO;YACP,SAAS;YACT,YAAY;SACb,CAAC;QACF,cAAc,EAAE,KAAK,CAAC,UAAU,CAAgC,wBAAwB,EAAE,gBAAgB,EAAE;YAC1G,SAAS;YACT,WAAW;SACZ,CAAC;QACF,oBAAoB,EAAE,KAAK,CAAC,UAAU,CAA4B,8BAA8B,EAAE,UAAU,EAAE;YAC5G,aAAa;YACb,WAAW;SACZ,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,oBAAoB,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACnH,YAAY,EAAE,KAAK,CAAC,UAAU,CAAoB,sBAAsB,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3F,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,qBAAqB,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1F,sBAAsB,EAAE,KAAK,CAAC,UAAU,CACtC,gCAAgC,EAChC,UAAU,EACV,CAAC,SAAS,CAAC,CACZ;QACD,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAyB,2BAA2B,EAAE,WAAW,EAAE;YACpG,SAAS;YACT,UAAU;SACX,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAa,cAAc,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACxF,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QACvF,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,yBAAyB,EAAE,IAAI,EAAE;YACvF,SAAS;YACT,eAAe;SAChB,CAAC;QACF,sBAAsB,EAAE,KAAK,CAAC,UAAU,CACtC,gCAAgC,EAChC,UAAU,EACV,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAC1C;QACD,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,yBAAyB,EAAE,IAAI,EAAE;YACvF,4BAA4B;YAC5B,SAAS;SACV,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,UAAU,CAAkB,oBAAoB,EAAE,WAAW,EAAE,CAAC,iBAAiB,CAAC,CAAC;QACtG,cAAc,EAAE,KAAK,CAAC,UAAU,CAAsB,wBAAwB,EAAE,gBAAgB,EAAE;YAChG,cAAc;YACd,iBAAiB;SAClB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,yBAAyB,EAAE,eAAe,EAAE;YAClG,cAAc;YACd,iBAAiB;SAClB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,0BAA0B,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7G,cAAc,EAAE,KAAK,CAAC,UAAU,CAAsB,yBAAyB,EAAE,aAAa,EAAE;YAC9F,iBAAiB;SAClB,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,UAAU,CAAuB,0BAA0B,EAAE,cAAc,EAAE;YAClG,iBAAiB;SAClB,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,UAAU,CAAoB,sBAAsB,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QACzF,WAAW,EAAE,KAAK,CAAC,UAAU,CAAmB,qBAAqB,EAAE,WAAW,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACjH,mBAAmB,EAAE,KAAK,CAAC,UAAU,CAA2B,6BAA6B,EAAE,aAAa,EAAE;YAC5G,WAAW;SACZ,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,UAAU,CAAqB,uBAAuB,EAAE,eAAe,EAAE,CAAC,gBAAgB,CAAC,CAAC;QACjH,oBAAoB,EAAE,KAAK,CAAC,UAAU,CAA4B,+BAA+B,EAAE,SAAS,EAAE;YAC5G,MAAM;YACN,MAAM;SACP,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,UAAU,CAAqB,uBAAuB,EAAE,eAAe,EAAE,CAAC,YAAY,CAAC,CAAC;QAC7G,aAAa,EAAE,KAAK,CAAC,UAAU,CAAe,iBAAiB,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACnG,MAAM,EAAE,KAAK,CAAC,UAAU,CAAc,eAAe,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;QACxE,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAwB,0BAA0B,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;KACrG,CAAC;AACJ,CAAC","sourcesContent":["import { type Store, type Collection } from '../core/index.js';\nimport type {\n WorkOSOrganization,\n WorkOSOrganizationDomain,\n WorkOSOrganizationMembership,\n WorkOSUser,\n WorkOSSession,\n WorkOSEmailVerification,\n WorkOSPasswordReset,\n WorkOSMagicAuth,\n WorkOSAuthenticationFactor,\n WorkOSAuthorizationCode,\n WorkOSIdentity,\n WorkOSConnection,\n WorkOSSSOProfile,\n WorkOSSSOAuthorization,\n WorkOSPipeConnection,\n WorkOSRefreshToken,\n WorkOSAuthenticationChallenge,\n WorkOSDeviceAuthorization,\n WorkOSInvitation,\n WorkOSRedirectUri,\n WorkOSCorsOrigin,\n WorkOSAuthorizedApplication,\n WorkOSConnectedAccount,\n WorkOSRole,\n WorkOSPermission,\n WorkOSRolePermission,\n WorkOSAuthorizationResource,\n WorkOSRoleAssignment,\n WorkOSDirectory,\n WorkOSDirectoryUser,\n WorkOSDirectoryGroup,\n WorkOSAuditLogAction,\n WorkOSAuditLogEvent,\n WorkOSAuditLogExport,\n WorkOSFeatureFlag,\n WorkOSFlagTarget,\n WorkOSConnectApplication,\n WorkOSClientSecret,\n WorkOSDataIntegrationAuth,\n WorkOSRadarAttempt,\n WorkOSApiKey,\n WorkOSEvent,\n WorkOSWebhookEndpoint,\n} from './entities.js';\n\nexport interface WorkOSStore {\n organizations: Collection<WorkOSOrganization>;\n organizationDomains: Collection<WorkOSOrganizationDomain>;\n organizationMemberships: Collection<WorkOSOrganizationMembership>;\n users: Collection<WorkOSUser>;\n sessions: Collection<WorkOSSession>;\n emailVerifications: Collection<WorkOSEmailVerification>;\n passwordResets: Collection<WorkOSPasswordReset>;\n magicAuths: Collection<WorkOSMagicAuth>;\n authFactors: Collection<WorkOSAuthenticationFactor>;\n authCodes: Collection<WorkOSAuthorizationCode>;\n identities: Collection<WorkOSIdentity>;\n connections: Collection<WorkOSConnection>;\n ssoProfiles: Collection<WorkOSSSOProfile>;\n ssoAuthorizations: Collection<WorkOSSSOAuthorization>;\n pipeConnections: Collection<WorkOSPipeConnection>;\n refreshTokens: Collection<WorkOSRefreshToken>;\n authChallenges: Collection<WorkOSAuthenticationChallenge>;\n deviceAuthorizations: Collection<WorkOSDeviceAuthorization>;\n invitations: Collection<WorkOSInvitation>;\n redirectUris: Collection<WorkOSRedirectUri>;\n corsOrigins: Collection<WorkOSCorsOrigin>;\n authorizedApplications: Collection<WorkOSAuthorizedApplication>;\n connectedAccounts: Collection<WorkOSConnectedAccount>;\n roles: Collection<WorkOSRole>;\n permissions: Collection<WorkOSPermission>;\n rolePermissions: Collection<WorkOSRolePermission>;\n authorizationResources: Collection<WorkOSAuthorizationResource>;\n roleAssignments: Collection<WorkOSRoleAssignment>;\n directories: Collection<WorkOSDirectory>;\n directoryUsers: Collection<WorkOSDirectoryUser>;\n directoryGroups: Collection<WorkOSDirectoryGroup>;\n auditLogActions: Collection<WorkOSAuditLogAction>;\n auditLogEvents: Collection<WorkOSAuditLogEvent>;\n auditLogExports: Collection<WorkOSAuditLogExport>;\n featureFlags: Collection<WorkOSFeatureFlag>;\n flagTargets: Collection<WorkOSFlagTarget>;\n connectApplications: Collection<WorkOSConnectApplication>;\n clientSecrets: Collection<WorkOSClientSecret>;\n dataIntegrationAuths: Collection<WorkOSDataIntegrationAuth>;\n radarAttempts: Collection<WorkOSRadarAttempt>;\n apiKeyRecords: Collection<WorkOSApiKey>;\n events: Collection<WorkOSEvent>;\n webhookEndpoints: Collection<WorkOSWebhookEndpoint>;\n}\n\nexport function getWorkOSStore(store: Store): WorkOSStore {\n return {\n organizations: store.collection<WorkOSOrganization>('workos.organizations', 'org', ['name', 'external_id']),\n organizationDomains: store.collection<WorkOSOrganizationDomain>('workos.organization_domains', 'org_domain', [\n 'organization_id',\n 'domain',\n ]),\n organizationMemberships: store.collection<WorkOSOrganizationMembership>('workos.organization_memberships', 'om', [\n 'organization_id',\n 'user_id',\n ]),\n users: store.collection<WorkOSUser>('workos.users', 'user', ['email', 'external_id']),\n sessions: store.collection<WorkOSSession>('workos.sessions', 'session', ['user_id']),\n emailVerifications: store.collection<WorkOSEmailVerification>('workos.email_verifications', 'email_verification', [\n 'user_id',\n ]),\n passwordResets: store.collection<WorkOSPasswordReset>('workos.password_resets', 'password_reset', ['user_id']),\n magicAuths: store.collection<WorkOSMagicAuth>('workos.magic_auths', 'magic_auth', ['user_id']),\n authFactors: store.collection<WorkOSAuthenticationFactor>('workos.auth_factors', 'auth_factor', ['user_id']),\n authCodes: store.collection<WorkOSAuthorizationCode>('workos.auth_codes', 'auth_code', ['user_id', 'code']),\n identities: store.collection<WorkOSIdentity>('workos.identities', 'identity', ['user_id']),\n connections: store.collection<WorkOSConnection>('workos.connections', 'conn', ['organization_id']),\n ssoProfiles: store.collection<WorkOSSSOProfile>('workos.sso_profiles', 'prof', ['connection_id', 'email']),\n ssoAuthorizations: store.collection<WorkOSSSOAuthorization>('workos.sso_authorizations', 'sso_auth', ['code']),\n pipeConnections: store.collection<WorkOSPipeConnection>('workos.pipe_connections', 'pipe_conn', [\n 'user_id',\n 'provider',\n ]),\n refreshTokens: store.collection<WorkOSRefreshToken>('workos.refresh_tokens', 'ref', [\n 'token',\n 'user_id',\n 'session_id',\n ]),\n authChallenges: store.collection<WorkOSAuthenticationChallenge>('workos.auth_challenges', 'auth_challenge', [\n 'user_id',\n 'factor_id',\n ]),\n deviceAuthorizations: store.collection<WorkOSDeviceAuthorization>('workos.device_authorizations', 'dev_auth', [\n 'device_code',\n 'user_code',\n ]),\n invitations: store.collection<WorkOSInvitation>('workos.invitations', 'inv', ['email', 'token', 'organization_id']),\n redirectUris: store.collection<WorkOSRedirectUri>('workos.redirect_uris', 'redir', ['uri']),\n corsOrigins: store.collection<WorkOSCorsOrigin>('workos.cors_origins', 'cors', ['origin']),\n authorizedApplications: store.collection<WorkOSAuthorizedApplication>(\n 'workos.authorized_applications',\n 'auth_app',\n ['user_id'],\n ),\n connectedAccounts: store.collection<WorkOSConnectedAccount>('workos.connected_accounts', 'conn_acct', [\n 'user_id',\n 'provider',\n ]),\n roles: store.collection<WorkOSRole>('workos.roles', 'role', ['slug', 'organization_id']),\n permissions: store.collection<WorkOSPermission>('workos.permissions', 'perm', ['slug']),\n rolePermissions: store.collection<WorkOSRolePermission>('workos.role_permissions', 'rp', [\n 'role_id',\n 'permission_id',\n ]),\n authorizationResources: store.collection<WorkOSAuthorizationResource>(\n 'workos.authorization_resources',\n 'auth_res',\n ['organization_id', 'resource_type_slug'],\n ),\n roleAssignments: store.collection<WorkOSRoleAssignment>('workos.role_assignments', 'ra', [\n 'organization_membership_id',\n 'role_id',\n ]),\n directories: store.collection<WorkOSDirectory>('workos.directories', 'directory', ['organization_id']),\n directoryUsers: store.collection<WorkOSDirectoryUser>('workos.directory_users', 'directory_user', [\n 'directory_id',\n 'organization_id',\n ]),\n directoryGroups: store.collection<WorkOSDirectoryGroup>('workos.directory_groups', 'directory_grp', [\n 'directory_id',\n 'organization_id',\n ]),\n auditLogActions: store.collection<WorkOSAuditLogAction>('workos.audit_log_actions', 'audit_action', ['name']),\n auditLogEvents: store.collection<WorkOSAuditLogEvent>('workos.audit_log_events', 'audit_event', [\n 'organization_id',\n ]),\n auditLogExports: store.collection<WorkOSAuditLogExport>('workos.audit_log_exports', 'audit_export', [\n 'organization_id',\n ]),\n featureFlags: store.collection<WorkOSFeatureFlag>('workos.feature_flags', 'ff', ['slug']),\n flagTargets: store.collection<WorkOSFlagTarget>('workos.flag_targets', 'ff_target', ['flag_slug', 'resource_id']),\n connectApplications: store.collection<WorkOSConnectApplication>('workos.connect_applications', 'connect_app', [\n 'client_id',\n ]),\n clientSecrets: store.collection<WorkOSClientSecret>('workos.client_secrets', 'client_secret', ['application_id']),\n dataIntegrationAuths: store.collection<WorkOSDataIntegrationAuth>('workos.data_integration_auths', 'di_auth', [\n 'code',\n 'slug',\n ]),\n radarAttempts: store.collection<WorkOSRadarAttempt>('workos.radar_attempts', 'radar_attempt', ['ip_address']),\n apiKeyRecords: store.collection<WorkOSApiKey>('workos.api_keys', 'api_key', ['key', 'environment']),\n events: store.collection<WorkOSEvent>('workos.events', 'evt', ['event']),\n webhookEndpoints: store.collection<WorkOSWebhookEndpoint>('workos.webhook_endpoints', 'we', ['url']),\n };\n}\n"]}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/emulate/workos/store.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Store, type Collection, ID_PREFIXES } from '../core/index.js';\nimport { STORE_KEYS } from './constants.js';\nimport type {\n WorkOSOrganization,\n WorkOSOrganizationDomain,\n WorkOSOrganizationMembership,\n WorkOSUser,\n WorkOSSession,\n WorkOSEmailVerification,\n WorkOSPasswordReset,\n WorkOSMagicAuth,\n WorkOSAuthenticationFactor,\n WorkOSAuthorizationCode,\n WorkOSIdentity,\n WorkOSConnection,\n WorkOSSSOProfile,\n WorkOSSSOAuthorization,\n WorkOSPipeConnection,\n WorkOSRefreshToken,\n WorkOSAuthenticationChallenge,\n WorkOSDeviceAuthorization,\n WorkOSInvitation,\n WorkOSRedirectUri,\n WorkOSCorsOrigin,\n WorkOSAuthorizedApplication,\n WorkOSConnectedAccount,\n WorkOSRole,\n WorkOSPermission,\n WorkOSRolePermission,\n WorkOSAuthorizationResource,\n WorkOSRoleAssignment,\n WorkOSDirectory,\n WorkOSDirectoryUser,\n WorkOSDirectoryGroup,\n WorkOSAuditLogAction,\n WorkOSAuditLogEvent,\n WorkOSAuditLogExport,\n WorkOSFeatureFlag,\n WorkOSFlagTarget,\n WorkOSConnectApplication,\n WorkOSClientSecret,\n WorkOSDataIntegrationAuth,\n WorkOSRadarAttempt,\n WorkOSApiKey,\n WorkOSEvent,\n WorkOSWebhookEndpoint,\n} from './entities.js';\n\nexport interface WorkOSStore {\n organizations: Collection<WorkOSOrganization>;\n organizationDomains: Collection<WorkOSOrganizationDomain>;\n organizationMemberships: Collection<WorkOSOrganizationMembership>;\n users: Collection<WorkOSUser>;\n sessions: Collection<WorkOSSession>;\n emailVerifications: Collection<WorkOSEmailVerification>;\n passwordResets: Collection<WorkOSPasswordReset>;\n magicAuths: Collection<WorkOSMagicAuth>;\n authFactors: Collection<WorkOSAuthenticationFactor>;\n authCodes: Collection<WorkOSAuthorizationCode>;\n identities: Collection<WorkOSIdentity>;\n connections: Collection<WorkOSConnection>;\n ssoProfiles: Collection<WorkOSSSOProfile>;\n ssoAuthorizations: Collection<WorkOSSSOAuthorization>;\n pipeConnections: Collection<WorkOSPipeConnection>;\n refreshTokens: Collection<WorkOSRefreshToken>;\n authChallenges: Collection<WorkOSAuthenticationChallenge>;\n deviceAuthorizations: Collection<WorkOSDeviceAuthorization>;\n invitations: Collection<WorkOSInvitation>;\n redirectUris: Collection<WorkOSRedirectUri>;\n corsOrigins: Collection<WorkOSCorsOrigin>;\n authorizedApplications: Collection<WorkOSAuthorizedApplication>;\n connectedAccounts: Collection<WorkOSConnectedAccount>;\n roles: Collection<WorkOSRole>;\n permissions: Collection<WorkOSPermission>;\n rolePermissions: Collection<WorkOSRolePermission>;\n authorizationResources: Collection<WorkOSAuthorizationResource>;\n roleAssignments: Collection<WorkOSRoleAssignment>;\n directories: Collection<WorkOSDirectory>;\n directoryUsers: Collection<WorkOSDirectoryUser>;\n directoryGroups: Collection<WorkOSDirectoryGroup>;\n auditLogActions: Collection<WorkOSAuditLogAction>;\n auditLogEvents: Collection<WorkOSAuditLogEvent>;\n auditLogExports: Collection<WorkOSAuditLogExport>;\n featureFlags: Collection<WorkOSFeatureFlag>;\n flagTargets: Collection<WorkOSFlagTarget>;\n connectApplications: Collection<WorkOSConnectApplication>;\n clientSecrets: Collection<WorkOSClientSecret>;\n dataIntegrationAuths: Collection<WorkOSDataIntegrationAuth>;\n radarAttempts: Collection<WorkOSRadarAttempt>;\n apiKeyRecords: Collection<WorkOSApiKey>;\n events: Collection<WorkOSEvent>;\n webhookEndpoints: Collection<WorkOSWebhookEndpoint>;\n}\n\nexport function getWorkOSStore(store: Store): WorkOSStore {\n const cached = store.getData<WorkOSStore>(STORE_KEYS.workosStore);\n if (cached) return cached;\n\n const ws: WorkOSStore = {\n organizations: store.collection<WorkOSOrganization>('workos.organizations', ID_PREFIXES.organization, [\n 'name',\n 'external_id',\n ]),\n organizationDomains: store.collection<WorkOSOrganizationDomain>(\n 'workos.organization_domains',\n ID_PREFIXES.organization_domain,\n ['organization_id', 'domain'],\n ),\n organizationMemberships: store.collection<WorkOSOrganizationMembership>(\n 'workos.organization_memberships',\n ID_PREFIXES.organization_membership,\n ['organization_id', 'user_id'],\n ),\n users: store.collection<WorkOSUser>('workos.users', ID_PREFIXES.user, ['email', 'external_id']),\n sessions: store.collection<WorkOSSession>('workos.sessions', ID_PREFIXES.session, ['user_id']),\n emailVerifications: store.collection<WorkOSEmailVerification>(\n 'workos.email_verifications',\n ID_PREFIXES.email_verification,\n ['user_id'],\n ),\n passwordResets: store.collection<WorkOSPasswordReset>('workos.password_resets', ID_PREFIXES.password_reset, [\n 'user_id',\n ]),\n magicAuths: store.collection<WorkOSMagicAuth>('workos.magic_auths', ID_PREFIXES.magic_auth, ['user_id']),\n authFactors: store.collection<WorkOSAuthenticationFactor>(\n 'workos.auth_factors',\n ID_PREFIXES.authentication_factor,\n ['user_id'],\n ),\n authCodes: store.collection<WorkOSAuthorizationCode>('workos.auth_codes', ID_PREFIXES.authorization_code, [\n 'user_id',\n 'code',\n ]),\n identities: store.collection<WorkOSIdentity>('workos.identities', ID_PREFIXES.identity, ['user_id']),\n connections: store.collection<WorkOSConnection>('workos.connections', ID_PREFIXES.connection, ['organization_id']),\n ssoProfiles: store.collection<WorkOSSSOProfile>('workos.sso_profiles', ID_PREFIXES.profile, [\n 'connection_id',\n 'email',\n ]),\n ssoAuthorizations: store.collection<WorkOSSSOAuthorization>(\n 'workos.sso_authorizations',\n ID_PREFIXES.sso_authorization,\n ['code'],\n ),\n pipeConnections: store.collection<WorkOSPipeConnection>('workos.pipe_connections', ID_PREFIXES.pipe_connection, [\n 'user_id',\n 'provider',\n ]),\n refreshTokens: store.collection<WorkOSRefreshToken>('workos.refresh_tokens', ID_PREFIXES.refresh_token, [\n 'token',\n 'user_id',\n 'session_id',\n ]),\n authChallenges: store.collection<WorkOSAuthenticationChallenge>(\n 'workos.auth_challenges',\n ID_PREFIXES.authentication_challenge,\n ['user_id', 'factor_id'],\n ),\n deviceAuthorizations: store.collection<WorkOSDeviceAuthorization>(\n 'workos.device_authorizations',\n ID_PREFIXES.device_authorization,\n ['device_code', 'user_code'],\n ),\n invitations: store.collection<WorkOSInvitation>('workos.invitations', ID_PREFIXES.invitation, [\n 'email',\n 'token',\n 'organization_id',\n ]),\n redirectUris: store.collection<WorkOSRedirectUri>('workos.redirect_uris', ID_PREFIXES.redirect_uri, ['uri']),\n corsOrigins: store.collection<WorkOSCorsOrigin>('workos.cors_origins', ID_PREFIXES.cors_origin, ['origin']),\n authorizedApplications: store.collection<WorkOSAuthorizedApplication>(\n 'workos.authorized_applications',\n ID_PREFIXES.authorized_application,\n ['user_id'],\n ),\n connectedAccounts: store.collection<WorkOSConnectedAccount>(\n 'workos.connected_accounts',\n ID_PREFIXES.connected_account,\n ['user_id', 'provider'],\n ),\n roles: store.collection<WorkOSRole>('workos.roles', ID_PREFIXES.role, ['slug', 'organization_id']),\n permissions: store.collection<WorkOSPermission>('workos.permissions', ID_PREFIXES.permission, ['slug']),\n rolePermissions: store.collection<WorkOSRolePermission>('workos.role_permissions', ID_PREFIXES.role_permission, [\n 'role_id',\n 'permission_id',\n ]),\n authorizationResources: store.collection<WorkOSAuthorizationResource>(\n 'workos.authorization_resources',\n ID_PREFIXES.authorization_resource,\n ['organization_id', 'resource_type_slug'],\n ),\n roleAssignments: store.collection<WorkOSRoleAssignment>('workos.role_assignments', ID_PREFIXES.role_assignment, [\n 'organization_membership_id',\n 'role_id',\n ]),\n directories: store.collection<WorkOSDirectory>('workos.directories', ID_PREFIXES.directory, ['organization_id']),\n directoryUsers: store.collection<WorkOSDirectoryUser>('workos.directory_users', ID_PREFIXES.directory_user, [\n 'directory_id',\n 'organization_id',\n ]),\n directoryGroups: store.collection<WorkOSDirectoryGroup>('workos.directory_groups', ID_PREFIXES.directory_group, [\n 'directory_id',\n 'organization_id',\n ]),\n auditLogActions: store.collection<WorkOSAuditLogAction>('workos.audit_log_actions', ID_PREFIXES.audit_log_action, [\n 'name',\n ]),\n auditLogEvents: store.collection<WorkOSAuditLogEvent>('workos.audit_log_events', ID_PREFIXES.audit_log_event, [\n 'organization_id',\n ]),\n auditLogExports: store.collection<WorkOSAuditLogExport>('workos.audit_log_exports', ID_PREFIXES.audit_log_export, [\n 'organization_id',\n ]),\n featureFlags: store.collection<WorkOSFeatureFlag>('workos.feature_flags', ID_PREFIXES.feature_flag, ['slug']),\n flagTargets: store.collection<WorkOSFlagTarget>('workos.flag_targets', ID_PREFIXES.flag_target, [\n 'flag_slug',\n 'resource_id',\n ]),\n connectApplications: store.collection<WorkOSConnectApplication>(\n 'workos.connect_applications',\n ID_PREFIXES.connect_application,\n ['client_id'],\n ),\n clientSecrets: store.collection<WorkOSClientSecret>('workos.client_secrets', ID_PREFIXES.client_secret, [\n 'application_id',\n ]),\n dataIntegrationAuths: store.collection<WorkOSDataIntegrationAuth>(\n 'workos.data_integration_auths',\n ID_PREFIXES.data_integration_auth,\n ['code', 'slug'],\n ),\n radarAttempts: store.collection<WorkOSRadarAttempt>('workos.radar_attempts', ID_PREFIXES.radar_attempt, [\n 'ip_address',\n ]),\n apiKeyRecords: store.collection<WorkOSApiKey>('workos.api_keys', ID_PREFIXES.api_key, ['key', 'environment']),\n events: store.collection<WorkOSEvent>('workos.events', ID_PREFIXES.event, ['event']),\n webhookEndpoints: store.collection<WorkOSWebhookEndpoint>(\n 'workos.webhook_endpoints',\n ID_PREFIXES.webhook_endpoint,\n ['url'],\n ),\n };\n\n store.setData(STORE_KEYS.workosStore, ws);\n return ws;\n}\n"]}
@@ -268,9 +268,6 @@ export async function runWithCore(options) {
268
268
  runDeviceAuth: fromPromise(async ({ input }) => {
269
269
  const clientId = getCliAuthClientId();
270
270
  const authkitDomain = getAuthkitDomain();
271
- if (!clientId) {
272
- throw new Error('CLI auth not configured. Set WORKOS_CLI_CLIENT_ID environment variable.');
273
- }
274
271
  const deviceAuth = await requestDeviceCode({
275
272
  clientId,
276
273
  authkitDomain,
@@ -1 +1 @@
1
- {"version":3,"file":"run-with-core.js","sourceRoot":"","sources":["../../src/lib/run-with-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAStE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,uBAAuB,IAAI,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,IAAI,eAAe,EAC/B,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,IAAI,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EACL,qBAAqB,IAAI,uBAAuB,EAChD,qBAAqB,IAAI,uBAAuB,GACjD,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,KAAK,UAAU,yBAAyB,CAAC,WAAwB,EAAE,OAAyB;IAC1F,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,cAAc,IAAI,SAAS;YAC3C,QAAQ,EAAE,OAAO,CAAC,gBAAgB,IAAI,SAAS;SAChD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,OAA6C;IAC9E,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;IAE1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,oFAAoF;QACpF,iEAAiE;QACjE,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CACpC,WAAmB,EACnB,OAA6C;IAE7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACtE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACzE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAE1B,0CAA0C;IAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAErD,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAClD,KAAK,gBAAgB;gBACnB,OAAO,mBAAmB,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;YACnE,KAAK,cAAc;gBACjB,OAAO,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAC1D,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBACzD,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBACxE,MAAM,WAAW,GAAG,mBAAmB,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBAC9E,MAAM,YAAY,GAAG,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBACvE,OAAO,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC;YAClF,CAAC;YACD,KAAK,WAAW;gBACd,OAAO,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YAC3D,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,UAAU,GAAG,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC/D,MAAM,WAAW,GACf,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC;oBACxC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC;oBACjD,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC;oBACzC,mBAAmB,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;gBAC5D,OAAO,UAAU,IAAI,CAAC,WAAW,CAAC;YACpC,CAAC;YACD,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,CAAC,WAAW;YAC1B;gBACE,sDAAsD;gBACtD,OAAO,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAyB;IACzD,4DAA4D;IAC5D,WAAW,EAAE,CAAC;IACd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,eAAe,EAAE,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,+BAA+B,EAAE;QACvC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IAEH,yDAAyD;IACzD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;IAC9C,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAqB;QACzC,GAAG,OAAO;QACV,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM;QAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;KACrD,CAAC;IAEF,MAAM,OAAO,GAAG,2BAA2B,EAAE,CAAC;IAC9C,IAAI,KAAK,GAAmE,IAAI,CAAC;IAEjF,MAAM,SAAS,GAAG,CAAC,KAA+C,EAAE,EAAE;QACpE,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,KAAyC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAyB,CAAC;IAC9B,IAAI,2BAA2B,EAAE,EAAE,CAAC;QAClC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,eAAe,CAAC;YAC5B,OAAO;YACP,SAAS;YACT,KAAK,EAAE,gBAAgB,CAAC,KAAK;YAC7B,OAAO,EAAE;gBACP,MAAM,EAAE,gBAAgB,CAAC,MAAM;gBAC/B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;gBACnC,UAAU,EAAE,gBAAgB,CAAC,UAAU;aACxC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,GAAG,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACjD,MAAM,EAAE;YACN,mBAAmB,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC1C,gFAAgF;gBAChF,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;gBACzC,IAAI,SAAS,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;oBAC7C,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,4DAA4D;oBAC5D,gDAAgD;oBAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBACvE,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC/B,IAAI,KAAK,EAAE,CAAC;oBACV,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBAC5C,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YAEF,iBAAiB,EAAE,WAAW,CAAiD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACjG,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;gBACxF,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,CAAC,CAAC;YAEF,cAAc,EAAE,WAAW,CAAyC,KAAK,IAAI,EAAE;gBAC7E,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACtC,CAAC;gBACD,MAAM,KAAK,GAAG,8BAA8B,EAAE,CAAC;gBAC/C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;YAChD,CAAC,CAAC;YAEF,oBAAoB,EAAE,WAAW,CAA6C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAChG,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;gBAC1B,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;gBAExE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACxD,CAAC;gBAED,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBAClE,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;gBAClD,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,IAAI,oBAAoB,IAAI,GAAG,YAAY,EAAE,CAAC;gBAE9F,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAC1F,IAAI,WAAW,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;oBACzC,MAAM,8BAA8B,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;wBAC1E,WAAW,EAAE,gBAAgB,CAAC,WAAW;wBACzC,WAAW,EAAE,gBAAgB,CAAC,WAAW;qBAC1C,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,cAAc,GAAG,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAE5G,aAAa,CAAC,gBAAgB,CAAC,UAAU,EAAE;oBACzC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrE,gBAAgB,EAAE,WAAW,CAAC,QAAQ;oBACtC,CAAC,cAAc,CAAC,EAAE,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,QAAQ,EAAE,WAAW,CAAoD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3F,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;gBAC1B,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;gBAExE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAC1E,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,YAAY,GAAqB;wBACrC,GAAG,gBAAgB;wBACnB,MAAM,EAAE,WAAW,EAAE,MAAM;wBAC3B,QAAQ,EAAE,WAAW,EAAE,QAAQ;wBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC;oBACF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC3E,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,OAAO,IAAI,6CAA6C,WAAW,GAAG;qBAChF,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBACjE,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;YAEF,8BAA8B;YAC9B,cAAc,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9C,OAAO,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC,CAAC;YAEF,YAAY,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC5C,OAAO,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/C,CAAC,CAAC;YAEF,eAAe,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBACtC,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC/B,OAAO,KAAK,KAAK,IAAI,CAAC;YACxB,CAAC,CAAC;YAEF,aAAa,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC7C,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;gBAC7F,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC;oBACzC,QAAQ;oBACR,aAAa;iBACd,CAAC,CAAC;gBAEH,mDAAmD;gBACnD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBACnC,eAAe,EAAE,UAAU,CAAC,gBAAgB;oBAC5C,uBAAuB,EAAE,UAAU,CAAC,yBAAyB;oBAC7D,QAAQ,EAAE,UAAU,CAAC,SAAS;iBAC/B,CAAC,CAAC;gBAEH,eAAe;gBACf,IAAI,CAAC;oBACH,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChD,MAAM,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;gBACrD,CAAC;gBAAC,MAAM,CAAC;oBACP,yBAAyB;gBAC3B,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,WAAW,EAAE;oBACxD,QAAQ;oBACR,aAAa;oBACb,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;iBACvD,CAAC,CAAC;gBAEH,sBAAsB;gBACtB,eAAe,CAAC;oBACd,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;gBAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YAChC,CAAC,CAAC;YAEF,uBAAuB,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC9C,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;gBACzC,IAAI,SAAS,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;oBAC7C,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC;gBACpE,CAAC;gBAED,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAC;gBACvC,IAAI,MAAM;oBAAE,OAAO,MAAM,CAAC;gBAE1B,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAEzD,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,CAAC;gBACxD,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBAEhC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;oBACnD,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;wBACpC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;4BAC/B,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;4BACtE,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;yBAC3B,CAAC;wBACF,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;4BAC9B,MAAM,CAAC,iBAAiB,GAAG,SAAS,CAAC;wBACvC,CAAC;wBACD,UAAU,CAAC,MAAM,CAAC,CAAC;oBACrB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;gBAED,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;YAEF,sBAAsB;YACtB,WAAW,EAAE,WAAW,CAA0B,KAAK,IAAI,EAAE;gBAC3D,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;gBAC9C,CAAC;gBACD,OAAO;oBACL,MAAM;oBACN,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC;iBACvC,CAAC;YACJ,CAAC,CAAC;YAEF,YAAY,EAAE,WAAW,CAA6D,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACxG,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;gBACrC,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC9D,eAAe,CAAC,YAAY,CAAC,CAAC;gBAC9B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAClC,CAAC,CAAC;YAEF,sBAAsB;YACtB,aAAa,EAAE,WAAW,CAAiD,KAAK,IAAI,EAAE;gBACpF,OAAO,aAAa,EAAE,CAAC;YACzB,CAAC,CAAC;YAEF,qBAAqB,EAAE,WAAW,CAChC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAClB,OAAO,uBAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3F,CAAC,CACF;YAED,aAAa,EAAE,WAAW,CAAyC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACrF,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,CAAC,CAAC;YAEF,qBAAqB,EAAE,WAAW,CAGhC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpB,OAAO,uBAAuB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAChH,CAAC,CAAC;YAEF,UAAU,EAAE,WAAW,CAAwB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACjE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC;YAEF,QAAQ,EAAE,WAAW,CAAuD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC9F,OAAO,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC,CAAC;SACH;KACF,CAAC,CAAC;IAEH,8DAA8D;IAC9D,IAAI,SAAuC,CAAC;IAC5C,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;QAChC,IAAI,UAA8B,CAAC;QAEnC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,UAAU,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAC7E,UAAU,GAAG,GAAG,CAAC;gBACjB,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;gBACvD,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC;QAEF,yDAAyD;QACzD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAClE,SAAS,GAAG,kBAAkB,EAAE,CAAC;QACjC,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAC5B,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,GAAG,WAAW,CAAC,iBAAiB,EAAE;QACrC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE;QAC7C,OAAO,EAAE,SAAS,EAAE,OAAO;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,0BAA0B;IAC1B,MAAM,IAAI,GAAG,2BAA2B,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACrG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAE3C,IAAI,eAAe,GAAsC,SAAS,CAAC;IAEnE,yEAAyE;IACzE,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,eAAe,GAAG,WAAW,CAAC;QAC9B,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,KAAM,CAAC,SAAS,CAAC;gBACf,QAAQ,EAAE,GAAG,EAAE;oBACb,MAAM,QAAQ,GAAG,KAAM,CAAC,WAAW,EAAE,CAAC;oBACtC,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;wBAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;wBACnC,eAAe,GAAG,OAAO,CAAC;wBAC1B,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;oBAC5C,CAAC;yBAAM,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;wBAC1C,eAAe,GAAG,WAAW,CAAC;wBAC9B,OAAO,EAAE,CAAC;oBACZ,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC;gBACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACb,eAAe,GAAG,OAAO,CAAC;oBAC1B,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;aACF,CAAC,CAAC;YAEH,KAAM,CAAC,KAAK,EAAE,CAAC;YACf,KAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,GAAG,OAAO,CAAC;QAC1B,QAAQ,CAAC,2BAA2B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7G,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpC,MAAM,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC1C,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;AACH,CAAC","sourcesContent":["import { createActor, fromPromise } from 'xstate';\nimport open from 'opn';\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { installerMachine } from './installer-core.js';\nimport { createInstallerEventEmitter } from './events.js';\nimport { CLIAdapter } from './adapters/cli-adapter.js';\nimport { DashboardAdapter } from './adapters/dashboard-adapter.js';\nimport type { InstallerAdapter } from './adapters/types.js';\nimport type { InstallerOptions } from '../utils/types.js';\nimport { isNonInteractiveEnvironment } from '../utils/environment.js';\nimport type {\n InstallerMachineContext,\n DetectionOutput,\n GitCheckOutput,\n AgentOutput,\n BranchCheckOutput,\n} from './installer-core.types.js';\nimport type { Integration } from './constants.js';\nimport { parseEnvFile } from '../utils/env-parser.js';\nimport { enableDebugLogs, initLogFile, logInfo, logError } from '../utils/debug.js';\n\nimport {\n getAccessToken,\n getCredentials,\n saveCredentials,\n getStagingCredentials,\n saveStagingCredentials,\n} from './credentials.js';\nimport { getConfig, saveConfig, getActiveEnvironment } from './config-store.js';\nimport { checkForEnvFiles, discoverCredentials } from './credential-discovery.js';\nimport { requestDeviceCode, pollForToken } from './device-auth.js';\nimport { fetchStagingCredentials as fetchStagingCredentialsApi } from './staging-api.js';\nimport { getCliAuthClientId, getAuthkitDomain } from './settings.js';\nimport { analytics } from '../utils/analytics.js';\nimport { getVersion } from './settings.js';\nimport { getLlmGatewayUrlFromHost } from '../utils/urls.js';\nimport { isInGitRepo, getUncommittedOrUntrackedFiles } from '../utils/clack-utils.js';\nimport {\n getCurrentBranch,\n isProtectedBranch,\n createBranch as createGitBranch,\n branchExists,\n} from '../utils/git-utils.js';\nimport { detectChanges, stageAndCommit, pushBranch as pushGitBranch, createPullRequest } from './post-install.js';\nimport {\n generateCommitMessage as generateCommitMessageAi,\n generatePrDescription as generatePrDescriptionAi,\n} from './ai-content.js';\nimport { autoConfigureWorkOSEnvironment } from './workos-management.js';\nimport { detectPort, getCallbackPath } from './port-detection.js';\nimport { writeEnvLocal } from './env-writer.js';\nimport { getRegistry } from './registry.js';\n\nasync function runIntegrationInstallerFn(integration: Integration, options: InstallerOptions): Promise<string> {\n const registry = await getRegistry();\n const mod = registry.get(integration);\n if (!mod) {\n throw new Error(`Unknown integration: ${integration}`);\n }\n return mod.run(options);\n}\n\nfunction readExistingCredentials(installDir: string): { apiKey?: string; clientId?: string } {\n const envPath = join(installDir, '.env.local');\n if (!existsSync(envPath)) {\n return {};\n }\n\n try {\n const content = readFileSync(envPath, 'utf-8');\n const envVars = parseEnvFile(content);\n return {\n apiKey: envVars.WORKOS_API_KEY || undefined,\n clientId: envVars.WORKOS_CLIENT_ID || undefined,\n };\n } catch {\n return {};\n }\n}\n\nasync function detectIntegrationFn(options: Pick<InstallerOptions, 'installDir'>): Promise<Integration | undefined> {\n const registry = await getRegistry();\n const configs = registry.detectionOrder();\n\n for (const config of configs) {\n // Use the detect function from INTEGRATION_CONFIG in config.ts for JS integrations,\n // or fall back to checking if the framework package is installed\n const detected = await detectSingleIntegration(config.metadata.integration, options);\n if (detected) {\n return config.metadata.integration;\n }\n }\n return undefined;\n}\n\n/**\n * Detect if a single integration matches the project.\n * Uses package.json detection for JS integrations, manifest files for others.\n */\nasync function detectSingleIntegration(\n integration: string,\n options: Pick<InstallerOptions, 'installDir'>,\n): Promise<boolean> {\n const { getPackageDotJson } = await import('../utils/clack-utils.js');\n const { hasPackageInstalled } = await import('../utils/package-json.js');\n const { existsSync } = await import('node:fs');\n const { join } = await import('node:path');\n\n const registry = await getRegistry();\n const mod = registry.get(integration);\n if (!mod) return false;\n\n const config = mod.config;\n\n // For JS integrations, check package.json\n if (config.metadata.language === 'javascript') {\n const packageJson = await getPackageDotJson(options);\n\n switch (integration) {\n case 'nextjs':\n return hasPackageInstalled('next', packageJson);\n case 'tanstack-start':\n return hasPackageInstalled('@tanstack/react-start', packageJson);\n case 'react-router':\n return hasPackageInstalled('react-router', packageJson);\n case 'react': {\n const hasReact = hasPackageInstalled('react', packageJson);\n const hasNext = hasPackageInstalled('next', packageJson);\n const hasReactRouter = hasPackageInstalled('react-router', packageJson);\n const hasTanstack = hasPackageInstalled('@tanstack/react-start', packageJson);\n const hasSvelteKit = hasPackageInstalled('@sveltejs/kit', packageJson);\n return hasReact && !hasNext && !hasReactRouter && !hasTanstack && !hasSvelteKit;\n }\n case 'sveltekit':\n return hasPackageInstalled('@sveltejs/kit', packageJson);\n case 'node': {\n const hasExpress = hasPackageInstalled('express', packageJson);\n const hasFrontend =\n hasPackageInstalled('next', packageJson) ||\n hasPackageInstalled('@sveltejs/kit', packageJson) ||\n hasPackageInstalled('react', packageJson) ||\n hasPackageInstalled('@tanstack/react-start', packageJson);\n return hasExpress && !hasFrontend;\n }\n case 'vanilla-js':\n return true; // Fallback\n default:\n // Unknown JS integration — try package name detection\n return hasPackageInstalled(config.detection.packageName, packageJson);\n }\n }\n\n // For non-JS integrations, check manifest files\n if (config.metadata.manifestFile) {\n return existsSync(join(options.installDir, config.metadata.manifestFile));\n }\n\n return false;\n}\n\nexport async function runWithCore(options: InstallerOptions): Promise<void> {\n // Initialize debug/logging early so we capture all failures\n initLogFile();\n if (options.debug) {\n enableDebugLogs();\n }\n logInfo('Wizard starting with options:', {\n debug: options.debug,\n dashboard: options.dashboard,\n local: options.local,\n ci: options.ci,\n skipAuth: options.skipAuth,\n installDir: options.installDir,\n });\n\n // Configure telemetry endpoint (same URL as LLM gateway)\n const gatewayUrl = getLlmGatewayUrlFromHost();\n analytics.setGatewayUrl(gatewayUrl);\n\n const existingCreds = readExistingCredentials(options.installDir);\n const augmentedOptions: InstallerOptions = {\n ...options,\n apiKey: options.apiKey || existingCreds.apiKey,\n clientId: options.clientId || existingCreds.clientId,\n };\n\n const emitter = createInstallerEventEmitter();\n let actor: ReturnType<typeof createActor<typeof installerMachine>> | null = null;\n\n const sendEvent = (event: { type: string; [key: string]: unknown }) => {\n if (actor) {\n actor.send(event as Parameters<typeof actor.send>[0]);\n }\n };\n\n let adapter: InstallerAdapter;\n if (isNonInteractiveEnvironment()) {\n const { HeadlessAdapter } = await import('./adapters/headless-adapter.js');\n adapter = new HeadlessAdapter({\n emitter,\n sendEvent,\n debug: augmentedOptions.debug,\n options: {\n apiKey: augmentedOptions.apiKey,\n clientId: augmentedOptions.clientId,\n noBranch: augmentedOptions.noBranch,\n noCommit: augmentedOptions.noCommit,\n createPr: augmentedOptions.createPr,\n noGitCheck: augmentedOptions.noGitCheck,\n },\n });\n } else if (options.dashboard) {\n adapter = new DashboardAdapter({ emitter, sendEvent, debug: augmentedOptions.debug });\n } else {\n adapter = new CLIAdapter({ emitter, sendEvent, debug: augmentedOptions.debug });\n }\n\n const machineWithActors = installerMachine.provide({\n actors: {\n checkAuthentication: fromPromise(async () => {\n // Check for active environment with credentials (covers unclaimed environments)\n const activeEnv = getActiveEnvironment();\n if (activeEnv?.clientId && activeEnv?.apiKey) {\n return true;\n }\n\n const token = getAccessToken();\n if (!token) {\n // This should rarely happen since bin.ts handles auth first\n // But keep as safety net for programmatic usage\n throw new Error('Not authenticated. Run `workos auth login` first.');\n }\n\n // Set telemetry from existing credentials\n const creds = getCredentials();\n if (creds) {\n analytics.setAccessToken(creds.accessToken);\n analytics.setDistinctId(creds.userId);\n }\n return true;\n }),\n\n detectIntegration: fromPromise<DetectionOutput, { options: InstallerOptions }>(async ({ input }) => {\n const integration = await detectIntegrationFn({ installDir: input.options.installDir });\n return { integration };\n }),\n\n checkGitStatus: fromPromise<GitCheckOutput, { installDir: string }>(async () => {\n if (!isInGitRepo()) {\n return { isClean: true, files: [] };\n }\n const files = getUncommittedOrUntrackedFiles();\n return { isClean: files.length === 0, files };\n }),\n\n configureEnvironment: fromPromise<void, { context: InstallerMachineContext }>(async ({ input }) => {\n const { context } = input;\n const { options: installerOptions, integration, credentials } = context;\n\n if (!integration || !credentials) {\n throw new Error('Missing integration or credentials');\n }\n\n const port = detectPort(integration, installerOptions.installDir);\n const callbackPath = getCallbackPath(integration);\n const redirectUri = installerOptions.redirectUri || `http://localhost:${port}${callbackPath}`;\n\n const requiresApiKey = ['nextjs', 'tanstack-start', 'react-router'].includes(integration);\n if (credentials.apiKey && requiresApiKey) {\n await autoConfigureWorkOSEnvironment(credentials.apiKey, integration, port, {\n homepageUrl: installerOptions.homepageUrl,\n redirectUri: installerOptions.redirectUri,\n });\n }\n\n const redirectUriKey = integration === 'nextjs' ? 'NEXT_PUBLIC_WORKOS_REDIRECT_URI' : 'WORKOS_REDIRECT_URI';\n\n writeEnvLocal(installerOptions.installDir, {\n ...(credentials.apiKey ? { WORKOS_API_KEY: credentials.apiKey } : {}),\n WORKOS_CLIENT_ID: credentials.clientId,\n [redirectUriKey]: redirectUri,\n });\n }),\n\n runAgent: fromPromise<AgentOutput, { context: InstallerMachineContext }>(async ({ input }) => {\n const { context } = input;\n const { options: installerOptions, integration, credentials } = context;\n\n if (!integration) {\n return { success: false, error: new Error('No integration specified') };\n }\n\n try {\n const agentOptions: InstallerOptions = {\n ...installerOptions,\n apiKey: credentials?.apiKey,\n clientId: credentials?.clientId,\n emitter: context.emitter,\n };\n const summary = await runIntegrationInstallerFn(integration, agentOptions);\n return {\n success: true,\n summary: summary || `Successfully installed WorkOS AuthKit for ${integration}!`,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n }),\n\n // Credential discovery actors\n detectEnvFiles: fromPromise(async ({ input }) => {\n return checkForEnvFiles(input.installDir);\n }),\n\n scanEnvFiles: fromPromise(async ({ input }) => {\n return discoverCredentials(input.installDir);\n }),\n\n checkStoredAuth: fromPromise(async () => {\n const token = getAccessToken();\n return token !== null;\n }),\n\n runDeviceAuth: fromPromise(async ({ input }) => {\n const clientId = getCliAuthClientId();\n const authkitDomain = getAuthkitDomain();\n\n if (!clientId) {\n throw new Error('CLI auth not configured. Set WORKOS_CLI_CLIENT_ID environment variable.');\n }\n\n const deviceAuth = await requestDeviceCode({\n clientId,\n authkitDomain,\n });\n\n // Emit device started event with verification info\n input.emitter.emit('device:started', {\n verificationUri: deviceAuth.verification_uri,\n verificationUriComplete: deviceAuth.verification_uri_complete,\n userCode: deviceAuth.user_code,\n });\n\n // Open browser\n try {\n const { default: openFn } = await import('opn');\n await openFn(deviceAuth.verification_uri_complete);\n } catch {\n // User can open manually\n }\n\n const result = await pollForToken(deviceAuth.device_code, {\n clientId,\n authkitDomain,\n interval: deviceAuth.interval,\n onPoll: () => input.emitter.emit('device:polling', {}),\n });\n\n // Save the auth token\n saveCredentials({\n accessToken: result.accessToken,\n expiresAt: result.expiresAt,\n userId: result.userId,\n email: result.email,\n });\n\n return { result, deviceAuth };\n }),\n\n fetchStagingCredentials: fromPromise(async () => {\n const activeEnv = getActiveEnvironment();\n if (activeEnv?.clientId && activeEnv?.apiKey) {\n return { clientId: activeEnv.clientId, apiKey: activeEnv.apiKey };\n }\n\n const cached = getStagingCredentials();\n if (cached) return cached;\n\n const token = getAccessToken();\n if (!token) throw new Error('No access token available');\n\n const staging = await fetchStagingCredentialsApi(token);\n saveStagingCredentials(staging);\n\n try {\n const config = getConfig() ?? { environments: {} };\n if (!config.environments['default']) {\n config.environments['default'] = {\n name: 'default',\n type: staging.apiKey.startsWith('sk_test_') ? 'sandbox' : 'production',\n apiKey: staging.apiKey,\n clientId: staging.clientId,\n };\n if (!config.activeEnvironment) {\n config.activeEnvironment = 'default';\n }\n saveConfig(config);\n }\n } catch {\n // Don't block install if config-store write fails\n }\n\n return staging;\n }),\n\n // Branch check actors\n checkBranch: fromPromise<BranchCheckOutput, void>(async () => {\n const branch = getCurrentBranch();\n if (!branch) {\n return { branch: null, isProtected: false };\n }\n return {\n branch,\n isProtected: isProtectedBranch(branch),\n };\n }),\n\n createBranch: fromPromise<{ branch: string }, { name: string; fallbackName: string }>(async ({ input }) => {\n const { name, fallbackName } = input;\n const targetBranch = branchExists(name) ? fallbackName : name;\n createGitBranch(targetBranch);\n return { branch: targetBranch };\n }),\n\n // Post-install actors\n detectChanges: fromPromise<{ hasChanges: boolean; files: string[] }, void>(async () => {\n return detectChanges();\n }),\n\n generateCommitMessage: fromPromise<string, { integration: string; files: string[]; direct?: boolean }>(\n async ({ input }) => {\n return generateCommitMessageAi(input.integration, input.files, { direct: input.direct });\n },\n ),\n\n commitChanges: fromPromise<void, { message: string; cwd: string }>(async ({ input }) => {\n stageAndCommit(input.message, input.cwd);\n }),\n\n generatePrDescription: fromPromise<\n string,\n { integration: string; files: string[]; commitMessage: string; direct?: boolean }\n >(async ({ input }) => {\n return generatePrDescriptionAi(input.integration, input.files, input.commitMessage, { direct: input.direct });\n }),\n\n pushBranch: fromPromise<void, { cwd: string }>(async ({ input }) => {\n pushGitBranch(input.cwd);\n }),\n\n createPr: fromPromise<string, { title: string; body: string; cwd: string }>(async ({ input }) => {\n return createPullRequest(input.title, input.body, input.cwd);\n }),\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let inspector: { inspect: any } | undefined;\n if (augmentedOptions.inspect) {\n const originalLog = console.log;\n let inspectUrl: string | undefined;\n\n console.log = (...args: unknown[]) => {\n const msg = args.join(' ');\n if (typeof msg === 'string' && msg.startsWith('https://stately.ai/inspect/')) {\n inspectUrl = msg;\n console.log = originalLog;\n console.log(`Opening XState inspector: ${inspectUrl}`);\n void open(inspectUrl);\n } else {\n originalLog.apply(console, args);\n }\n };\n\n // Dynamic import - @statelyai/inspect is a devDependency\n const { createSkyInspector } = await import('@statelyai/inspect');\n inspector = createSkyInspector();\n setTimeout(() => {\n console.log = originalLog;\n }, 5000).unref();\n }\n\n actor = createActor(machineWithActors, {\n input: { emitter, options: augmentedOptions },\n inspect: inspector?.inspect,\n });\n\n await adapter.start();\n\n // Start telemetry session\n const mode = isNonInteractiveEnvironment() ? 'headless' : augmentedOptions.dashboard ? 'tui' : 'cli';\n analytics.sessionStart(mode, getVersion());\n\n let installerStatus: 'success' | 'error' | 'cancelled' = 'success';\n\n // Handle ctrl+c by sending CANCEL to state machine for graceful shutdown\n const handleSigint = () => {\n installerStatus = 'cancelled';\n actor?.send({ type: 'CANCEL' });\n };\n process.on('SIGINT', handleSigint);\n\n try {\n await new Promise<void>((resolve, reject) => {\n actor!.subscribe({\n complete: () => {\n const snapshot = actor!.getSnapshot();\n if (snapshot.value === 'error') {\n const err = snapshot.context.error;\n installerStatus = 'error';\n reject(err ?? new Error('Wizard failed'));\n } else if (snapshot.value === 'cancelled') {\n installerStatus = 'cancelled';\n resolve();\n } else {\n resolve();\n }\n },\n error: (err) => {\n installerStatus = 'error';\n reject(err);\n },\n });\n\n actor!.start();\n actor!.send({ type: 'START' });\n });\n } catch (error) {\n installerStatus = 'error';\n logError('Wizard failed with error:', error instanceof Error ? error.stack || error.message : String(error));\n throw error;\n } finally {\n process.off('SIGINT', handleSigint);\n await analytics.shutdown(installerStatus);\n await adapter.stop();\n }\n}\n"]}
1
+ {"version":3,"file":"run-with-core.js","sourceRoot":"","sources":["../../src/lib/run-with-core.ts"],"names":[],"mappings":"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","sourcesContent":["import { createActor, fromPromise } from 'xstate';\nimport open from 'opn';\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { installerMachine } from './installer-core.js';\nimport { createInstallerEventEmitter } from './events.js';\nimport { CLIAdapter } from './adapters/cli-adapter.js';\nimport { DashboardAdapter } from './adapters/dashboard-adapter.js';\nimport type { InstallerAdapter } from './adapters/types.js';\nimport type { InstallerOptions } from '../utils/types.js';\nimport { isNonInteractiveEnvironment } from '../utils/environment.js';\nimport type {\n InstallerMachineContext,\n DetectionOutput,\n GitCheckOutput,\n AgentOutput,\n BranchCheckOutput,\n} from './installer-core.types.js';\nimport type { Integration } from './constants.js';\nimport { parseEnvFile } from '../utils/env-parser.js';\nimport { enableDebugLogs, initLogFile, logInfo, logError } from '../utils/debug.js';\n\nimport {\n getAccessToken,\n getCredentials,\n saveCredentials,\n getStagingCredentials,\n saveStagingCredentials,\n} from './credentials.js';\nimport { getConfig, saveConfig, getActiveEnvironment } from './config-store.js';\nimport { checkForEnvFiles, discoverCredentials } from './credential-discovery.js';\nimport { requestDeviceCode, pollForToken } from './device-auth.js';\nimport { fetchStagingCredentials as fetchStagingCredentialsApi } from './staging-api.js';\nimport { getCliAuthClientId, getAuthkitDomain } from './settings.js';\nimport { analytics } from '../utils/analytics.js';\nimport { getVersion } from './settings.js';\nimport { getLlmGatewayUrlFromHost } from '../utils/urls.js';\nimport { isInGitRepo, getUncommittedOrUntrackedFiles } from '../utils/clack-utils.js';\nimport {\n getCurrentBranch,\n isProtectedBranch,\n createBranch as createGitBranch,\n branchExists,\n} from '../utils/git-utils.js';\nimport { detectChanges, stageAndCommit, pushBranch as pushGitBranch, createPullRequest } from './post-install.js';\nimport {\n generateCommitMessage as generateCommitMessageAi,\n generatePrDescription as generatePrDescriptionAi,\n} from './ai-content.js';\nimport { autoConfigureWorkOSEnvironment } from './workos-management.js';\nimport { detectPort, getCallbackPath } from './port-detection.js';\nimport { writeEnvLocal } from './env-writer.js';\nimport { getRegistry } from './registry.js';\n\nasync function runIntegrationInstallerFn(integration: Integration, options: InstallerOptions): Promise<string> {\n const registry = await getRegistry();\n const mod = registry.get(integration);\n if (!mod) {\n throw new Error(`Unknown integration: ${integration}`);\n }\n return mod.run(options);\n}\n\nfunction readExistingCredentials(installDir: string): { apiKey?: string; clientId?: string } {\n const envPath = join(installDir, '.env.local');\n if (!existsSync(envPath)) {\n return {};\n }\n\n try {\n const content = readFileSync(envPath, 'utf-8');\n const envVars = parseEnvFile(content);\n return {\n apiKey: envVars.WORKOS_API_KEY || undefined,\n clientId: envVars.WORKOS_CLIENT_ID || undefined,\n };\n } catch {\n return {};\n }\n}\n\nasync function detectIntegrationFn(options: Pick<InstallerOptions, 'installDir'>): Promise<Integration | undefined> {\n const registry = await getRegistry();\n const configs = registry.detectionOrder();\n\n for (const config of configs) {\n // Use the detect function from INTEGRATION_CONFIG in config.ts for JS integrations,\n // or fall back to checking if the framework package is installed\n const detected = await detectSingleIntegration(config.metadata.integration, options);\n if (detected) {\n return config.metadata.integration;\n }\n }\n return undefined;\n}\n\n/**\n * Detect if a single integration matches the project.\n * Uses package.json detection for JS integrations, manifest files for others.\n */\nasync function detectSingleIntegration(\n integration: string,\n options: Pick<InstallerOptions, 'installDir'>,\n): Promise<boolean> {\n const { getPackageDotJson } = await import('../utils/clack-utils.js');\n const { hasPackageInstalled } = await import('../utils/package-json.js');\n const { existsSync } = await import('node:fs');\n const { join } = await import('node:path');\n\n const registry = await getRegistry();\n const mod = registry.get(integration);\n if (!mod) return false;\n\n const config = mod.config;\n\n // For JS integrations, check package.json\n if (config.metadata.language === 'javascript') {\n const packageJson = await getPackageDotJson(options);\n\n switch (integration) {\n case 'nextjs':\n return hasPackageInstalled('next', packageJson);\n case 'tanstack-start':\n return hasPackageInstalled('@tanstack/react-start', packageJson);\n case 'react-router':\n return hasPackageInstalled('react-router', packageJson);\n case 'react': {\n const hasReact = hasPackageInstalled('react', packageJson);\n const hasNext = hasPackageInstalled('next', packageJson);\n const hasReactRouter = hasPackageInstalled('react-router', packageJson);\n const hasTanstack = hasPackageInstalled('@tanstack/react-start', packageJson);\n const hasSvelteKit = hasPackageInstalled('@sveltejs/kit', packageJson);\n return hasReact && !hasNext && !hasReactRouter && !hasTanstack && !hasSvelteKit;\n }\n case 'sveltekit':\n return hasPackageInstalled('@sveltejs/kit', packageJson);\n case 'node': {\n const hasExpress = hasPackageInstalled('express', packageJson);\n const hasFrontend =\n hasPackageInstalled('next', packageJson) ||\n hasPackageInstalled('@sveltejs/kit', packageJson) ||\n hasPackageInstalled('react', packageJson) ||\n hasPackageInstalled('@tanstack/react-start', packageJson);\n return hasExpress && !hasFrontend;\n }\n case 'vanilla-js':\n return true; // Fallback\n default:\n // Unknown JS integration — try package name detection\n return hasPackageInstalled(config.detection.packageName, packageJson);\n }\n }\n\n // For non-JS integrations, check manifest files\n if (config.metadata.manifestFile) {\n return existsSync(join(options.installDir, config.metadata.manifestFile));\n }\n\n return false;\n}\n\nexport async function runWithCore(options: InstallerOptions): Promise<void> {\n // Initialize debug/logging early so we capture all failures\n initLogFile();\n if (options.debug) {\n enableDebugLogs();\n }\n logInfo('Wizard starting with options:', {\n debug: options.debug,\n dashboard: options.dashboard,\n local: options.local,\n ci: options.ci,\n skipAuth: options.skipAuth,\n installDir: options.installDir,\n });\n\n // Configure telemetry endpoint (same URL as LLM gateway)\n const gatewayUrl = getLlmGatewayUrlFromHost();\n analytics.setGatewayUrl(gatewayUrl);\n\n const existingCreds = readExistingCredentials(options.installDir);\n const augmentedOptions: InstallerOptions = {\n ...options,\n apiKey: options.apiKey || existingCreds.apiKey,\n clientId: options.clientId || existingCreds.clientId,\n };\n\n const emitter = createInstallerEventEmitter();\n let actor: ReturnType<typeof createActor<typeof installerMachine>> | null = null;\n\n const sendEvent = (event: { type: string; [key: string]: unknown }) => {\n if (actor) {\n actor.send(event as Parameters<typeof actor.send>[0]);\n }\n };\n\n let adapter: InstallerAdapter;\n if (isNonInteractiveEnvironment()) {\n const { HeadlessAdapter } = await import('./adapters/headless-adapter.js');\n adapter = new HeadlessAdapter({\n emitter,\n sendEvent,\n debug: augmentedOptions.debug,\n options: {\n apiKey: augmentedOptions.apiKey,\n clientId: augmentedOptions.clientId,\n noBranch: augmentedOptions.noBranch,\n noCommit: augmentedOptions.noCommit,\n createPr: augmentedOptions.createPr,\n noGitCheck: augmentedOptions.noGitCheck,\n },\n });\n } else if (options.dashboard) {\n adapter = new DashboardAdapter({ emitter, sendEvent, debug: augmentedOptions.debug });\n } else {\n adapter = new CLIAdapter({ emitter, sendEvent, debug: augmentedOptions.debug });\n }\n\n const machineWithActors = installerMachine.provide({\n actors: {\n checkAuthentication: fromPromise(async () => {\n // Check for active environment with credentials (covers unclaimed environments)\n const activeEnv = getActiveEnvironment();\n if (activeEnv?.clientId && activeEnv?.apiKey) {\n return true;\n }\n\n const token = getAccessToken();\n if (!token) {\n // This should rarely happen since bin.ts handles auth first\n // But keep as safety net for programmatic usage\n throw new Error('Not authenticated. Run `workos auth login` first.');\n }\n\n // Set telemetry from existing credentials\n const creds = getCredentials();\n if (creds) {\n analytics.setAccessToken(creds.accessToken);\n analytics.setDistinctId(creds.userId);\n }\n return true;\n }),\n\n detectIntegration: fromPromise<DetectionOutput, { options: InstallerOptions }>(async ({ input }) => {\n const integration = await detectIntegrationFn({ installDir: input.options.installDir });\n return { integration };\n }),\n\n checkGitStatus: fromPromise<GitCheckOutput, { installDir: string }>(async () => {\n if (!isInGitRepo()) {\n return { isClean: true, files: [] };\n }\n const files = getUncommittedOrUntrackedFiles();\n return { isClean: files.length === 0, files };\n }),\n\n configureEnvironment: fromPromise<void, { context: InstallerMachineContext }>(async ({ input }) => {\n const { context } = input;\n const { options: installerOptions, integration, credentials } = context;\n\n if (!integration || !credentials) {\n throw new Error('Missing integration or credentials');\n }\n\n const port = detectPort(integration, installerOptions.installDir);\n const callbackPath = getCallbackPath(integration);\n const redirectUri = installerOptions.redirectUri || `http://localhost:${port}${callbackPath}`;\n\n const requiresApiKey = ['nextjs', 'tanstack-start', 'react-router'].includes(integration);\n if (credentials.apiKey && requiresApiKey) {\n await autoConfigureWorkOSEnvironment(credentials.apiKey, integration, port, {\n homepageUrl: installerOptions.homepageUrl,\n redirectUri: installerOptions.redirectUri,\n });\n }\n\n const redirectUriKey = integration === 'nextjs' ? 'NEXT_PUBLIC_WORKOS_REDIRECT_URI' : 'WORKOS_REDIRECT_URI';\n\n writeEnvLocal(installerOptions.installDir, {\n ...(credentials.apiKey ? { WORKOS_API_KEY: credentials.apiKey } : {}),\n WORKOS_CLIENT_ID: credentials.clientId,\n [redirectUriKey]: redirectUri,\n });\n }),\n\n runAgent: fromPromise<AgentOutput, { context: InstallerMachineContext }>(async ({ input }) => {\n const { context } = input;\n const { options: installerOptions, integration, credentials } = context;\n\n if (!integration) {\n return { success: false, error: new Error('No integration specified') };\n }\n\n try {\n const agentOptions: InstallerOptions = {\n ...installerOptions,\n apiKey: credentials?.apiKey,\n clientId: credentials?.clientId,\n emitter: context.emitter,\n };\n const summary = await runIntegrationInstallerFn(integration, agentOptions);\n return {\n success: true,\n summary: summary || `Successfully installed WorkOS AuthKit for ${integration}!`,\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n }),\n\n // Credential discovery actors\n detectEnvFiles: fromPromise(async ({ input }) => {\n return checkForEnvFiles(input.installDir);\n }),\n\n scanEnvFiles: fromPromise(async ({ input }) => {\n return discoverCredentials(input.installDir);\n }),\n\n checkStoredAuth: fromPromise(async () => {\n const token = getAccessToken();\n return token !== null;\n }),\n\n runDeviceAuth: fromPromise(async ({ input }) => {\n const clientId = getCliAuthClientId();\n const authkitDomain = getAuthkitDomain();\n\n const deviceAuth = await requestDeviceCode({\n clientId,\n authkitDomain,\n });\n\n // Emit device started event with verification info\n input.emitter.emit('device:started', {\n verificationUri: deviceAuth.verification_uri,\n verificationUriComplete: deviceAuth.verification_uri_complete,\n userCode: deviceAuth.user_code,\n });\n\n // Open browser\n try {\n const { default: openFn } = await import('opn');\n await openFn(deviceAuth.verification_uri_complete);\n } catch {\n // User can open manually\n }\n\n const result = await pollForToken(deviceAuth.device_code, {\n clientId,\n authkitDomain,\n interval: deviceAuth.interval,\n onPoll: () => input.emitter.emit('device:polling', {}),\n });\n\n // Save the auth token\n saveCredentials({\n accessToken: result.accessToken,\n expiresAt: result.expiresAt,\n userId: result.userId,\n email: result.email,\n });\n\n return { result, deviceAuth };\n }),\n\n fetchStagingCredentials: fromPromise(async () => {\n const activeEnv = getActiveEnvironment();\n if (activeEnv?.clientId && activeEnv?.apiKey) {\n return { clientId: activeEnv.clientId, apiKey: activeEnv.apiKey };\n }\n\n const cached = getStagingCredentials();\n if (cached) return cached;\n\n const token = getAccessToken();\n if (!token) throw new Error('No access token available');\n\n const staging = await fetchStagingCredentialsApi(token);\n saveStagingCredentials(staging);\n\n try {\n const config = getConfig() ?? { environments: {} };\n if (!config.environments['default']) {\n config.environments['default'] = {\n name: 'default',\n type: staging.apiKey.startsWith('sk_test_') ? 'sandbox' : 'production',\n apiKey: staging.apiKey,\n clientId: staging.clientId,\n };\n if (!config.activeEnvironment) {\n config.activeEnvironment = 'default';\n }\n saveConfig(config);\n }\n } catch {\n // Don't block install if config-store write fails\n }\n\n return staging;\n }),\n\n // Branch check actors\n checkBranch: fromPromise<BranchCheckOutput, void>(async () => {\n const branch = getCurrentBranch();\n if (!branch) {\n return { branch: null, isProtected: false };\n }\n return {\n branch,\n isProtected: isProtectedBranch(branch),\n };\n }),\n\n createBranch: fromPromise<{ branch: string }, { name: string; fallbackName: string }>(async ({ input }) => {\n const { name, fallbackName } = input;\n const targetBranch = branchExists(name) ? fallbackName : name;\n createGitBranch(targetBranch);\n return { branch: targetBranch };\n }),\n\n // Post-install actors\n detectChanges: fromPromise<{ hasChanges: boolean; files: string[] }, void>(async () => {\n return detectChanges();\n }),\n\n generateCommitMessage: fromPromise<string, { integration: string; files: string[]; direct?: boolean }>(\n async ({ input }) => {\n return generateCommitMessageAi(input.integration, input.files, { direct: input.direct });\n },\n ),\n\n commitChanges: fromPromise<void, { message: string; cwd: string }>(async ({ input }) => {\n stageAndCommit(input.message, input.cwd);\n }),\n\n generatePrDescription: fromPromise<\n string,\n { integration: string; files: string[]; commitMessage: string; direct?: boolean }\n >(async ({ input }) => {\n return generatePrDescriptionAi(input.integration, input.files, input.commitMessage, { direct: input.direct });\n }),\n\n pushBranch: fromPromise<void, { cwd: string }>(async ({ input }) => {\n pushGitBranch(input.cwd);\n }),\n\n createPr: fromPromise<string, { title: string; body: string; cwd: string }>(async ({ input }) => {\n return createPullRequest(input.title, input.body, input.cwd);\n }),\n },\n });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let inspector: { inspect: any } | undefined;\n if (augmentedOptions.inspect) {\n const originalLog = console.log;\n let inspectUrl: string | undefined;\n\n console.log = (...args: unknown[]) => {\n const msg = args.join(' ');\n if (typeof msg === 'string' && msg.startsWith('https://stately.ai/inspect/')) {\n inspectUrl = msg;\n console.log = originalLog;\n console.log(`Opening XState inspector: ${inspectUrl}`);\n void open(inspectUrl);\n } else {\n originalLog.apply(console, args);\n }\n };\n\n // Dynamic import - @statelyai/inspect is a devDependency\n const { createSkyInspector } = await import('@statelyai/inspect');\n inspector = createSkyInspector();\n setTimeout(() => {\n console.log = originalLog;\n }, 5000).unref();\n }\n\n actor = createActor(machineWithActors, {\n input: { emitter, options: augmentedOptions },\n inspect: inspector?.inspect,\n });\n\n await adapter.start();\n\n // Start telemetry session\n const mode = isNonInteractiveEnvironment() ? 'headless' : augmentedOptions.dashboard ? 'tui' : 'cli';\n analytics.sessionStart(mode, getVersion());\n\n let installerStatus: 'success' | 'error' | 'cancelled' = 'success';\n\n // Handle ctrl+c by sending CANCEL to state machine for graceful shutdown\n const handleSigint = () => {\n installerStatus = 'cancelled';\n actor?.send({ type: 'CANCEL' });\n };\n process.on('SIGINT', handleSigint);\n\n try {\n await new Promise<void>((resolve, reject) => {\n actor!.subscribe({\n complete: () => {\n const snapshot = actor!.getSnapshot();\n if (snapshot.value === 'error') {\n const err = snapshot.context.error;\n installerStatus = 'error';\n reject(err ?? new Error('Wizard failed'));\n } else if (snapshot.value === 'cancelled') {\n installerStatus = 'cancelled';\n resolve();\n } else {\n resolve();\n }\n },\n error: (err) => {\n installerStatus = 'error';\n reject(err);\n },\n });\n\n actor!.start();\n actor!.send({ type: 'START' });\n });\n } catch (error) {\n installerStatus = 'error';\n logError('Wizard failed with error:', error instanceof Error ? error.stack || error.message : String(error));\n throw error;\n } finally {\n process.off('SIGINT', handleSigint);\n await analytics.shutdown(installerStatus);\n await adapter.stop();\n }\n}\n"]}
@@ -16,7 +16,7 @@ export function getConfig() {
16
16
  * Env var overrides config default.
17
17
  */
18
18
  export function getCliAuthClientId() {
19
- return process.env.WORKOS_CLIENT_ID || config.workos.clientId;
19
+ return config.workos.clientId;
20
20
  }
21
21
  /**
22
22
  * Get the AuthKit domain.
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AA2CD;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AAC3E,CAAC","sourcesContent":["import { config, version } from '../cli.config.js';\n\n/**\n * Get version from package.json\n */\nexport function getVersion(): string {\n return version;\n}\n\nexport interface InstallerConfig {\n model: string;\n doctorModel: string;\n workos: {\n clientId: string;\n authkitDomain: string;\n llmGatewayUrl: string;\n };\n telemetry: {\n enabled: boolean;\n eventName: string;\n };\n proxy: {\n refreshThresholdMs: number;\n };\n nodeVersion: string;\n logging: {\n debugMode: boolean;\n };\n documentation: {\n workosDocsUrl: string;\n dashboardUrl: string;\n issuesUrl: string;\n };\n frameworks: {\n [key: string]: {\n port: number;\n callbackPath: string;\n };\n };\n legacy: {\n oauthPort: number;\n };\n branding: {\n showAsciiArt: boolean;\n asciiArt: string;\n compactAsciiArt: string;\n useCompact: boolean;\n };\n}\n\n/**\n * Get config\n */\nexport function getConfig(): InstallerConfig {\n return config;\n}\n\n/**\n * Get the CLI auth client ID.\n * Env var overrides config default.\n */\nexport function getCliAuthClientId(): string {\n return process.env.WORKOS_CLIENT_ID || config.workos.clientId;\n}\n\n/**\n * Get the AuthKit domain.\n * Env var overrides config default.\n */\nexport function getAuthkitDomain(): string {\n return process.env.WORKOS_AUTHKIT_DOMAIN || config.workos.authkitDomain;\n}\n\n/**\n * Get the LLM gateway URL.\n * Env var overrides config default.\n */\nexport function getLlmGatewayUrl(): string {\n return process.env.WORKOS_LLM_GATEWAY_URL || config.workos.llmGatewayUrl;\n}\n"]}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/lib/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AA2CD;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AAC3E,CAAC","sourcesContent":["import { config, version } from '../cli.config.js';\n\n/**\n * Get version from package.json\n */\nexport function getVersion(): string {\n return version;\n}\n\nexport interface InstallerConfig {\n model: string;\n doctorModel: string;\n workos: {\n clientId: string;\n authkitDomain: string;\n llmGatewayUrl: string;\n };\n telemetry: {\n enabled: boolean;\n eventName: string;\n };\n proxy: {\n refreshThresholdMs: number;\n };\n nodeVersion: string;\n logging: {\n debugMode: boolean;\n };\n documentation: {\n workosDocsUrl: string;\n dashboardUrl: string;\n issuesUrl: string;\n };\n frameworks: {\n [key: string]: {\n port: number;\n callbackPath: string;\n };\n };\n legacy: {\n oauthPort: number;\n };\n branding: {\n showAsciiArt: boolean;\n asciiArt: string;\n compactAsciiArt: string;\n useCompact: boolean;\n };\n}\n\n/**\n * Get config\n */\nexport function getConfig(): InstallerConfig {\n return config;\n}\n\n/**\n * Get the CLI auth client ID.\n * Env var overrides config default.\n */\nexport function getCliAuthClientId(): string {\n return config.workos.clientId;\n}\n\n/**\n * Get the AuthKit domain.\n * Env var overrides config default.\n */\nexport function getAuthkitDomain(): string {\n return process.env.WORKOS_AUTHKIT_DOMAIN || config.workos.authkitDomain;\n}\n\n/**\n * Get the LLM gateway URL.\n * Env var overrides config default.\n */\nexport function getLlmGatewayUrl(): string {\n return process.env.WORKOS_LLM_GATEWAY_URL || config.workos.llmGatewayUrl;\n}\n"]}
@@ -1006,29 +1006,7 @@ const commands = [
1006
1006
  },
1007
1007
  ],
1008
1008
  },
1009
- // --- Emulator ---
1010
- {
1011
- name: 'emulate',
1012
- description: 'Start a local WorkOS API emulator',
1013
- options: [
1014
- { name: 'port', type: 'number', description: 'Port to listen on', required: false, default: 4100, hidden: false },
1015
- {
1016
- name: 'seed',
1017
- type: 'string',
1018
- description: 'Path to seed config file (YAML or JSON)',
1019
- required: false,
1020
- hidden: false,
1021
- },
1022
- ],
1023
- },
1024
- {
1025
- name: 'dev',
1026
- description: 'Start emulator + your app in one command',
1027
- options: [
1028
- { name: 'port', type: 'number', description: 'Emulator port', required: false, default: 4100, hidden: false },
1029
- { name: 'seed', type: 'string', description: 'Path to seed config file', required: false, hidden: false },
1030
- ],
1031
- },
1009
+ // --- Emulator (hidden: unreleased beta feature) ---
1032
1010
  // --- Workflow Commands ---
1033
1011
  {
1034
1012
  name: 'seed',