@lunora/advisor 1.0.0-alpha.20 → 1.0.0-alpha.200

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 (210) hide show
  1. package/README.md +64 -7
  2. package/dist/index.d.mts +3841 -2573
  3. package/dist/index.d.ts +3841 -2573
  4. package/dist/index.mjs +1 -181
  5. package/dist/packem_shared/MAP_VERSION-MQ5W2B6n.mjs +1 -0
  6. package/dist/packem_shared/actionFetchSsrf-B4ZaOBlW.mjs +1 -0
  7. package/dist/packem_shared/actionWithoutErrorHandling-4GCBT0_z.mjs +1 -0
  8. package/dist/packem_shared/adminRouteWithoutGuard-DPE7LuNh.mjs +1 -0
  9. package/dist/packem_shared/aiRawRunEscapeHatch-B5980eT9.mjs +1 -0
  10. package/dist/packem_shared/aiRunWithoutLogging-CvHHtEN9.mjs +1 -0
  11. package/dist/packem_shared/aiToolSideEffectPromptInjection-_3MrX9Ul.mjs +1 -0
  12. package/dist/packem_shared/aiUnboundedGenerationPublic-C17h6sMV.mjs +1 -0
  13. package/dist/packem_shared/allowUnauthenticatedShardAccessEnabled-BQufF5Kb.mjs +1 -0
  14. package/dist/packem_shared/argument-derived-sink-DLXFC79t.mjs +1 -0
  15. package/dist/packem_shared/authApiCallWithoutHeaders-D8U1hv8s.mjs +1 -0
  16. package/dist/packem_shared/authCsrfCheckDisabled-C6bxME5y.mjs +1 -0
  17. package/dist/packem_shared/authEmailVerificationDisabled-yROPDgn-.mjs +1 -0
  18. package/dist/packem_shared/authScimWithoutTransactions-w9qb3iBe.mjs +1 -0
  19. package/dist/packem_shared/authSecureCookiesDisabled-qrCktlch.mjs +1 -0
  20. package/dist/packem_shared/authSessionFreshageZero-BMisjIIS.mjs +1 -0
  21. package/dist/packem_shared/authTrustedOriginsWildcard-DFDpfN84.mjs +1 -0
  22. package/dist/packem_shared/browserAllowPrivateTargets-Cj5sizhv.mjs +1 -0
  23. package/dist/packem_shared/browserUserUrlWithoutAllowlist-CcK27rvt.mjs +1 -0
  24. package/dist/packem_shared/callSiteCallers-DArHfQSU.mjs +1 -0
  25. package/dist/packem_shared/circularFk-DtcWFJxK.mjs +1 -0
  26. package/dist/packem_shared/classifySensitivity-JnjaTGYi.mjs +1 -0
  27. package/dist/packem_shared/commitOrderedHardDelete-BPdwOKA7.mjs +1 -0
  28. package/dist/packem_shared/compareToBaseline-CUG59IOy.mjs +1 -0
  29. package/dist/packem_shared/containerInstanceKeyFromUserInput-DBdjUnQb.mjs +1 -0
  30. package/dist/packem_shared/containerOversizedInstance-Bx89uR7E.mjs +1 -0
  31. package/dist/packem_shared/containerPublicInternet-BFfZf_P4.mjs +1 -0
  32. package/dist/packem_shared/containerRuntimeEgressRelaxation-CioCA2zY.mjs +1 -0
  33. package/dist/packem_shared/containerStartEnableInternetOverride-C6dbznku.mjs +1 -0
  34. package/dist/packem_shared/crossModuleTableWrite-DjiVTAwK.mjs +1 -0
  35. package/dist/packem_shared/dedupeCacheKeys-DtBOHffV.mjs +1 -0
  36. package/dist/packem_shared/duplicateIndex-Cip6-Rpu.mjs +1 -0
  37. package/dist/packem_shared/emptyIndex-BnHDcXza.mjs +1 -0
  38. package/dist/packem_shared/errorWithoutCatalog-BTfvaXHR.mjs +1 -0
  39. package/dist/packem_shared/exportSinkMisconfigured-JfbAx9AI.mjs +1 -0
  40. package/dist/packem_shared/externalSourceIncrementalNoDeletePath-BCzm3HzF.mjs +1 -0
  41. package/dist/packem_shared/externalSourceOnGlobal-CH7xbJ49.mjs +1 -0
  42. package/dist/packem_shared/externalSourceUnscoped-BxU2uSXk.mjs +1 -0
  43. package/dist/packem_shared/fanOutBreadth-CBtmZnoh.mjs +1 -0
  44. package/dist/packem_shared/filterOnPrimaryKey-DbFriOZA.mjs +1 -0
  45. package/dist/packem_shared/filterWithoutIndex-Dc7Nn0y2.mjs +1 -0
  46. package/dist/packem_shared/finding-NrKO8idM.mjs +1 -0
  47. package/dist/packem_shared/fk-index-DXYS17cc.mjs +1 -0
  48. package/dist/packem_shared/flagGatesSecurityWithUnsafeDefault-DB9M6hLM.mjs +1 -0
  49. package/dist/packem_shared/flagReadInSubscription-DabIhYGD.mjs +1 -0
  50. package/dist/packem_shared/fromServerSchema-fAymN8o2.mjs +1 -0
  51. package/dist/packem_shared/geoIndexFieldNotGeopoint-CDMNbAfp.mjs +1 -0
  52. package/dist/packem_shared/geoIndexUnused-D7C9Qr4U.mjs +1 -0
  53. package/dist/packem_shared/globalTableNearColumnLimit-BFbBBd6A.mjs +1 -0
  54. package/dist/packem_shared/gradeFromScore-KSt58rj1.mjs +1 -0
  55. package/dist/packem_shared/hardcodedSecret-Bw_4FYrs.mjs +1 -0
  56. package/dist/packem_shared/helpers-BmppB5nL.mjs +1 -0
  57. package/dist/packem_shared/hotShard-BwGYZ3Tq.mjs +1 -0
  58. package/dist/packem_shared/httpActionMissingAuthGuard-BhvcmkwW.mjs +1 -0
  59. package/dist/packem_shared/httpActionResponseHeaderInjection-DKz2SlCa.mjs +1 -0
  60. package/dist/packem_shared/hyperdriveOutsideAction-CPDdGP2g.mjs +1 -0
  61. package/dist/packem_shared/identityUndeclaredClaimTrusted-CAUagXkJ.mjs +1 -0
  62. package/dist/packem_shared/imagesUrlSourceFromUserInput-C2CJTTCI.mjs +1 -0
  63. package/dist/packem_shared/indexReferencesUnknownField-Dm8SL4Tp.mjs +1 -0
  64. package/dist/packem_shared/indexUtilization-CkVPZcVe.mjs +1 -0
  65. package/dist/packem_shared/insertManyUnsafeUserData-DWE8d_DF.mjs +1 -0
  66. package/dist/packem_shared/kvUnscopedUserKeyIdor-CXFKAyM2.mjs +1 -0
  67. package/dist/packem_shared/mailInboundDispatchWithoutVerify-CWwqXyPX.mjs +1 -0
  68. package/dist/packem_shared/mailRecipientFromRequestInput-CQZeOsP9.mjs +1 -0
  69. package/dist/packem_shared/maskUncoveredPiiColumn-axEka4nd.mjs +1 -0
  70. package/dist/packem_shared/maskWeakHashStrategyOnPii-njstapQY.mjs +1 -0
  71. package/dist/packem_shared/maskedRelationLeakViaWith-CIFij6vE.mjs +1 -0
  72. package/dist/packem_shared/mutatorFullRowReplace-BzRpZ47r.mjs +1 -0
  73. package/dist/packem_shared/mutatorWithoutOwnerScope-BoS81ns0.mjs +1 -0
  74. package/dist/packem_shared/nondeterministicQueryMutation-sxmixc0l.mjs +1 -0
  75. package/dist/packem_shared/normalizeIdUsedAsAuthorization-BXN-Can6.mjs +1 -0
  76. package/dist/packem_shared/notifyMissingPushConfig-DeQMoNwm.mjs +1 -0
  77. package/dist/packem_shared/notifySendOutsideAction-BJrDkr4h.mjs +1 -0
  78. package/dist/packem_shared/outputProjectionMissingOnPublicRead-DHivs_73.mjs +1 -0
  79. package/dist/packem_shared/ownerFieldFromArgsNotAuth-BFNc023N.mjs +1 -0
  80. package/dist/packem_shared/paymentCreateWithoutAuthorize-CICGmRFR.mjs +1 -0
  81. package/dist/packem_shared/paymentWebhookWideTolerance-CtZb2AVA.mjs +1 -0
  82. package/dist/packem_shared/plaintextSecretInWranglerVariables-bNkqmNqV.mjs +1 -0
  83. package/dist/packem_shared/policyReferencesUnknownTable-CIKuRZ5Y.mjs +1 -0
  84. package/dist/packem_shared/privilegedDispatchUnvalidatedPayload-DhXa36mM.mjs +1 -0
  85. package/dist/packem_shared/privilegedFanoutFromPublicProcedure-DV188gHQ.mjs +1 -0
  86. package/dist/packem_shared/procedure-protections-DRQotu9I.mjs +1 -0
  87. package/dist/packem_shared/procedureWithoutStructuredEvent-CZ_B23nM.mjs +1 -0
  88. package/dist/packem_shared/publicArgumentUsesAny-BDEvMA8Q.mjs +1 -0
  89. package/dist/packem_shared/publicMutationWithoutRatelimit-BeYapu1F.mjs +1 -0
  90. package/dist/packem_shared/publicTableRlsOptoutConfusion-BFmh1kH0.mjs +1 -0
  91. package/dist/packem_shared/queueWithoutDlq-BvHz3Opg.mjs +1 -0
  92. package/dist/packem_shared/r2sqlOutsideAction-BdLiLOAX.mjs +1 -0
  93. package/dist/packem_shared/ratelimitDefaultMemoryStore-Dj0Kk7t9.mjs +1 -0
  94. package/dist/packem_shared/ratelimitKeySpoofableOrGlobal-DlvJfSXs.mjs +1 -0
  95. package/dist/packem_shared/ratelimitMiddlewareFailOpen-DGtyt-pc.mjs +1 -0
  96. package/dist/packem_shared/relationReferencesUnknownField-CqGEJD57.mjs +1 -0
  97. package/dist/packem_shared/relationReferencesUnknownTable-CP4aWtAJ.mjs +1 -0
  98. package/dist/packem_shared/rlsUncoveredTable-CZ4ie4gX.mjs +1 -0
  99. package/dist/packem_shared/shapeTargetsGlobalTable-Bu3eEDic.mjs +1 -0
  100. package/dist/packem_shared/shapeUnknownTable-CREfNnWi.mjs +1 -0
  101. package/dist/packem_shared/signupMutationWithoutDisposableGating-CFtFMJz8.mjs +1 -0
  102. package/dist/packem_shared/softDeleteIncludeDeletedFromArgs-C7Ugg4zb.mjs +1 -0
  103. package/dist/packem_shared/sqlInjectionRisk-y-7c46LJ.mjs +1 -0
  104. package/dist/packem_shared/storageGenerateUploadUrlNoContentTypePin-Bx9oGOjM.mjs +1 -0
  105. package/dist/packem_shared/storageKeyFromUserArgs-BryKJJM-.mjs +1 -0
  106. package/dist/packem_shared/storagePresignedUrlForPrivateContent-lqE6LvNu.mjs +1 -0
  107. package/dist/packem_shared/storageUploadWithoutContentTypeAllowlist-DMr7w29r.mjs +1 -0
  108. package/dist/packem_shared/storageUploadWithoutMaxSize-rSNFNb2l.mjs +1 -0
  109. package/dist/packem_shared/tableWithoutInsert-ClJp_jDr.mjs +1 -0
  110. package/dist/packem_shared/topicTooManySubscriptions-CiZhFm9r.mjs +1 -0
  111. package/dist/packem_shared/ttlFieldNotTimestamp-Dxa-6RfM.mjs +1 -0
  112. package/dist/packem_shared/unboundedStringArgument-jZnCbwB0.mjs +1 -0
  113. package/dist/packem_shared/unindexedForeignKey-Dypgn8uH.mjs +1 -0
  114. package/dist/packem_shared/unindexedRelationTarget-CSqRJWYZ.mjs +1 -0
  115. package/dist/packem_shared/unrestrictedWhereBranch-CcIBmHik.mjs +1 -0
  116. package/dist/packem_shared/userCreatingMutationWithoutCaptcha-C8yaqIIj.mjs +1 -0
  117. package/dist/packem_shared/vectorsNamespaceFromUserInput-7I_Kwxvp.mjs +1 -0
  118. package/dist/packem_shared/workflowDuplicateStepName-B6eAJzwA.mjs +1 -0
  119. package/dist/packem_shared/workflowUnknownTarget-Cm1hfTTs.mjs +1 -0
  120. package/dist/packem_shared/workflowUnused-DHwwE-1P.mjs +1 -0
  121. package/package.json +3 -3
  122. package/dist/packem_shared/AE_METRIC_EVENTS-BM14d0lm.mjs +0 -87
  123. package/dist/packem_shared/actionFetchSsrf-wbmYgzmz.mjs +0 -26
  124. package/dist/packem_shared/adminRouteWithoutGuard-UUGBkAjU.mjs +0 -33
  125. package/dist/packem_shared/aiRawRunEscapeHatch-C29jd32J.mjs +0 -26
  126. package/dist/packem_shared/aiToolSideEffectPromptInjection-BtD3alqB.mjs +0 -33
  127. package/dist/packem_shared/aiUnboundedGenerationPublic-CbAcSxLB.mjs +0 -26
  128. package/dist/packem_shared/allowUnauthenticatedShardAccessEnabled-BcASq-jP.mjs +0 -30
  129. package/dist/packem_shared/argument-derived-sink-C1xTTqAt.mjs +0 -30
  130. package/dist/packem_shared/authApiCallWithoutHeaders-BeJhCZaf.mjs +0 -38
  131. package/dist/packem_shared/authCsrfCheckDisabled-DCf9FSoD.mjs +0 -26
  132. package/dist/packem_shared/authEmailVerificationDisabled-Dk-Tc5oU.mjs +0 -26
  133. package/dist/packem_shared/authSecureCookiesDisabled-osJrHW9Y.mjs +0 -26
  134. package/dist/packem_shared/authSessionFreshageZero-CjufCc_Q.mjs +0 -26
  135. package/dist/packem_shared/authTrustedOriginsWildcard-ylv4PKzC.mjs +0 -26
  136. package/dist/packem_shared/browserAllowPrivateTargets-CBvQxLAM.mjs +0 -26
  137. package/dist/packem_shared/browserUserUrlWithoutAllowlist-CvhA6w59.mjs +0 -26
  138. package/dist/packem_shared/circularFk-B2freHrP.mjs +0 -84
  139. package/dist/packem_shared/constraintValidator-Dr9Py3FD.mjs +0 -186
  140. package/dist/packem_shared/containerInstanceKeyFromUserInput-BUXj2J4w.mjs +0 -19
  141. package/dist/packem_shared/containerOversizedInstance-5U1VKPRM.mjs +0 -36
  142. package/dist/packem_shared/containerPublicInternet-CuNerJE5.mjs +0 -30
  143. package/dist/packem_shared/containerRuntimeEgressRelaxation-B0LlfmDA.mjs +0 -26
  144. package/dist/packem_shared/containerStartEnableInternetOverride-DDaHZQ1L.mjs +0 -26
  145. package/dist/packem_shared/duplicateIndex-BOublMSt.mjs +0 -57
  146. package/dist/packem_shared/emptyIndex-BX8EuEY7.mjs +0 -32
  147. package/dist/packem_shared/externalSourceOnGlobal-Bg-NfCX9.mjs +0 -30
  148. package/dist/packem_shared/externalSourceUnscoped-5vT-Bup3.mjs +0 -44
  149. package/dist/packem_shared/filterWithoutIndex-BYVeJaSs.mjs +0 -31
  150. package/dist/packem_shared/finding-Dm_zvzS1.mjs +0 -16
  151. package/dist/packem_shared/fk-index-IUK1ukgs.mjs +0 -7
  152. package/dist/packem_shared/flagGatesSecurityWithUnsafeDefault-BhIs0shr.mjs +0 -41
  153. package/dist/packem_shared/fromServerSchema-BiB6JSiW.mjs +0 -59
  154. package/dist/packem_shared/hardcodedSecret-W2pz1UZB.mjs +0 -35
  155. package/dist/packem_shared/helpers-BySnKhVB.mjs +0 -31
  156. package/dist/packem_shared/hotShard-Ir5D0B6J.mjs +0 -48
  157. package/dist/packem_shared/httpActionMissingAuthGuard-CxipddNx.mjs +0 -35
  158. package/dist/packem_shared/httpActionResponseHeaderInjection-DOFS7pFT.mjs +0 -39
  159. package/dist/packem_shared/hyperdriveOutsideAction-BgZqX7Xg.mjs +0 -30
  160. package/dist/packem_shared/identityUndeclaredClaimTrusted-D8nXV2dd.mjs +0 -32
  161. package/dist/packem_shared/imagesUrlSourceFromUserInput-YcDQ0b_Y.mjs +0 -19
  162. package/dist/packem_shared/indexReferencesUnknownField-BSWNngxX.mjs +0 -36
  163. package/dist/packem_shared/indexUtilization-B5DMQ3bI.mjs +0 -45
  164. package/dist/packem_shared/insertManyUnsafeUserData-Dn77XpmX.mjs +0 -26
  165. package/dist/packem_shared/kvUnscopedUserKeyIdor-YWwmfE8X.mjs +0 -19
  166. package/dist/packem_shared/mailInboundDispatchWithoutVerify-CHSRA8zz.mjs +0 -28
  167. package/dist/packem_shared/mailRecipientFromRequestInput-Cka2qu5J.mjs +0 -26
  168. package/dist/packem_shared/maskUncoveredPiiColumn-DjGIPG6M.mjs +0 -61
  169. package/dist/packem_shared/maskWeakHashStrategyOnPii-1c4q8Opf.mjs +0 -35
  170. package/dist/packem_shared/maskedRelationLeakViaWith-CPI4s0sl.mjs +0 -76
  171. package/dist/packem_shared/mutatorFullRowReplace-BJnNDaIV.mjs +0 -26
  172. package/dist/packem_shared/nondeterministicQueryMutation-GXES1fLp.mjs +0 -35
  173. package/dist/packem_shared/normalizeIdUsedAsAuthorization-BVPtCpzT.mjs +0 -50
  174. package/dist/packem_shared/outputProjectionMissingOnPublicRead-Bl5IMx0k.mjs +0 -51
  175. package/dist/packem_shared/ownerFieldFromArgsNotAuth-mOw3hE5z.mjs +0 -26
  176. package/dist/packem_shared/paymentCreateWithoutAuthorize-BYm4JLxo.mjs +0 -26
  177. package/dist/packem_shared/paymentWebhookWideTolerance-D9QQJMJq.mjs +0 -35
  178. package/dist/packem_shared/plaintextSecretInWranglerVariables-NKO4YkKf.mjs +0 -35
  179. package/dist/packem_shared/policyReferencesUnknownTable-DtaIEovd.mjs +0 -38
  180. package/dist/packem_shared/privilegedDispatchUnvalidatedPayload-5Forjckt.mjs +0 -37
  181. package/dist/packem_shared/privilegedFanoutFromPublicProcedure-D3dL01B8.mjs +0 -26
  182. package/dist/packem_shared/publicArgumentUsesAny-C71b2NCf.mjs +0 -32
  183. package/dist/packem_shared/publicMutationWithoutRatelimit-DbIhgi7j.mjs +0 -36
  184. package/dist/packem_shared/publicTableRlsOptoutConfusion-Bn71yoD4.mjs +0 -38
  185. package/dist/packem_shared/queueWithoutDlq-CSkGNb_0.mjs +0 -41
  186. package/dist/packem_shared/r2sqlOutsideAction-CtqxvMuV.mjs +0 -30
  187. package/dist/packem_shared/ratelimitDefaultMemoryStore-BISChG5C.mjs +0 -26
  188. package/dist/packem_shared/ratelimitKeySpoofableOrGlobal-DqlHYQQ3.mjs +0 -26
  189. package/dist/packem_shared/ratelimitMiddlewareFailOpen-CJgDCaUw.mjs +0 -33
  190. package/dist/packem_shared/relationReferencesUnknownField-CjbLScJ1.mjs +0 -54
  191. package/dist/packem_shared/relationReferencesUnknownTable-DrorpKYe.mjs +0 -33
  192. package/dist/packem_shared/rlsUncoveredTable-CxEfZ5eZ.mjs +0 -56
  193. package/dist/packem_shared/shapeTargetsGlobalTable-DHrf4Koi.mjs +0 -34
  194. package/dist/packem_shared/shapeUnknownTable-C8aDWFoe.mjs +0 -34
  195. package/dist/packem_shared/softDeleteIncludeDeletedFromArgs-BLqDKrkM.mjs +0 -38
  196. package/dist/packem_shared/sqlInjectionRisk-zwytYGLt.mjs +0 -26
  197. package/dist/packem_shared/storageGenerateUploadUrlNoContentTypePin-Da4L9Ge8.mjs +0 -26
  198. package/dist/packem_shared/storageKeyFromUserArgs-B86elJgS.mjs +0 -19
  199. package/dist/packem_shared/storagePresignedUrlForPrivateContent-yGmb8uqz.mjs +0 -47
  200. package/dist/packem_shared/storageUploadWithoutContentTypeAllowlist-BV-gF1lT.mjs +0 -27
  201. package/dist/packem_shared/storageUploadWithoutMaxSize-DpxO59wU.mjs +0 -27
  202. package/dist/packem_shared/tableWithoutInsert-CbbaYIP4.mjs +0 -34
  203. package/dist/packem_shared/unboundedStringArgument-DThg2-wt.mjs +0 -32
  204. package/dist/packem_shared/unindexedForeignKey-BgJbKyqK.mjs +0 -45
  205. package/dist/packem_shared/unindexedRelationTarget-D6eyj6Xx.mjs +0 -53
  206. package/dist/packem_shared/userCreatingMutationWithoutCaptcha-2DZtWIPb.mjs +0 -42
  207. package/dist/packem_shared/vectorsNamespaceFromUserInput-CQhr5bVn.mjs +0 -19
  208. package/dist/packem_shared/workflowDuplicateStepName-ioBxPBCy.mjs +0 -48
  209. package/dist/packem_shared/workflowUnknownTarget-Cdd7WhKQ.mjs +0 -34
  210. package/dist/packem_shared/workflowUnused-D0jHxdz9.mjs +0 -38
