@adaptive-ds/project-registry 0.2.3
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/LICENSE +22 -0
- package/README.md +40 -0
- package/dist/access/Actor.d.ts +7 -0
- package/dist/access/Actor.d.ts.map +1 -0
- package/dist/access/Actor.js +2 -0
- package/dist/access/Actor.js.map +1 -0
- package/dist/access/ProjectAccess.d.ts +8 -0
- package/dist/access/ProjectAccess.d.ts.map +1 -0
- package/dist/access/ProjectAccess.js +2 -0
- package/dist/access/ProjectAccess.js.map +1 -0
- package/dist/access/ProjectAccessCreateOptions.d.ts +27 -0
- package/dist/access/ProjectAccessCreateOptions.d.ts.map +1 -0
- package/dist/access/ProjectAccessCreateOptions.js +2 -0
- package/dist/access/ProjectAccessCreateOptions.js.map +1 -0
- package/dist/access/Role.d.ts +2 -0
- package/dist/access/Role.d.ts.map +1 -0
- package/dist/access/Role.js +2 -0
- package/dist/access/Role.js.map +1 -0
- package/dist/access/SuperadminOperation.d.ts +2 -0
- package/dist/access/SuperadminOperation.d.ts.map +1 -0
- package/dist/access/SuperadminOperation.js +2 -0
- package/dist/access/SuperadminOperation.js.map +1 -0
- package/dist/access/projectAccessCreate.d.ts +4 -0
- package/dist/access/projectAccessCreate.d.ts.map +1 -0
- package/dist/access/projectAccessCreate.js +180 -0
- package/dist/access/projectAccessCreate.js.map +1 -0
- package/dist/access/projectAuthorize.d.ts +5 -0
- package/dist/access/projectAuthorize.d.ts.map +1 -0
- package/dist/access/projectAuthorize.js +34 -0
- package/dist/access/projectAuthorize.js.map +1 -0
- package/dist/access/roleResolve.d.ts +4 -0
- package/dist/access/roleResolve.d.ts.map +1 -0
- package/dist/access/roleResolve.js +21 -0
- package/dist/access/roleResolve.js.map +1 -0
- package/dist/access/serviceAuthorize.d.ts +5 -0
- package/dist/access/serviceAuthorize.d.ts.map +1 -0
- package/dist/access/serviceAuthorize.js +10 -0
- package/dist/access/serviceAuthorize.js.map +1 -0
- package/dist/access/superadminAuthorize.d.ts +5 -0
- package/dist/access/superadminAuthorize.d.ts.map +1 -0
- package/dist/access/superadminAuthorize.js +24 -0
- package/dist/access/superadminAuthorize.js.map +1 -0
- package/dist/access/visibleUserList.d.ts +6 -0
- package/dist/access/visibleUserList.d.ts.map +1 -0
- package/dist/access/visibleUserList.js +51 -0
- package/dist/access/visibleUserList.js.map +1 -0
- package/dist/access-log/ProjectAccessLogRecord.d.ts +8 -0
- package/dist/access-log/ProjectAccessLogRecord.d.ts.map +1 -0
- package/dist/access-log/ProjectAccessLogRecord.js +2 -0
- package/dist/access-log/ProjectAccessLogRecord.js.map +1 -0
- package/dist/access-log/ProjectAccessLogSource.d.ts +22 -0
- package/dist/access-log/ProjectAccessLogSource.d.ts.map +1 -0
- package/dist/access-log/ProjectAccessLogSource.js +2 -0
- package/dist/access-log/ProjectAccessLogSource.js.map +1 -0
- package/dist/access-log/projectAccessLogCaddyRetention.d.ts +5 -0
- package/dist/access-log/projectAccessLogCaddyRetention.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogCaddyRetention.js +5 -0
- package/dist/access-log/projectAccessLogCaddyRetention.js.map +1 -0
- package/dist/access-log/projectAccessLogCursor.d.ts +22 -0
- package/dist/access-log/projectAccessLogCursor.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogCursor.js +148 -0
- package/dist/access-log/projectAccessLogCursor.js.map +1 -0
- package/dist/access-log/projectAccessLogId.d.ts +3 -0
- package/dist/access-log/projectAccessLogId.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogId.js +6 -0
- package/dist/access-log/projectAccessLogId.js.map +1 -0
- package/dist/access-log/projectAccessLogListUseCase.d.ts +14 -0
- package/dist/access-log/projectAccessLogListUseCase.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogListUseCase.js +74 -0
- package/dist/access-log/projectAccessLogListUseCase.js.map +1 -0
- package/dist/access-log/projectAccessLogOpenat2.d.ts +12 -0
- package/dist/access-log/projectAccessLogOpenat2.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogOpenat2.js +123 -0
- package/dist/access-log/projectAccessLogOpenat2.js.map +1 -0
- package/dist/access-log/projectAccessLogParser.d.ts +4 -0
- package/dist/access-log/projectAccessLogParser.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogParser.js +88 -0
- package/dist/access-log/projectAccessLogParser.js.map +1 -0
- package/dist/access-log/projectAccessLogPath.d.ts +4 -0
- package/dist/access-log/projectAccessLogPath.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogPath.js +11 -0
- package/dist/access-log/projectAccessLogPath.js.map +1 -0
- package/dist/access-log/projectAccessLogRetentionMaximumActiveProjectIds.d.ts +2 -0
- package/dist/access-log/projectAccessLogRetentionMaximumActiveProjectIds.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogRetentionMaximumActiveProjectIds.js +2 -0
- package/dist/access-log/projectAccessLogRetentionMaximumActiveProjectIds.js.map +1 -0
- package/dist/access-log/projectAccessLogRetentionReconcile.d.ts +19 -0
- package/dist/access-log/projectAccessLogRetentionReconcile.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogRetentionReconcile.js +1365 -0
- package/dist/access-log/projectAccessLogRetentionReconcile.js.map +1 -0
- package/dist/access-log/projectAccessLogRootSchema.d.ts +3 -0
- package/dist/access-log/projectAccessLogRootSchema.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogRootSchema.js +4 -0
- package/dist/access-log/projectAccessLogRootSchema.js.map +1 -0
- package/dist/access-log/projectAccessLogRootValidate.d.ts +3 -0
- package/dist/access-log/projectAccessLogRootValidate.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogRootValidate.js +18 -0
- package/dist/access-log/projectAccessLogRootValidate.js.map +1 -0
- package/dist/access-log/projectAccessLogSourceFileCreate.d.ts +22 -0
- package/dist/access-log/projectAccessLogSourceFileCreate.d.ts.map +1 -0
- package/dist/access-log/projectAccessLogSourceFileCreate.js +871 -0
- package/dist/access-log/projectAccessLogSourceFileCreate.js.map +1 -0
- package/dist/api/projectRegistryApiHandlerCreate.d.ts +18 -0
- package/dist/api/projectRegistryApiHandlerCreate.d.ts.map +1 -0
- package/dist/api/projectRegistryApiHandlerCreate.js +738 -0
- package/dist/api/projectRegistryApiHandlerCreate.js.map +1 -0
- package/dist/caddy/CaddyAdminLoadOptions.d.ts +10 -0
- package/dist/caddy/CaddyAdminLoadOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyAdminLoadOptions.js +2 -0
- package/dist/caddy/CaddyAdminLoadOptions.js.map +1 -0
- package/dist/caddy/CaddyApplication.d.ts +12 -0
- package/dist/caddy/CaddyApplication.d.ts.map +1 -0
- package/dist/caddy/CaddyApplication.js +2 -0
- package/dist/caddy/CaddyApplication.js.map +1 -0
- package/dist/caddy/CaddyApplicationOptions.d.ts +24 -0
- package/dist/caddy/CaddyApplicationOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyApplicationOptions.js +2 -0
- package/dist/caddy/CaddyApplicationOptions.js.map +1 -0
- package/dist/caddy/CaddyApplicationQueue.d.ts +4 -0
- package/dist/caddy/CaddyApplicationQueue.d.ts.map +1 -0
- package/dist/caddy/CaddyApplicationQueue.js +2 -0
- package/dist/caddy/CaddyApplicationQueue.js.map +1 -0
- package/dist/caddy/CaddyApplicationResult.d.ts +8 -0
- package/dist/caddy/CaddyApplicationResult.d.ts.map +1 -0
- package/dist/caddy/CaddyApplicationResult.js +2 -0
- package/dist/caddy/CaddyApplicationResult.js.map +1 -0
- package/dist/caddy/CaddyApplicationStatus.d.ts +11 -0
- package/dist/caddy/CaddyApplicationStatus.d.ts.map +1 -0
- package/dist/caddy/CaddyApplicationStatus.js +2 -0
- package/dist/caddy/CaddyApplicationStatus.js.map +1 -0
- package/dist/caddy/CaddyClock.d.ts +2 -0
- package/dist/caddy/CaddyClock.d.ts.map +1 -0
- package/dist/caddy/CaddyClock.js +2 -0
- package/dist/caddy/CaddyClock.js.map +1 -0
- package/dist/caddy/CaddyConfig.d.ts +38 -0
- package/dist/caddy/CaddyConfig.d.ts.map +1 -0
- package/dist/caddy/CaddyConfig.js +2 -0
- package/dist/caddy/CaddyConfig.js.map +1 -0
- package/dist/caddy/CaddyConfigInspectUseCaseOptions.d.ts +6 -0
- package/dist/caddy/CaddyConfigInspectUseCaseOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyConfigInspectUseCaseOptions.js +2 -0
- package/dist/caddy/CaddyConfigInspectUseCaseOptions.js.map +1 -0
- package/dist/caddy/CaddyConfigInspection.d.ts +10 -0
- package/dist/caddy/CaddyConfigInspection.d.ts.map +1 -0
- package/dist/caddy/CaddyConfigInspection.js +2 -0
- package/dist/caddy/CaddyConfigInspection.js.map +1 -0
- package/dist/caddy/CaddyConfigSummaryEntry.d.ts +9 -0
- package/dist/caddy/CaddyConfigSummaryEntry.d.ts.map +1 -0
- package/dist/caddy/CaddyConfigSummaryEntry.js +2 -0
- package/dist/caddy/CaddyConfigSummaryEntry.js.map +1 -0
- package/dist/caddy/CaddyConfigValidateOptions.d.ts +10 -0
- package/dist/caddy/CaddyConfigValidateOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyConfigValidateOptions.js +2 -0
- package/dist/caddy/CaddyConfigValidateOptions.js.map +1 -0
- package/dist/caddy/CaddyDocsUrlsUseCaseOptions.d.ts +8 -0
- package/dist/caddy/CaddyDocsUrlsUseCaseOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyDocsUrlsUseCaseOptions.js +2 -0
- package/dist/caddy/CaddyDocsUrlsUseCaseOptions.js.map +1 -0
- package/dist/caddy/CaddyFetch.d.ts +2 -0
- package/dist/caddy/CaddyFetch.d.ts.map +1 -0
- package/dist/caddy/CaddyFetch.js +2 -0
- package/dist/caddy/CaddyFetch.js.map +1 -0
- package/dist/caddy/CaddyInspectionOptions.d.ts +10 -0
- package/dist/caddy/CaddyInspectionOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyInspectionOptions.js +2 -0
- package/dist/caddy/CaddyInspectionOptions.js.map +1 -0
- package/dist/caddy/CaddyProcessRunOptions.d.ts +5 -0
- package/dist/caddy/CaddyProcessRunOptions.d.ts.map +1 -0
- package/dist/caddy/CaddyProcessRunOptions.js +2 -0
- package/dist/caddy/CaddyProcessRunOptions.js.map +1 -0
- package/dist/caddy/CaddyProcessRunner.d.ts +8 -0
- package/dist/caddy/CaddyProcessRunner.d.ts.map +1 -0
- package/dist/caddy/CaddyProcessRunner.js +2 -0
- package/dist/caddy/CaddyProcessRunner.js.map +1 -0
- package/dist/caddy/CaddyProjectListAccess.d.ts +7 -0
- package/dist/caddy/CaddyProjectListAccess.d.ts.map +1 -0
- package/dist/caddy/CaddyProjectListAccess.js +2 -0
- package/dist/caddy/CaddyProjectListAccess.js.map +1 -0
- package/dist/caddy/CaddyTimer.d.ts +8 -0
- package/dist/caddy/CaddyTimer.d.ts.map +1 -0
- package/dist/caddy/CaddyTimer.js +2 -0
- package/dist/caddy/CaddyTimer.js.map +1 -0
- package/dist/caddy/caddyAdminLoad.d.ts +6 -0
- package/dist/caddy/caddyAdminLoad.d.ts.map +1 -0
- package/dist/caddy/caddyAdminLoad.js +222 -0
- package/dist/caddy/caddyAdminLoad.js.map +1 -0
- package/dist/caddy/caddyAdminReload.d.ts +3 -0
- package/dist/caddy/caddyAdminReload.d.ts.map +1 -0
- package/dist/caddy/caddyAdminReload.js +5 -0
- package/dist/caddy/caddyAdminReload.js.map +1 -0
- package/dist/caddy/caddyApplicationCreate.d.ts +6 -0
- package/dist/caddy/caddyApplicationCreate.d.ts.map +1 -0
- package/dist/caddy/caddyApplicationCreate.js +776 -0
- package/dist/caddy/caddyApplicationCreate.js.map +1 -0
- package/dist/caddy/caddyApplicationQueueCreate.d.ts +3 -0
- package/dist/caddy/caddyApplicationQueueCreate.d.ts.map +1 -0
- package/dist/caddy/caddyApplicationQueueCreate.js +11 -0
- package/dist/caddy/caddyApplicationQueueCreate.js.map +1 -0
- package/dist/caddy/caddyConfigGenerate.d.ts +4 -0
- package/dist/caddy/caddyConfigGenerate.d.ts.map +1 -0
- package/dist/caddy/caddyConfigGenerate.js +390 -0
- package/dist/caddy/caddyConfigGenerate.js.map +1 -0
- package/dist/caddy/caddyConfigInspect.d.ts +4 -0
- package/dist/caddy/caddyConfigInspect.d.ts.map +1 -0
- package/dist/caddy/caddyConfigInspect.js +61 -0
- package/dist/caddy/caddyConfigInspect.js.map +1 -0
- package/dist/caddy/caddyConfigInspectUseCase.d.ts +5 -0
- package/dist/caddy/caddyConfigInspectUseCase.d.ts.map +1 -0
- package/dist/caddy/caddyConfigInspectUseCase.js +19 -0
- package/dist/caddy/caddyConfigInspectUseCase.js.map +1 -0
- package/dist/caddy/caddyConfigOptionsFromEnv.d.ts +4 -0
- package/dist/caddy/caddyConfigOptionsFromEnv.d.ts.map +1 -0
- package/dist/caddy/caddyConfigOptionsFromEnv.js +44 -0
- package/dist/caddy/caddyConfigOptionsFromEnv.js.map +1 -0
- package/dist/caddy/caddyConfigOptionsSchema.d.ts +47 -0
- package/dist/caddy/caddyConfigOptionsSchema.d.ts.map +1 -0
- package/dist/caddy/caddyConfigOptionsSchema.js +24 -0
- package/dist/caddy/caddyConfigOptionsSchema.js.map +1 -0
- package/dist/caddy/caddyConfigSelect.d.ts +5 -0
- package/dist/caddy/caddyConfigSelect.d.ts.map +1 -0
- package/dist/caddy/caddyConfigSelect.js +128 -0
- package/dist/caddy/caddyConfigSelect.js.map +1 -0
- package/dist/caddy/caddyConfigSerialize.d.ts +3 -0
- package/dist/caddy/caddyConfigSerialize.d.ts.map +1 -0
- package/dist/caddy/caddyConfigSerialize.js +121 -0
- package/dist/caddy/caddyConfigSerialize.js.map +1 -0
- package/dist/caddy/caddyConfigSummary.d.ts +4 -0
- package/dist/caddy/caddyConfigSummary.d.ts.map +1 -0
- package/dist/caddy/caddyConfigSummary.js +47 -0
- package/dist/caddy/caddyConfigSummary.js.map +1 -0
- package/dist/caddy/caddyConfigValidate.d.ts +6 -0
- package/dist/caddy/caddyConfigValidate.d.ts.map +1 -0
- package/dist/caddy/caddyConfigValidate.js +214 -0
- package/dist/caddy/caddyConfigValidate.js.map +1 -0
- package/dist/caddy/caddyDocsTemplate.d.ts +2 -0
- package/dist/caddy/caddyDocsTemplate.d.ts.map +1 -0
- package/dist/caddy/caddyDocsTemplate.js +6 -0
- package/dist/caddy/caddyDocsTemplate.js.map +1 -0
- package/dist/caddy/caddyProcessRun.d.ts +13 -0
- package/dist/caddy/caddyProcessRun.d.ts.map +1 -0
- package/dist/caddy/caddyProcessRun.js +128 -0
- package/dist/caddy/caddyProcessRun.js.map +1 -0
- package/dist/caddy/caddyProcessRunnerAsUser.d.ts +3 -0
- package/dist/caddy/caddyProcessRunnerAsUser.d.ts.map +1 -0
- package/dist/caddy/caddyProcessRunnerAsUser.js +5 -0
- package/dist/caddy/caddyProcessRunnerAsUser.js.map +1 -0
- package/dist/caddy/caddyVisibleProjects.d.ts +5 -0
- package/dist/caddy/caddyVisibleProjects.d.ts.map +1 -0
- package/dist/caddy/caddyVisibleProjects.js +54 -0
- package/dist/caddy/caddyVisibleProjects.js.map +1 -0
- package/dist/caddy/projectDocsUrls.d.ts +6 -0
- package/dist/caddy/projectDocsUrls.d.ts.map +1 -0
- package/dist/caddy/projectDocsUrls.js +47 -0
- package/dist/caddy/projectDocsUrls.js.map +1 -0
- package/dist/caddy/projectDocsUrlsUseCase.d.ts +5 -0
- package/dist/caddy/projectDocsUrlsUseCase.d.ts.map +1 -0
- package/dist/caddy/projectDocsUrlsUseCase.js +38 -0
- package/dist/caddy/projectDocsUrlsUseCase.js.map +1 -0
- package/dist/cli/ProjectRegistryCliCaddyOptions.d.ts +14 -0
- package/dist/cli/ProjectRegistryCliCaddyOptions.d.ts.map +1 -0
- package/dist/cli/ProjectRegistryCliCaddyOptions.js +2 -0
- package/dist/cli/ProjectRegistryCliCaddyOptions.js.map +1 -0
- package/dist/cli/ProjectRegistryCliFetch.d.ts +4 -0
- package/dist/cli/ProjectRegistryCliFetch.d.ts.map +1 -0
- package/dist/cli/ProjectRegistryCliFetch.js +2 -0
- package/dist/cli/ProjectRegistryCliFetch.js.map +1 -0
- package/dist/cli/ProjectRegistryCliInvocation.d.ts +59 -0
- package/dist/cli/ProjectRegistryCliInvocation.d.ts.map +1 -0
- package/dist/cli/ProjectRegistryCliInvocation.js +2 -0
- package/dist/cli/ProjectRegistryCliInvocation.js.map +1 -0
- package/dist/cli/projectNameFromPath.d.ts +8 -0
- package/dist/cli/projectNameFromPath.d.ts.map +1 -0
- package/dist/cli/projectNameFromPath.js +29 -0
- package/dist/cli/projectNameFromPath.js.map +1 -0
- package/dist/cli/projectRegistryCliArgumentsParse.d.ts +4 -0
- package/dist/cli/projectRegistryCliArgumentsParse.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliArgumentsParse.js +386 -0
- package/dist/cli/projectRegistryCliArgumentsParse.js.map +1 -0
- package/dist/cli/projectRegistryCliHelp.d.ts +2 -0
- package/dist/cli/projectRegistryCliHelp.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliHelp.js +38 -0
- package/dist/cli/projectRegistryCliHelp.js.map +1 -0
- package/dist/cli/projectRegistryCliOutputFormat.d.ts +4 -0
- package/dist/cli/projectRegistryCliOutputFormat.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliOutputFormat.js +208 -0
- package/dist/cli/projectRegistryCliOutputFormat.js.map +1 -0
- package/dist/cli/projectRegistryCliRequest.d.ts +9 -0
- package/dist/cli/projectRegistryCliRequest.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliRequest.js +75 -0
- package/dist/cli/projectRegistryCliRequest.js.map +1 -0
- package/dist/cli/projectRegistryCliRun.d.ts +10 -0
- package/dist/cli/projectRegistryCliRun.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliRun.js +200 -0
- package/dist/cli/projectRegistryCliRun.js.map +1 -0
- package/dist/cli/projectRegistryCliSocketResolve.d.ts +3 -0
- package/dist/cli/projectRegistryCliSocketResolve.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliSocketResolve.js +21 -0
- package/dist/cli/projectRegistryCliSocketResolve.js.map +1 -0
- package/dist/cli/projectRegistryCliVersion.d.ts +2 -0
- package/dist/cli/projectRegistryCliVersion.d.ts.map +1 -0
- package/dist/cli/projectRegistryCliVersion.js +2 -0
- package/dist/cli/projectRegistryCliVersion.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -0
- package/dist/daemon.d.ts +3 -0
- package/dist/daemon.d.ts.map +1 -0
- package/dist/daemon.js +40 -0
- package/dist/daemon.js.map +1 -0
- package/dist/identity/IdentityDirectory.d.ts +8 -0
- package/dist/identity/IdentityDirectory.d.ts.map +1 -0
- package/dist/identity/IdentityDirectory.js +2 -0
- package/dist/identity/IdentityDirectory.js.map +1 -0
- package/dist/identity/IdentityDirectoryUser.d.ts +5 -0
- package/dist/identity/IdentityDirectoryUser.d.ts.map +1 -0
- package/dist/identity/IdentityDirectoryUser.js +2 -0
- package/dist/identity/IdentityDirectoryUser.js.map +1 -0
- package/dist/identity/MappedUser.d.ts +7 -0
- package/dist/identity/MappedUser.d.ts.map +1 -0
- package/dist/identity/MappedUser.js +2 -0
- package/dist/identity/MappedUser.js.map +1 -0
- package/dist/identity/PosixUserDirectory.d.ts +5 -0
- package/dist/identity/PosixUserDirectory.d.ts.map +1 -0
- package/dist/identity/PosixUserDirectory.js +2 -0
- package/dist/identity/PosixUserDirectory.js.map +1 -0
- package/dist/identity/VisibleUser.d.ts +7 -0
- package/dist/identity/VisibleUser.d.ts.map +1 -0
- package/dist/identity/VisibleUser.js +2 -0
- package/dist/identity/VisibleUser.js.map +1 -0
- package/dist/identity/VisibleUserDirectoryListOptions.d.ts +12 -0
- package/dist/identity/VisibleUserDirectoryListOptions.d.ts.map +1 -0
- package/dist/identity/VisibleUserDirectoryListOptions.js +2 -0
- package/dist/identity/VisibleUserDirectoryListOptions.js.map +1 -0
- package/dist/identity/posixUserDirectoryCreate.d.ts +4 -0
- package/dist/identity/posixUserDirectoryCreate.d.ts.map +1 -0
- package/dist/identity/posixUserDirectoryCreate.js +47 -0
- package/dist/identity/posixUserDirectoryCreate.js.map +1 -0
- package/dist/identity/preferredUsernameMap.d.ts +7 -0
- package/dist/identity/preferredUsernameMap.d.ts.map +1 -0
- package/dist/identity/preferredUsernameMap.js +19 -0
- package/dist/identity/preferredUsernameMap.js.map +1 -0
- package/dist/identity/userRoleResolve.d.ts +8 -0
- package/dist/identity/userRoleResolve.d.ts.map +1 -0
- package/dist/identity/userRoleResolve.js +31 -0
- package/dist/identity/userRoleResolve.js.map +1 -0
- package/dist/identity/visibleUserDirectoryList.d.ts +6 -0
- package/dist/identity/visibleUserDirectoryList.d.ts.map +1 -0
- package/dist/identity/visibleUserDirectoryList.js +70 -0
- package/dist/identity/visibleUserDirectoryList.js.map +1 -0
- package/dist/index.d.ts +192 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/project/Project.d.ts +2 -0
- package/dist/project/Project.d.ts.map +1 -0
- package/dist/project/Project.js +2 -0
- package/dist/project/Project.js.map +1 -0
- package/dist/project/ProjectMutationOptions.d.ts +5 -0
- package/dist/project/ProjectMutationOptions.d.ts.map +1 -0
- package/dist/project/ProjectMutationOptions.js +2 -0
- package/dist/project/ProjectMutationOptions.js.map +1 -0
- package/dist/project/ProjectUseCaseOptions.d.ts +9 -0
- package/dist/project/ProjectUseCaseOptions.d.ts.map +1 -0
- package/dist/project/ProjectUseCaseOptions.js +2 -0
- package/dist/project/ProjectUseCaseOptions.js.map +1 -0
- package/dist/project/projectCollisions.d.ts +10 -0
- package/dist/project/projectCollisions.d.ts.map +1 -0
- package/dist/project/projectCollisions.js +67 -0
- package/dist/project/projectCollisions.js.map +1 -0
- package/dist/project/projectCreate.d.ts +6 -0
- package/dist/project/projectCreate.d.ts.map +1 -0
- package/dist/project/projectCreate.js +40 -0
- package/dist/project/projectCreate.js.map +1 -0
- package/dist/project/projectDelete.d.ts +7 -0
- package/dist/project/projectDelete.d.ts.map +1 -0
- package/dist/project/projectDelete.js +24 -0
- package/dist/project/projectDelete.js.map +1 -0
- package/dist/project/projectDomainNormalize.d.ts +2 -0
- package/dist/project/projectDomainNormalize.d.ts.map +1 -0
- package/dist/project/projectDomainNormalize.js +4 -0
- package/dist/project/projectDomainNormalize.js.map +1 -0
- package/dist/project/projectEdit.d.ts +7 -0
- package/dist/project/projectEdit.d.ts.map +1 -0
- package/dist/project/projectEdit.js +85 -0
- package/dist/project/projectEdit.js.map +1 -0
- package/dist/project/projectGet.d.ts +5 -0
- package/dist/project/projectGet.d.ts.map +1 -0
- package/dist/project/projectGet.js +12 -0
- package/dist/project/projectGet.js.map +1 -0
- package/dist/project/projectGetUseCase.d.ts +6 -0
- package/dist/project/projectGetUseCase.d.ts.map +1 -0
- package/dist/project/projectGetUseCase.js +19 -0
- package/dist/project/projectGetUseCase.js.map +1 -0
- package/dist/project/projectHeaderUpSchema.d.ts +3 -0
- package/dist/project/projectHeaderUpSchema.d.ts.map +1 -0
- package/dist/project/projectHeaderUpSchema.js +28 -0
- package/dist/project/projectHeaderUpSchema.js.map +1 -0
- package/dist/project/projectHistory.d.ts +6 -0
- package/dist/project/projectHistory.d.ts.map +1 -0
- package/dist/project/projectHistory.js +11 -0
- package/dist/project/projectHistory.js.map +1 -0
- package/dist/project/projectInputSchema.d.ts +36 -0
- package/dist/project/projectInputSchema.d.ts.map +1 -0
- package/dist/project/projectInputSchema.js +42 -0
- package/dist/project/projectInputSchema.js.map +1 -0
- package/dist/project/projectKey.d.ts +4 -0
- package/dist/project/projectKey.d.ts.map +1 -0
- package/dist/project/projectKey.js +4 -0
- package/dist/project/projectKey.js.map +1 -0
- package/dist/project/projectKeyEqual.d.ts +3 -0
- package/dist/project/projectKeyEqual.d.ts.map +1 -0
- package/dist/project/projectKeyEqual.js +4 -0
- package/dist/project/projectKeyEqual.js.map +1 -0
- package/dist/project/projectList.d.ts +4 -0
- package/dist/project/projectList.d.ts.map +1 -0
- package/dist/project/projectList.js +6 -0
- package/dist/project/projectList.js.map +1 -0
- package/dist/project/projectListUseCase.d.ts +12 -0
- package/dist/project/projectListUseCase.d.ts.map +1 -0
- package/dist/project/projectListUseCase.js +78 -0
- package/dist/project/projectListUseCase.js.map +1 -0
- package/dist/project/projectMutationExpectedRevision.d.ts +4 -0
- package/dist/project/projectMutationExpectedRevision.d.ts.map +1 -0
- package/dist/project/projectMutationExpectedRevision.js +21 -0
- package/dist/project/projectMutationExpectedRevision.js.map +1 -0
- package/dist/project/projectNormalize.d.ts +12 -0
- package/dist/project/projectNormalize.d.ts.map +1 -0
- package/dist/project/projectNormalize.js +174 -0
- package/dist/project/projectNormalize.js.map +1 -0
- package/dist/project/projectOwnerAuthorize.d.ts +5 -0
- package/dist/project/projectOwnerAuthorize.d.ts.map +1 -0
- package/dist/project/projectOwnerAuthorize.js +12 -0
- package/dist/project/projectOwnerAuthorize.js.map +1 -0
- package/dist/project/projectPortCollision.d.ts +4 -0
- package/dist/project/projectPortCollision.d.ts.map +1 -0
- package/dist/project/projectPortCollision.js +12 -0
- package/dist/project/projectPortCollision.js.map +1 -0
- package/dist/project/projectPortNext.d.ts +9 -0
- package/dist/project/projectPortNext.d.ts.map +1 -0
- package/dist/project/projectPortNext.js +32 -0
- package/dist/project/projectPortNext.js.map +1 -0
- package/dist/project/projectRevisionValidate.d.ts +4 -0
- package/dist/project/projectRevisionValidate.d.ts.map +1 -0
- package/dist/project/projectRevisionValidate.js +9 -0
- package/dist/project/projectRevisionValidate.js.map +1 -0
- package/dist/project/projectSchema.d.ts +36 -0
- package/dist/project/projectSchema.d.ts.map +1 -0
- package/dist/project/projectSchema.js +43 -0
- package/dist/project/projectSchema.js.map +1 -0
- package/dist/project/projectSort.d.ts +3 -0
- package/dist/project/projectSort.d.ts.map +1 -0
- package/dist/project/projectSort.js +24 -0
- package/dist/project/projectSort.js.map +1 -0
- package/dist/project/projectValidate.d.ts +10 -0
- package/dist/project/projectValidate.d.ts.map +1 -0
- package/dist/project/projectValidate.js +26 -0
- package/dist/project/projectValidate.js.map +1 -0
- package/dist/project-store/ProjectRepository.d.ts +20 -0
- package/dist/project-store/ProjectRepository.d.ts.map +1 -0
- package/dist/project-store/ProjectRepository.js +2 -0
- package/dist/project-store/ProjectRepository.js.map +1 -0
- package/dist/project-store/ProjectRepositoryEntry.d.ts +7 -0
- package/dist/project-store/ProjectRepositoryEntry.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryEntry.js +2 -0
- package/dist/project-store/ProjectRepositoryEntry.js.map +1 -0
- package/dist/project-store/ProjectRepositoryMutation.d.ts +18 -0
- package/dist/project-store/ProjectRepositoryMutation.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryMutation.js +2 -0
- package/dist/project-store/ProjectRepositoryMutation.js.map +1 -0
- package/dist/project-store/ProjectRepositoryMutationOptions.d.ts +6 -0
- package/dist/project-store/ProjectRepositoryMutationOptions.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryMutationOptions.js +2 -0
- package/dist/project-store/ProjectRepositoryMutationOptions.js.map +1 -0
- package/dist/project-store/ProjectRepositoryOptions.d.ts +8 -0
- package/dist/project-store/ProjectRepositoryOptions.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryOptions.js +7 -0
- package/dist/project-store/ProjectRepositoryOptions.js.map +1 -0
- package/dist/project-store/ProjectRepositoryReadiness.d.ts +8 -0
- package/dist/project-store/ProjectRepositoryReadiness.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryReadiness.js +2 -0
- package/dist/project-store/ProjectRepositoryReadiness.js.map +1 -0
- package/dist/project-store/ProjectRepositoryRevision.d.ts +2 -0
- package/dist/project-store/ProjectRepositoryRevision.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositoryRevision.js +2 -0
- package/dist/project-store/ProjectRepositoryRevision.js.map +1 -0
- package/dist/project-store/ProjectRepositorySnapshot.d.ts +7 -0
- package/dist/project-store/ProjectRepositorySnapshot.d.ts.map +1 -0
- package/dist/project-store/ProjectRepositorySnapshot.js +2 -0
- package/dist/project-store/ProjectRepositorySnapshot.js.map +1 -0
- package/dist/project-store/projectRepositoryOpen.d.ts +4 -0
- package/dist/project-store/projectRepositoryOpen.d.ts.map +1 -0
- package/dist/project-store/projectRepositoryOpen.js +813 -0
- package/dist/project-store/projectRepositoryOpen.js.map +1 -0
- package/dist/project-store/projectRepositoryOwnerPath.d.ts +3 -0
- package/dist/project-store/projectRepositoryOwnerPath.d.ts.map +1 -0
- package/dist/project-store/projectRepositoryOwnerPath.js +25 -0
- package/dist/project-store/projectRepositoryOwnerPath.js.map +1 -0
- package/dist/project-store/projectRepositoryPath.d.ts +4 -0
- package/dist/project-store/projectRepositoryPath.d.ts.map +1 -0
- package/dist/project-store/projectRepositoryPath.js +21 -0
- package/dist/project-store/projectRepositoryPath.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemon.d.ts +19 -0
- package/dist/runtime/ProjectRegistryDaemon.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemon.js +2 -0
- package/dist/runtime/ProjectRegistryDaemon.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonBrowserAuth.d.ts +14 -0
- package/dist/runtime/ProjectRegistryDaemonBrowserAuth.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonBrowserAuth.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonBrowserAuth.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonConfig.d.ts +38 -0
- package/dist/runtime/ProjectRegistryDaemonConfig.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonConfig.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonConfig.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonFileStat.d.ts +7 -0
- package/dist/runtime/ProjectRegistryDaemonFileStat.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonFileStat.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonFileStat.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonFilesystem.d.ts +13 -0
- package/dist/runtime/ProjectRegistryDaemonFilesystem.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonFilesystem.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonFilesystem.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonHealth.d.ts +6 -0
- package/dist/runtime/ProjectRegistryDaemonHealth.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonHealth.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonHealth.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUser.d.ts +6 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUser.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUser.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUser.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUsersResolve.d.ts +4 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUsersResolve.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUsersResolve.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonMappedUsersResolve.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonOptions.d.ts +39 -0
- package/dist/runtime/ProjectRegistryDaemonOptions.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonOptions.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonOptions.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonPosix.d.ts +7 -0
- package/dist/runtime/ProjectRegistryDaemonPosix.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonPosix.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonPosix.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonReadiness.d.ts +11 -0
- package/dist/runtime/ProjectRegistryDaemonReadiness.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonReadiness.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonReadiness.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonRequestContext.d.ts +10 -0
- package/dist/runtime/ProjectRegistryDaemonRequestContext.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonRequestContext.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonRequestContext.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonRequestHandler.d.ts +3 -0
- package/dist/runtime/ProjectRegistryDaemonRequestHandler.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonRequestHandler.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonRequestHandler.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServer.d.ts +6 -0
- package/dist/runtime/ProjectRegistryDaemonServer.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServer.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonServer.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServerFactory.d.ts +4 -0
- package/dist/runtime/ProjectRegistryDaemonServerFactory.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServerFactory.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonServerFactory.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServerOptions.d.ts +7 -0
- package/dist/runtime/ProjectRegistryDaemonServerOptions.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonServerOptions.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonServerOptions.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSignals.d.ts +4 -0
- package/dist/runtime/ProjectRegistryDaemonSignals.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSignals.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonSignals.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSocketAccessResolve.d.ts +4 -0
- package/dist/runtime/ProjectRegistryDaemonSocketAccessResolve.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSocketAccessResolve.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonSocketAccessResolve.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSocketRefresh.d.ts +7 -0
- package/dist/runtime/ProjectRegistryDaemonSocketRefresh.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonSocketRefresh.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonSocketRefresh.js.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonState.d.ts +2 -0
- package/dist/runtime/ProjectRegistryDaemonState.d.ts.map +1 -0
- package/dist/runtime/ProjectRegistryDaemonState.js +2 -0
- package/dist/runtime/ProjectRegistryDaemonState.js.map +1 -0
- package/dist/runtime/clockNowResolve.d.ts +3 -0
- package/dist/runtime/clockNowResolve.d.ts.map +1 -0
- package/dist/runtime/clockNowResolve.js +18 -0
- package/dist/runtime/clockNowResolve.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigFromEnv.d.ts +4 -0
- package/dist/runtime/projectRegistryDaemonConfigFromEnv.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigFromEnv.js +158 -0
- package/dist/runtime/projectRegistryDaemonConfigFromEnv.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigSchema.d.ts +57 -0
- package/dist/runtime/projectRegistryDaemonConfigSchema.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigSchema.js +79 -0
- package/dist/runtime/projectRegistryDaemonConfigSchema.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigValidate.d.ts +4 -0
- package/dist/runtime/projectRegistryDaemonConfigValidate.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonConfigValidate.js +59 -0
- package/dist/runtime/projectRegistryDaemonConfigValidate.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonCreate.d.ts +5 -0
- package/dist/runtime/projectRegistryDaemonCreate.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonCreate.js +1251 -0
- package/dist/runtime/projectRegistryDaemonCreate.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonFilesystemDefault.d.ts +3 -0
- package/dist/runtime/projectRegistryDaemonFilesystemDefault.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonFilesystemDefault.js +62 -0
- package/dist/runtime/projectRegistryDaemonFilesystemDefault.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonOpen.d.ts +5 -0
- package/dist/runtime/projectRegistryDaemonOpen.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonOpen.js +132 -0
- package/dist/runtime/projectRegistryDaemonOpen.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonPosixDefault.d.ts +3 -0
- package/dist/runtime/projectRegistryDaemonPosixDefault.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonPosixDefault.js +30 -0
- package/dist/runtime/projectRegistryDaemonPosixDefault.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonServerDefault.d.ts +3 -0
- package/dist/runtime/projectRegistryDaemonServerDefault.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonServerDefault.js +20 -0
- package/dist/runtime/projectRegistryDaemonServerDefault.js.map +1 -0
- package/dist/runtime/projectRegistryDaemonSignalsDefault.d.ts +3 -0
- package/dist/runtime/projectRegistryDaemonSignalsDefault.d.ts.map +1 -0
- package/dist/runtime/projectRegistryDaemonSignalsDefault.js +9 -0
- package/dist/runtime/projectRegistryDaemonSignalsDefault.js.map +1 -0
- package/dist/runtime/promiseBoundedRace.d.ts +6 -0
- package/dist/runtime/promiseBoundedRace.d.ts.map +1 -0
- package/dist/runtime/promiseBoundedRace.js +52 -0
- package/dist/runtime/promiseBoundedRace.js.map +1 -0
- package/dist/runtime/randomBytesResultResolve.d.ts +3 -0
- package/dist/runtime/randomBytesResultResolve.d.ts.map +1 -0
- package/dist/runtime/randomBytesResultResolve.js +25 -0
- package/dist/runtime/randomBytesResultResolve.js.map +1 -0
- package/dist/runtime/timeExpiryResolve.d.ts +3 -0
- package/dist/runtime/timeExpiryResolve.d.ts.map +1 -0
- package/dist/runtime/timeExpiryResolve.js +15 -0
- package/dist/runtime/timeExpiryResolve.js.map +1 -0
- package/dist/runtime/timeMillisecondsValidate.d.ts +2 -0
- package/dist/runtime/timeMillisecondsValidate.d.ts.map +1 -0
- package/dist/runtime/timeMillisecondsValidate.js +4 -0
- package/dist/runtime/timeMillisecondsValidate.js.map +1 -0
- package/dist/runtime/timeSecondsValidate.d.ts +2 -0
- package/dist/runtime/timeSecondsValidate.d.ts.map +1 -0
- package/dist/runtime/timeSecondsValidate.js +5 -0
- package/dist/runtime/timeSecondsValidate.js.map +1 -0
- package/dist/session/Clock.d.ts +2 -0
- package/dist/session/Clock.d.ts.map +1 -0
- package/dist/session/Clock.js +2 -0
- package/dist/session/Clock.js.map +1 -0
- package/dist/session/CsrfTokenStore.d.ts +7 -0
- package/dist/session/CsrfTokenStore.d.ts.map +1 -0
- package/dist/session/CsrfTokenStore.js +2 -0
- package/dist/session/CsrfTokenStore.js.map +1 -0
- package/dist/session/CsrfTokenStoreOptions.d.ts +9 -0
- package/dist/session/CsrfTokenStoreOptions.d.ts.map +1 -0
- package/dist/session/CsrfTokenStoreOptions.js +2 -0
- package/dist/session/CsrfTokenStoreOptions.js.map +1 -0
- package/dist/session/RandomBytes.d.ts +3 -0
- package/dist/session/RandomBytes.d.ts.map +1 -0
- package/dist/session/RandomBytes.js +2 -0
- package/dist/session/RandomBytes.js.map +1 -0
- package/dist/session/SessionActorResolveOptions.d.ts +15 -0
- package/dist/session/SessionActorResolveOptions.d.ts.map +1 -0
- package/dist/session/SessionActorResolveOptions.js +2 -0
- package/dist/session/SessionActorResolveOptions.js.map +1 -0
- package/dist/session/SessionCookieOptions.d.ts +5 -0
- package/dist/session/SessionCookieOptions.d.ts.map +1 -0
- package/dist/session/SessionCookieOptions.js +2 -0
- package/dist/session/SessionCookieOptions.js.map +1 -0
- package/dist/session/SessionCreateInput.d.ts +6 -0
- package/dist/session/SessionCreateInput.d.ts.map +1 -0
- package/dist/session/SessionCreateInput.js +2 -0
- package/dist/session/SessionCreateInput.js.map +1 -0
- package/dist/session/SessionLogoutOptions.d.ts +12 -0
- package/dist/session/SessionLogoutOptions.d.ts.map +1 -0
- package/dist/session/SessionLogoutOptions.js +2 -0
- package/dist/session/SessionLogoutOptions.js.map +1 -0
- package/dist/session/SessionRecord.d.ts +9 -0
- package/dist/session/SessionRecord.d.ts.map +1 -0
- package/dist/session/SessionRecord.js +2 -0
- package/dist/session/SessionRecord.js.map +1 -0
- package/dist/session/SessionStore.d.ts +11 -0
- package/dist/session/SessionStore.d.ts.map +1 -0
- package/dist/session/SessionStore.js +2 -0
- package/dist/session/SessionStore.js.map +1 -0
- package/dist/session/SessionStoreOptions.d.ts +11 -0
- package/dist/session/SessionStoreOptions.d.ts.map +1 -0
- package/dist/session/SessionStoreOptions.js +2 -0
- package/dist/session/SessionStoreOptions.js.map +1 -0
- package/dist/session/TokenReferenceStore.d.ts +10 -0
- package/dist/session/TokenReferenceStore.d.ts.map +1 -0
- package/dist/session/TokenReferenceStore.js +2 -0
- package/dist/session/TokenReferenceStore.js.map +1 -0
- package/dist/session/TokenReferenceStoreOptions.d.ts +8 -0
- package/dist/session/TokenReferenceStoreOptions.d.ts.map +1 -0
- package/dist/session/TokenReferenceStoreOptions.js +2 -0
- package/dist/session/TokenReferenceStoreOptions.js.map +1 -0
- package/dist/session/TokenReferenceTokens.d.ts +6 -0
- package/dist/session/TokenReferenceTokens.d.ts.map +1 -0
- package/dist/session/TokenReferenceTokens.js +2 -0
- package/dist/session/TokenReferenceTokens.js.map +1 -0
- package/dist/session/csrfTokenIssue.d.ts +4 -0
- package/dist/session/csrfTokenIssue.d.ts.map +1 -0
- package/dist/session/csrfTokenIssue.js +4 -0
- package/dist/session/csrfTokenIssue.js.map +1 -0
- package/dist/session/csrfTokenStoreCreate.d.ts +4 -0
- package/dist/session/csrfTokenStoreCreate.d.ts.map +1 -0
- package/dist/session/csrfTokenStoreCreate.js +179 -0
- package/dist/session/csrfTokenStoreCreate.js.map +1 -0
- package/dist/session/csrfTokenValidate.d.ts +4 -0
- package/dist/session/csrfTokenValidate.d.ts.map +1 -0
- package/dist/session/csrfTokenValidate.js +16 -0
- package/dist/session/csrfTokenValidate.js.map +1 -0
- package/dist/session/randomBytesGenerate.d.ts +3 -0
- package/dist/session/randomBytesGenerate.d.ts.map +1 -0
- package/dist/session/randomBytesGenerate.js +16 -0
- package/dist/session/randomBytesGenerate.js.map +1 -0
- package/dist/session/sessionActorResolve.d.ts +5 -0
- package/dist/session/sessionActorResolve.d.ts.map +1 -0
- package/dist/session/sessionActorResolve.js +98 -0
- package/dist/session/sessionActorResolve.js.map +1 -0
- package/dist/session/sessionCookieClear.d.ts +4 -0
- package/dist/session/sessionCookieClear.d.ts.map +1 -0
- package/dist/session/sessionCookieClear.js +20 -0
- package/dist/session/sessionCookieClear.js.map +1 -0
- package/dist/session/sessionCookieParse.d.ts +4 -0
- package/dist/session/sessionCookieParse.d.ts.map +1 -0
- package/dist/session/sessionCookieParse.js +42 -0
- package/dist/session/sessionCookieParse.js.map +1 -0
- package/dist/session/sessionCookieSerialize.d.ts +4 -0
- package/dist/session/sessionCookieSerialize.d.ts.map +1 -0
- package/dist/session/sessionCookieSerialize.js +28 -0
- package/dist/session/sessionCookieSerialize.js.map +1 -0
- package/dist/session/sessionLogout.d.ts +8 -0
- package/dist/session/sessionLogout.d.ts.map +1 -0
- package/dist/session/sessionLogout.js +74 -0
- package/dist/session/sessionLogout.js.map +1 -0
- package/dist/session/sessionRecordValidate.d.ts +4 -0
- package/dist/session/sessionRecordValidate.d.ts.map +1 -0
- package/dist/session/sessionRecordValidate.js +44 -0
- package/dist/session/sessionRecordValidate.js.map +1 -0
- package/dist/session/sessionRequestResolve.d.ts +9 -0
- package/dist/session/sessionRequestResolve.d.ts.map +1 -0
- package/dist/session/sessionRequestResolve.js +23 -0
- package/dist/session/sessionRequestResolve.js.map +1 -0
- package/dist/session/sessionStoreCreate.d.ts +4 -0
- package/dist/session/sessionStoreCreate.d.ts.map +1 -0
- package/dist/session/sessionStoreCreate.js +220 -0
- package/dist/session/sessionStoreCreate.js.map +1 -0
- package/dist/session/tokenReferenceIdValidate.d.ts +3 -0
- package/dist/session/tokenReferenceIdValidate.d.ts.map +1 -0
- package/dist/session/tokenReferenceIdValidate.js +10 -0
- package/dist/session/tokenReferenceIdValidate.js.map +1 -0
- package/dist/session/tokenReferenceStoreCreate.d.ts +4 -0
- package/dist/session/tokenReferenceStoreCreate.d.ts.map +1 -0
- package/dist/session/tokenReferenceStoreCreate.js +96 -0
- package/dist/session/tokenReferenceStoreCreate.js.map +1 -0
- package/dist/session/tokenReferenceTokensValidate.d.ts +4 -0
- package/dist/session/tokenReferenceTokensValidate.d.ts.map +1 -0
- package/dist/session/tokenReferenceTokensValidate.js +26 -0
- package/dist/session/tokenReferenceTokensValidate.js.map +1 -0
- package/dist/ui/assets/index-C5h9COjm.css +1 -0
- package/dist/ui/assets/index-CwUhaCYM.js +1 -0
- package/dist/ui/index.html +13 -0
- package/dist/web-server/MutationSecurityOptions.d.ts +11 -0
- package/dist/web-server/MutationSecurityOptions.d.ts.map +1 -0
- package/dist/web-server/MutationSecurityOptions.js +2 -0
- package/dist/web-server/MutationSecurityOptions.js.map +1 -0
- package/dist/web-server/mutationOriginValidate.d.ts +3 -0
- package/dist/web-server/mutationOriginValidate.d.ts.map +1 -0
- package/dist/web-server/mutationOriginValidate.js +30 -0
- package/dist/web-server/mutationOriginValidate.js.map +1 -0
- package/dist/web-server/mutationSecurityValidate.d.ts +4 -0
- package/dist/web-server/mutationSecurityValidate.d.ts.map +1 -0
- package/dist/web-server/mutationSecurityValidate.js +27 -0
- package/dist/web-server/mutationSecurityValidate.js.map +1 -0
- package/dist/zitadel/LoginTransaction.d.ts +9 -0
- package/dist/zitadel/LoginTransaction.d.ts.map +1 -0
- package/dist/zitadel/LoginTransaction.js +2 -0
- package/dist/zitadel/LoginTransaction.js.map +1 -0
- package/dist/zitadel/LoginTransactionStore.d.ts +7 -0
- package/dist/zitadel/LoginTransactionStore.d.ts.map +1 -0
- package/dist/zitadel/LoginTransactionStore.js +2 -0
- package/dist/zitadel/LoginTransactionStore.js.map +1 -0
- package/dist/zitadel/LoginTransactionStoreOptions.d.ts +6 -0
- package/dist/zitadel/LoginTransactionStoreOptions.d.ts.map +1 -0
- package/dist/zitadel/LoginTransactionStoreOptions.js +2 -0
- package/dist/zitadel/LoginTransactionStoreOptions.js.map +1 -0
- package/dist/zitadel/ZitadelCallbackOptions.d.ts +28 -0
- package/dist/zitadel/ZitadelCallbackOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelCallbackOptions.js +2 -0
- package/dist/zitadel/ZitadelCallbackOptions.js.map +1 -0
- package/dist/zitadel/ZitadelCallbackResult.d.ts +8 -0
- package/dist/zitadel/ZitadelCallbackResult.d.ts.map +1 -0
- package/dist/zitadel/ZitadelCallbackResult.js +2 -0
- package/dist/zitadel/ZitadelCallbackResult.js.map +1 -0
- package/dist/zitadel/ZitadelDiscoveryDocument.d.ts +7 -0
- package/dist/zitadel/ZitadelDiscoveryDocument.d.ts.map +1 -0
- package/dist/zitadel/ZitadelDiscoveryDocument.js +2 -0
- package/dist/zitadel/ZitadelDiscoveryDocument.js.map +1 -0
- package/dist/zitadel/ZitadelHttp.d.ts +2 -0
- package/dist/zitadel/ZitadelHttp.d.ts.map +1 -0
- package/dist/zitadel/ZitadelHttp.js +2 -0
- package/dist/zitadel/ZitadelHttp.js.map +1 -0
- package/dist/zitadel/ZitadelHttpOptions.d.ts +6 -0
- package/dist/zitadel/ZitadelHttpOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelHttpOptions.js +2 -0
- package/dist/zitadel/ZitadelHttpOptions.js.map +1 -0
- package/dist/zitadel/ZitadelIdentityClaims.d.ts +6 -0
- package/dist/zitadel/ZitadelIdentityClaims.d.ts.map +1 -0
- package/dist/zitadel/ZitadelIdentityClaims.js +2 -0
- package/dist/zitadel/ZitadelIdentityClaims.js.map +1 -0
- package/dist/zitadel/ZitadelIdentityDirectoryOptions.d.ts +11 -0
- package/dist/zitadel/ZitadelIdentityDirectoryOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelIdentityDirectoryOptions.js +2 -0
- package/dist/zitadel/ZitadelIdentityDirectoryOptions.js.map +1 -0
- package/dist/zitadel/ZitadelJwk.d.ts +12 -0
- package/dist/zitadel/ZitadelJwk.d.ts.map +1 -0
- package/dist/zitadel/ZitadelJwk.js +2 -0
- package/dist/zitadel/ZitadelJwk.js.map +1 -0
- package/dist/zitadel/ZitadelJwks.d.ts +5 -0
- package/dist/zitadel/ZitadelJwks.d.ts.map +1 -0
- package/dist/zitadel/ZitadelJwks.js +2 -0
- package/dist/zitadel/ZitadelJwks.js.map +1 -0
- package/dist/zitadel/ZitadelLoginStartOptions.d.ts +17 -0
- package/dist/zitadel/ZitadelLoginStartOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelLoginStartOptions.js +2 -0
- package/dist/zitadel/ZitadelLoginStartOptions.js.map +1 -0
- package/dist/zitadel/ZitadelLoginStartResult.d.ts +6 -0
- package/dist/zitadel/ZitadelLoginStartResult.d.ts.map +1 -0
- package/dist/zitadel/ZitadelLoginStartResult.js +2 -0
- package/dist/zitadel/ZitadelLoginStartResult.js.map +1 -0
- package/dist/zitadel/ZitadelOidcConfig.d.ts +10 -0
- package/dist/zitadel/ZitadelOidcConfig.d.ts.map +1 -0
- package/dist/zitadel/ZitadelOidcConfig.js +2 -0
- package/dist/zitadel/ZitadelOidcConfig.js.map +1 -0
- package/dist/zitadel/ZitadelPreAuthCookieOptions.d.ts +4 -0
- package/dist/zitadel/ZitadelPreAuthCookieOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelPreAuthCookieOptions.js +2 -0
- package/dist/zitadel/ZitadelPreAuthCookieOptions.js.map +1 -0
- package/dist/zitadel/ZitadelTokenExchangeOptions.d.ts +17 -0
- package/dist/zitadel/ZitadelTokenExchangeOptions.d.ts.map +1 -0
- package/dist/zitadel/ZitadelTokenExchangeOptions.js +2 -0
- package/dist/zitadel/ZitadelTokenExchangeOptions.js.map +1 -0
- package/dist/zitadel/ZitadelTokens.d.ts +7 -0
- package/dist/zitadel/ZitadelTokens.d.ts.map +1 -0
- package/dist/zitadel/ZitadelTokens.js +2 -0
- package/dist/zitadel/ZitadelTokens.js.map +1 -0
- package/dist/zitadel/zitadelCallbackHandle.d.ts +5 -0
- package/dist/zitadel/zitadelCallbackHandle.d.ts.map +1 -0
- package/dist/zitadel/zitadelCallbackHandle.js +255 -0
- package/dist/zitadel/zitadelCallbackHandle.js.map +1 -0
- package/dist/zitadel/zitadelConfigValidate.d.ts +4 -0
- package/dist/zitadel/zitadelConfigValidate.d.ts.map +1 -0
- package/dist/zitadel/zitadelConfigValidate.js +88 -0
- package/dist/zitadel/zitadelConfigValidate.js.map +1 -0
- package/dist/zitadel/zitadelDiscoveryFetch.d.ts +7 -0
- package/dist/zitadel/zitadelDiscoveryFetch.d.ts.map +1 -0
- package/dist/zitadel/zitadelDiscoveryFetch.js +55 -0
- package/dist/zitadel/zitadelDiscoveryFetch.js.map +1 -0
- package/dist/zitadel/zitadelDiscoveryValidate.d.ts +4 -0
- package/dist/zitadel/zitadelDiscoveryValidate.d.ts.map +1 -0
- package/dist/zitadel/zitadelDiscoveryValidate.js +43 -0
- package/dist/zitadel/zitadelDiscoveryValidate.js.map +1 -0
- package/dist/zitadel/zitadelHttpJsonFetch.d.ts +8 -0
- package/dist/zitadel/zitadelHttpJsonFetch.d.ts.map +1 -0
- package/dist/zitadel/zitadelHttpJsonFetch.js +118 -0
- package/dist/zitadel/zitadelHttpJsonFetch.js.map +1 -0
- package/dist/zitadel/zitadelIdTokenValidate.d.ts +7 -0
- package/dist/zitadel/zitadelIdTokenValidate.d.ts.map +1 -0
- package/dist/zitadel/zitadelIdTokenValidate.js +170 -0
- package/dist/zitadel/zitadelIdTokenValidate.js.map +1 -0
- package/dist/zitadel/zitadelIdentityDirectoryCreate.d.ts +5 -0
- package/dist/zitadel/zitadelIdentityDirectoryCreate.d.ts.map +1 -0
- package/dist/zitadel/zitadelIdentityDirectoryCreate.js +268 -0
- package/dist/zitadel/zitadelIdentityDirectoryCreate.js.map +1 -0
- package/dist/zitadel/zitadelJwksFetch.d.ts +6 -0
- package/dist/zitadel/zitadelJwksFetch.d.ts.map +1 -0
- package/dist/zitadel/zitadelJwksFetch.js +36 -0
- package/dist/zitadel/zitadelJwksFetch.js.map +1 -0
- package/dist/zitadel/zitadelJwksValidate.d.ts +4 -0
- package/dist/zitadel/zitadelJwksValidate.d.ts.map +1 -0
- package/dist/zitadel/zitadelJwksValidate.js +69 -0
- package/dist/zitadel/zitadelJwksValidate.js.map +1 -0
- package/dist/zitadel/zitadelLoginStart.d.ts +5 -0
- package/dist/zitadel/zitadelLoginStart.d.ts.map +1 -0
- package/dist/zitadel/zitadelLoginStart.js +102 -0
- package/dist/zitadel/zitadelLoginStart.js.map +1 -0
- package/dist/zitadel/zitadelLoginTransactionStoreCreate.d.ts +4 -0
- package/dist/zitadel/zitadelLoginTransactionStoreCreate.d.ts.map +1 -0
- package/dist/zitadel/zitadelLoginTransactionStoreCreate.js +82 -0
- package/dist/zitadel/zitadelLoginTransactionStoreCreate.js.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieClear.d.ts +3 -0
- package/dist/zitadel/zitadelPreAuthCookieClear.d.ts.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieClear.js +6 -0
- package/dist/zitadel/zitadelPreAuthCookieClear.js.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieHash.d.ts +3 -0
- package/dist/zitadel/zitadelPreAuthCookieHash.d.ts.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieHash.js +20 -0
- package/dist/zitadel/zitadelPreAuthCookieHash.js.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieParse.d.ts +3 -0
- package/dist/zitadel/zitadelPreAuthCookieParse.d.ts.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieParse.js +33 -0
- package/dist/zitadel/zitadelPreAuthCookieParse.js.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieSerialize.d.ts +4 -0
- package/dist/zitadel/zitadelPreAuthCookieSerialize.d.ts.map +1 -0
- package/dist/zitadel/zitadelPreAuthCookieSerialize.js +20 -0
- package/dist/zitadel/zitadelPreAuthCookieSerialize.js.map +1 -0
- package/dist/zitadel/zitadelTokenExchange.d.ts +5 -0
- package/dist/zitadel/zitadelTokenExchange.d.ts.map +1 -0
- package/dist/zitadel/zitadelTokenExchange.js +92 -0
- package/dist/zitadel/zitadelTokenExchange.js.map +1 -0
- package/package.json +137 -0
|
@@ -0,0 +1,813 @@
|
|
|
1
|
+
import { constants } from "node:fs";
|
|
2
|
+
import { lstat, mkdir, open, readdir, realpath } from "node:fs/promises";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import * as a from "valibot";
|
|
5
|
+
import { gitStoreHistory, gitStoreList, gitStoreOpen, gitStoreRead, gitStoreRun, } from "#git-store";
|
|
6
|
+
import { createResult, createResultError } from "#result";
|
|
7
|
+
import { projectCollisions } from "../project/projectCollisions.js";
|
|
8
|
+
import { projectKeyEqual } from "../project/projectKeyEqual.js";
|
|
9
|
+
import { projectMutationExpectedRevision } from "../project/projectMutationExpectedRevision.js";
|
|
10
|
+
import { projectRevisionValidate } from "../project/projectRevisionValidate.js";
|
|
11
|
+
import { projectSchema } from "../project/projectSchema.js";
|
|
12
|
+
import { projectValidate } from "../project/projectValidate.js";
|
|
13
|
+
import { projectRepositoryOptionsSchema } from "./ProjectRepositoryOptions.js";
|
|
14
|
+
import { projectRepositoryOwnerPath } from "./projectRepositoryOwnerPath.js";
|
|
15
|
+
import { projectRepositoryPath } from "./projectRepositoryPath.js";
|
|
16
|
+
const daemonAuthorName = "project-registry";
|
|
17
|
+
const daemonAuthorEmail = "project-registry@localhost";
|
|
18
|
+
const mutationQueues = new Map();
|
|
19
|
+
function errorMessage(error) {
|
|
20
|
+
return error instanceof Error ? error.message : String(error);
|
|
21
|
+
}
|
|
22
|
+
function projectRepositoryNoHead(error) {
|
|
23
|
+
const message = error.toLowerCase();
|
|
24
|
+
return (message.includes("does not have any commits") ||
|
|
25
|
+
message.includes("bad revision") ||
|
|
26
|
+
message.includes("unknown revision") ||
|
|
27
|
+
message.includes("ambiguous argument 'head'") ||
|
|
28
|
+
message.includes("needed a single revision"));
|
|
29
|
+
}
|
|
30
|
+
async function projectRepositoryRevision(store) {
|
|
31
|
+
const revisionR = await gitStoreRun(store.git, ["rev-parse", "--verify", "HEAD"]);
|
|
32
|
+
if (!revisionR.success) {
|
|
33
|
+
if (projectRepositoryNoHead(revisionR.errorMessage))
|
|
34
|
+
return createResult("");
|
|
35
|
+
return revisionR;
|
|
36
|
+
}
|
|
37
|
+
return projectRevisionValidate(revisionR.data.trim(), "projectRepositoryRevision");
|
|
38
|
+
}
|
|
39
|
+
async function projectRepositoryWorktreeStatus(store) {
|
|
40
|
+
const statusR = await gitStoreRun(store.git, ["status", "--porcelain", "--untracked-files=all"]);
|
|
41
|
+
if (!statusR.success)
|
|
42
|
+
return statusR;
|
|
43
|
+
return createResult({ clean: statusR.data.trim() === "" });
|
|
44
|
+
}
|
|
45
|
+
function projectRepositoryParseTreeEntries(data, index) {
|
|
46
|
+
const entries = new Map();
|
|
47
|
+
for (const record of data.split("\0")) {
|
|
48
|
+
if (record === "")
|
|
49
|
+
continue;
|
|
50
|
+
const separator = record.indexOf("\t");
|
|
51
|
+
if (separator < 0)
|
|
52
|
+
return createResultError("projectRepositoryRead", "invalid Git tree entry");
|
|
53
|
+
const metadata = record.slice(0, separator).split(" ");
|
|
54
|
+
const path = record.slice(separator + 1);
|
|
55
|
+
const object = index ? metadata[1] : metadata[2];
|
|
56
|
+
const stage = index ? metadata[2] : "0";
|
|
57
|
+
if (!object || !stage || path === "")
|
|
58
|
+
return createResultError("projectRepositoryRead", "invalid Git tree entry");
|
|
59
|
+
const pathEntries = entries.get(path) ?? [];
|
|
60
|
+
pathEntries.push({ object, path, stage });
|
|
61
|
+
entries.set(path, pathEntries);
|
|
62
|
+
}
|
|
63
|
+
return createResult(entries);
|
|
64
|
+
}
|
|
65
|
+
function projectRepositoryTreeEntriesEqual(left, right) {
|
|
66
|
+
const normalize = (entries) => entries
|
|
67
|
+
.map((entry) => `${entry.stage}:${entry.object}`)
|
|
68
|
+
.sort()
|
|
69
|
+
.join(",");
|
|
70
|
+
return normalize(left) === normalize(right);
|
|
71
|
+
}
|
|
72
|
+
async function projectRepositoryTrackedDivergence(store, op) {
|
|
73
|
+
const revisionR = await projectRepositoryRevision(store);
|
|
74
|
+
if (!revisionR.success)
|
|
75
|
+
return revisionR;
|
|
76
|
+
if (revisionR.data === "")
|
|
77
|
+
return createResult(undefined);
|
|
78
|
+
const headR = await gitStoreRun(store.git, ["ls-tree", "-r", "-z", "HEAD"]);
|
|
79
|
+
if (!headR.success)
|
|
80
|
+
return headR;
|
|
81
|
+
const indexR = await gitStoreRun(store.git, ["ls-files", "--cached", "--stage", "-z"]);
|
|
82
|
+
if (!indexR.success)
|
|
83
|
+
return indexR;
|
|
84
|
+
const headEntriesR = projectRepositoryParseTreeEntries(headR.data, false);
|
|
85
|
+
if (!headEntriesR.success)
|
|
86
|
+
return headEntriesR;
|
|
87
|
+
const indexEntriesR = projectRepositoryParseTreeEntries(indexR.data, true);
|
|
88
|
+
if (!indexEntriesR.success)
|
|
89
|
+
return indexEntriesR;
|
|
90
|
+
const headEntries = headEntriesR.data;
|
|
91
|
+
const indexEntries = indexEntriesR.data;
|
|
92
|
+
const paths = new Set([...headEntries.keys(), ...indexEntries.keys()]);
|
|
93
|
+
for (const path of paths) {
|
|
94
|
+
const headPathEntries = headEntries.get(path) ?? [];
|
|
95
|
+
const indexPathEntries = indexEntries.get(path) ?? [];
|
|
96
|
+
if (!projectRepositoryTreeEntriesEqual(headPathEntries, indexPathEntries)) {
|
|
97
|
+
const subject = path.startsWith("projects/") ? "tracked project index" : "tracked index";
|
|
98
|
+
return createResultError(op, `${path}: ${subject} diverges from HEAD`, path);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
for (const path of headEntries.keys()) {
|
|
102
|
+
const hashR = await gitStoreRun(store.git, ["hash-object", `--path=${path}`, "--", path]);
|
|
103
|
+
if (!hashR.success) {
|
|
104
|
+
const subject = path.startsWith("projects/") ? "tracked project file" : "tracked file";
|
|
105
|
+
return createResultError(op, `${path}: ${subject} diverges from HEAD`, path);
|
|
106
|
+
}
|
|
107
|
+
const headObject = headEntries.get(path)?.[0]?.object;
|
|
108
|
+
if (!headObject || hashR.data.trim() !== headObject) {
|
|
109
|
+
const subject = path.startsWith("projects/") ? "tracked project file" : "tracked file";
|
|
110
|
+
return createResultError(op, `${path}: ${subject} diverges from HEAD`, path);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return createResult(undefined);
|
|
114
|
+
}
|
|
115
|
+
async function projectRepositoryCurrentBranch(git) {
|
|
116
|
+
const branchR = await gitStoreRun(git, ["branch", "--show-current"]);
|
|
117
|
+
if (!branchR.success)
|
|
118
|
+
return branchR;
|
|
119
|
+
return createResult(branchR.data.trim());
|
|
120
|
+
}
|
|
121
|
+
async function projectRepositoryRequireConfiguredBranch(git, op) {
|
|
122
|
+
const branchR = await projectRepositoryCurrentBranch(git);
|
|
123
|
+
if (!branchR.success)
|
|
124
|
+
return branchR;
|
|
125
|
+
if (branchR.data === git.branch)
|
|
126
|
+
return createResult(undefined);
|
|
127
|
+
const currentBranch = branchR.data === "" ? "(detached HEAD)" : branchR.data;
|
|
128
|
+
return createResultError(op, `current branch ${currentBranch} does not match configured branch ${git.branch}; refusing to open repository`, git.dir);
|
|
129
|
+
}
|
|
130
|
+
async function projectRepositoryReadiness(store) {
|
|
131
|
+
const branchR = await projectRepositoryRequireConfiguredBranch(store.git, "projectRepositoryReadiness");
|
|
132
|
+
if (!branchR.success)
|
|
133
|
+
return branchR;
|
|
134
|
+
const statusR = await projectRepositoryWorktreeStatus(store);
|
|
135
|
+
if (!statusR.success)
|
|
136
|
+
return statusR;
|
|
137
|
+
const revisionR = await projectRepositoryRevision(store);
|
|
138
|
+
if (!revisionR.success)
|
|
139
|
+
return revisionR;
|
|
140
|
+
if (statusR.data.clean) {
|
|
141
|
+
const snapshotR = await projectRepositoryReadSnapshot(store);
|
|
142
|
+
if (!snapshotR.success) {
|
|
143
|
+
return createResult({ ready: false, clean: true, revision: revisionR.data, reason: snapshotR.errorMessage });
|
|
144
|
+
}
|
|
145
|
+
return createResult({ ready: true, clean: true, revision: snapshotR.data.revision });
|
|
146
|
+
}
|
|
147
|
+
return createResult({
|
|
148
|
+
ready: false,
|
|
149
|
+
clean: false,
|
|
150
|
+
revision: revisionR.data,
|
|
151
|
+
reason: "worktree is dirty; recover from HEAD before reading or mutating projects",
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async function projectRepositoryRequireClean(store, op) {
|
|
155
|
+
const statusR = await projectRepositoryWorktreeStatus(store);
|
|
156
|
+
if (!statusR.success)
|
|
157
|
+
return statusR;
|
|
158
|
+
if (!statusR.data.clean) {
|
|
159
|
+
return createResultError(op, "worktree is dirty; recover from HEAD before reading or mutating projects");
|
|
160
|
+
}
|
|
161
|
+
const divergenceR = await projectRepositoryTrackedDivergence(store, op);
|
|
162
|
+
if (!divergenceR.success)
|
|
163
|
+
return divergenceR;
|
|
164
|
+
return createResult(undefined);
|
|
165
|
+
}
|
|
166
|
+
function projectRepositoryMissing(error) {
|
|
167
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === "ENOENT";
|
|
168
|
+
}
|
|
169
|
+
async function projectRepositoryProjectsDirectorySafe(directory, relativeDirectory) {
|
|
170
|
+
let entries;
|
|
171
|
+
try {
|
|
172
|
+
entries = await readdir(directory, { withFileTypes: true });
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
return createResultError("projectRepositoryProjectsSafe", errorMessage(error), relativeDirectory);
|
|
176
|
+
}
|
|
177
|
+
for (const entry of entries) {
|
|
178
|
+
const path = join(directory, entry.name);
|
|
179
|
+
const relativePath = `${relativeDirectory}/${entry.name}`;
|
|
180
|
+
let pathStat;
|
|
181
|
+
try {
|
|
182
|
+
pathStat = await lstat(path);
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
return createResultError("projectRepositoryProjectsSafe", errorMessage(error), relativePath);
|
|
186
|
+
}
|
|
187
|
+
if (entry.name === ".git" || pathStat.isSymbolicLink()) {
|
|
188
|
+
return createResultError("projectRepositoryProjectsSafe", "symbolic links and reserved .git paths are not allowed beneath projects", relativePath);
|
|
189
|
+
}
|
|
190
|
+
if (pathStat.isDirectory()) {
|
|
191
|
+
const safeR = await projectRepositoryProjectsDirectorySafe(path, relativePath);
|
|
192
|
+
if (!safeR.success)
|
|
193
|
+
return safeR;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return createResult(undefined);
|
|
197
|
+
}
|
|
198
|
+
async function projectRepositoryProjectsSafe(store) {
|
|
199
|
+
let currentDir;
|
|
200
|
+
try {
|
|
201
|
+
currentDir = await realpath(store.git.dir);
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
return createResultError("projectRepositoryProjectsSafe", errorMessage(error), store.git.dir);
|
|
205
|
+
}
|
|
206
|
+
if (currentDir !== store.queueKey) {
|
|
207
|
+
return createResultError("projectRepositoryProjectsSafe", "worktree path is not the canonical real worktree");
|
|
208
|
+
}
|
|
209
|
+
const root = join(store.git.dir, "projects");
|
|
210
|
+
let rootStat;
|
|
211
|
+
try {
|
|
212
|
+
rootStat = await lstat(root);
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
if (projectRepositoryMissing(error))
|
|
216
|
+
return createResult(undefined);
|
|
217
|
+
return createResultError("projectRepositoryProjectsSafe", errorMessage(error), "projects");
|
|
218
|
+
}
|
|
219
|
+
if (rootStat.isSymbolicLink()) {
|
|
220
|
+
return createResultError("projectRepositoryProjectsSafe", "symbolic links and reserved .git paths are not allowed beneath projects", "projects");
|
|
221
|
+
}
|
|
222
|
+
if (!rootStat.isDirectory())
|
|
223
|
+
return createResultError("projectRepositoryProjectsSafe", "projects is not a directory");
|
|
224
|
+
return projectRepositoryProjectsDirectorySafe(root, "projects");
|
|
225
|
+
}
|
|
226
|
+
async function projectRepositoryTrackedPaths(store) {
|
|
227
|
+
const trackedR = await gitStoreRun(store.git, ["ls-files", "--cached", "--full-name", "-z"]);
|
|
228
|
+
if (!trackedR.success)
|
|
229
|
+
return trackedR;
|
|
230
|
+
const tracked = new Set();
|
|
231
|
+
for (const path of trackedR.data.split("\0")) {
|
|
232
|
+
if (path !== "")
|
|
233
|
+
tracked.add(path);
|
|
234
|
+
}
|
|
235
|
+
return createResult(tracked);
|
|
236
|
+
}
|
|
237
|
+
async function projectRepositoryParentDirectory(store, relativeDirectory) {
|
|
238
|
+
const segments = relativeDirectory.split("/");
|
|
239
|
+
let directory = store.git.dir;
|
|
240
|
+
for (const segment of segments) {
|
|
241
|
+
directory = join(directory, segment);
|
|
242
|
+
let directoryStat;
|
|
243
|
+
try {
|
|
244
|
+
directoryStat = await lstat(directory);
|
|
245
|
+
}
|
|
246
|
+
catch (error) {
|
|
247
|
+
if (!projectRepositoryMissing(error)) {
|
|
248
|
+
return createResultError("projectRepositoryWrite", errorMessage(error), relativeDirectory);
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
await mkdir(directory);
|
|
252
|
+
directoryStat = await lstat(directory);
|
|
253
|
+
}
|
|
254
|
+
catch (mkdirError) {
|
|
255
|
+
return createResultError("projectRepositoryWrite", errorMessage(mkdirError), relativeDirectory);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (directoryStat.isSymbolicLink() || !directoryStat.isDirectory()) {
|
|
259
|
+
return createResultError("projectRepositoryWrite", "project path contains a non-directory component", relativeDirectory);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return createResult(directory);
|
|
263
|
+
}
|
|
264
|
+
async function projectRepositoryGitRunWithDaemonIdentity(store, args) {
|
|
265
|
+
const op = "projectRepositoryGitRunWithDaemonIdentity";
|
|
266
|
+
try {
|
|
267
|
+
const environment = {};
|
|
268
|
+
for (const [key, value] of Object.entries(Bun.env)) {
|
|
269
|
+
if (value !== undefined)
|
|
270
|
+
environment[key] = value;
|
|
271
|
+
}
|
|
272
|
+
environment.GIT_AUTHOR_NAME = daemonAuthorName;
|
|
273
|
+
environment.GIT_AUTHOR_EMAIL = daemonAuthorEmail;
|
|
274
|
+
environment.GIT_COMMITTER_NAME = daemonAuthorName;
|
|
275
|
+
environment.GIT_COMMITTER_EMAIL = daemonAuthorEmail;
|
|
276
|
+
const process = Bun.spawn(["git", ...args], {
|
|
277
|
+
cwd: store.git.dir,
|
|
278
|
+
env: environment,
|
|
279
|
+
stdout: "pipe",
|
|
280
|
+
stderr: "pipe",
|
|
281
|
+
});
|
|
282
|
+
const [stdout, stderr, exitCode] = await Promise.all([
|
|
283
|
+
new Response(process.stdout).text(),
|
|
284
|
+
new Response(process.stderr).text(),
|
|
285
|
+
process.exited,
|
|
286
|
+
]);
|
|
287
|
+
if (exitCode !== 0)
|
|
288
|
+
return createResultError(op, (stderr || stdout).trim() || `git exited ${exitCode}`, args.join(" "));
|
|
289
|
+
return createResult(stdout);
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
return createResultError(op, errorMessage(error), args.join(" "));
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
async function projectRepositoryCommitGit(store, message) {
|
|
296
|
+
const statusR = await gitStoreRun(store.git, ["status", "--porcelain"]);
|
|
297
|
+
if (!statusR.success)
|
|
298
|
+
return statusR;
|
|
299
|
+
if (statusR.data.trim() === "")
|
|
300
|
+
return createResult("");
|
|
301
|
+
const commitR = await projectRepositoryGitRunWithDaemonIdentity(store, ["commit", "-m", message]);
|
|
302
|
+
if (!commitR.success)
|
|
303
|
+
return commitR;
|
|
304
|
+
const revisionR = await gitStoreRun(store.git, ["rev-parse", "HEAD"]);
|
|
305
|
+
if (!revisionR.success)
|
|
306
|
+
return revisionR;
|
|
307
|
+
return projectRevisionValidate(revisionR.data.trim(), "projectRepositoryCommitGit");
|
|
308
|
+
}
|
|
309
|
+
async function projectRepositoryWrite(store, relPath, project, message) {
|
|
310
|
+
const segments = relPath.split("/");
|
|
311
|
+
const fileName = segments.pop();
|
|
312
|
+
if (!fileName)
|
|
313
|
+
return createResultError("projectRepositoryWrite", "project path must name a file", relPath);
|
|
314
|
+
const parentR = await projectRepositoryParentDirectory(store, segments.join("/"));
|
|
315
|
+
if (!parentR.success)
|
|
316
|
+
return parentR;
|
|
317
|
+
const absolutePath = join(parentR.data, fileName);
|
|
318
|
+
let fileHandle;
|
|
319
|
+
try {
|
|
320
|
+
fileHandle = await open(absolutePath, constants.O_WRONLY | constants.O_CREAT | constants.O_TRUNC | constants.O_NOFOLLOW, 0o666);
|
|
321
|
+
await fileHandle.writeFile(`${JSON.stringify(project, null, 2)}\n`, "utf8");
|
|
322
|
+
}
|
|
323
|
+
catch (error) {
|
|
324
|
+
return createResultError("projectRepositoryWrite", errorMessage(error), relPath);
|
|
325
|
+
}
|
|
326
|
+
finally {
|
|
327
|
+
await fileHandle?.close();
|
|
328
|
+
}
|
|
329
|
+
const addR = await gitStoreRun(store.git, ["add", "--", relPath]);
|
|
330
|
+
if (!addR.success)
|
|
331
|
+
return addR;
|
|
332
|
+
return projectRepositoryCommitGit(store, message);
|
|
333
|
+
}
|
|
334
|
+
async function projectRepositoryClearTrackedFlags(store, relPath) {
|
|
335
|
+
const op = "projectRepositoryClearTrackedFlags";
|
|
336
|
+
const assumeUnchangedR = await gitStoreRun(store.git, ["update-index", "--no-assume-unchanged", "--", relPath]);
|
|
337
|
+
if (!assumeUnchangedR.success)
|
|
338
|
+
return createResultError(op, assumeUnchangedR.errorMessage, relPath);
|
|
339
|
+
const skipWorktreeR = await gitStoreRun(store.git, ["update-index", "--no-skip-worktree", "--", relPath]);
|
|
340
|
+
if (!skipWorktreeR.success)
|
|
341
|
+
return createResultError(op, skipWorktreeR.errorMessage, relPath);
|
|
342
|
+
return createResult(undefined);
|
|
343
|
+
}
|
|
344
|
+
function projectRepositoryPathKey(relPath) {
|
|
345
|
+
const op = "projectRepositoryRead";
|
|
346
|
+
const match = /^projects\/([^/]+)\/([^/]+)\.json$/.exec(relPath);
|
|
347
|
+
if (!match)
|
|
348
|
+
return createResultError(op, "invalid project path", relPath);
|
|
349
|
+
const owner = match[1];
|
|
350
|
+
const name = match[2];
|
|
351
|
+
if (owner === undefined || name === undefined)
|
|
352
|
+
return createResultError(op, "invalid project path", relPath);
|
|
353
|
+
const pathR = projectRepositoryPath({ owner, name });
|
|
354
|
+
if (!pathR.success)
|
|
355
|
+
return createResultError(op, pathR.errorMessage, relPath);
|
|
356
|
+
if (pathR.data !== relPath)
|
|
357
|
+
return createResultError(op, "invalid project path", relPath);
|
|
358
|
+
return createResult({ owner, name });
|
|
359
|
+
}
|
|
360
|
+
async function projectRepositoryReadSnapshot(store) {
|
|
361
|
+
const op = "projectRepositoryRead";
|
|
362
|
+
const safeR = await projectRepositoryProjectsSafe(store);
|
|
363
|
+
if (!safeR.success)
|
|
364
|
+
return safeR;
|
|
365
|
+
const cleanR = await projectRepositoryRequireClean(store, op);
|
|
366
|
+
if (!cleanR.success)
|
|
367
|
+
return cleanR;
|
|
368
|
+
const listR = await gitStoreList(store.git, "projects");
|
|
369
|
+
if (!listR.success)
|
|
370
|
+
return listR;
|
|
371
|
+
const trackedR = await projectRepositoryTrackedPaths(store);
|
|
372
|
+
if (!trackedR.success)
|
|
373
|
+
return trackedR;
|
|
374
|
+
const projects = [];
|
|
375
|
+
for (const relPath of listR.data) {
|
|
376
|
+
if (!trackedR.data.has(relPath)) {
|
|
377
|
+
return createResultError(op, `${relPath}: project file is not tracked by Git`, relPath);
|
|
378
|
+
}
|
|
379
|
+
const keyR = projectRepositoryPathKey(relPath);
|
|
380
|
+
if (!keyR.success)
|
|
381
|
+
return keyR;
|
|
382
|
+
const projectR = await gitStoreRead(store.git, relPath, projectSchema);
|
|
383
|
+
if (!projectR.success) {
|
|
384
|
+
return createResultError(op, `${relPath}: ${projectR.errorMessage}`, relPath);
|
|
385
|
+
}
|
|
386
|
+
const validatedR = projectValidate(projectR.data);
|
|
387
|
+
if (!validatedR.success) {
|
|
388
|
+
return createResultError(op, `${relPath}: ${validatedR.errorMessage}`, relPath);
|
|
389
|
+
}
|
|
390
|
+
if (!projectKeyEqual(validatedR.data, keyR.data)) {
|
|
391
|
+
return createResultError(op, `${relPath}: project owner/name does not match its path`, relPath);
|
|
392
|
+
}
|
|
393
|
+
projects.push(validatedR.data);
|
|
394
|
+
}
|
|
395
|
+
const collisionsR = projectCollisions(projects);
|
|
396
|
+
if (!collisionsR.success)
|
|
397
|
+
return createResultError(op, collisionsR.errorMessage);
|
|
398
|
+
const revisionR = await projectRepositoryRevision(store);
|
|
399
|
+
if (!revisionR.success)
|
|
400
|
+
return revisionR;
|
|
401
|
+
return createResult({ projects, revision: revisionR.data });
|
|
402
|
+
}
|
|
403
|
+
function projectRepositoryContentsEqual(left, right) {
|
|
404
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
405
|
+
}
|
|
406
|
+
function projectRepositoryActor(options, op) {
|
|
407
|
+
if (!options || typeof options.actor !== "string") {
|
|
408
|
+
return createResultError(op, "actor is required");
|
|
409
|
+
}
|
|
410
|
+
const actor = options.actor
|
|
411
|
+
.replace(/[\r\n\t]+/g, " ")
|
|
412
|
+
.replace(/\s+/g, " ")
|
|
413
|
+
.trim();
|
|
414
|
+
if (actor === "")
|
|
415
|
+
return createResultError(op, "actor is required");
|
|
416
|
+
if ([...actor].some((character) => {
|
|
417
|
+
const codePoint = character.codePointAt(0);
|
|
418
|
+
return codePoint !== undefined && (codePoint <= 0x1f || (codePoint >= 0x7f && codePoint <= 0x9f));
|
|
419
|
+
})) {
|
|
420
|
+
return createResultError(op, "actor must not contain control characters");
|
|
421
|
+
}
|
|
422
|
+
return createResult(actor);
|
|
423
|
+
}
|
|
424
|
+
function projectRepositoryHistoryDeduplicate(commits, limit) {
|
|
425
|
+
const seen = new Set();
|
|
426
|
+
const unique = [];
|
|
427
|
+
for (const commit of commits) {
|
|
428
|
+
if (seen.has(commit.sha))
|
|
429
|
+
continue;
|
|
430
|
+
seen.add(commit.sha);
|
|
431
|
+
unique.push(commit);
|
|
432
|
+
if (limit !== undefined && unique.length >= limit)
|
|
433
|
+
break;
|
|
434
|
+
}
|
|
435
|
+
return unique;
|
|
436
|
+
}
|
|
437
|
+
function projectRepositoryMutationKey(key) {
|
|
438
|
+
return { owner: key.owner, name: key.name };
|
|
439
|
+
}
|
|
440
|
+
function projectRepositoryCommitMessage(action, key, actor) {
|
|
441
|
+
return `project-registry ${action} ${key.owner}/${key.name} actor=${actor}`;
|
|
442
|
+
}
|
|
443
|
+
function projectRepositoryNoop(action, key, revision) {
|
|
444
|
+
return createResult({
|
|
445
|
+
action,
|
|
446
|
+
key: projectRepositoryMutationKey(key),
|
|
447
|
+
changed: false,
|
|
448
|
+
revision,
|
|
449
|
+
localCommit: { status: "unchanged", revision },
|
|
450
|
+
push: { requested: false, status: "not-requested" },
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
async function projectRepositoryConfiguredUpstream(store, op) {
|
|
454
|
+
const remoteR = await gitStoreRun(store.git, ["config", "--get", `branch.${store.git.branch}.remote`]);
|
|
455
|
+
if (!remoteR.success)
|
|
456
|
+
return createResultError(op, "configured upstream remote is missing");
|
|
457
|
+
const mergeR = await gitStoreRun(store.git, ["config", "--get", `branch.${store.git.branch}.merge`]);
|
|
458
|
+
if (!mergeR.success)
|
|
459
|
+
return createResultError(op, "configured upstream ref is missing");
|
|
460
|
+
const remote = remoteR.data.trim();
|
|
461
|
+
const ref = mergeR.data.trim();
|
|
462
|
+
if (remote === "")
|
|
463
|
+
return createResultError(op, "configured upstream remote is empty");
|
|
464
|
+
if (ref === "" || !ref.startsWith("refs/"))
|
|
465
|
+
return createResultError(op, "configured upstream ref is invalid");
|
|
466
|
+
return createResult({ remote, ref });
|
|
467
|
+
}
|
|
468
|
+
function projectRepositoryPushTargetMatches(output, revision, ref) {
|
|
469
|
+
for (const line of output.trim().split("\n")) {
|
|
470
|
+
const fields = line.trim().split(/\s+/);
|
|
471
|
+
if (fields[0] === revision && fields[1] === ref)
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
async function projectRepositoryPush(store, revision, op) {
|
|
477
|
+
const upstreamR = await projectRepositoryConfiguredUpstream(store, op);
|
|
478
|
+
if (!upstreamR.success)
|
|
479
|
+
return upstreamR;
|
|
480
|
+
const { remote, ref } = upstreamR.data;
|
|
481
|
+
const pushR = await gitStoreRun(store.git, ["push", remote, `${revision}:${ref}`]);
|
|
482
|
+
if (!pushR.success)
|
|
483
|
+
return pushR;
|
|
484
|
+
const pushUrlR = await gitStoreRun(store.git, ["remote", "get-url", "--push", remote]);
|
|
485
|
+
const targetRepository = pushUrlR.success ? pushUrlR.data.trim() : remote;
|
|
486
|
+
const targetR = await gitStoreRun(store.git, ["ls-remote", targetRepository, ref]);
|
|
487
|
+
if (!targetR.success)
|
|
488
|
+
return targetR;
|
|
489
|
+
if (!projectRepositoryPushTargetMatches(targetR.data, revision, ref)) {
|
|
490
|
+
return createResultError(op, `upstream ${remote}/${ref} does not reach committed revision ${revision}`);
|
|
491
|
+
}
|
|
492
|
+
return createResult(undefined);
|
|
493
|
+
}
|
|
494
|
+
async function projectRepositoryCommit(store, action, key, actor, relPath, project, expectedRevision) {
|
|
495
|
+
const op = "projectRepositoryMutation";
|
|
496
|
+
const branchR = await projectRepositoryRequireConfiguredBranch(store.git, op);
|
|
497
|
+
if (!branchR.success)
|
|
498
|
+
return branchR;
|
|
499
|
+
const currentRevisionR = await projectRepositoryRevision(store);
|
|
500
|
+
if (!currentRevisionR.success)
|
|
501
|
+
return currentRevisionR;
|
|
502
|
+
if (currentRevisionR.data !== expectedRevision) {
|
|
503
|
+
return createResultError(op, `revision changed during mutation: expected ${expectedRevision}, current ${currentRevisionR.data}`);
|
|
504
|
+
}
|
|
505
|
+
const message = projectRepositoryCommitMessage(action, key, actor);
|
|
506
|
+
const safeR = await projectRepositoryProjectsSafe(store);
|
|
507
|
+
if (!safeR.success)
|
|
508
|
+
return safeR;
|
|
509
|
+
if (action !== "create") {
|
|
510
|
+
const clearFlagsR = await projectRepositoryClearTrackedFlags(store, relPath);
|
|
511
|
+
if (!clearFlagsR.success)
|
|
512
|
+
return clearFlagsR;
|
|
513
|
+
}
|
|
514
|
+
let commitR;
|
|
515
|
+
if (action === "delete") {
|
|
516
|
+
const removeR = await gitStoreRun(store.git, ["rm", "-f", "--", relPath]);
|
|
517
|
+
if (!removeR.success)
|
|
518
|
+
return removeR;
|
|
519
|
+
commitR = await projectRepositoryCommitGit(store, message);
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
if (project === undefined)
|
|
523
|
+
return createResultError(op, "project data is required", relPath);
|
|
524
|
+
commitR = await projectRepositoryWrite(store, relPath, project, message);
|
|
525
|
+
}
|
|
526
|
+
if (!commitR.success) {
|
|
527
|
+
return createResultError(op, `${action} commit failed: ${commitR.errorMessage}`, relPath);
|
|
528
|
+
}
|
|
529
|
+
const revision = commitR.data.trim();
|
|
530
|
+
if (revision === "")
|
|
531
|
+
return createResultError(op, `${action} did not produce a local commit`, relPath);
|
|
532
|
+
if (!store.autoPush) {
|
|
533
|
+
return createResult({
|
|
534
|
+
action,
|
|
535
|
+
key: projectRepositoryMutationKey(key),
|
|
536
|
+
changed: true,
|
|
537
|
+
revision,
|
|
538
|
+
localCommit: { status: "committed", revision },
|
|
539
|
+
push: { requested: false, status: "not-requested" },
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
const pushR = await projectRepositoryPush(store, revision, op);
|
|
543
|
+
if (!pushR.success) {
|
|
544
|
+
return createResult({
|
|
545
|
+
action,
|
|
546
|
+
key: projectRepositoryMutationKey(key),
|
|
547
|
+
changed: true,
|
|
548
|
+
revision,
|
|
549
|
+
localCommit: { status: "committed", revision },
|
|
550
|
+
push: { requested: true, status: "failed", errorMessage: pushR.errorMessage },
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
return createResult({
|
|
554
|
+
action,
|
|
555
|
+
key: projectRepositoryMutationKey(key),
|
|
556
|
+
changed: true,
|
|
557
|
+
revision,
|
|
558
|
+
localCommit: { status: "committed", revision },
|
|
559
|
+
push: { requested: true, status: "pushed" },
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
function projectRepositoryExpectedRevision(options, currentRevision, op) {
|
|
563
|
+
const expectedR = projectMutationExpectedRevision(options, currentRevision, op);
|
|
564
|
+
if (!expectedR.success)
|
|
565
|
+
return expectedR;
|
|
566
|
+
if (expectedR.data !== currentRevision) {
|
|
567
|
+
return createResultError(op, `revision mismatch: expected ${expectedR.data}, current ${currentRevision}`);
|
|
568
|
+
}
|
|
569
|
+
return createResult(undefined);
|
|
570
|
+
}
|
|
571
|
+
async function projectRepositoryCreate(store, input, options) {
|
|
572
|
+
const op = "projectRepositoryCreate";
|
|
573
|
+
const snapshotR = await projectRepositoryReadSnapshot(store);
|
|
574
|
+
if (!snapshotR.success)
|
|
575
|
+
return snapshotR;
|
|
576
|
+
const expectedR = projectRepositoryExpectedRevision(options, snapshotR.data.revision, op);
|
|
577
|
+
if (!expectedR.success)
|
|
578
|
+
return expectedR;
|
|
579
|
+
const actorR = projectRepositoryActor(options, op);
|
|
580
|
+
if (!actorR.success)
|
|
581
|
+
return actorR;
|
|
582
|
+
const projectR = projectValidate(input);
|
|
583
|
+
if (!projectR.success)
|
|
584
|
+
return createResultError(op, projectR.errorMessage);
|
|
585
|
+
const project = projectR.data;
|
|
586
|
+
const existing = snapshotR.data.projects.find((item) => projectKeyEqual(item, project));
|
|
587
|
+
if (existing) {
|
|
588
|
+
if (projectRepositoryContentsEqual(existing, project))
|
|
589
|
+
return projectRepositoryNoop("create", project, snapshotR.data.revision);
|
|
590
|
+
return createResultError(op, "project already exists");
|
|
591
|
+
}
|
|
592
|
+
const collisionsR = projectCollisions([...snapshotR.data.projects, project]);
|
|
593
|
+
if (!collisionsR.success)
|
|
594
|
+
return createResultError(op, collisionsR.errorMessage);
|
|
595
|
+
const pathR = projectRepositoryPath(project);
|
|
596
|
+
if (!pathR.success)
|
|
597
|
+
return pathR;
|
|
598
|
+
return projectRepositoryCommit(store, "create", project, actorR.data, pathR.data, project, snapshotR.data.revision);
|
|
599
|
+
}
|
|
600
|
+
async function projectRepositoryEdit(store, key, input, options) {
|
|
601
|
+
const op = "projectRepositoryEdit";
|
|
602
|
+
const pathR = projectRepositoryPath(key);
|
|
603
|
+
if (!pathR.success)
|
|
604
|
+
return pathR;
|
|
605
|
+
const snapshotR = await projectRepositoryReadSnapshot(store);
|
|
606
|
+
if (!snapshotR.success)
|
|
607
|
+
return snapshotR;
|
|
608
|
+
const expectedR = projectRepositoryExpectedRevision(options, snapshotR.data.revision, op);
|
|
609
|
+
if (!expectedR.success)
|
|
610
|
+
return expectedR;
|
|
611
|
+
const actorR = projectRepositoryActor(options, op);
|
|
612
|
+
if (!actorR.success)
|
|
613
|
+
return actorR;
|
|
614
|
+
const projectR = projectValidate(input);
|
|
615
|
+
if (!projectR.success)
|
|
616
|
+
return createResultError(op, projectR.errorMessage);
|
|
617
|
+
const project = projectR.data;
|
|
618
|
+
if (!projectKeyEqual(project, key))
|
|
619
|
+
return createResultError(op, "project owner and name are immutable");
|
|
620
|
+
const existing = snapshotR.data.projects.find((item) => projectKeyEqual(item, key));
|
|
621
|
+
if (!existing)
|
|
622
|
+
return createResultError(op, "project not found");
|
|
623
|
+
if (projectRepositoryContentsEqual(existing, project))
|
|
624
|
+
return projectRepositoryNoop("edit", project, snapshotR.data.revision);
|
|
625
|
+
const replacement = snapshotR.data.projects.map((item) => (projectKeyEqual(item, key) ? project : item));
|
|
626
|
+
const collisionsR = projectCollisions(replacement);
|
|
627
|
+
if (!collisionsR.success)
|
|
628
|
+
return createResultError(op, collisionsR.errorMessage);
|
|
629
|
+
return projectRepositoryCommit(store, "edit", key, actorR.data, pathR.data, project, snapshotR.data.revision);
|
|
630
|
+
}
|
|
631
|
+
async function projectRepositoryDelete(store, key, options) {
|
|
632
|
+
const op = "projectRepositoryDelete";
|
|
633
|
+
const pathR = projectRepositoryPath(key);
|
|
634
|
+
if (!pathR.success)
|
|
635
|
+
return pathR;
|
|
636
|
+
const snapshotR = await projectRepositoryReadSnapshot(store);
|
|
637
|
+
if (!snapshotR.success)
|
|
638
|
+
return snapshotR;
|
|
639
|
+
const expectedR = projectRepositoryExpectedRevision(options, snapshotR.data.revision, op);
|
|
640
|
+
if (!expectedR.success)
|
|
641
|
+
return expectedR;
|
|
642
|
+
const actorR = projectRepositoryActor(options, op);
|
|
643
|
+
if (!actorR.success)
|
|
644
|
+
return actorR;
|
|
645
|
+
const existing = snapshotR.data.projects.find((item) => projectKeyEqual(item, key));
|
|
646
|
+
if (!existing)
|
|
647
|
+
return createResultError(op, "project not found");
|
|
648
|
+
return projectRepositoryCommit(store, "delete", key, actorR.data, pathR.data, undefined, snapshotR.data.revision);
|
|
649
|
+
}
|
|
650
|
+
function projectRepositoryQueue(store, op, operation) {
|
|
651
|
+
const previous = mutationQueues.get(store.queueKey) ?? Promise.resolve();
|
|
652
|
+
const result = previous.then(async () => {
|
|
653
|
+
try {
|
|
654
|
+
const branchR = await projectRepositoryRequireConfiguredBranch(store.git, op);
|
|
655
|
+
if (!branchR.success)
|
|
656
|
+
return branchR;
|
|
657
|
+
return await operation();
|
|
658
|
+
}
|
|
659
|
+
catch (error) {
|
|
660
|
+
return createResultError(op, errorMessage(error));
|
|
661
|
+
}
|
|
662
|
+
});
|
|
663
|
+
const queue = result.then(() => undefined, () => undefined);
|
|
664
|
+
mutationQueues.set(store.queueKey, queue);
|
|
665
|
+
void queue.then(() => {
|
|
666
|
+
if (mutationQueues.get(store.queueKey) === queue)
|
|
667
|
+
mutationQueues.delete(store.queueKey);
|
|
668
|
+
});
|
|
669
|
+
return result;
|
|
670
|
+
}
|
|
671
|
+
async function projectRepositoryRecover(store) {
|
|
672
|
+
const op = "projectRepositoryRecover";
|
|
673
|
+
const safeR = await projectRepositoryProjectsSafe(store);
|
|
674
|
+
if (!safeR.success)
|
|
675
|
+
return safeR;
|
|
676
|
+
const revisionR = await projectRepositoryRevision(store);
|
|
677
|
+
if (!revisionR.success)
|
|
678
|
+
return revisionR;
|
|
679
|
+
const trackedR = await projectRepositoryTrackedPaths(store);
|
|
680
|
+
if (!trackedR.success)
|
|
681
|
+
return trackedR;
|
|
682
|
+
if (trackedR.data.size > 0) {
|
|
683
|
+
const unmarkAssumeUnchangedR = await gitStoreRun(store.git, [
|
|
684
|
+
"update-index",
|
|
685
|
+
"--no-assume-unchanged",
|
|
686
|
+
"--",
|
|
687
|
+
...trackedR.data,
|
|
688
|
+
]);
|
|
689
|
+
if (!unmarkAssumeUnchangedR.success)
|
|
690
|
+
return unmarkAssumeUnchangedR;
|
|
691
|
+
const unmarkSkipWorktreeR = await gitStoreRun(store.git, [
|
|
692
|
+
"update-index",
|
|
693
|
+
"--no-skip-worktree",
|
|
694
|
+
"--",
|
|
695
|
+
...trackedR.data,
|
|
696
|
+
]);
|
|
697
|
+
if (!unmarkSkipWorktreeR.success)
|
|
698
|
+
return unmarkSkipWorktreeR;
|
|
699
|
+
}
|
|
700
|
+
if (revisionR.data !== "") {
|
|
701
|
+
const resetR = await gitStoreRun(store.git, ["reset", "--hard", "HEAD"]);
|
|
702
|
+
if (!resetR.success)
|
|
703
|
+
return resetR;
|
|
704
|
+
}
|
|
705
|
+
else {
|
|
706
|
+
const resetR = await gitStoreRun(store.git, ["reset"]);
|
|
707
|
+
if (!resetR.success)
|
|
708
|
+
return resetR;
|
|
709
|
+
}
|
|
710
|
+
const cleanR = await gitStoreRun(store.git, ["clean", "-fdx"]);
|
|
711
|
+
if (!cleanR.success)
|
|
712
|
+
return cleanR;
|
|
713
|
+
const readinessR = await projectRepositoryReadiness(store);
|
|
714
|
+
if (!readinessR.success)
|
|
715
|
+
return readinessR;
|
|
716
|
+
if (!readinessR.data.ready)
|
|
717
|
+
return createResultError(op, readinessR.data.reason ?? "worktree remains dirty");
|
|
718
|
+
return readinessR;
|
|
719
|
+
}
|
|
720
|
+
export async function projectRepositoryOpen(options) {
|
|
721
|
+
const op = "projectRepositoryOpen";
|
|
722
|
+
const parsed = a.safeParse(projectRepositoryOptionsSchema, options);
|
|
723
|
+
if (!parsed.success)
|
|
724
|
+
return createResultError(op, a.summarize(parsed.issues));
|
|
725
|
+
const opts = parsed.output;
|
|
726
|
+
const gitR = await gitStoreOpen({
|
|
727
|
+
dir: opts.dir,
|
|
728
|
+
branch: opts.branch,
|
|
729
|
+
autoPush: false,
|
|
730
|
+
authorName: daemonAuthorName,
|
|
731
|
+
authorEmail: daemonAuthorEmail,
|
|
732
|
+
});
|
|
733
|
+
if (!gitR.success)
|
|
734
|
+
return gitR;
|
|
735
|
+
const branchR = await projectRepositoryRequireConfiguredBranch(gitR.data, op);
|
|
736
|
+
if (!branchR.success)
|
|
737
|
+
return branchR;
|
|
738
|
+
let canonicalDir;
|
|
739
|
+
try {
|
|
740
|
+
canonicalDir = await realpath(opts.dir);
|
|
741
|
+
}
|
|
742
|
+
catch (error) {
|
|
743
|
+
return createResultError(op, `failed to resolve real worktree: ${errorMessage(error)}`, opts.dir);
|
|
744
|
+
}
|
|
745
|
+
const store = {
|
|
746
|
+
git: { ...gitR.data, dir: canonicalDir },
|
|
747
|
+
autoPush: opts.autoPush,
|
|
748
|
+
queueKey: canonicalDir,
|
|
749
|
+
};
|
|
750
|
+
const readinessR = await projectRepositoryReadiness(store);
|
|
751
|
+
if (!readinessR.success)
|
|
752
|
+
return readinessR;
|
|
753
|
+
const repository = {
|
|
754
|
+
read: () => projectRepositoryQueue(store, "projectRepositoryRead", () => projectRepositoryReadSnapshot(store)),
|
|
755
|
+
get: (key) => projectRepositoryQueue(store, "projectRepositoryGet", async () => {
|
|
756
|
+
const pathR = projectRepositoryPath(key);
|
|
757
|
+
if (!pathR.success)
|
|
758
|
+
return pathR;
|
|
759
|
+
const snapshotR = await projectRepositoryReadSnapshot(store);
|
|
760
|
+
if (!snapshotR.success)
|
|
761
|
+
return snapshotR;
|
|
762
|
+
const project = snapshotR.data.projects.find((item) => projectKeyEqual(item, key));
|
|
763
|
+
if (!project)
|
|
764
|
+
return createResultError("projectRepositoryGet", "project not found");
|
|
765
|
+
const entry = { project, revision: snapshotR.data.revision };
|
|
766
|
+
return createResult(entry);
|
|
767
|
+
}),
|
|
768
|
+
create: (project, mutationOptions) => projectRepositoryQueue(store, "projectRepositoryCreate", () => projectRepositoryCreate(store, project, mutationOptions)),
|
|
769
|
+
edit: (key, project, mutationOptions) => projectRepositoryQueue(store, "projectRepositoryEdit", () => projectRepositoryEdit(store, key, project, mutationOptions)),
|
|
770
|
+
delete: (key, mutationOptions) => projectRepositoryQueue(store, "projectRepositoryDelete", () => projectRepositoryDelete(store, key, mutationOptions)),
|
|
771
|
+
history: (key, limit) => projectRepositoryQueue(store, "projectRepositoryHistory", async () => {
|
|
772
|
+
if (limit !== undefined && (!Number.isInteger(limit) || limit < 1)) {
|
|
773
|
+
return createResultError("projectRepositoryHistory", "limit must be a positive integer");
|
|
774
|
+
}
|
|
775
|
+
const safeR = await projectRepositoryProjectsSafe(store);
|
|
776
|
+
if (!safeR.success)
|
|
777
|
+
return safeR;
|
|
778
|
+
const cleanR = await projectRepositoryRequireClean(store, "projectRepositoryHistory");
|
|
779
|
+
if (!cleanR.success)
|
|
780
|
+
return cleanR;
|
|
781
|
+
let path = "projects";
|
|
782
|
+
if (key !== undefined) {
|
|
783
|
+
const pathR = projectRepositoryPath(key);
|
|
784
|
+
if (!pathR.success)
|
|
785
|
+
return pathR;
|
|
786
|
+
path = pathR.data;
|
|
787
|
+
}
|
|
788
|
+
return gitStoreHistory(store.git, path, limit);
|
|
789
|
+
}),
|
|
790
|
+
ownerHistory: (owner, limit) => projectRepositoryQueue(store, "projectRepositoryOwnerHistory", async () => {
|
|
791
|
+
const ownerPathR = projectRepositoryOwnerPath(owner);
|
|
792
|
+
if (!ownerPathR.success)
|
|
793
|
+
return ownerPathR;
|
|
794
|
+
if (limit !== undefined && (!Number.isInteger(limit) || limit < 1)) {
|
|
795
|
+
return createResultError("projectRepositoryOwnerHistory", "limit must be a positive integer");
|
|
796
|
+
}
|
|
797
|
+
const safeR = await projectRepositoryProjectsSafe(store);
|
|
798
|
+
if (!safeR.success)
|
|
799
|
+
return safeR;
|
|
800
|
+
const cleanR = await projectRepositoryRequireClean(store, "projectRepositoryOwnerHistory");
|
|
801
|
+
if (!cleanR.success)
|
|
802
|
+
return cleanR;
|
|
803
|
+
const historyR = await gitStoreHistory(store.git, ownerPathR.data, limit);
|
|
804
|
+
if (!historyR.success)
|
|
805
|
+
return historyR;
|
|
806
|
+
return createResult(projectRepositoryHistoryDeduplicate(historyR.data, limit));
|
|
807
|
+
}),
|
|
808
|
+
readiness: () => projectRepositoryQueue(store, "projectRepositoryReadiness", () => projectRepositoryReadiness(store)),
|
|
809
|
+
recover: () => projectRepositoryQueue(store, "projectRepositoryRecover", () => projectRepositoryRecover(store)),
|
|
810
|
+
};
|
|
811
|
+
return createResult(repository);
|
|
812
|
+
}
|
|
813
|
+
//# sourceMappingURL=projectRepositoryOpen.js.map
|