spawnfile 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/README.md +58 -12
  2. package/dist/audit/auditCli.d.ts +19 -0
  3. package/dist/audit/auditCli.js +63 -0
  4. package/dist/audit/checks.d.ts +100 -0
  5. package/dist/audit/checks.js +279 -0
  6. package/dist/audit/checksShared.d.ts +74 -0
  7. package/dist/audit/checksShared.js +37 -0
  8. package/dist/audit/generateAudit.d.ts +19 -0
  9. package/dist/audit/generateAudit.js +122 -0
  10. package/dist/audit/index.d.ts +4 -0
  11. package/dist/audit/index.js +4 -0
  12. package/dist/audit/readAudit.d.ts +50 -0
  13. package/dist/audit/readAudit.js +59 -0
  14. package/dist/audit/types.d.ts +40 -0
  15. package/dist/audit/types.js +8 -0
  16. package/dist/auth/credentialEnvFile.d.ts +11 -0
  17. package/dist/auth/credentialEnvFile.js +60 -0
  18. package/dist/auth/credentialProvisioning.d.ts +15 -0
  19. package/dist/auth/credentialProvisioning.js +75 -0
  20. package/dist/auth/credentialProvisioningReceipt.d.ts +28 -0
  21. package/dist/auth/credentialProvisioningReceipt.js +70 -0
  22. package/dist/auth/credentialProvisioningRequest.d.ts +51 -0
  23. package/dist/auth/credentialProvisioningRequest.js +169 -0
  24. package/dist/auth/credentialWorldBindings.d.ts +21 -0
  25. package/dist/auth/credentialWorldBindings.js +104 -0
  26. package/dist/auth/index.d.ts +7 -0
  27. package/dist/auth/index.js +7 -0
  28. package/dist/auth/paths.d.ts +11 -0
  29. package/dist/auth/paths.js +21 -0
  30. package/dist/auth/runtimeCredentials.js +18 -2
  31. package/dist/auth/targetSecretSourceAuthor.d.ts +18 -0
  32. package/dist/auth/targetSecretSourceAuthor.js +52 -0
  33. package/dist/auth/targetSecretSourceFsPublish.d.ts +15 -0
  34. package/dist/auth/targetSecretSourceFsPublish.js +49 -0
  35. package/dist/auth/targetSecretSourceFsPublishImmutable.d.ts +16 -0
  36. package/dist/auth/targetSecretSourceFsPublishImmutable.js +435 -0
  37. package/dist/auth/targetSecretSourceFsRead.d.ts +14 -0
  38. package/dist/auth/targetSecretSourceFsRead.js +198 -0
  39. package/dist/auth/targetSecretSourceGrant.d.ts +16 -0
  40. package/dist/auth/targetSecretSourceGrant.js +99 -0
  41. package/dist/auth/targetSecretSourceGrantRecords.d.ts +84 -0
  42. package/dist/auth/targetSecretSourceGrantRecords.js +214 -0
  43. package/dist/auth/targetSecretSourceLifecycle.d.ts +30 -0
  44. package/dist/auth/targetSecretSourceLifecycle.js +52 -0
  45. package/dist/auth/targetSecretSourceOwnerEntropy.d.ts +6 -0
  46. package/dist/auth/targetSecretSourceOwnerEntropy.js +28 -0
  47. package/dist/auth/targetSecretSourceRecordCommon.d.ts +14 -0
  48. package/dist/auth/targetSecretSourceRecordCommon.js +100 -0
  49. package/dist/auth/targetSecretSourceRecordPublish.d.ts +10 -0
  50. package/dist/auth/targetSecretSourceRecordPublish.js +104 -0
  51. package/dist/auth/targetSecretSourceResolver.d.ts +10 -0
  52. package/dist/auth/targetSecretSourceResolver.js +137 -0
  53. package/dist/auth/targetSecretSourceRevoke.d.ts +20 -0
  54. package/dist/auth/targetSecretSourceRevoke.js +92 -0
  55. package/dist/auth/targetSecretSourceRotate.d.ts +19 -0
  56. package/dist/auth/targetSecretSourceRotate.js +121 -0
  57. package/dist/auth/targetSecretSourceVersionRecords.d.ts +49 -0
  58. package/dist/auth/targetSecretSourceVersionRecords.js +166 -0
  59. package/dist/cli/artifactsCommands.d.ts +27 -0
  60. package/dist/cli/artifactsCommands.js +132 -0
  61. package/dist/cli/authCommands.d.ts +5 -0
  62. package/dist/cli/authCommands.js +221 -0
  63. package/dist/cli/compileBuildCommands.d.ts +3 -0
  64. package/dist/cli/compileBuildCommands.js +35 -0
  65. package/dist/cli/containerBundleCommand.d.ts +6 -0
  66. package/dist/cli/containerBundleCommand.js +116 -0
  67. package/dist/cli/devCommands.d.ts +3 -0
  68. package/dist/cli/devCommands.js +115 -0
  69. package/dist/cli/downCommand.d.ts +25 -0
  70. package/dist/cli/downCommand.js +134 -0
  71. package/dist/cli/index.js +6 -3
  72. package/dist/cli/lifecycleCommands.d.ts +1 -1
  73. package/dist/cli/lifecycleCommands.js +11 -179
  74. package/dist/cli/lifecycleMachine.d.ts +19 -0
  75. package/dist/cli/lifecycleMachine.js +78 -0
  76. package/dist/cli/lifecyclePlan.d.ts +35 -0
  77. package/dist/cli/lifecyclePlan.js +240 -0
  78. package/dist/cli/lifecyclePlanningCommands.d.ts +3 -0
  79. package/dist/cli/lifecyclePlanningCommands.js +30 -0
  80. package/dist/cli/runCli.d.ts +15 -2
  81. package/dist/cli/runCli.js +31 -71
  82. package/dist/cli/runPublishCommands.d.ts +3 -0
  83. package/dist/cli/runPublishCommands.js +70 -0
  84. package/dist/cli/statusCommand.d.ts +3 -32
  85. package/dist/cli/statusCommand.js +37 -233
  86. package/dist/cli/statusCommandLive.d.ts +20 -0
  87. package/dist/cli/statusCommandLive.js +188 -0
  88. package/dist/cli/statusCommandOptions.d.ts +40 -0
  89. package/dist/cli/statusCommandOptions.js +42 -0
  90. package/dist/cli/targetCliRoute.d.ts +2 -0
  91. package/dist/cli/targetCliRoute.js +30 -0
  92. package/dist/cli/targetCommands.d.ts +33 -0
  93. package/dist/cli/targetCommands.js +257 -0
  94. package/dist/cli/targetComposedPreparationCommand.d.ts +6 -0
  95. package/dist/cli/targetComposedPreparationCommand.js +39 -0
  96. package/dist/cli/targetDefaultArtifactAuthority.d.ts +5 -0
  97. package/dist/cli/targetDefaultArtifactAuthority.js +28 -0
  98. package/dist/cli/targetDefaultAuthorities.d.ts +53 -0
  99. package/dist/cli/targetDefaultAuthorities.js +210 -0
  100. package/dist/cli/targetDefaultConfig.d.ts +68 -0
  101. package/dist/cli/targetDefaultConfig.js +317 -0
  102. package/dist/cli/targetDefaultConfigStdin.d.ts +13 -0
  103. package/dist/cli/targetDefaultConfigStdin.js +215 -0
  104. package/dist/cli/targetDefaultEnvelope.d.ts +1 -0
  105. package/dist/cli/targetDefaultEnvelope.js +13 -0
  106. package/dist/cli/targetDefaultHandlerFactory.d.ts +28 -0
  107. package/dist/cli/targetDefaultHandlerFactory.js +247 -0
  108. package/dist/cli/targetDefaultHandlers.d.ts +21 -0
  109. package/dist/cli/targetDefaultHandlers.js +72 -0
  110. package/dist/cli/targetDefaultJournalAuthority.d.ts +35 -0
  111. package/dist/cli/targetDefaultJournalAuthority.js +135 -0
  112. package/dist/cli/targetDefaultWorldClock.d.ts +4 -0
  113. package/dist/cli/targetDefaultWorldClock.js +14 -0
  114. package/dist/cli/targetDefaultWorldQueries.d.ts +5 -0
  115. package/dist/cli/targetDefaultWorldQueries.js +11 -0
  116. package/dist/cli/targetDefaultWorldReadiness.d.ts +4 -0
  117. package/dist/cli/targetDefaultWorldReadiness.js +17 -0
  118. package/dist/cli/targetEvidenceHelperResolution.d.ts +14 -0
  119. package/dist/cli/targetEvidenceHelperResolution.js +23 -0
  120. package/dist/cli/targetLookupCli.d.ts +3 -0
  121. package/dist/cli/targetLookupCli.js +31 -0
  122. package/dist/cli/targetLookupCommands.d.ts +12 -0
  123. package/dist/cli/targetLookupCommands.js +69 -0
  124. package/dist/cli/targetOperationDispatch.d.ts +58 -0
  125. package/dist/cli/targetOperationDispatch.js +21 -0
  126. package/dist/cli/targetReceiptOutput.d.ts +14 -0
  127. package/dist/cli/targetReceiptOutput.js +21 -0
  128. package/dist/cli/targetRequestFile.d.ts +14 -0
  129. package/dist/cli/targetRequestFile.js +63 -0
  130. package/dist/cli/targetSecretSourceInput.d.ts +28 -0
  131. package/dist/cli/targetSecretSourceInput.js +121 -0
  132. package/dist/cli/targetWorldClockCommand.d.ts +10 -0
  133. package/dist/cli/targetWorldClockCommand.js +42 -0
  134. package/dist/cli/targetWorldClockCrossProcess.test-helper.d.ts +13 -0
  135. package/dist/cli/targetWorldClockCrossProcess.test-helper.js +109 -0
  136. package/dist/cli/targetWorldReadinessCommand.d.ts +10 -0
  137. package/dist/cli/targetWorldReadinessCommand.js +43 -0
  138. package/dist/cli/upCommand.d.ts +3 -0
  139. package/dist/cli/upCommand.js +133 -0
  140. package/dist/cli/upImageCommand.d.ts +11 -0
  141. package/dist/cli/upImageCommand.js +41 -0
  142. package/dist/cli/upLifecycleInvocation.d.ts +41 -0
  143. package/dist/cli/upLifecycleInvocation.js +48 -0
  144. package/dist/cli/upLifecycleRecovery.d.ts +4 -0
  145. package/dist/cli/upLifecycleRecovery.js +53 -0
  146. package/dist/compiler/agentNodeMerge.d.ts +2 -0
  147. package/dist/compiler/agentNodeMerge.js +79 -0
  148. package/dist/compiler/agentSurfaces.js +11 -1
  149. package/dist/compiler/buildCompilePlan.js +17 -0
  150. package/dist/compiler/buildCompilePlanAgent.d.ts +11 -0
  151. package/dist/compiler/buildCompilePlanAgent.js +56 -0
  152. package/dist/compiler/buildCompilePlanTeams.d.ts +1 -0
  153. package/dist/compiler/buildCompilePlanTeams.js +4 -1
  154. package/dist/compiler/buildCompilePlanTraversal.js +75 -82
  155. package/dist/compiler/buildProject.d.ts +20 -1
  156. package/dist/compiler/buildProject.js +121 -7
  157. package/dist/compiler/compilePlanHelpers.js +2 -0
  158. package/dist/compiler/compileProject.d.ts +15 -0
  159. package/dist/compiler/compileProject.js +29 -75
  160. package/dist/compiler/compileProjectPolicy.d.ts +5 -0
  161. package/dist/compiler/compileProjectPolicy.js +21 -0
  162. package/dist/compiler/compileProjectReports.d.ts +9 -0
  163. package/dist/compiler/compileProjectReports.js +52 -0
  164. package/dist/compiler/containerArtifactSummaries.d.ts +7 -0
  165. package/dist/compiler/containerArtifactSummaries.js +138 -0
  166. package/dist/compiler/containerArtifacts.d.ts +10 -0
  167. package/dist/compiler/containerArtifacts.js +126 -125
  168. package/dist/compiler/containerArtifactsPlans.d.ts +5 -3
  169. package/dist/compiler/containerArtifactsPlans.js +31 -118
  170. package/dist/compiler/containerArtifactsRender.d.ts +3 -1
  171. package/dist/compiler/containerArtifactsRender.js +40 -81
  172. package/dist/compiler/containerArtifactsTypes.d.ts +12 -0
  173. package/dist/compiler/containerConfigEnvRender.d.ts +3 -0
  174. package/dist/compiler/containerConfigEnvRender.js +54 -0
  175. package/dist/compiler/containerEntrypointRender.d.ts +1 -0
  176. package/dist/compiler/containerEntrypointRender.js +60 -53
  177. package/dist/compiler/containerEntrypointShell.d.ts +5 -0
  178. package/dist/compiler/containerEntrypointShell.js +29 -0
  179. package/dist/compiler/containerPackageOverrides.d.ts +27 -0
  180. package/dist/compiler/containerPackageOverrides.js +63 -0
  181. package/dist/compiler/containerPackageRender.d.ts +15 -0
  182. package/dist/compiler/containerPackageRender.js +63 -0
  183. package/dist/compiler/containerTargetPlanResolution.d.ts +20 -0
  184. package/dist/compiler/containerTargetPlanResolution.js +97 -0
  185. package/dist/compiler/containerTargetResources.js +3 -1
  186. package/dist/compiler/daimonTelemetryArtifacts.d.ts +22 -0
  187. package/dist/compiler/daimonTelemetryArtifacts.js +61 -0
  188. package/dist/compiler/dockerBuildContext.d.ts +16 -0
  189. package/dist/compiler/dockerBuildContext.js +159 -0
  190. package/dist/compiler/dockerBuildSkip.d.ts +30 -0
  191. package/dist/compiler/dockerBuildSkip.js +81 -0
  192. package/dist/compiler/index.d.ts +4 -0
  193. package/dist/compiler/index.js +4 -0
  194. package/dist/compiler/memoryArtifacts.d.ts +26 -0
  195. package/dist/compiler/memoryArtifacts.js +134 -0
  196. package/dist/compiler/memoryResolution.d.ts +4 -0
  197. package/dist/compiler/memoryResolution.js +147 -0
  198. package/dist/compiler/modelEnv.d.ts +2 -0
  199. package/dist/compiler/modelEnv.js +6 -0
  200. package/dist/compiler/moltnetAllowedWakeSendersValidation.d.ts +2 -0
  201. package/dist/compiler/moltnetAllowedWakeSendersValidation.js +42 -0
  202. package/dist/compiler/moltnetArtifactPaths.d.ts +26 -0
  203. package/dist/compiler/moltnetArtifactPaths.js +49 -0
  204. package/dist/compiler/moltnetArtifactTypes.d.ts +46 -0
  205. package/dist/compiler/moltnetArtifactTypes.js +1 -0
  206. package/dist/compiler/moltnetArtifacts.d.ts +2 -40
  207. package/dist/compiler/moltnetArtifacts.js +56 -95
  208. package/dist/compiler/moltnetBinaries.d.ts +21 -1
  209. package/dist/compiler/moltnetBinaries.js +156 -28
  210. package/dist/compiler/moltnetClientConfig.js +18 -2
  211. package/dist/compiler/moltnetConfigLowering.d.ts +16 -1
  212. package/dist/compiler/moltnetConfigLowering.js +67 -5
  213. package/dist/compiler/moltnetExternalParticipantArtifact.d.ts +38 -0
  214. package/dist/compiler/moltnetExternalParticipantArtifact.js +188 -0
  215. package/dist/compiler/moltnetNodeConfig.js +7 -2
  216. package/dist/compiler/moltnetReleaseAuthority.d.ts +17 -0
  217. package/dist/compiler/moltnetReleaseAuthority.js +73 -0
  218. package/dist/compiler/moltnetReleaseDownload.d.ts +12 -0
  219. package/dist/compiler/moltnetReleaseDownload.js +85 -0
  220. package/dist/compiler/moltnetRepresentativeResolution.d.ts +1 -0
  221. package/dist/compiler/moltnetRepresentativeResolution.js +16 -2
  222. package/dist/compiler/moltnetResolution.js +72 -20
  223. package/dist/compiler/moltnetRoomMemberships.js +37 -9
  224. package/dist/compiler/moltnetRuntimeConfig.js +11 -0
  225. package/dist/compiler/moltnetServerPlans.d.ts +9 -0
  226. package/dist/compiler/moltnetServerPlans.js +132 -0
  227. package/dist/compiler/organizationIdentity.d.ts +27 -0
  228. package/dist/compiler/organizationIdentity.js +297 -0
  229. package/dist/compiler/organizationReadyEvidence.d.ts +49 -0
  230. package/dist/compiler/organizationReadyEvidence.js +261 -0
  231. package/dist/compiler/projectManifestGraph.d.ts +4 -0
  232. package/dist/compiler/projectManifestGraph.js +24 -0
  233. package/dist/compiler/runProject.d.ts +4 -0
  234. package/dist/compiler/runProject.js +37 -22
  235. package/dist/compiler/runProjectAuth.d.ts +7 -1
  236. package/dist/compiler/runProjectAuth.js +87 -9
  237. package/dist/compiler/runProjectDocker.d.ts +7 -0
  238. package/dist/compiler/runProjectDocker.js +187 -19
  239. package/dist/compiler/runProjectLifecycle.d.ts +7 -0
  240. package/dist/compiler/runProjectLifecycle.js +40 -0
  241. package/dist/compiler/syncProjectAuth.js +4 -1
  242. package/dist/compiler/teamContextActiveEnvironments.d.ts +13 -0
  243. package/dist/compiler/teamContextActiveEnvironments.js +255 -0
  244. package/dist/compiler/teamContextSupport.js +32 -40
  245. package/dist/compiler/teamContextTypes.d.ts +2 -0
  246. package/dist/compiler/types.d.ts +82 -1
  247. package/dist/compiler/upProject.d.ts +5 -0
  248. package/dist/compiler/upProject.js +257 -20
  249. package/dist/compiler/upReceipt.d.ts +36 -0
  250. package/dist/compiler/upReceipt.js +82 -0
  251. package/dist/compiler/updateProjectModels.js +42 -60
  252. package/dist/compiler/updateProjectRuntime.js +22 -35
  253. package/dist/compiler/updateProjectSurfaces.js +53 -47
  254. package/dist/compiler/worldBindings.d.ts +39 -0
  255. package/dist/compiler/worldBindings.js +247 -0
  256. package/dist/compiler/worldBindingsFile.d.ts +5 -0
  257. package/dist/compiler/worldBindingsFile.js +162 -0
  258. package/dist/deployment/artifactsExport.d.ts +49 -0
  259. package/dist/deployment/artifactsExport.js +217 -0
  260. package/dist/deployment/artifactsExportDocker.d.ts +48 -0
  261. package/dist/deployment/artifactsExportDocker.js +91 -0
  262. package/dist/deployment/artifactsExportPlan.d.ts +24 -0
  263. package/dist/deployment/artifactsExportPlan.js +135 -0
  264. package/dist/deployment/artifactsExportTypes.d.ts +50 -0
  265. package/dist/deployment/artifactsExportTypes.js +52 -0
  266. package/dist/deployment/buildImageCacheStore.d.ts +23 -0
  267. package/dist/deployment/buildImageCacheStore.js +54 -0
  268. package/dist/deployment/deploymentLifecycleCorrelation.d.ts +11 -0
  269. package/dist/deployment/deploymentLifecycleCorrelation.js +33 -0
  270. package/dist/deployment/dockerInspect.d.ts +9 -0
  271. package/dist/deployment/dockerInspect.js +24 -1
  272. package/dist/deployment/dockerLabels.d.ts +2 -0
  273. package/dist/deployment/dockerLabels.js +2 -0
  274. package/dist/deployment/dockerLogs.js +2 -10
  275. package/dist/deployment/dockerManager.d.ts +51 -0
  276. package/dist/deployment/dockerManager.js +118 -1
  277. package/dist/deployment/dockerProbeGateway.js +64 -5
  278. package/dist/deployment/dockerRecover.d.ts +17 -0
  279. package/dist/deployment/dockerRecover.js +137 -0
  280. package/dist/deployment/dockerTeardown.d.ts +32 -0
  281. package/dist/deployment/dockerTeardown.js +61 -0
  282. package/dist/deployment/downDeployment.d.ts +34 -0
  283. package/dist/deployment/downDeployment.js +147 -0
  284. package/dist/deployment/downReceiptTypes.d.ts +21 -0
  285. package/dist/deployment/downReceiptTypes.js +30 -0
  286. package/dist/deployment/index.d.ts +17 -0
  287. package/dist/deployment/index.js +18 -0
  288. package/dist/deployment/lifecycleCompletion.d.ts +37 -0
  289. package/dist/deployment/lifecycleCompletion.js +236 -0
  290. package/dist/deployment/lifecycleCompletionContracts.d.ts +158 -0
  291. package/dist/deployment/lifecycleCompletionContracts.js +106 -0
  292. package/dist/deployment/lifecycleCompletionHeartbeat.d.ts +2 -0
  293. package/dist/deployment/lifecycleCompletionHeartbeat.js +50 -0
  294. package/dist/deployment/lifecycleCompletionLookup.d.ts +18 -0
  295. package/dist/deployment/lifecycleCompletionLookup.js +88 -0
  296. package/dist/deployment/lifecycleCompletionOwner.d.ts +8 -0
  297. package/dist/deployment/lifecycleCompletionOwner.js +31 -0
  298. package/dist/deployment/lifecycleCompletionParsing.d.ts +12 -0
  299. package/dist/deployment/lifecycleCompletionParsing.js +108 -0
  300. package/dist/deployment/lifecycleCompletionPaths.d.ts +9 -0
  301. package/dist/deployment/lifecycleCompletionPaths.js +16 -0
  302. package/dist/deployment/lifecycleCompletionPublication.d.ts +5 -0
  303. package/dist/deployment/lifecycleCompletionPublication.js +35 -0
  304. package/dist/deployment/lifecycleCompletionRecovery.d.ts +21 -0
  305. package/dist/deployment/lifecycleCompletionRecovery.js +56 -0
  306. package/dist/deployment/lifecycleCompletionRoot.d.ts +21 -0
  307. package/dist/deployment/lifecycleCompletionRoot.js +243 -0
  308. package/dist/deployment/lifecycleCompletionStore.d.ts +6 -0
  309. package/dist/deployment/lifecycleCompletionStore.js +151 -0
  310. package/dist/deployment/organizationHandoffAuthorityFsClient.d.ts +17 -0
  311. package/dist/deployment/organizationHandoffAuthorityFsClient.js +132 -0
  312. package/dist/deployment/organizationHandoffAuthorityFsWorker.d.ts +1 -0
  313. package/dist/deployment/organizationHandoffAuthorityFsWorker.js +285 -0
  314. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.d.ts +1 -0
  315. package/dist/deployment/organizationHandoffAuthorityFsWorkerParent.fixture.js +26 -0
  316. package/dist/deployment/organizationHandoffAuthorityStore.d.ts +41 -0
  317. package/dist/deployment/organizationHandoffAuthorityStore.js +348 -0
  318. package/dist/deployment/organizationHandoffAuthorityTypes.d.ts +76 -0
  319. package/dist/deployment/organizationHandoffAuthorityTypes.js +148 -0
  320. package/dist/deployment/organizationHandoffTypes.d.ts +29 -0
  321. package/dist/deployment/organizationHandoffTypes.js +80 -0
  322. package/dist/deployment/organizationReady.d.ts +52 -0
  323. package/dist/deployment/organizationReady.js +200 -0
  324. package/dist/deployment/privateArtifactsExport.d.ts +18 -0
  325. package/dist/deployment/privateArtifactsExport.js +80 -0
  326. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.d.ts +8 -0
  327. package/dist/deployment/providerRuntimeBoundaryScanner.test-helper.js +60 -0
  328. package/dist/deployment/record.d.ts +26 -1
  329. package/dist/deployment/record.js +49 -4
  330. package/dist/deployment/simfileFixtureBoundary.test-helper.d.ts +8 -0
  331. package/dist/deployment/simfileFixtureBoundary.test-helper.js +103 -0
  332. package/dist/deployment/target.d.ts +1 -35
  333. package/dist/deployment/target.js +1 -96
  334. package/dist/deployment/upReceiptTypes.d.ts +111 -0
  335. package/dist/deployment/upReceiptTypes.js +164 -0
  336. package/dist/dev/activity.d.ts +14 -0
  337. package/dist/dev/activity.js +48 -0
  338. package/dist/dev/docker.d.ts +16 -0
  339. package/dist/dev/docker.js +71 -0
  340. package/dist/dev/index.d.ts +2 -0
  341. package/dist/dev/index.js +2 -0
  342. package/dist/dev/project.d.ts +35 -0
  343. package/dist/dev/project.js +170 -0
  344. package/dist/distribution/buildDistributionReport.d.ts +2 -1
  345. package/dist/distribution/buildDistributionReport.js +2 -1
  346. package/dist/distribution/distributionReportSchema.d.ts +5 -0
  347. package/dist/distribution/distributionReportSchema.js +7 -2
  348. package/dist/distribution/index.d.ts +2 -2
  349. package/dist/distribution/index.js +1 -1
  350. package/dist/distribution/types.d.ts +7 -0
  351. package/dist/distribution/types.js +1 -0
  352. package/dist/filesystem/paths.js +10 -1
  353. package/dist/ledger/causalConformanceCli.d.ts +1 -0
  354. package/dist/ledger/causalConformanceCli.js +41 -0
  355. package/dist/ledger/causeNamespace.d.ts +8 -0
  356. package/dist/ledger/causeNamespace.js +24 -0
  357. package/dist/ledger/conformance.d.ts +83 -0
  358. package/dist/ledger/conformance.js +259 -0
  359. package/dist/ledger/emitters.d.ts +76 -0
  360. package/dist/ledger/emitters.js +188 -0
  361. package/dist/ledger/index.d.ts +4 -0
  362. package/dist/ledger/index.js +4 -0
  363. package/dist/ledger/principal.d.ts +96 -0
  364. package/dist/ledger/principal.js +121 -0
  365. package/dist/manifest/externalParticipantSchemas.d.ts +18 -0
  366. package/dist/manifest/externalParticipantSchemas.js +17 -0
  367. package/dist/manifest/index.d.ts +1 -0
  368. package/dist/manifest/index.js +1 -0
  369. package/dist/manifest/inlineAgentMember.d.ts +2 -0
  370. package/dist/manifest/inlineAgentMember.js +9 -0
  371. package/dist/manifest/loadManifest.js +14 -8
  372. package/dist/manifest/mcpSchemas.d.ts +17 -0
  373. package/dist/manifest/mcpSchemas.js +41 -0
  374. package/dist/manifest/memorySchemas.d.ts +245 -0
  375. package/dist/manifest/memorySchemas.js +148 -0
  376. package/dist/manifest/renderSpawnfile.js +22 -131
  377. package/dist/manifest/renderSpawnfileNetworks.js +9 -2
  378. package/dist/manifest/renderSpawnfileSurfaces.d.ts +2 -0
  379. package/dist/manifest/renderSpawnfileSurfaces.js +134 -0
  380. package/dist/manifest/schemas.d.ts +1868 -99
  381. package/dist/manifest/schemas.js +78 -32
  382. package/dist/manifest/surfaceSchemas.d.ts +17 -0
  383. package/dist/manifest/surfaceSchemas.js +24 -1
  384. package/dist/manifest/teamNetworkAccessSchemas.d.ts +1 -1
  385. package/dist/manifest/teamNetworkAuthSchemas.d.ts +48 -0
  386. package/dist/manifest/teamNetworkAuthSchemas.js +103 -0
  387. package/dist/manifest/teamNetworkSchemas.d.ts +8 -187
  388. package/dist/manifest/teamNetworkSchemas.js +3 -317
  389. package/dist/manifest/teamNetworkServerSchemas.d.ts +150 -0
  390. package/dist/manifest/teamNetworkServerSchemas.js +199 -0
  391. package/dist/ownership/siblingBuildFreshness.d.ts +20 -0
  392. package/dist/ownership/siblingBuildFreshness.js +20 -0
  393. package/dist/ownership/simfileRunOperatorInputs.d.ts +103 -0
  394. package/dist/ownership/simfileRunOperatorInputs.js +139 -0
  395. package/dist/report/types.d.ts +142 -0
  396. package/dist/runtime/common.d.ts +37 -0
  397. package/dist/runtime/common.js +56 -1
  398. package/dist/runtime/container.d.ts +29 -1
  399. package/dist/runtime/container.js +127 -11
  400. package/dist/runtime/containerPackageOverrides.d.ts +37 -0
  401. package/dist/runtime/containerPackageOverrides.js +33 -0
  402. package/dist/runtime/index.d.ts +2 -0
  403. package/dist/runtime/index.js +2 -0
  404. package/dist/runtime/install.d.ts +1 -1
  405. package/dist/runtime/install.js +43 -1
  406. package/dist/runtime/mnemeMcp.d.ts +15 -0
  407. package/dist/runtime/mnemeMcp.js +109 -0
  408. package/dist/runtime/openclaw/adapter.js +15 -4
  409. package/dist/runtime/openclaw/mcp.d.ts +10 -0
  410. package/dist/runtime/openclaw/mcp.js +69 -0
  411. package/dist/runtime/openclaw/runAuth.js +2 -2
  412. package/dist/runtime/openclaw/scaffold.js +1 -1
  413. package/dist/runtime/openclaw/schedules.d.ts +38 -0
  414. package/dist/runtime/openclaw/schedules.js +74 -0
  415. package/dist/runtime/pi/adapter.d.ts +4 -0
  416. package/dist/runtime/pi/adapter.js +231 -0
  417. package/dist/runtime/pi/appActivitySource.d.ts +1 -0
  418. package/dist/runtime/pi/appActivitySource.js +199 -0
  419. package/dist/runtime/pi/appAgentConfig.d.ts +11 -0
  420. package/dist/runtime/pi/appAgentConfig.js +264 -0
  421. package/dist/runtime/pi/appCliEnginesSource.d.ts +1 -0
  422. package/dist/runtime/pi/appCliEnginesSource.js +183 -0
  423. package/dist/runtime/pi/appCliSource.d.ts +1 -0
  424. package/dist/runtime/pi/appCliSource.js +353 -0
  425. package/dist/runtime/pi/appControlSource.d.ts +1 -0
  426. package/dist/runtime/pi/appControlSource.js +390 -0
  427. package/dist/runtime/pi/appControlWakeIdentitySource.d.ts +1 -0
  428. package/dist/runtime/pi/appControlWakeIdentitySource.js +19 -0
  429. package/dist/runtime/pi/appCoreSource.d.ts +4 -0
  430. package/dist/runtime/pi/appCoreSource.js +244 -0
  431. package/dist/runtime/pi/appPreludeSource.d.ts +1 -0
  432. package/dist/runtime/pi/appPreludeSource.js +191 -0
  433. package/dist/runtime/pi/appScheduleSource.d.ts +1 -0
  434. package/dist/runtime/pi/appScheduleSource.js +80 -0
  435. package/dist/runtime/pi/appScriptedEngine.d.ts +31 -0
  436. package/dist/runtime/pi/appScriptedEngine.js +42 -0
  437. package/dist/runtime/pi/appSource.d.ts +4 -0
  438. package/dist/runtime/pi/appSource.js +12 -0
  439. package/dist/runtime/pi/appTemplate.d.ts +14 -0
  440. package/dist/runtime/pi/appTemplate.js +27 -0
  441. package/dist/runtime/pi/appTemplateTypes.d.ts +64 -0
  442. package/dist/runtime/pi/appTemplateTypes.js +18 -0
  443. package/dist/runtime/pi/appWakeContextSource.d.ts +1 -0
  444. package/dist/runtime/pi/appWakeContextSource.js +398 -0
  445. package/dist/runtime/pi/containerTargets.d.ts +4 -0
  446. package/dist/runtime/pi/containerTargets.js +57 -0
  447. package/dist/runtime/pi/runAuth.d.ts +2 -0
  448. package/dist/runtime/pi/runAuth.js +185 -0
  449. package/dist/runtime/pi/testHelpers.d.ts +2 -0
  450. package/dist/runtime/pi/testHelpers.js +40 -0
  451. package/dist/runtime/picoclaw/adapter.js +23 -27
  452. package/dist/runtime/picoclaw/mcp.d.ts +4 -0
  453. package/dist/runtime/picoclaw/mcp.js +43 -0
  454. package/dist/runtime/picoclaw/memory.d.ts +7 -0
  455. package/dist/runtime/picoclaw/memory.js +17 -0
  456. package/dist/runtime/picoclaw/runAuth.js +1 -1
  457. package/dist/runtime/picoclaw/scaffold.js +1 -1
  458. package/dist/runtime/picoclaw/schedules.d.ts +26 -0
  459. package/dist/runtime/picoclaw/schedules.js +62 -3
  460. package/dist/runtime/registry.js +3 -0
  461. package/dist/runtime/scheduleUtils.d.ts +2 -0
  462. package/dist/runtime/scheduleUtils.js +15 -0
  463. package/dist/runtime/types.d.ts +26 -2
  464. package/dist/shared/errors.d.ts +1 -1
  465. package/dist/shared/errors.js +2 -2
  466. package/dist/shared/index.d.ts +1 -0
  467. package/dist/shared/index.js +1 -0
  468. package/dist/shared/redaction.d.ts +2 -0
  469. package/dist/shared/redaction.js +10 -0
  470. package/dist/status/buildStatus.d.ts +1 -0
  471. package/dist/status/buildStatus.js +2 -0
  472. package/dist/status/compileReport.d.ts +22 -0
  473. package/dist/status/compileReport.js +16 -2
  474. package/dist/status/compiledProbeCollection.d.ts +21 -0
  475. package/dist/status/compiledProbeCollection.js +27 -0
  476. package/dist/status/deployments.js +5 -12
  477. package/dist/status/imageStatusReport.js +6 -0
  478. package/dist/status/index.d.ts +3 -0
  479. package/dist/status/index.js +3 -0
  480. package/dist/status/lifecycleProbes.d.ts +19 -0
  481. package/dist/status/lifecycleProbes.js +174 -0
  482. package/dist/status/moltnetProbes.d.ts +7 -8
  483. package/dist/status/moltnetProbes.js +27 -198
  484. package/dist/status/moltnetWiringProbes.d.ts +19 -0
  485. package/dist/status/moltnetWiringProbes.js +178 -0
  486. package/dist/target/cleanupRun.d.ts +41 -0
  487. package/dist/target/cleanupRun.js +139 -0
  488. package/dist/target/cleanupRunDocker.d.ts +16 -0
  489. package/dist/target/cleanupRunDocker.js +66 -0
  490. package/dist/target/cleanupRunDocker.test-helper.d.ts +67 -0
  491. package/dist/target/cleanupRunDocker.test-helper.js +238 -0
  492. package/dist/target/cleanupRunDockerPreflight.d.ts +17 -0
  493. package/dist/target/cleanupRunDockerPreflight.js +224 -0
  494. package/dist/target/composedPreparation.d.ts +205 -0
  495. package/dist/target/composedPreparation.js +223 -0
  496. package/dist/target/containerBundle.d.ts +82 -0
  497. package/dist/target/containerBundle.js +243 -0
  498. package/dist/target/containerBundleArchive.d.ts +31 -0
  499. package/dist/target/containerBundleArchive.js +140 -0
  500. package/dist/target/containerBundleAuthority.d.ts +25 -0
  501. package/dist/target/containerBundleAuthority.js +65 -0
  502. package/dist/target/containerBundleContracts.d.ts +114 -0
  503. package/dist/target/containerBundleContracts.js +173 -0
  504. package/dist/target/containerBundleFilesystemStore.d.ts +3 -0
  505. package/dist/target/containerBundleFilesystemStore.js +247 -0
  506. package/dist/target/containerBundlePolicy.d.ts +33 -0
  507. package/dist/target/containerBundlePolicy.js +64 -0
  508. package/dist/target/containerBundleStore.d.ts +127 -0
  509. package/dist/target/containerBundleStore.js +284 -0
  510. package/dist/target/contracts.d.ts +538 -0
  511. package/dist/target/contracts.js +373 -0
  512. package/dist/target/dockerArtifactIdentityTypes.d.ts +56 -0
  513. package/dist/target/dockerArtifactIdentityTypes.js +1 -0
  514. package/dist/target/dockerArtifactInspection.d.ts +40 -0
  515. package/dist/target/dockerArtifactInspection.js +125 -0
  516. package/dist/target/dockerArtifacts.d.ts +21 -0
  517. package/dist/target/dockerArtifacts.js +110 -0
  518. package/dist/target/dockerArtifactsProvider.d.ts +41 -0
  519. package/dist/target/dockerArtifactsProvider.js +449 -0
  520. package/dist/target/dockerCommandExecutor.d.ts +27 -0
  521. package/dist/target/dockerCommandExecutor.js +200 -0
  522. package/dist/target/dockerCommandExecutorCore.d.ts +34 -0
  523. package/dist/target/dockerCommandExecutorCore.js +273 -0
  524. package/dist/target/dockerContainerBundleBuilder.d.ts +8 -0
  525. package/dist/target/dockerContainerBundleBuilder.js +256 -0
  526. package/dist/target/dockerContextSnapshot.d.ts +21 -0
  527. package/dist/target/dockerContextSnapshot.js +158 -0
  528. package/dist/target/dockerEndpointFingerprint.d.ts +1 -0
  529. package/dist/target/dockerEndpointFingerprint.js +9 -0
  530. package/dist/target/dockerPreparedArtifact.d.ts +48 -0
  531. package/dist/target/dockerPreparedArtifact.js +131 -0
  532. package/dist/target/dockerProjectionJson.d.ts +1 -0
  533. package/dist/target/dockerProjectionJson.js +80 -0
  534. package/dist/target/dockerPublicArtifactSnapshot.d.ts +17 -0
  535. package/dist/target/dockerPublicArtifactSnapshot.js +99 -0
  536. package/dist/target/dockerResources.d.ts +26 -0
  537. package/dist/target/dockerResources.js +162 -0
  538. package/dist/target/dockerResourcesProvider.d.ts +44 -0
  539. package/dist/target/dockerResourcesProvider.js +207 -0
  540. package/dist/target/dockerSecrets.d.ts +39 -0
  541. package/dist/target/dockerSecrets.js +249 -0
  542. package/dist/target/dockerSecretsAuthority.d.ts +26 -0
  543. package/dist/target/dockerSecretsAuthority.js +216 -0
  544. package/dist/target/dockerSecretsLifecycle.d.ts +25 -0
  545. package/dist/target/dockerSecretsLifecycle.js +133 -0
  546. package/dist/target/dockerSecretsProvider.d.ts +68 -0
  547. package/dist/target/dockerSecretsProvider.js +329 -0
  548. package/dist/target/dockerTarget.d.ts +52 -0
  549. package/dist/target/dockerTarget.js +48 -0
  550. package/dist/target/dockerTargetBinding.d.ts +14 -0
  551. package/dist/target/dockerTargetBinding.js +96 -0
  552. package/dist/target/dockerWorldClock.d.ts +17 -0
  553. package/dist/target/dockerWorldClock.js +111 -0
  554. package/dist/target/dockerWorldReadiness.d.ts +17 -0
  555. package/dist/target/dockerWorldReadiness.js +119 -0
  556. package/dist/target/dockerWorldService.d.ts +23 -0
  557. package/dist/target/dockerWorldService.js +216 -0
  558. package/dist/target/dockerWorldServiceAuthority.d.ts +80 -0
  559. package/dist/target/dockerWorldServiceAuthority.js +182 -0
  560. package/dist/target/dockerWorldServiceLifecycle.d.ts +41 -0
  561. package/dist/target/dockerWorldServiceLifecycle.js +275 -0
  562. package/dist/target/dockerWorldServiceProvider.d.ts +60 -0
  563. package/dist/target/dockerWorldServiceProvider.js +318 -0
  564. package/dist/target/dockerWorldServiceStore.d.ts +73 -0
  565. package/dist/target/dockerWorldServiceStore.js +367 -0
  566. package/dist/target/evidenceExport.d.ts +55 -0
  567. package/dist/target/evidenceExport.js +518 -0
  568. package/dist/target/evidenceExportArchive.d.ts +10 -0
  569. package/dist/target/evidenceExportArchive.js +302 -0
  570. package/dist/target/evidenceExportContract.d.ts +27 -0
  571. package/dist/target/evidenceExportContract.js +40 -0
  572. package/dist/target/evidenceExportOperationsTestKit.d.ts +87 -0
  573. package/dist/target/evidenceExportOperationsTestKit.js +312 -0
  574. package/dist/target/evidenceExportProvider.d.ts +85 -0
  575. package/dist/target/evidenceExportProvider.js +187 -0
  576. package/dist/target/evidenceExportPublicationTypes.d.ts +16 -0
  577. package/dist/target/evidenceExportPublicationTypes.js +1 -0
  578. package/dist/target/evidenceExportStore.d.ts +70 -0
  579. package/dist/target/evidenceExportStore.js +498 -0
  580. package/dist/target/evidenceExportStorePublication.d.ts +7 -0
  581. package/dist/target/evidenceExportStorePublication.js +395 -0
  582. package/dist/target/handles.d.ts +20 -0
  583. package/dist/target/handles.js +56 -0
  584. package/dist/target/index.d.ts +12 -0
  585. package/dist/target/index.js +11 -0
  586. package/dist/target/journal.d.ts +59 -0
  587. package/dist/target/journal.js +529 -0
  588. package/dist/target/journalFilesystem.d.ts +3 -0
  589. package/dist/target/journalFilesystem.js +111 -0
  590. package/dist/target/journalRoot.d.ts +4 -0
  591. package/dist/target/journalRoot.js +6 -0
  592. package/dist/target/organizationAttachment.d.ts +23 -0
  593. package/dist/target/organizationAttachment.js +263 -0
  594. package/dist/target/organizationAttachmentAuthority.d.ts +65 -0
  595. package/dist/target/organizationAttachmentAuthority.js +161 -0
  596. package/dist/target/organizationAttachmentLifecycle.d.ts +17 -0
  597. package/dist/target/organizationAttachmentLifecycle.js +101 -0
  598. package/dist/target/organizationAttachmentProvider.d.ts +76 -0
  599. package/dist/target/organizationAttachmentProvider.js +289 -0
  600. package/dist/target/organizationAttachmentStore.d.ts +51 -0
  601. package/dist/target/organizationAttachmentStore.js +316 -0
  602. package/dist/target/publicArtifactSnapshot.d.ts +41 -0
  603. package/dist/target/publicArtifactSnapshot.js +150 -0
  604. package/dist/target/topologyActivation.d.ts +51 -0
  605. package/dist/target/topologyActivation.js +149 -0
  606. package/dist/target/topologyAttestation.d.ts +37 -0
  607. package/dist/target/topologyAttestation.js +300 -0
  608. package/dist/target/topologyAttestationErrors.d.ts +1 -0
  609. package/dist/target/topologyAttestationErrors.js +1 -0
  610. package/dist/target/worldClock.d.ts +60 -0
  611. package/dist/target/worldClock.js +129 -0
  612. package/dist/target/worldReadiness.d.ts +103 -0
  613. package/dist/target/worldReadiness.js +153 -0
  614. package/moltnet-releases.json +20 -0
  615. package/package.json +29 -8
  616. package/runtimes.yaml +28 -27
  617. package/dist/runtime/openclaw/scaffold-assets/CLAUDE.md +0 -5
  618. package/dist/runtime/picoclaw/scaffold-assets/CLAUDE.md +0 -5
  619. /package/dist/runtime/openclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
  620. /package/dist/runtime/picoclaw/scaffold-assets/{AGENTS.md → WORKSPACE_AGENTS.md} +0 -0