@@ -1,48 +0,0 @@
1
- import { e as emit } from './finding-Dm_zvzS1.mjs';
2
-
3
- const workflowDuplicateStepName = {
4
- categories: ["SCHEMA"],
5
- description: "Two durable steps in this workflow share a name. Cloudflare memoizes a step by its name, so on replay the second call returns the first step's cached result instead of running its body — silently skipping the work without an error.",
6
- facing: "INTERNAL",
7
- level: "ERROR",
8
- // eslint-disable-next-line no-secrets/no-secrets -- the lint's rule id, not a credential
9
- name: "workflow_duplicate_step_name",
10
- remediation: "Give every `step.do` / `step.sleep` / `step.sleepUntil` / `step.waitForEvent` call in the workflow a unique name. If a step legitimately repeats (e.g. a loop), make the name distinct per iteration by interpolating the item id into the step name.",
11
- run: (context) => {
12
- if (context.workflows === void 0) {
13
- return [];
14
- }
15
- const findings = [];
16
- for (const workflow of context.workflows) {
17
- const { steps } = workflow;
18
- if (steps === void 0 || steps.length === 0) {
19
- continue;
20
- }
21
- const firstLineByName = /* @__PURE__ */ new Map();
22
- const reported = /* @__PURE__ */ new Set();
23
- for (const step of steps) {
24
- const firstLine = firstLineByName.get(step.name);
25
- if (firstLine === void 0) {
26
- firstLineByName.set(step.name, step.line);
27
- continue;
28
- }
29
- if (reported.has(step.name)) {
30
- continue;
31
- }
32
- reported.add(step.name);
33
- findings.push(
34
- emit(workflowDuplicateStepName, {
35
- cacheKey: `workflow_duplicate_step_name:${workflow.exportName}:${step.name}`,
36
- detail: `Workflow "${workflow.exportName}" reuses the durable step name "${step.name}" (first at line ${String(firstLine)}, again at line ${String(step.line)}). The second call returns the first's cached result instead of running.`,
37
- metadata: { firstLine, line: step.line, stepName: step.name, workflow: workflow.exportName }
38
- })
39
- );
40
- }
41
- }
42
- return findings;
43
- },
44
- source: "static",
45
- title: "Duplicate durable step name in workflow"
46
- };
47
-
48
- export { workflowDuplicateStepName as default };
@@ -1,34 +0,0 @@
1
- import { e as emit } from './finding-Dm_zvzS1.mjs';
2
-
3
- const workflowUnknownTarget = {
4
- categories: ["SCHEMA"],
5
- description: 'A `ctx.workflows.get("<name>")` call references a workflow that is not declared by any `defineWorkflow` export in `lunora/workflows.ts`. The name is a typo or points at a removed/renamed workflow — the call throws at runtime.',
6
- facing: "INTERNAL",
7
- level: "ERROR",
8
- name: "workflow_unknown_target",
9
- remediation: 'Fix the workflow name in the `ctx.workflows.get("…")` call, or add the missing `defineWorkflow` export to `lunora/workflows.ts`.',
10
- run: (context) => {
11
- if (context.workflows === void 0 || context.workflowCalls === void 0) {
12
- return [];
13
- }
14
- const declared = new Set(context.workflows.map((workflow) => workflow.exportName));
15
- const findings = [];
16
- for (const call of context.workflowCalls) {
17
- if (call.workflow === "" || declared.has(call.workflow)) {
18
- continue;
19
- }
20
- findings.push(
21
- emit(workflowUnknownTarget, {
22
- cacheKey: `workflow_unknown_target:${call.file}:${call.exportName}:${call.workflow}`,
23
- detail: `\`ctx.workflows.get("${call.workflow}")\` in "${call.exportName}" (${call.file}) references workflow "${call.workflow}", which is not declared in lunora/workflows.ts.`,
24
- metadata: { exportName: call.exportName, file: call.file, line: call.line, workflow: call.workflow }
25
- })
26
- );
27
- }
28
- return findings;
29
- },
30
- source: "static",
31
- title: "Workflow call references unknown workflow"
32
- };
33
-
34
- export { workflowUnknownTarget as default };
@@ -1,38 +0,0 @@
1
- import { e as emit } from './finding-Dm_zvzS1.mjs';
2
-
3
- const workflowUnused = {
4
- categories: ["SCHEMA"],
5
- description: 'No function starts this workflow via `ctx.workflows.get("<name>")`. It may be triggered through a path the advisor can\'t see (the Cloudflare API, a wrangler invocation, a cross-service binding) — or it may be dead code that still deploys as a billable WorkflowEntrypoint.',
6
- facing: "INTERNAL",
7
- level: "INFO",
8
- name: "workflow_unused",
9
- remediation: 'If the workflow should be triggered in-app, start it from a mutation/action with `ctx.workflows.get("<name>").create({ params })`. If it is started externally or is no longer needed, this advisory can be ignored (or remove the `defineWorkflow` export).',
10
- run: (context) => {
11
- if (context.workflows === void 0) {
12
- return [];
13
- }
14
- const calls = context.workflowCalls ?? [];
15
- if (calls.some((call) => call.workflow === "")) {
16
- return [];
17
- }
18
- const started = new Set(calls.map((call) => call.workflow));
19
- const findings = [];
20
- for (const workflow of context.workflows) {
21
- if (started.has(workflow.exportName)) {
22
- continue;
23
- }
24
- findings.push(
25
- emit(workflowUnused, {
26
- cacheKey: `workflow_unused:${workflow.exportName}`,
27
- detail: `No function calls \`ctx.workflows.get("${workflow.exportName}")\` — workflow "${workflow.exportName}" is declared but never started in app code.`,
28
- metadata: { workflow: workflow.exportName }
29
- })
30
- );
31
- }
32
- return findings;
33
- },
34
- source: "static",
35
- title: "Workflow is never started"
36
- };
37
-
38
- export { workflowUnused as default };