@@ -0,0 +1,435 @@
1
+ import { constants } from "node:fs";
2
+ import { link, lstat, open, unlink } from "node:fs/promises";
3
+ import { dirname, resolve } from "node:path";
4
+ import { TARGET_SECRET_SOURCE_ERROR, parseTargetSecretSourceOpaqueHandle } from "./targetSecretSourceRecordCommon.js";
5
+ const MAX_BYTES = 65_536;
6
+ const MAX_ATTEMPTS = 512;
7
+ const fail = () => { throw new Error(TARGET_SECRET_SOURCE_ERROR); };
8
+ const missing = (error) => error.code === "ENOENT";
9
+ const exists = (error) => error.code === "EEXIST";
10
+ const same = (a, b) => a.dev === b.dev && a.ino === b.ino && a.mode === b.mode && a.nlink === b.nlink && a.size === b.size && a.uid === b.uid;
11
+ const sameNode = (a, b) => a.dev === b.dev && a.ino === b.ino && a.mode === b.mode && a.nlink === b.nlink && a.uid === b.uid;
12
+ const sameInode = (a, b) => a.dev === b.dev && a.ino === b.ino && a.mode === b.mode && a.size === b.size && a.uid === b.uid;
13
+ const ownerUid = () => {
14
+ const value = process.getuid?.();
15
+ return typeof value === "number" ? value : fail();
16
+ };
17
+ const directoryIdentity = (value, uid) => {
18
+ if (!value.isDirectory() || value.isSymbolicLink() || value.uid !== uid || (value.mode & 0o7777) !== 0o700)
19
+ fail();
20
+ return { dev: value.dev, ino: value.ino, mode: value.mode, nlink: 0, size: 0, uid: value.uid };
21
+ };
22
+ const fileIdentity = (value, uid, links, zero = false) => {
23
+ if (!value.isFile() || value.isSymbolicLink() || value.uid !== uid || !links.includes(value.nlink)
24
+ || (value.mode & 0o7777) !== 0o600 || value.size < 0 || value.size > MAX_BYTES || (zero && value.size !== 0))
25
+ fail();
26
+ return { dev: value.dev, ino: value.ino, mode: value.mode, nlink: value.nlink, size: value.size, uid: value.uid };
27
+ };
28
+ const yieldTurn = () => new Promise((resolve) => setImmediate(resolve));
29
+ export const initializeTargetSecretSourceFsPublishImmutable = async (options) => {
30
+ if (!options || typeof options !== "object" || !Array.isArray(options.directory_chain) || options.directory_chain.length < 1
31
+ || options.directory_chain.some((entry) => typeof entry !== "string" || entry.length < 1))
32
+ fail();
33
+ const uid = ownerUid();
34
+ const paths = [...options.directory_chain];
35
+ const roots = await Promise.all(paths.map(async (path) => directoryIdentity(await lstat(path), uid)));
36
+ const checkChain = async () => {
37
+ for (let index = 0; index < paths.length; index += 1) {
38
+ const named = directoryIdentity(await lstat(paths[index]), uid);
39
+ if (!same(named, roots[index]))
40
+ fail();
41
+ let fd;
42
+ try {
43
+ fd = await open(paths[index], constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
44
+ const opened = directoryIdentity(await fd.stat(), uid);
45
+ const after = directoryIdentity(await lstat(paths[index]), uid);
46
+ if (!same(opened, roots[index]) || !same(after, roots[index]))
47
+ fail();
48
+ }
49
+ catch {
50
+ fail();
51
+ }
52
+ finally {
53
+ await fd?.close().catch(() => undefined);
54
+ }
55
+ }
56
+ };
57
+ const syncDirectory = async () => {
58
+ await checkChain();
59
+ await options.hookForTest?.("before_directory_sync", paths.at(-1));
60
+ let fd;
61
+ try {
62
+ fd = await open(paths.at(-1), constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
63
+ const opened = directoryIdentity(await fd.stat(), uid);
64
+ if (!same(opened, roots.at(-1)))
65
+ fail();
66
+ await fd.sync();
67
+ const after = directoryIdentity(await fd.stat(), uid);
68
+ const named = directoryIdentity(await lstat(paths.at(-1)), uid);
69
+ if (!same(after, roots.at(-1)) || !same(named, roots.at(-1)))
70
+ fail();
71
+ }
72
+ catch {
73
+ return fail();
74
+ }
75
+ finally {
76
+ await fd?.close().catch(() => undefined);
77
+ }
78
+ await checkChain();
79
+ };
80
+ const snapshotZero = async (path, links) => {
81
+ await checkChain();
82
+ let before;
83
+ try {
84
+ const beforeInfo = await lstat(path);
85
+ if (beforeInfo.nlink === 0) {
86
+ fileIdentity(beforeInfo, uid, [0], true);
87
+ return null;
88
+ }
89
+ before = fileIdentity(beforeInfo, uid, links, true);
90
+ }
91
+ catch (error) {
92
+ if (missing(error))
93
+ return null;
94
+ return fail();
95
+ }
96
+ let fd;
97
+ try {
98
+ try {
99
+ fd = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
100
+ }
101
+ catch (error) {
102
+ if (missing(error))
103
+ return null;
104
+ return fail();
105
+ }
106
+ if (!fd)
107
+ return fail();
108
+ const openedInfo = await fd.stat();
109
+ if (openedInfo.nlink === 0) {
110
+ fileIdentity(openedInfo, uid, [0], true);
111
+ return null;
112
+ }
113
+ const opened = fileIdentity(openedInfo, uid, links, true);
114
+ let after;
115
+ try {
116
+ const afterInfo = await lstat(path);
117
+ if (afterInfo.nlink === 0) {
118
+ fileIdentity(afterInfo, uid, [0], true);
119
+ return null;
120
+ }
121
+ after = fileIdentity(afterInfo, uid, links, true);
122
+ }
123
+ catch (error) {
124
+ if (missing(error))
125
+ return null;
126
+ return fail();
127
+ }
128
+ if (!sameInode(before, opened) || !sameInode(opened, after) || !same(before, opened) || !same(opened, after))
129
+ return null;
130
+ return opened;
131
+ }
132
+ catch {
133
+ return fail();
134
+ }
135
+ finally {
136
+ await fd?.close().catch(() => undefined);
137
+ }
138
+ };
139
+ const unlinkExact = async (path, expected) => {
140
+ await checkChain();
141
+ const current = await snapshotZero(path, [1, 2]);
142
+ if (current === null || !sameInode(current, expected) || !same(current, expected))
143
+ return false;
144
+ const immediate = await snapshotZero(path, [1, 2]);
145
+ if (immediate === null) {
146
+ await syncDirectory();
147
+ return false;
148
+ }
149
+ if (!sameInode(immediate, expected) || !same(immediate, expected))
150
+ return false;
151
+ try {
152
+ await unlink(path);
153
+ }
154
+ catch (error) {
155
+ if (!missing(error))
156
+ fail();
157
+ await syncDirectory();
158
+ return false;
159
+ }
160
+ await syncDirectory();
161
+ return true;
162
+ };
163
+ const readFinal = async (path, expected) => {
164
+ await checkChain();
165
+ let before;
166
+ try {
167
+ before = fileIdentity(await lstat(path), uid, [1]);
168
+ }
169
+ catch (error) {
170
+ if (missing(error))
171
+ return "absent";
172
+ return fail();
173
+ }
174
+ if (before.size > expected.length)
175
+ fail();
176
+ let fd;
177
+ let bytes;
178
+ try {
179
+ fd = await open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
180
+ const opened = fileIdentity(await fd.stat(), uid, [1]);
181
+ if (!sameNode(before, opened) || opened.size > expected.length)
182
+ fail();
183
+ bytes = new Uint8Array(opened.size);
184
+ let offset = 0;
185
+ while (offset < bytes.length) {
186
+ const read = await fd.read(bytes, offset, bytes.length - offset, offset);
187
+ if (read.bytesRead === 0)
188
+ fail();
189
+ offset += read.bytesRead;
190
+ }
191
+ const after = fileIdentity(await fd.stat(), uid, [1]);
192
+ const named = fileIdentity(await lstat(path), uid, [1]);
193
+ if (!sameNode(opened, after) || !sameNode(opened, named))
194
+ fail();
195
+ if (!same(opened, after) || !same(opened, named))
196
+ return "prefix";
197
+ for (let index = 0; index < bytes.length; index += 1)
198
+ if (bytes[index] !== expected[index])
199
+ fail();
200
+ return bytes.length === expected.length ? "exact" : "prefix";
201
+ }
202
+ catch {
203
+ return fail();
204
+ }
205
+ finally {
206
+ bytes?.fill(0);
207
+ await fd?.close().catch(() => undefined);
208
+ }
209
+ };
210
+ const createToken = async (token) => {
211
+ await checkChain();
212
+ let fd;
213
+ try {
214
+ fd = await open(token, constants.O_CREAT | constants.O_EXCL | constants.O_RDWR | constants.O_NOFOLLOW, 0o600);
215
+ await fd.chmod(0o600);
216
+ const opened = fileIdentity(await fd.stat(), uid, [1], true);
217
+ await fd.sync();
218
+ const afterInfo = await fd.stat();
219
+ if (afterInfo.nlink === 0) {
220
+ fileIdentity(afterInfo, uid, [0], true);
221
+ return null;
222
+ }
223
+ const after = fileIdentity(afterInfo, uid, [1, 2], true);
224
+ if (!sameInode(opened, after))
225
+ fail();
226
+ await syncDirectory();
227
+ await options.hookForTest?.("after_token_create", token);
228
+ return after;
229
+ }
230
+ catch (error) {
231
+ if (exists(error))
232
+ return null;
233
+ return fail();
234
+ }
235
+ finally {
236
+ await fd?.close().catch(() => undefined);
237
+ }
238
+ };
239
+ const writeSome = async (fd, bytes, offset, limit) => {
240
+ const testLimit = options.maxWriteBytesForTest;
241
+ const requested = testLimit === undefined ? limit : Math.min(limit, testLimit);
242
+ if (!Number.isSafeInteger(requested) || requested < 1)
243
+ fail();
244
+ const result = await fd.write(bytes, offset, requested, offset);
245
+ if (result.bytesWritten < 1 || result.bytesWritten > requested)
246
+ fail();
247
+ return result.bytesWritten;
248
+ };
249
+ const publishImmutable = async (input) => {
250
+ let owned;
251
+ try {
252
+ if (!input || typeof input !== "object" || !(input.bytes instanceof Uint8Array) || typeof input.final_path !== "string"
253
+ || typeof input.publication_handle !== "string" || typeof input.proveExact !== "function")
254
+ fail();
255
+ owned = Uint8Array.from(input.bytes);
256
+ if (owned.length < 1 || owned.length > MAX_BYTES)
257
+ fail();
258
+ const final = resolve(input.final_path);
259
+ if (input.final_path !== final || dirname(final) !== resolve(paths.at(-1)))
260
+ fail();
261
+ const publicationHandle = parseTargetSecretSourceOpaqueHandle(input.publication_handle);
262
+ const proveOwned = async () => {
263
+ const proofBytes = Uint8Array.from(owned);
264
+ try {
265
+ await input.proveExact(proofBytes);
266
+ }
267
+ finally {
268
+ proofBytes.fill(0);
269
+ }
270
+ };
271
+ await proveOwned();
272
+ const claim = `${final}.claim`;
273
+ const token = `${final}.token.${publicationHandle}`;
274
+ const proveFinal = async () => {
275
+ if (await readFinal(final, owned) !== "exact")
276
+ return false;
277
+ await proveOwned();
278
+ return true;
279
+ };
280
+ for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt += 1) {
281
+ const finalState = await readFinal(final, owned);
282
+ const claimState = await snapshotZero(claim, [1, 2]);
283
+ await options.hookForTest?.("after_claim_snapshot", claim);
284
+ const tokenState = await snapshotZero(token, [1, 2]);
285
+ if (finalState === "exact" && claimState === null && tokenState === null) {
286
+ if (!await proveFinal())
287
+ fail();
288
+ return;
289
+ }
290
+ if (claimState !== null && tokenState === null) {
291
+ if (finalState !== "exact" || claimState.nlink !== 1) {
292
+ await yieldTurn();
293
+ continue;
294
+ }
295
+ if (!await proveFinal())
296
+ fail();
297
+ if (!await unlinkExact(claim, claimState)) {
298
+ await yieldTurn();
299
+ continue;
300
+ }
301
+ return;
302
+ }
303
+ let ownedToken = tokenState;
304
+ if (ownedToken === null)
305
+ ownedToken = await createToken(token);
306
+ if (ownedToken === null) {
307
+ await yieldTurn();
308
+ continue;
309
+ }
310
+ let currentClaim = await snapshotZero(claim, [1, 2]);
311
+ if (currentClaim === null && ownedToken.nlink === 1) {
312
+ try {
313
+ await checkChain();
314
+ await link(token, claim);
315
+ }
316
+ catch (error) {
317
+ if (!exists(error))
318
+ fail();
319
+ }
320
+ await syncDirectory();
321
+ await options.hookForTest?.("after_claim_link", claim);
322
+ currentClaim = await snapshotZero(claim, [1, 2]);
323
+ ownedToken = await snapshotZero(token, [1, 2]);
324
+ }
325
+ if (!currentClaim || !ownedToken) {
326
+ await yieldTurn();
327
+ continue;
328
+ }
329
+ if (currentClaim.dev !== ownedToken.dev || currentClaim.ino !== ownedToken.ino) {
330
+ await options.hookForTest?.("after_mismatch_snapshot", token);
331
+ if (ownedToken.nlink === 1) {
332
+ const latest = await snapshotZero(token, [1, 2]);
333
+ if (latest?.nlink === 1 && same(latest, ownedToken))
334
+ await unlinkExact(token, latest);
335
+ }
336
+ await yieldTurn();
337
+ continue;
338
+ }
339
+ if (currentClaim.nlink !== 2 || ownedToken.nlink !== 2) {
340
+ await yieldTurn();
341
+ continue;
342
+ }
343
+ const state = await readFinal(final, owned);
344
+ if (state === "absent") {
345
+ let fd;
346
+ try {
347
+ fd = await open(final, constants.O_CREAT | constants.O_EXCL | constants.O_RDWR | constants.O_NOFOLLOW, 0o600);
348
+ await fd.chmod(0o600);
349
+ const empty = fileIdentity(await fd.stat(), uid, [1], true);
350
+ await options.hookForTest?.("after_final_create", final);
351
+ const split = Math.max(1, Math.floor(owned.length / 2));
352
+ let offset = 0;
353
+ while (offset < split)
354
+ offset += await writeSome(fd, owned, offset, split - offset);
355
+ await options.hookForTest?.("after_partial_write", final);
356
+ while (offset < owned.length)
357
+ offset += await writeSome(fd, owned, offset, owned.length - offset);
358
+ await fd.sync();
359
+ const complete = fileIdentity(await fd.stat(), uid, [1]);
360
+ if (empty.dev !== complete.dev || empty.ino !== complete.ino || complete.size !== owned.length)
361
+ fail();
362
+ await options.hookForTest?.("after_file_sync", final);
363
+ }
364
+ catch (error) {
365
+ if (!exists(error))
366
+ fail();
367
+ }
368
+ finally {
369
+ await fd?.close().catch(() => undefined);
370
+ }
371
+ }
372
+ else if (state === "prefix") {
373
+ let fd;
374
+ try {
375
+ fd = await open(final, constants.O_RDWR | constants.O_NOFOLLOW);
376
+ const before = fileIdentity(await fd.stat(), uid, [1]);
377
+ if (before.size > owned.length)
378
+ fail();
379
+ let offset = before.size;
380
+ while (offset < owned.length)
381
+ offset += await writeSome(fd, owned, offset, owned.length - offset);
382
+ await fd.sync();
383
+ const after = fileIdentity(await fd.stat(), uid, [1]);
384
+ if (before.dev !== after.dev || before.ino !== after.ino || after.size !== owned.length)
385
+ fail();
386
+ }
387
+ catch {
388
+ fail();
389
+ }
390
+ finally {
391
+ await fd?.close().catch(() => undefined);
392
+ }
393
+ }
394
+ if (!await proveFinal()) {
395
+ await yieldTurn();
396
+ continue;
397
+ }
398
+ await syncDirectory();
399
+ await options.hookForTest?.("after_directory_sync", final);
400
+ const exactToken = await snapshotZero(token, [1, 2]);
401
+ await options.hookForTest?.("after_exact_token_snapshot", token);
402
+ const exactClaim = await snapshotZero(claim, [1, 2]);
403
+ if (!exactToken || !exactClaim || exactToken.dev !== exactClaim.dev || exactToken.ino !== exactClaim.ino
404
+ || exactToken.nlink !== 2 || exactClaim.nlink !== 2) {
405
+ await yieldTurn();
406
+ continue;
407
+ }
408
+ await unlinkExact(token, exactToken);
409
+ await options.hookForTest?.("after_token_cleanup", token);
410
+ const remainingClaim = await snapshotZero(claim, [1, 2]);
411
+ if (remainingClaim === null) {
412
+ if (!await proveFinal())
413
+ fail();
414
+ return;
415
+ }
416
+ if (remainingClaim.nlink !== 1 || !await unlinkExact(claim, remainingClaim)) {
417
+ await yieldTurn();
418
+ continue;
419
+ }
420
+ await options.hookForTest?.("after_claim_cleanup", claim);
421
+ if (!await proveFinal())
422
+ fail();
423
+ return;
424
+ }
425
+ fail();
426
+ }
427
+ catch {
428
+ fail();
429
+ }
430
+ finally {
431
+ owned?.fill(0);
432
+ }
433
+ };
434
+ return Object.freeze({ publishImmutable });
435
+ };
@@ -0,0 +1,14 @@
1
+ import { type TargetSecretSourceAliasRecord, type TargetSecretSourceVersionRecord } from "./targetSecretSourceVersionRecords.js";
2
+ import { type TargetSecretSourceGrantRecord, type TargetSecretSourceRedemptionRecord, type TargetSecretSourceRevocationRecord } from "./targetSecretSourceGrantRecords.js";
3
+ export interface TargetSecretSourceFsRead {
4
+ readAlias(handle: unknown): Promise<TargetSecretSourceAliasRecord | null>;
5
+ readGrant(handle: unknown): Promise<TargetSecretSourceGrantRecord | null>;
6
+ readRedemption(handle: unknown): Promise<TargetSecretSourceRedemptionRecord | null>;
7
+ readRevocation(handle: unknown): Promise<TargetSecretSourceRevocationRecord | null>;
8
+ readVersion(handle: unknown): Promise<TargetSecretSourceVersionRecord | null>;
9
+ }
10
+ export interface TargetSecretSourceFsReadOptions {
11
+ readonly beforeLeafLstatForTest?: (path: string) => Promise<void> | void;
12
+ readonly beforeOpenForTest?: (path: string) => Promise<void> | void;
13
+ }
14
+ export declare const initializeTargetSecretSourceFsRead: (options?: TargetSecretSourceFsReadOptions) => Promise<TargetSecretSourceFsRead>;
@@ -0,0 +1,198 @@
1
+ import { Buffer } from "node:buffer";
2
+ import { constants } from "node:fs";
3
+ import { lstat, mkdir, open } from "node:fs/promises";
4
+ import { MAX_JSON_GRAPH_STRING_BYTES, TARGET_SECRET_SOURCE_ERROR, parseTargetSecretSourceOpaqueHandle } from "./targetSecretSourceRecordCommon.js";
5
+ import { parseTargetSecretSourceAliasRecordBytes, parseTargetSecretSourceVersionRecordBytes } from "./targetSecretSourceVersionRecords.js";
6
+ import { parseTargetSecretSourceGrantRecordBytes, parseTargetSecretSourceRedemptionRecordBytes, parseTargetSecretSourceRevocationRecordBytes } from "./targetSecretSourceGrantRecords.js";
7
+ import { resolveAuthHome, resolveSpawnfileHome, resolveTargetSecretAliasPath, resolveTargetSecretAliasesDirectory, resolveTargetSecretGrantPath, resolveTargetSecretGrantsDirectory, resolveTargetSecretRedemptionPath, resolveTargetSecretRedemptionsDirectory, resolveTargetSecretRevocationPath, resolveTargetSecretRevocationsDirectory, resolveTargetSecretVersionPath, resolveTargetSecretVersionsDirectory, resolveTargetSecretsRoot } from "./paths.js";
8
+ const fail = () => { throw new Error(TARGET_SECRET_SOURCE_ERROR); };
9
+ const absent = (error) => error.code === "ENOENT";
10
+ const uid = () => { const value = process.getuid?.(); if (typeof value !== "number")
11
+ return fail(); return value; };
12
+ const directoryIdentity = (info, owner) => {
13
+ if (!info.isDirectory() || info.isSymbolicLink() || info.uid !== BigInt(owner) || (info.mode & 4095n) !== 448n)
14
+ return fail();
15
+ return { birthtimeNs: info.birthtimeNs, dev: info.dev, ino: info.ino, mode: info.mode, uid: info.uid };
16
+ };
17
+ const fileIdentity = (info, owner) => {
18
+ if (!info.isFile() || info.isSymbolicLink() || info.uid !== BigInt(owner) || info.nlink !== 1n || info.size < 0n || info.size > BigInt(MAX_JSON_GRAPH_STRING_BYTES) || (info.mode & 4095n) !== 384n)
19
+ return fail();
20
+ return { birthtimeNs: info.birthtimeNs, ctimeNs: info.ctimeNs, dev: info.dev, ino: info.ino, mode: info.mode, nlink: info.nlink, size: Number(info.size), uid: info.uid };
21
+ };
22
+ const sameDirectory = (left, right) => left.birthtimeNs === right.birthtimeNs && left.dev === right.dev && left.ino === right.ino && left.mode === right.mode && left.uid === right.uid;
23
+ const sameFile = (left, right) => left.birthtimeNs === right.birthtimeNs && left.ctimeNs === right.ctimeNs && left.dev === right.dev && left.ino === right.ino && left.mode === right.mode && left.nlink === right.nlink && left.size === right.size && left.uid === right.uid;
24
+ const initializeDirectory = async (directory, owner, create) => {
25
+ let info;
26
+ try {
27
+ info = await lstat(directory, { bigint: true });
28
+ }
29
+ catch (error) {
30
+ if (!create || !absent(error))
31
+ return fail();
32
+ try {
33
+ await mkdir(directory, { mode: 0o700 });
34
+ info = await lstat(directory, { bigint: true });
35
+ }
36
+ catch {
37
+ return fail();
38
+ }
39
+ }
40
+ const before = directoryIdentity(info, owner);
41
+ let handle;
42
+ try {
43
+ handle = await open(directory, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
44
+ }
45
+ catch {
46
+ return fail();
47
+ }
48
+ try {
49
+ const opened = directoryIdentity(await handle.stat({ bigint: true }), owner);
50
+ const after = directoryIdentity(await lstat(directory, { bigint: true }), owner);
51
+ if (!sameDirectory(before, opened) || !sameDirectory(before, after))
52
+ return fail();
53
+ return opened;
54
+ }
55
+ catch {
56
+ return fail();
57
+ }
58
+ finally {
59
+ await handle.close().catch(() => undefined);
60
+ }
61
+ };
62
+ const checkChain = async (chain, owner) => {
63
+ for (const entry of chain) {
64
+ let info;
65
+ try {
66
+ info = await lstat(entry.path, { bigint: true });
67
+ }
68
+ catch {
69
+ return fail();
70
+ }
71
+ const before = directoryIdentity(info, owner);
72
+ if (!sameDirectory(before, entry.identity))
73
+ return fail();
74
+ let handle;
75
+ try {
76
+ handle = await open(entry.path, constants.O_RDONLY | constants.O_DIRECTORY | constants.O_NOFOLLOW);
77
+ }
78
+ catch {
79
+ return fail();
80
+ }
81
+ try {
82
+ const opened = directoryIdentity(await handle.stat({ bigint: true }), owner);
83
+ const after = directoryIdentity(await lstat(entry.path, { bigint: true }), owner);
84
+ if (!sameDirectory(opened, entry.identity) || !sameDirectory(after, entry.identity))
85
+ return fail();
86
+ }
87
+ catch {
88
+ return fail();
89
+ }
90
+ finally {
91
+ await handle.close().catch(() => undefined);
92
+ }
93
+ }
94
+ };
95
+ const readRecord = async (file, expected, parse, chain, owner, hooks) => {
96
+ await checkChain(chain, owner);
97
+ try {
98
+ await hooks.beforeLeafLstatForTest?.(file);
99
+ }
100
+ catch {
101
+ return fail();
102
+ }
103
+ let beforeInfo;
104
+ try {
105
+ beforeInfo = await lstat(file, { bigint: true });
106
+ }
107
+ catch (error) {
108
+ if (!absent(error))
109
+ return fail();
110
+ await checkChain(chain, owner);
111
+ try {
112
+ beforeInfo = await lstat(file, { bigint: true });
113
+ }
114
+ catch (retry) {
115
+ if (absent(retry))
116
+ return null;
117
+ return fail();
118
+ }
119
+ }
120
+ const before = fileIdentity(beforeInfo, owner);
121
+ try {
122
+ await hooks.beforeOpenForTest?.(file);
123
+ }
124
+ catch {
125
+ return fail();
126
+ }
127
+ let handle;
128
+ try {
129
+ handle = await open(file, constants.O_RDONLY | constants.O_NOFOLLOW);
130
+ }
131
+ catch {
132
+ return fail();
133
+ }
134
+ let bytes;
135
+ try {
136
+ const opened = fileIdentity(await handle.stat({ bigint: true }), owner);
137
+ if (!sameFile(before, opened))
138
+ return fail();
139
+ bytes = Buffer.alloc(opened.size + 1);
140
+ let offset = 0;
141
+ while (offset < bytes.length) {
142
+ const result = await handle.read(bytes, offset, bytes.length - offset, offset);
143
+ if (result.bytesRead === 0)
144
+ break;
145
+ offset += result.bytesRead;
146
+ }
147
+ const after = fileIdentity(await handle.stat({ bigint: true }), owner);
148
+ let pathname;
149
+ try {
150
+ pathname = fileIdentity(await lstat(file, { bigint: true }), owner);
151
+ }
152
+ catch {
153
+ return fail();
154
+ }
155
+ if (offset !== opened.size || !sameFile(opened, after) || !sameFile(opened, pathname))
156
+ return fail();
157
+ await checkChain(chain, owner);
158
+ const content = Uint8Array.from(bytes.subarray(0, offset));
159
+ try {
160
+ return parse(content, expected);
161
+ }
162
+ finally {
163
+ content.fill(0);
164
+ }
165
+ }
166
+ catch {
167
+ return fail();
168
+ }
169
+ finally {
170
+ bytes?.fill(0);
171
+ await handle.close().catch(() => undefined);
172
+ }
173
+ };
174
+ export const initializeTargetSecretSourceFsRead = async (options = {}) => {
175
+ const owner = uid();
176
+ const paths = [resolveSpawnfileHome(), resolveAuthHome(), resolveTargetSecretsRoot(), resolveTargetSecretVersionsDirectory(), resolveTargetSecretGrantsDirectory(), resolveTargetSecretRedemptionsDirectory(), resolveTargetSecretRevocationsDirectory(), resolveTargetSecretAliasesDirectory()];
177
+ const identities = [];
178
+ for (let index = 0; index < paths.length; index += 1)
179
+ identities.push(await initializeDirectory(paths[index], owner, index > 0));
180
+ const chains = Object.freeze({ aliases: paths.slice(0, 8).map((path, index) => ({ path, identity: identities[index] })), grants: paths.slice(0, 5).map((path, index) => ({ path, identity: identities[index] })), redemptions: paths.slice(0, 6).map((path, index) => ({ path, identity: identities[index] })), revocations: paths.slice(0, 7).map((path, index) => ({ path, identity: identities[index] })), versions: paths.slice(0, 4).map((path, index) => ({ path, identity: identities[index] })) });
181
+ const read = (raw, pathFor, parse, chain) => {
182
+ let handle;
183
+ try {
184
+ handle = parseTargetSecretSourceOpaqueHandle(raw);
185
+ }
186
+ catch {
187
+ return Promise.reject(new Error(TARGET_SECRET_SOURCE_ERROR));
188
+ }
189
+ return readRecord(pathFor(handle), handle, parse, chain, owner, options);
190
+ };
191
+ return Object.freeze({
192
+ readAlias: (handle) => read(handle, resolveTargetSecretAliasPath, parseTargetSecretSourceAliasRecordBytes, chains.aliases),
193
+ readGrant: (handle) => read(handle, resolveTargetSecretGrantPath, parseTargetSecretSourceGrantRecordBytes, chains.grants),
194
+ readRedemption: (handle) => read(handle, resolveTargetSecretRedemptionPath, parseTargetSecretSourceRedemptionRecordBytes, chains.redemptions),
195
+ readRevocation: (handle) => read(handle, resolveTargetSecretRevocationPath, parseTargetSecretSourceRevocationRecordBytes, chains.revocations),
196
+ readVersion: (handle) => read(handle, resolveTargetSecretVersionPath, parseTargetSecretSourceVersionRecordBytes, chains.versions)
197
+ });
198
+ };
@@ -0,0 +1,16 @@
1
+ import { type OpaqueTargetSecretSourceHandle } from "./targetSecretSourceRecordCommon.js";
2
+ import { type TargetSecretSourceFsRead } from "./targetSecretSourceFsRead.js";
3
+ import { type TargetSecretSourceEntropy, type TargetSecretSourceGrantMetadata } from "./targetSecretSourceGrantRecords.js";
4
+ import { type TargetSecretSourceRecordPublish } from "./targetSecretSourceRecordPublish.js";
5
+ export type TargetSecretSourceGrantInput = Readonly<Omit<TargetSecretSourceGrantMetadata, "source_version_handle" | "version">>;
6
+ export interface TargetSecretSourceGrant {
7
+ grantSource(input: TargetSecretSourceGrantInput): Promise<Readonly<{
8
+ source_handle: OpaqueTargetSecretSourceHandle;
9
+ }>>;
10
+ }
11
+ export interface TargetSecretSourceGrantOptions {
12
+ readonly publicationEntropy?: TargetSecretSourceEntropy;
13
+ readonly publisher?: Pick<TargetSecretSourceRecordPublish, "publishGrant">;
14
+ readonly reader?: Pick<TargetSecretSourceFsRead, "readAlias" | "readGrant" | "readRevocation" | "readVersion">;
15
+ }
16
+ export declare const initializeTargetSecretSourceGrant: (options?: TargetSecretSourceGrantOptions) => Promise<TargetSecretSourceGrant>;