@sailfish-ai/sf-veritas 0.2.16 → 0.2.18

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 (35) hide show
  1. package/dist/contextManager-C-sqFxpi.js +267 -0
  2. package/dist/contextManager-wMuxqwl9.cjs +1 -0
  3. package/dist/funcSpanTransformer-D0W2t41q.cjs +1 -0
  4. package/dist/funcSpanTransformer-S_WeAt_m.js +251 -0
  5. package/dist/plugins/funcspanEsbuildPlugin.cjs +1 -1
  6. package/dist/plugins/funcspanEsbuildPlugin.mjs +2 -2
  7. package/dist/plugins/funcspanRollupPlugin.cjs +1 -1
  8. package/dist/plugins/funcspanRollupPlugin.mjs +2 -2
  9. package/dist/plugins/funcspanTscPlugin.cjs +1 -1
  10. package/dist/plugins/funcspanTscPlugin.mjs +2 -2
  11. package/dist/plugins/funcspanVitePlugin.cjs +1 -1
  12. package/dist/plugins/funcspanVitePlugin.mjs +2 -2
  13. package/dist/plugins/funcspanWebpackLoader.cjs +1 -1
  14. package/dist/plugins/funcspanWebpackLoader.mjs +1 -1
  15. package/dist/plugins/funcspanWebpackPlugin.cjs +1 -1
  16. package/dist/plugins/funcspanWebpackPlugin.mjs +1 -1
  17. package/dist/runtimeConfig-B8LSswM8.cjs +9 -0
  18. package/dist/runtimeConfig-GwWjhV9M.js +379 -0
  19. package/dist/sf-veritas.cjs +13 -13
  20. package/dist/sf-veritas.mjs +277 -286
  21. package/dist/types/debuggerWorker.d.ts +2 -2
  22. package/dist/types/generated/worker-data.d.ts +1 -1
  23. package/dist/types/setupConfig.d.ts +5 -0
  24. package/dist/types/utils.d.ts +7 -0
  25. package/dist/worker-pool-capture.cjs +1 -1
  26. package/dist/worker-pool-capture.mjs +1 -1
  27. package/dist/{workerPoolSpanCapture-COwiNikM.cjs → workerPoolSpanCapture-B3yge78T.cjs} +2 -2
  28. package/dist/{workerPoolSpanCapture-d-8ExI18.js → workerPoolSpanCapture-DqBbNQLv.js} +26 -22
  29. package/package.json +9 -2
  30. package/dist/contextManager-Cx03mw7l.js +0 -258
  31. package/dist/contextManager-CxQqBCEA.cjs +0 -1
  32. package/dist/funcSpanTransformer-Byqzu4B1.js +0 -231
  33. package/dist/funcSpanTransformer-CDh0o-AP.cjs +0 -1
  34. package/dist/runtimeConfig-DndXTWki.js +0 -353
  35. package/dist/runtimeConfig-TWzqPe1S.cjs +0 -8
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Processes call frames from an exception and posts them via the Workers parentPort.
2
+ * Processes call frames from an exception and posts them via the Worker's parentPort.
3
3
  *
4
4
  * @param session - The DevTools session or similar object you use to query for script sources.
5
5
  * @param callFrames - An array of call frame objects.
6
- * @param descriptionLines - An array of lines from the errors description, each typically beginning with "at ".
6
+ * @param descriptionLines - An array of lines from the error's description, each typically beginning with "at ".
7
7
  * @returns {Promise<void>}
8
8
  */
9
9
  export declare function processCallFrames(session: any, callFrames: any, descriptionLines: any): Promise<void>;
@@ -1 +1 @@
1
- export declare const fileContentsEncoded = "aW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gImluc3BlY3Rvci9wcm9taXNlcyI7CmltcG9ydCB7IHBhcmVudFBvcnQsIHdvcmtlckRhdGEgfSBmcm9tICJ3b3JrZXJfdGhyZWFkcyI7CgpnbG9iYWwuc2ZEZWJ1ZyA9IHVuZGVmaW5lZDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB1bmRlZmluZWQ7Cmdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSB1bmRlZmluZWQ7CgovKioKICogUHJvY2Vzc2VzIGNhbGwgZnJhbWVzIGZyb20gYW4gZXhjZXB0aW9uIGFuZCBwb3N0cyB0aGVtIHZpYSB0aGUgV29ya2Vy4oCZcyBwYXJlbnRQb3J0LgogKgogKiBAcGFyYW0gc2Vzc2lvbiAtIFRoZSBEZXZUb29scyBzZXNzaW9uIG9yIHNpbWlsYXIgb2JqZWN0IHlvdSB1c2UgdG8gcXVlcnkgZm9yIHNjcmlwdCBzb3VyY2VzLgogKiBAcGFyYW0gY2FsbEZyYW1lcyAtIEFuIGFycmF5IG9mIGNhbGwgZnJhbWUgb2JqZWN0cy4KICogQHBhcmFtIGRlc2NyaXB0aW9uTGluZXMgLSBBbiBhcnJheSBvZiBsaW5lcyBmcm9tIHRoZSBlcnJvcuKAmXMgZGVzY3JpcHRpb24sIGVhY2ggdHlwaWNhbGx5IGJlZ2lubmluZyB3aXRoICJhdCAiLgogKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0KICovCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzQ2FsbEZyYW1lcyhzZXNzaW9uLCBjYWxsRnJhbWVzLCBkZXNjcmlwdGlvbkxpbmVzKSB7CiAgLyoqCiAgICogTGltaXQgdGhlIGNhbGwgZnJhbWVzIHRvIHRoZSBtYXhpbXVtIGRlcHRoIHNwZWNpZmllZCBieSBnbG9iYWwuc3RhY2tEZXB0aExvY2Fscy4KICAgKiBUaGlzIGFzc3VtZXMgdGhhdCBnbG9iYWwuc3RhY2tEZXB0aExvY2FscyBpcyBkZWZpbmVkIGFzIGEgbnVtYmVyLgogICAqLwogIGNvbnN0IGxpbWl0ZWRDYWxsRnJhbWVzID0gY2FsbEZyYW1lcy5zbGljZSgwLCBnbG9iYWwuc3RhY2tEZXB0aExvY2Fscyk7CgogIGNvbnN0IGZyYW1lcyA9IGF3YWl0IFByb21pc2UuYWxsKAogICAgbGltaXRlZENhbGxGcmFtZXMubWFwKGFzeW5jIChmcmFtZSwgaW5kZXgpID0+IHsKICAgICAgdHJ5IHsKICAgICAgICBjb25zdCB7IGZ1bmN0aW9uTmFtZSwgbG9jYXRpb24sIHVybCwgc2NvcGVDaGFpbiB9ID0gZnJhbWU7CiAgICAgICAgLy8gRmluZCB0aGUgbG9jYWwgc2NvcGUsIGlmIGFueQogICAgICAgIGNvbnN0IGxvY2FsU2NvcGUgPSBzY29wZUNoYWluLmZpbmQoKHNjb3BlKSA9PiBzY29wZS50eXBlID09PSAibG9jYWwiKTsKCiAgICAgICAgbGV0IGNvZGUgPSAiPG5vdCBjYXB0dXJlZD4iOwogICAgICAgIC8vIFVzZSBlaXRoZXIgdGhlIFVSTCBvciB0aGUgZGVzY3JpcHRpb24gbGluZSBmb3IgZmlsZSByZWZlcmVuY2UKICAgICAgICBsZXQgZmlsZSA9ICIiOwogICAgICAgIGlmICh1cmwgJiYgdXJsLnRyaW0oKSAhPT0gIiIpIHsKICAgICAgICAgIGZpbGUgPSB1cmw7CiAgICAgICAgfSBlbHNlIGlmIChkZXNjcmlwdGlvbkxpbmVzW2luZGV4XSkgewogICAgICAgICAgZmlsZSA9IGRlc2NyaXB0aW9uTGluZXNbaW5kZXhdLnRyaW0oKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZmlsZSA9ICI8dW5rbm93bj4iOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIHZhbGlkIGxvY2F0aW9uIGFuZCBzY3JpcHRJZCwgZmV0Y2ggdGhlIGNvZGUgbGluZQogICAgICAgIGlmIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5zY3JpcHRJZCkgewogICAgICAgICAgY29uc3Qgc2NyaXB0SWQgPSBsb2NhdGlvbi5zY3JpcHRJZDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IHsgc2NyaXB0U291cmNlIH0gPSBhd2FpdCBzZXNzaW9uLnBvc3QoCiAgICAgICAgICAgICAgIkRlYnVnZ2VyLmdldFNjcmlwdFNvdXJjZSIsCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2NyaXB0SWQsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgY29uc3Qgc291cmNlTGluZXMgPSBzY3JpcHRTb3VyY2Uuc3BsaXQoIlxuIik7CiAgICAgICAgICAgIGNvZGUgPSBzb3VyY2VMaW5lc1tsb2NhdGlvbi5saW5lTnVtYmVyXSB8fCAiPG5vdCBjYXB0dXJlZD4iOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIltXb3JrZXJdIEZhaWxlZCB0byBmZXRjaCBzY3JpcHQgc291cmNlOiIsIGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEZldGNoIGxvY2FsIHZhcmlhYmxlcyBpZiB0aGVyZSdzIGFuIG9iamVjdElkCiAgICAgICAgY29uc3QgbG9jYWxzID0gbG9jYWxTY29wZT8ub2JqZWN0Py5vYmplY3RJZAogICAgICAgICAgPyBhd2FpdCBmZXRjaExvY2FsVmFyaWFibGVzKHNlc3Npb24sIGxvY2FsU2NvcGUub2JqZWN0Lm9iamVjdElkKQogICAgICAgICAgOiB7fTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZ1bmN0aW9uOiBmdW5jdGlvbk5hbWUgfHwgIjxhbm9ueW1vdXM+IiwKICAgICAgICAgIGxvY2FscywKICAgICAgICAgIGZpbGUsCiAgICAgICAgICBsaW5lOiBsb2NhdGlvbj8ubGluZU51bWJlciB8fCAwLAogICAgICAgICAgY29kZSwKICAgICAgICB9OwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRXJyb3IgcHJvY2Vzc2luZyBjYWxsIGZyYW1lOiIsIGVycm9yKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZ1bmN0aW9uOiAiPGVycm9yPiIsCiAgICAgICAgICBsb2NhbHM6IHt9LAogICAgICAgICAgZmlsZTogIjx1bmtub3duPiIsCiAgICAgICAgICBsaW5lOiAwLAogICAgICAgICAgY29kZTogIjxub3QgY2FwdHVyZWQ+IiwKICAgICAgICB9OwogICAgICB9CiAgICB9KSwKICApOwogIC8vIFBvc3QgZXhjZXB0aW9uIGRhdGEKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJleGNlcHRpb24iLCBmcmFtZXMgfSk7Cn0KCi8qKgogKiBIYW5kbGVzIHRoZSAicGF1c2VkIiBzdGF0ZSBvZiB0aGUgZGVidWdnZXIgYW5kIHByb2Nlc3NlcyBleGNlcHRpb25zIG9yIHByb21pc2UgcmVqZWN0aW9ucy4KICogQHBhcmFtIHtTZXNzaW9ufSBzZXNzaW9uIC0gVGhlIGRlYnVnZ2luZyBzZXNzaW9uIGluc3RhbmNlLgogKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zIC0gUGFyYW1ldGVycyBmcm9tIHRoZSAicGF1c2VkIiBldmVudC4KICovCmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVBhdXNlZChzZXNzaW9uLCBwYXJhbXMpIHsKICBjb25zdCB7IHJlYXNvbiwgZGF0YSwgY2FsbEZyYW1lcyB9ID0gcGFyYW1zOwoKICBpZiAocmVhc29uICE9PSAiZXhjZXB0aW9uIiAmJiByZWFzb24gIT09ICJwcm9taXNlUmVqZWN0aW9uIikgewogICAgcmV0dXJuOwogIH0KCiAgLy8gRGVmaW5lIHJlZ2V4IHBhdHRlcm5zIHRvIGlkZW50aWZ5IG5vbi1hcHBsaWNhdGlvbiBzb3VyY2UgZXJyb3JzLgogIGNvbnN0IG5vbkFwcFBhdHRlcm5zID0gWwogICAgL25vZGU6aW50ZXJuYWwvLAogICAgL2ludGVybmFsXC8vLAogICAgL25vZGVfbW9kdWxlcy8sCiAgICAvbm9kZTpmcy8sCiAgXTsKCiAgbGV0IGZpcnN0RnJhbWVMaW5lID0gIiI7CiAgbGV0IGRlc2NyaXB0aW9uTGluZXMgPSBbXTsKCiAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEuZGVzY3JpcHRpb24gPT09ICJzdHJpbmciKSB7CiAgICAvLyBTcGxpdCB0aGUgZGVzY3JpcHRpb24gaW50byBsaW5lcyBhbmQgZmlsdGVyIHRvIGtlZXAgb25seSBsaW5lcyB0aGF0IHN0YXJ0IHdpdGggImF0ICIKICAgIGRlc2NyaXB0aW9uTGluZXMgPSBkYXRhLmRlc2NyaXB0aW9uCiAgICAgIC5zcGxpdCgiXG4iKQogICAgICAuZmlsdGVyKChsaW5lKSA9PiBsaW5lLnRyaW0oKS5zdGFydHNXaXRoKCJhdCAiKSk7CgogICAgLy8gVXNlIHRoZSBmaXJzdCBjYWxsIGZyYW1lIGxpbmUgZnJvbSB0aGUgZGVzY3JpcHRpb24gZm9yIGZpbHRlcmluZy4KICAgIGZpcnN0RnJhbWVMaW5lID0gZGVzY3JpcHRpb25MaW5lc1swXSB8fCAiIjsKICAgIGlmICghZmlyc3RGcmFtZUxpbmUpIHsKICAgICAgLy8gSWYsIGZvciBzb21lIHJlYXNvbiwgdGhlcmUncyBubyBmcmFtZSwgYmFpbCBvdXQKICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSAibm9uLWFwcCIgZXJyb3IKICAgIGNvbnN0IGVycm9yRnJvbU5vbkFwcCA9IG5vbkFwcFBhdHRlcm5zLnNvbWUoKHBhdHRlcm4pID0+CiAgICAgIHBhdHRlcm4udGVzdChmaXJzdEZyYW1lTGluZS50cmltKCkpLAogICAgKTsKCiAgICAvLyBDb252ZXJ0IGBnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uYCB0byBhbiBhcnJheSBmb3Igc2FmZXR5CiAgICBjb25zdCBub2RlTW9kdWxlc0xpc3QgPSBBcnJheS5pc0FycmF5KAogICAgICBnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uLAogICAgKQogICAgICA/IGdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24KICAgICAgOiBbXTsKICAgIGlmIChlcnJvckZyb21Ob25BcHApIHsKICAgICAgLy8gSWYgdGhlIGVycm9yIGlzIGZyb20gYSBub24tYXBwIHNvdXJjZSwgd2UgaGF2ZSBhIGZldyBzY2VuYXJpb3M6CiAgICAgIGlmIChub2RlTW9kdWxlc0xpc3QuaW5jbHVkZXMoIl9fYWxsX18iKSkgewogICAgICAgIC8vIElmIHRoZSBsaXN0IGluY2x1ZGVzIF9fYWxsX18sIGNhcHR1cmUgbG9jYWwgdmFyaWFibGVzIGZyb20gKmFsbCogbm9kZV9tb2R1bGVzCiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygKICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGlzIGZyb20gbm9uLWFwcCBzb3VyY2UsIGJ1dCBjYXB0dXJpbmcgZHVlIHRvIF9fYWxsX18gcnVsZS4iLAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgLy8gQ29udGludWUgKGRvIE5PVCByZXR1cm4pLi4uCiAgICAgIH0gZWxzZSBpZiAobm9kZU1vZHVsZXNMaXN0Lmxlbmd0aCA+IDApIHsKICAgICAgICAvLyBDaGVjayBpZiB0aGUgZmlyc3QgZnJhbWUgcmVmZXJlbmNlcyBvbmUgb2YgdGhlIG1vZHVsZXMgd2UgYWxsb3cgY2FwdHVyaW5nIGZyb20KICAgICAgICBjb25zdCBpc0Zyb21BbGxvd2VkTm9kZU1vZHVsZSA9IG5vZGVNb2R1bGVzTGlzdC5zb21lKChtb2R1bGVOYW1lKSA9PgogICAgICAgICAgZmlyc3RGcmFtZUxpbmUuaW5jbHVkZXMoYCR7bW9kdWxlTmFtZX1gKSwKICAgICAgICApOwoKICAgICAgICBpZiAoIWlzRnJvbUFsbG93ZWROb2RlTW9kdWxlKSB7CiAgICAgICAgICAvLyBOb3QgZnJvbSBhbiBhbGxvd2VkIG5vZGUgbW9kdWxlID0+IHJldHVybiBlYXJseQogICAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKAogICAgICAgICAgICAgICJbV29ya2VyXSBFcnJvciBhcHBlYXJzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIG5vbi1hcHBsaWNhdGlvbiBzb3VyY2VzOyBpZ25vcmluZy4iLAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvLyBPdGhlcndpc2UsIGl0J3MgZnJvbSBhbiBhbGxvd2VkIG5vZGUgbW9kdWxlLCBzbyBjb250aW51ZQogICAgICB9IGVsc2UgewogICAgICAgIC8vIElmIHRoZSBsaXN0IGlzIGVtcHR5LCBwcmVzZXJ2ZSBleGlzdGluZyBiZWhhdmlvciBhbmQgaWdub3JlIG5vbi1hcHBsaWNhdGlvbiBlcnJvcnMKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKAogICAgICAgICAgICAiW1dvcmtlcl0gRXJyb3IgYXBwZWFycyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBub24tYXBwbGljYXRpb24gc291cmNlczsgaWdub3JpbmcuIiwKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQoKICAgIC8vIElmIHdlIHJlYWNoIHRoaXMgcG9pbnQsIHRoZSBlcnJvciBpcyBlaXRoZXIgZnJvbSBhcHAgY29kZSwgb3IgZnJvbSBhIG5vZGUgbW9kdWxlIGFsbG93ZWQgYnkgdGhlIGxpc3QKICAgIC8vID0+IFByb2NlZWQgd2l0aCBjYXB0dXJpbmcgbG9jYWwgdmFyaWFibGVzLCBldGMuCiAgICBhd2FpdCBwcm9jZXNzQ2FsbEZyYW1lcyhzZXNzaW9uLCBjYWxsRnJhbWVzLCBkZXNjcmlwdGlvbkxpbmVzKTsKICB9IGVsc2UgewogICAgLy8gSWYgdGhlcmUgaXMgbm8gZGF0YS5kZXNjcmlwdGlvbiBvciBpdCdzIG5vdCBhIHN0cmluZywganVzdCByZXR1cm4KICAgIHJldHVybjsKICB9Cn0KCi8qKgogKiBJbml0aWFsaXplcyB0aGUgZGVidWdnZXIgYW5kIHNldHMgdXAgZXZlbnQgbGlzdGVuZXJzIGZvciBleGNlcHRpb25zIGFuZCBwcm9taXNlIHJlamVjdGlvbnMuCiAqLwphc3luYyBmdW5jdGlvbiBzdGFydERlYnVnZ2VyKCkgewogIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogIm1lc3NhZ2UiLCByZWFkeVRvR2V0UGFyYW1ldGVyczogdHJ1ZSB9KTsKCiAgbGV0IHJlc29sdmVNZXNzYWdlUHJvbWlzZTsKICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICByZXNvbHZlTWVzc2FnZVByb21pc2UgPSByZXNvbHZlOwogIH0pOwogIGxldCBpc1BhdXNlZCA9IGZhbHNlOwoKICBwYXJlbnRQb3J0Py5vbigibWVzc2FnZSIsIChtZXNzYWdlKSA9PiB7CiAgICB0cnkgewogICAgICBpZiAobWVzc2FnZT8udHlwZSA9PT0gInByb2Nlc3NFeGNlcHRpb24iKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICBpZiAoCiAgICAgICAgbWVzc2FnZT8uc2ZEZWJ1ZyAhPT0gdW5kZWZpbmVkICYmCiAgICAgICAgbWVzc2FnZT8uc3RhY2tEZXB0aExvY2FscyAhPT0gdW5kZWZpbmVkCiAgICAgICkgewogICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgY29uc29sZS5sb2coIlVwZGF0aW5nIGdsb2JhbCBkZWJ1ZyB2YXJpYWJsZXMuLi4iKTsKICAgICAgICB9CgogICAgICAgIGdsb2JhbC5zZkRlYnVnID0gbWVzc2FnZS5zZkRlYnVnOwogICAgICAgIGdsb2JhbC5zdGFja0RlcHRoTG9jYWxzID0gbWVzc2FnZS5zdGFja0RlcHRoTG9jYWxzOwogICAgICAgIGdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPQogICAgICAgICAgbWVzc2FnZS5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT247CgogICAgICAgIHJlc29sdmVNZXNzYWdlUHJvbWlzZSgpOwogICAgICB9CiAgICB9IGNhdGNoIChlcnJvcikgewogICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCLinYwgRXJyb3IgaW4gbWVzc2FnZSBoYW5kbGluZzoiLCBlcnJvcik7CiAgICAgIH0KICAgIH0KICB9KTsKCiAgYXdhaXQgbWVzc2FnZVByb21pc2U7CgogIHRyeSB7CiAgICBjb25zdCBzZXNzaW9uID0gbmV3IFNlc3Npb24oKTsKICAgIHNlc3Npb24uY29ubmVjdFRvTWFpblRocmVhZCgpOwoKICAgIHNlc3Npb24ub24oIkRlYnVnZ2VyLnJlc3VtZWQiLCAoKSA9PiB7CiAgICAgIGlzUGF1c2VkID0gZmFsc2U7CiAgICB9KTsKCiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5wYXVzZWQiLCBhc3luYyAoZXZlbnQpID0+IHsKICAgICAgaXNQYXVzZWQgPSB0cnVlOwogICAgICBoYW5kbGVQYXVzZWQoc2Vzc2lvbiwgZXZlbnQucGFyYW1zKS50aGVuKAogICAgICAgIGFzeW5jICgpID0+IHsKICAgICAgICAgIC8vIEFmdGVyIHRoZSBwYXVzZSB3b3JrIGlzIGNvbXBsZXRlLCByZXN1bWUgZXhlY3V0aW9uIQogICAgICAgICAgaWYgKGlzUGF1c2VkKSB7CiAgICAgICAgICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIucmVzdW1lIik7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBhc3luYyAoXykgPT4gewogICAgICAgICAgaWYgKGlzUGF1c2VkKSB7CiAgICAgICAgICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIucmVzdW1lIik7CiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgKTsKICAgIH0pOwoKICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIuZW5hYmxlIik7CgogICAgY29uc3QgY2FwdHVyZUFsbCA9IHdvcmtlckRhdGEuY2FwdHVyZUFsbEV4Y2VwdGlvbnMgIT09IGZhbHNlOwogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHsKICAgICAgc3RhdGU6IGNhcHR1cmVBbGwgPyAiYWxsIiA6ICJ1bmNhdWdodCIsCiAgICB9KTsKICB9IGNhdGNoIChlcnJvcikgewogICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgIGNvbnNvbGUuZXJyb3IoIltXb3JrZXJdIGVycm9yICIsIGVycm9yKTsKICAgIH0KICB9CgogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5sb2coIltXb3JrZXJdIERlYnVnZ2VyIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5LiIpOwogIH0KfQoKYXN5bmMgZnVuY3Rpb24gdW5yb2xsT2JqZWN0KHNlc3Npb24sIG9iamVjdElkLCBuYW1lLCB2YXJzKSB7CiAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgb2JqZWN0SWQsCiAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlLAogIH0pOwoKICB2YXJzW25hbWVdID0gcHJvcGVydGllcy5yZXN1bHQKICAgIC5tYXAoKHYpID0+IFt2Lm5hbWUsIHYudmFsdWU/LnZhbHVlXSkKICAgIC5yZWR1Y2UoKG9iaiwgW2tleSwgdmFsXSkgPT4gewogICAgICBvYmpba2V5XSA9IHZhbDsKICAgICAgcmV0dXJuIG9iajsKICAgIH0sIHt9KTsKfQoKYXN5bmMgZnVuY3Rpb24gdW5yb2xsQXJyYXkoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZDogb2JqZWN0SWQsCiAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlLAogIH0pOwogIHZhcnNbbmFtZV0gPSBwcm9wZXJ0aWVzLnJlc3VsdAogICAgLmZpbHRlcigodikgPT4gdi5uYW1lICE9PSAibGVuZ3RoIiAmJiAhaXNOYU4ocGFyc2VJbnQodi5uYW1lLCAxMCkpKQogICAgLnNvcnQoKGEsIGIpID0+IHBhcnNlSW50KGEubmFtZSwgMTApIC0gcGFyc2VJbnQoYi5uYW1lLCAxMCkpCiAgICAubWFwKCh2KSA9PiB2LnZhbHVlPy52YWx1ZSk7Cn0KCmZ1bmN0aW9uIHVucm9sbE90aGVyKHByb3AsIHZhcnMpIHsKICBpZiAoIXByb3AudmFsdWUpIHsKICAgIHJldHVybjsKICB9CgogIGlmICgidmFsdWUiIGluIHByb3AudmFsdWUpIHsKICAgIGlmIChwcm9wLnZhbHVlLnZhbHVlID09PSB1bmRlZmluZWQgfHwgcHJvcC52YWx1ZS52YWx1ZSA9PT0gbnVsbCkgewogICAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS52YWx1ZX0+YDsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhcnNbcHJvcC5uYW1lXSA9IHByb3AudmFsdWUudmFsdWU7CiAgICByZXR1cm47CiAgfQoKICBpZiAoImRlc2NyaXB0aW9uIiBpbiBwcm9wLnZhbHVlICYmIHByb3AudmFsdWUudHlwZSAhPT0gImZ1bmN0aW9uIikgewogICAgdmFyc1twcm9wLm5hbWVdID0gYDwke3Byb3AudmFsdWUuZGVzY3JpcHRpb259PmA7CiAgICByZXR1cm47CiAgfQoKICBpZiAocHJvcC52YWx1ZS50eXBlID09PSAidW5kZWZpbmVkIikgewogICAgdmFyc1twcm9wLm5hbWVdID0gIjx1bmRlZmluZWQ+IjsKICAgIHJldHVybjsKICB9Cn0KCi8qKgogKiBGZXRjaGVzIGxvY2FsIHZhcmlhYmxlcyBmcm9tIHRoZSBnaXZlbiBvYmplY3QgSUQuCiAqIEBwYXJhbSB7U2Vzc2lvbn0gc2Vzc2lvbiAtIFRoZSBkZWJ1Z2dpbmcgc2Vzc2lvbiBpbnN0YW5jZS4KICogQHBhcmFtIHtzdHJpbmd9IG9iamVjdElkIC0gVGhlIG9iamVjdCBJRCByZXByZXNlbnRpbmcgdGhlIGxvY2FsIHNjb3BlLgogKiBAcmV0dXJucyB7b2JqZWN0fSBBIGtleS12YWx1ZSBtYXAgb2YgbG9jYWwgdmFyaWFibGUgbmFtZXMgYW5kIHRoZWlyIHZhbHVlcy4KICovCmFzeW5jIGZ1bmN0aW9uIGZldGNoTG9jYWxWYXJpYWJsZXMoc2Vzc2lvbiwgb2JqZWN0SWQpIHsKICBpZiAoIW9iamVjdElkKSByZXR1cm4ge307CgogIHRyeSB7CiAgICBjb25zdCB7IHJlc3VsdCB9ID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICAgIG9iamVjdElkLAogICAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlLAogICAgfSk7CgogICAgY29uc3QgcHJvcGVydGllcyA9IHJlc3VsdDsKICAgIGlmIChwcm9wZXJ0aWVzKSB7CiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykgewogICAgICAgIGlmIChwcm9wPy52YWx1ZT8ub2JqZWN0SWQgJiYgcHJvcD8udmFsdWUuY2xhc3NOYW1lID09PSAiQXJyYXkiKSB7CiAgICAgICAgICBjb25zdCBpZCA9IHByb3AudmFsdWUub2JqZWN0SWQ7CiAgICAgICAgICBhd2FpdCB1bnJvbGxBcnJheShzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAoCiAgICAgICAgICBwcm9wPy52YWx1ZT8ub2JqZWN0SWQgJiYKICAgICAgICAgIHByb3A/LnZhbHVlPy5jbGFzc05hbWUgPT09ICJPYmplY3QiCiAgICAgICAgKSB7CiAgICAgICAgICBjb25zdCBpZCA9IHByb3AudmFsdWUub2JqZWN0SWQ7CiAgICAgICAgICBhd2FpdCB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgaWQsIHByb3AubmFtZSwgdmFyaWFibGVzKTsKICAgICAgICB9IGVsc2UgaWYgKHByb3A/LnZhbHVlKSB7CiAgICAgICAgICB1bnJvbGxPdGhlcihwcm9wLCB2YXJpYWJsZXMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdmFyaWFibGVzOwogICAgfQogIH0gY2F0Y2ggKGVycikgewogICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgIGNvbnNvbGUuZXJyb3IoIltXb3JrZXJdIEZhaWxlZCB0byBmZXRjaCBsb2NhbCB2YXJpYWJsZXM6IiwgZXJyKTsKICAgIH0KICAgIHJldHVybiB7fTsKICB9Cn0KCnN0YXJ0RGVidWdnZXIoKS5jYXRjaCgoZXJyb3IpID0+IHsKICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgIGNvbnNvbGUuZXJyb3IoIltXb3JrZXJdIEZhaWxlZCB0byBzdGFydCBkZWJ1Z2dlcjoiLCBlcnJvcik7CiAgfQp9KTsKCi8vIEtlZXAgdGhlIHdvcmtlciBhbGl2ZQpzZXRJbnRlcnZhbCgoKSA9PiB7fSwgMTAwMDApOwo=";
1
+ export declare const fileContentsEncoded = "Ly8gc3JjL2RlYnVnZ2VyV29ya2VyLnRzCmltcG9ydCB7IFNlc3Npb24gfSBmcm9tICJpbnNwZWN0b3IvcHJvbWlzZXMiOwppbXBvcnQgeyBwYXJlbnRQb3J0LCB3b3JrZXJEYXRhIH0gZnJvbSAid29ya2VyX3RocmVhZHMiOwpnbG9iYWwuc2ZEZWJ1ZyA9IHZvaWQgMDsKZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMgPSB2b2lkIDA7Cmdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSB2b2lkIDA7CnZhciBzY3JpcHRTb3VyY2VDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CnZhciBub25BcHBGcmFtZVBhdHRlcm5zID0gWwogIC9ub2RlOmludGVybmFsLywKICAvaW50ZXJuYWxcLy8sCiAgL25vZGVfbW9kdWxlcy8sCiAgL25vZGU6ZnMvCl07CmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NDYWxsRnJhbWVzKHNlc3Npb24sIGNhbGxGcmFtZXMsIGRlc2NyaXB0aW9uTGluZXMpIHsKICBjb25zdCBsaW1pdGVkQ2FsbEZyYW1lcyA9IGNhbGxGcmFtZXMuc2xpY2UoMCwgZ2xvYmFsLnN0YWNrRGVwdGhMb2NhbHMpOwogIGlmIChsaW1pdGVkQ2FsbEZyYW1lcy5sZW5ndGggPiAwKSB7CiAgICBjb25zdCBmaXJzdFVybCA9IGxpbWl0ZWRDYWxsRnJhbWVzWzBdLnVybCB8fCAiIjsKICAgIGlmIChub25BcHBGcmFtZVBhdHRlcm5zLnNvbWUoKHApID0+IHAudGVzdChmaXJzdFVybCkpKSB7CiAgICAgIHBhcmVudFBvcnQ/LnBvc3RNZXNzYWdlKHsgdHlwZTogImV4Y2VwdGlvbiIsIGZyYW1lczogW10gfSk7CiAgICAgIHJldHVybjsKICAgIH0KICB9CiAgY29uc3QgZnJhbWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoCiAgICBsaW1pdGVkQ2FsbEZyYW1lcy5tYXAoYXN5bmMgKGZyYW1lLCBpbmRleCkgPT4gewogICAgICB0cnkgewogICAgICAgIGNvbnN0IHsgZnVuY3Rpb25OYW1lLCBsb2NhdGlvbiwgdXJsLCBzY29wZUNoYWluIH0gPSBmcmFtZTsKICAgICAgICBjb25zdCBsb2NhbFNjb3BlID0gc2NvcGVDaGFpbi5maW5kKChzY29wZSkgPT4gc2NvcGUudHlwZSA9PT0gImxvY2FsIik7CiAgICAgICAgbGV0IGNvZGUgPSAiPG5vdCBjYXB0dXJlZD4iOwogICAgICAgIGxldCBmaWxlID0gIiI7CiAgICAgICAgaWYgKHVybCAmJiB1cmwudHJpbSgpICE9PSAiIikgewogICAgICAgICAgZmlsZSA9IHVybDsKICAgICAgICB9IGVsc2UgaWYgKGRlc2NyaXB0aW9uTGluZXNbaW5kZXhdKSB7CiAgICAgICAgICBmaWxlID0gZGVzY3JpcHRpb25MaW5lc1tpbmRleF0udHJpbSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmaWxlID0gIjx1bmtub3duPiI7CiAgICAgICAgfQogICAgICAgIGlmIChsb2NhdGlvbiAmJiBsb2NhdGlvbi5zY3JpcHRJZCkgewogICAgICAgICAgY29uc3Qgc2NyaXB0SWQgPSBsb2NhdGlvbi5zY3JpcHRJZDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGxldCBzY3JpcHRTb3VyY2UgPSBzY3JpcHRTb3VyY2VDYWNoZS5nZXQoc2NyaXB0SWQpOwogICAgICAgICAgICBpZiAoc2NyaXB0U291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZXNzaW9uLnBvc3QoCiAgICAgICAgICAgICAgICAiRGVidWdnZXIuZ2V0U2NyaXB0U291cmNlIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgc2NyaXB0SWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIHNjcmlwdFNvdXJjZSA9IHJlc3VsdC5zY3JpcHRTb3VyY2U7CiAgICAgICAgICAgICAgc2NyaXB0U291cmNlQ2FjaGUuc2V0KHNjcmlwdElkLCBzY3JpcHRTb3VyY2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZUxpbmVzID0gc2NyaXB0U291cmNlLnNwbGl0KCJcbiIpOwogICAgICAgICAgICBjb2RlID0gc291cmNlTGluZXNbbG9jYXRpb24ubGluZU51bWJlcl0gfHwgIjxub3QgY2FwdHVyZWQ+IjsKICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IHNvdXJjZToiLCBlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxvY2FscyA9IGxvY2FsU2NvcGU/Lm9iamVjdD8ub2JqZWN0SWQgPyBhd2FpdCBmZXRjaExvY2FsVmFyaWFibGVzKHNlc3Npb24sIGxvY2FsU2NvcGUub2JqZWN0Lm9iamVjdElkKSA6IHt9OwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBmdW5jdGlvbjogZnVuY3Rpb25OYW1lIHx8ICI8YW5vbnltb3VzPiIsCiAgICAgICAgICBsb2NhbHMsCiAgICAgICAgICBmaWxlLAogICAgICAgICAgbGluZTogbG9jYXRpb24/LmxpbmVOdW1iZXIgfHwgMCwKICAgICAgICAgIGNvZGUKICAgICAgICB9OwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRXJyb3IgcHJvY2Vzc2luZyBjYWxsIGZyYW1lOiIsIGVycm9yKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZ1bmN0aW9uOiAiPGVycm9yPiIsCiAgICAgICAgICBsb2NhbHM6IHt9LAogICAgICAgICAgZmlsZTogIjx1bmtub3duPiIsCiAgICAgICAgICBsaW5lOiAwLAogICAgICAgICAgY29kZTogIjxub3QgY2FwdHVyZWQ+IgogICAgICAgIH07CiAgICAgIH0KICAgIH0pCiAgKTsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJleGNlcHRpb24iLCBmcmFtZXMgfSk7Cn0KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUGF1c2VkKHNlc3Npb24sIHBhcmFtcykgewogIGNvbnN0IHsgcmVhc29uLCBkYXRhLCBjYWxsRnJhbWVzIH0gPSBwYXJhbXM7CiAgaWYgKHJlYXNvbiAhPT0gImV4Y2VwdGlvbiIgJiYgcmVhc29uICE9PSAicHJvbWlzZVJlamVjdGlvbiIpIHsKICAgIHJldHVybjsKICB9CiAgY29uc3Qgbm9uQXBwUGF0dGVybnMgPSBbCiAgICAvbm9kZTppbnRlcm5hbC8sCiAgICAvaW50ZXJuYWxcLy8sCiAgICAvbm9kZV9tb2R1bGVzLywKICAgIC9ub2RlOmZzLwogIF07CiAgbGV0IGZpcnN0RnJhbWVMaW5lID0gIiI7CiAgbGV0IGRlc2NyaXB0aW9uTGluZXMgPSBbXTsKICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YS5kZXNjcmlwdGlvbiA9PT0gInN0cmluZyIpIHsKICAgIGRlc2NyaXB0aW9uTGluZXMgPSBkYXRhLmRlc2NyaXB0aW9uLnNwbGl0KCJcbiIpLmZpbHRlcigobGluZSkgPT4gbGluZS50cmltKCkuc3RhcnRzV2l0aCgiYXQgIikpOwogICAgZmlyc3RGcmFtZUxpbmUgPSBkZXNjcmlwdGlvbkxpbmVzWzBdIHx8ICIiOwogICAgaWYgKCFmaXJzdEZyYW1lTGluZSkgewogICAgICByZXR1cm47CiAgICB9CiAgICBjb25zdCBlcnJvckZyb21Ob25BcHAgPSBub25BcHBQYXR0ZXJucy5zb21lKAogICAgICAocGF0dGVybikgPT4gcGF0dGVybi50ZXN0KGZpcnN0RnJhbWVMaW5lLnRyaW0oKSkKICAgICk7CiAgICBjb25zdCBub2RlTW9kdWxlc0xpc3QgPSBBcnJheS5pc0FycmF5KAogICAgICBnbG9iYWwubm9kZU1vZHVsZXNUb0NvbGxlY3RMb2NhbFZhcmlhYmxlc09uCiAgICApID8gZ2xvYmFsLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbiA6IFtdOwogICAgaWYgKGVycm9yRnJvbU5vbkFwcCkgewogICAgICBpZiAobm9kZU1vZHVsZXNMaXN0LmluY2x1ZGVzKCJfX2FsbF9fIikpIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKAogICAgICAgICAgICAiW1dvcmtlcl0gRXJyb3IgaXMgZnJvbSBub24tYXBwIHNvdXJjZSwgYnV0IGNhcHR1cmluZyBkdWUgdG8gX19hbGxfXyBydWxlLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKG5vZGVNb2R1bGVzTGlzdC5sZW5ndGggPiAwKSB7CiAgICAgICAgY29uc3QgaXNGcm9tQWxsb3dlZE5vZGVNb2R1bGUgPSBub2RlTW9kdWxlc0xpc3Quc29tZSgKICAgICAgICAgIChtb2R1bGVOYW1lKSA9PiBmaXJzdEZyYW1lTGluZS5pbmNsdWRlcyhgJHttb2R1bGVOYW1lfWApCiAgICAgICAgKTsKICAgICAgICBpZiAoIWlzRnJvbUFsbG93ZWROb2RlTW9kdWxlKSB7CiAgICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coCiAgICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygKICAgICAgICAgICAgIltXb3JrZXJdIEVycm9yIGFwcGVhcnMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gbm9uLWFwcGxpY2F0aW9uIHNvdXJjZXM7IGlnbm9yaW5nLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogICAgYXdhaXQgcHJvY2Vzc0NhbGxGcmFtZXMoc2Vzc2lvbiwgY2FsbEZyYW1lcywgZGVzY3JpcHRpb25MaW5lcyk7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gc3RhcnREZWJ1Z2dlcigpIHsKICBwYXJlbnRQb3J0Py5wb3N0TWVzc2FnZSh7IHR5cGU6ICJtZXNzYWdlIiwgcmVhZHlUb0dldFBhcmFtZXRlcnM6IHRydWUgfSk7CiAgbGV0IHJlc29sdmVNZXNzYWdlUHJvbWlzZTsKICBjb25zdCBtZXNzYWdlUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICByZXNvbHZlTWVzc2FnZVByb21pc2UgPSByZXNvbHZlOwogIH0pOwogIGxldCBpc1BhdXNlZCA9IGZhbHNlOwogIHBhcmVudFBvcnQ/Lm9uKCJtZXNzYWdlIiwgKG1lc3NhZ2UpID0+IHsKICAgIHRyeSB7CiAgICAgIGlmIChtZXNzYWdlPy50eXBlID09PSAicHJvY2Vzc0V4Y2VwdGlvbiIpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKG1lc3NhZ2U/LnNmRGVidWcgIT09IHZvaWQgMCAmJiBtZXNzYWdlPy5zdGFja0RlcHRoTG9jYWxzICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCJVcGRhdGluZyBnbG9iYWwgZGVidWcgdmFyaWFibGVzLi4uIik7CiAgICAgICAgfQogICAgICAgIGdsb2JhbC5zZkRlYnVnID0gbWVzc2FnZS5zZkRlYnVnOwogICAgICAgIGdsb2JhbC5zdGFja0RlcHRoTG9jYWxzID0gbWVzc2FnZS5zdGFja0RlcHRoTG9jYWxzOwogICAgICAgIGdsb2JhbC5ub2RlTW9kdWxlc1RvQ29sbGVjdExvY2FsVmFyaWFibGVzT24gPSBtZXNzYWdlLm5vZGVNb2R1bGVzVG9Db2xsZWN0TG9jYWxWYXJpYWJsZXNPbjsKICAgICAgICByZXNvbHZlTWVzc2FnZVByb21pc2UoKTsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigiXHUyNzRDIEVycm9yIGluIG1lc3NhZ2UgaGFuZGxpbmc6IiwgZXJyb3IpOwogICAgICB9CiAgICB9CiAgfSk7CiAgYXdhaXQgbWVzc2FnZVByb21pc2U7CiAgdHJ5IHsKICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgU2Vzc2lvbigpOwogICAgc2Vzc2lvbi5jb25uZWN0VG9NYWluVGhyZWFkKCk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5yZXN1bWVkIiwgKCkgPT4gewogICAgICBpc1BhdXNlZCA9IGZhbHNlOwogICAgfSk7CiAgICBzZXNzaW9uLm9uKCJEZWJ1Z2dlci5wYXVzZWQiLCBhc3luYyAoZXZlbnQpID0+IHsKICAgICAgaXNQYXVzZWQgPSB0cnVlOwogICAgICBoYW5kbGVQYXVzZWQoc2Vzc2lvbiwgZXZlbnQucGFyYW1zKS50aGVuKAogICAgICAgIGFzeW5jICgpID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgKF8pID0+IHsKICAgICAgICAgIGlmIChpc1BhdXNlZCkgewogICAgICAgICAgICBhd2FpdCBzZXNzaW9uLnBvc3QoIkRlYnVnZ2VyLnJlc3VtZSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgKTsKICAgIH0pOwogICAgYXdhaXQgc2Vzc2lvbi5wb3N0KCJEZWJ1Z2dlci5lbmFibGUiKTsKICAgIGF3YWl0IHNlc3Npb24ucG9zdCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7CiAgICAgIHN0YXRlOiB3b3JrZXJEYXRhPy5jYXB0dXJlQWxsRXhjZXB0aW9ucyA/ICJhbGwiIDogInVuY2F1Z2h0IgogICAgfSk7CiAgfSBjYXRjaCAoZXJyb3IpIHsKICAgIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBlcnJvciAiLCBlcnJvcik7CiAgICB9CiAgfQogIGlmIChnbG9iYWwuc2ZEZWJ1ZykgewogICAgY29uc29sZS5sb2coIltXb3JrZXJdIERlYnVnZ2VyIHN0YXJ0ZWQgc3VjY2Vzc2Z1bGx5LiIpOwogIH0KfQphc3luYyBmdW5jdGlvbiB1bnJvbGxPYmplY3Qoc2Vzc2lvbiwgb2JqZWN0SWQsIG5hbWUsIHZhcnMpIHsKICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgc2Vzc2lvbi5wb3N0KCJSdW50aW1lLmdldFByb3BlcnRpZXMiLCB7CiAgICBvYmplY3RJZCwKICAgIG93blByb3BlcnRpZXM6IHRydWUKICB9KTsKICB2YXJzW25hbWVdID0gcHJvcGVydGllcy5yZXN1bHQubWFwKCh2KSA9PiBbdi5uYW1lLCB2LnZhbHVlPy52YWx1ZV0pLnJlZHVjZSgob2JqLCBba2V5LCB2YWxdKSA9PiB7CiAgICBvYmpba2V5XSA9IHZhbDsKICAgIHJldHVybiBvYmo7CiAgfSwge30pOwp9CmFzeW5jIGZ1bmN0aW9uIHVucm9sbEFycmF5KHNlc3Npb24sIG9iamVjdElkLCBuYW1lLCB2YXJzKSB7CiAgY29uc3QgcHJvcGVydGllcyA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgb2JqZWN0SWQsCiAgICBvd25Qcm9wZXJ0aWVzOiB0cnVlCiAgfSk7CiAgdmFyc1tuYW1lXSA9IHByb3BlcnRpZXMucmVzdWx0LmZpbHRlcigodikgPT4gdi5uYW1lICE9PSAibGVuZ3RoIiAmJiAhaXNOYU4ocGFyc2VJbnQodi5uYW1lLCAxMCkpKS5zb3J0KChhLCBiKSA9PiBwYXJzZUludChhLm5hbWUsIDEwKSAtIHBhcnNlSW50KGIubmFtZSwgMTApKS5tYXAoKHYpID0+IHYudmFsdWU/LnZhbHVlKTsKfQpmdW5jdGlvbiB1bnJvbGxPdGhlcihwcm9wLCB2YXJzKSB7CiAgaWYgKCFwcm9wLnZhbHVlKSB7CiAgICByZXR1cm47CiAgfQogIGlmICgidmFsdWUiIGluIHByb3AudmFsdWUpIHsKICAgIGlmIChwcm9wLnZhbHVlLnZhbHVlID09PSB2b2lkIDAgfHwgcHJvcC52YWx1ZS52YWx1ZSA9PT0gbnVsbCkgewogICAgICB2YXJzW3Byb3AubmFtZV0gPSBgPCR7cHJvcC52YWx1ZS52YWx1ZX0+YDsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyc1twcm9wLm5hbWVdID0gcHJvcC52YWx1ZS52YWx1ZTsKICAgIHJldHVybjsKICB9CiAgaWYgKCJkZXNjcmlwdGlvbiIgaW4gcHJvcC52YWx1ZSAmJiBwcm9wLnZhbHVlLnR5cGUgIT09ICJmdW5jdGlvbiIpIHsKICAgIHZhcnNbcHJvcC5uYW1lXSA9IGA8JHtwcm9wLnZhbHVlLmRlc2NyaXB0aW9ufT5gOwogICAgcmV0dXJuOwogIH0KICBpZiAocHJvcC52YWx1ZS50eXBlID09PSAidW5kZWZpbmVkIikgewogICAgdmFyc1twcm9wLm5hbWVdID0gIjx1bmRlZmluZWQ+IjsKICAgIHJldHVybjsKICB9Cn0KYXN5bmMgZnVuY3Rpb24gZmV0Y2hMb2NhbFZhcmlhYmxlcyhzZXNzaW9uLCBvYmplY3RJZCkgewogIGlmICghb2JqZWN0SWQpIHJldHVybiB7fTsKICB0cnkgewogICAgY29uc3QgeyByZXN1bHQgfSA9IGF3YWl0IHNlc3Npb24ucG9zdCgiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgewogICAgICBvYmplY3RJZCwKICAgICAgb3duUHJvcGVydGllczogdHJ1ZQogICAgfSk7CiAgICBjb25zdCBwcm9wZXJ0aWVzID0gcmVzdWx0OwogICAgaWYgKHByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgdmFyaWFibGVzID0ge307CiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKHByb3A/LnZhbHVlPy5vYmplY3RJZCAmJiBwcm9wPy52YWx1ZS5jbGFzc05hbWUgPT09ICJBcnJheSIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbEFycmF5KHNlc3Npb24sIGlkLCBwcm9wLm5hbWUsIHZhcmlhYmxlcyk7CiAgICAgICAgfSBlbHNlIGlmIChwcm9wPy52YWx1ZT8ub2JqZWN0SWQgJiYgcHJvcD8udmFsdWU/LmNsYXNzTmFtZSA9PT0gIk9iamVjdCIpIHsKICAgICAgICAgIGNvbnN0IGlkID0gcHJvcC52YWx1ZS5vYmplY3RJZDsKICAgICAgICAgIGF3YWl0IHVucm9sbE9iamVjdChzZXNzaW9uLCBpZCwgcHJvcC5uYW1lLCB2YXJpYWJsZXMpOwogICAgICAgIH0gZWxzZSBpZiAocHJvcD8udmFsdWUpIHsKICAgICAgICAgIHVucm9sbE90aGVyKHByb3AsIHZhcmlhYmxlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB2YXJpYWJsZXM7CiAgICB9CiAgfSBjYXRjaCAoZXJyKSB7CiAgICBpZiAoZ2xvYmFsLnNmRGVidWcpIHsKICAgICAgY29uc29sZS5lcnJvcigiW1dvcmtlcl0gRmFpbGVkIHRvIGZldGNoIGxvY2FsIHZhcmlhYmxlczoiLCBlcnIpOwogICAgfQogICAgcmV0dXJuIHt9OwogIH0KfQpzdGFydERlYnVnZ2VyKCkuY2F0Y2goKGVycm9yKSA9PiB7CiAgaWYgKGdsb2JhbC5zZkRlYnVnKSB7CiAgICBjb25zb2xlLmVycm9yKCJbV29ya2VyXSBGYWlsZWQgdG8gc3RhcnQgZGVidWdnZXI6IiwgZXJyb3IpOwogIH0KfSk7CnNldEludGVydmFsKCgpID0+IHsKfSwgMWU0KTsKZXhwb3J0IHsKICBwcm9jZXNzQ2FsbEZyYW1lcwp9Owo=";
@@ -121,6 +121,11 @@ declare class AppConfig {
121
121
  get serviceIdentificationReceived(): boolean;
122
122
  setServiceIdentificationReceived(value: boolean): void;
123
123
  }
124
+ /**
125
+ * Asynchronously backfills git info fields on the config that were not
126
+ * provided via options or environment variables.
127
+ */
128
+ export declare function backfillGitInfoAsync(config: AppConfig): Promise<void>;
124
129
  /**
125
130
  * Retrieves the global configuration instance without throwing an error if not initialized.
126
131
  * Returns undefined if configuration hasn't been initialized yet.
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Ensures Error.stack is a string.
3
+ * In Node.js v24+, Error.stack can be an array of CallSite objects
4
+ * (when Error.prepareStackTrace returns structured traces).
5
+ * This normalizes it to a string for safe splitting/parsing.
6
+ */
7
+ export declare function stackToString(stack: unknown): string;
1
8
  /**
2
9
  * Interface representing a set of key-value pairs where keys are strings
3
10
  * and values can be of any type.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./workerPoolSpanCapture-COwiNikM.cjs");exports.captureWorkerPoolOperation=e.captureWorkerPoolOperation;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./workerPoolSpanCapture-B3yge78T.cjs");exports.captureWorkerPoolOperation=e.captureWorkerPoolOperation;
@@ -1,4 +1,4 @@
1
- import { c as e } from "./workerPoolSpanCapture-d-8ExI18.js";
1
+ import { c as e } from "./workerPoolSpanCapture-DqBbNQLv.js";
2
2
  export {
3
3
  e as captureWorkerPoolOperation
4
4
  };
@@ -1,4 +1,4 @@
1
- "use strict";const w=require("async_hooks"),B=require("fs"),v=require("worker_threads"),l=require("./contextManager-CxQqBCEA.cjs");class M{apiKey;endpoint;queryType="mutation";operationName="";serviceUUID=l.getConfig().serviceUUID;contextManager;constructor(){this.apiKey=l.getConfig().apiKey,this.endpoint=l.getConfig().apiGraphqlEndpoint,this.contextManager=l.ContextManager.getInstance()}get queryName(){return this.operationName?this.operationName.charAt(0).toLowerCase()+this.operationName.slice(1):""}getDefaultVariables(){const t=Date.now().toString(),o=this.contextManager.getOrSetSfTraceId(),s=this.contextManager.getCurrentFunctionSpanId();return{apiKey:this.apiKey,serviceUuid:this.serviceUUID,sessionId:o,timestampMs:t,parentSpanId:s}}getVariables(t={}){return{...this.getDefaultVariables(),...t}}setOperationName(t){this.operationName=t}setEndpoint(t){this.endpoint=t}setServiceUUID(t){this.serviceUUID=t}}const K=fetch;let _=!1;async function P(n,t,o,s){try{const a=l.getConfig();let i;try{i=JSON.stringify({query:o,variables:s,operationName:t})}catch{i=JSON.stringify({query:o,operationName:t})}_=!0,K(n,{method:"POST",headers:{"Content-Type":"application/json"},body:i}).then(async e=>{if(_=!1,!e.ok)return void(a.sfDebug&&console.error(`GraphQL request failed with status ${e.status} for ${t}`));const r=await e.json();r.errors?.length?(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0;console.error(d==="identifyServiceDetails"?`IdentifyServiceDetails NOT sent successfully for service: UUID=${c.serviceUUID}`:`GraphQL request failed with errors: ${JSON.stringify(g)} for operation key ${d}`)})(r.data,r.errors,a):a.sfDebug&&(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0,p=u[d]||!1;d==="identifyServiceDetails"&&(c.setServiceIdentificationReceived(p),l.getConfig().sfDebug&&console.log(`IdentifyServiceDetails sent successfully for service: UUID=${c.serviceUUID}; serviceIdentificationReceived=${d==="identifyServiceDetails"?p:"N/A"}`))})(r.data,0,a)}).catch(e=>{_=!1,a.sfDebug&&(console.error(`[RequestUtils] Fetch error for ${t} to ${n}:`,e),e.cause&&console.error("[RequestUtils] Error cause:",e.cause))})}catch(a){_=!1,l.getConfig().sfDebug&&console.error("Error sending data to GraphQL server:",a)}}function N(n,t){if(!n)return t;const o=n.toLowerCase();return o==="true"||o==="1"||o==="yes"}const O="__sf_funcspanOverrideStorage";globalThis[O]||(globalThis[O]=new w.AsyncLocalStorage);const I=globalThis[O];function C(n,t){try{const o=JSON.stringify(n).length/1048576;return o<=t?n:{_truncated:!0,_originalSizeMB:o.toFixed(2),_limitMB:t,_preview:JSON.stringify(n).substring(0,500)+"..."}}catch{return{_error:"Failed to serialize data",_type:typeof n}}}function S(n,t){const o=process.env[n];return o===void 0?t:o==="true"||o==="1"}function E(n,t){const o=process.env[n];if(o===void 0)return t;const s=parseFloat(o);return isNaN(s)?t:s}function T(){return{enabled:S("SF_WORKER_POOL_ENABLED",!0),trackFs:S("SF_WORKER_POOL_TRACK_FS",!1),trackDns:S("SF_WORKER_POOL_TRACK_DNS",!0),trackCrypto:S("SF_WORKER_POOL_TRACK_CRYPTO",!1),trackZlib:S("SF_WORKER_POOL_TRACK_ZLIB",!1),captureArguments:S("SF_WORKER_POOL_CAPTURE_ARGUMENTS",!0),captureReturnValue:S("SF_WORKER_POOL_CAPTURE_RETURN_VALUE",!0),argLimitMb:E("SF_WORKER_POOL_ARG_LIMIT_MB",1),returnLimitMb:E("SF_WORKER_POOL_RETURN_LIMIT_MB",1)}}function D(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){const r={};switch(i){case"readFile":case"writeFile":case"appendFile":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"?(r.encoding=e[1].encoding||null,r.flag=e[1].flag||null):typeof e[1]=="string"&&(r.encoding=e[1]),i!=="writeFile"&&i!=="appendFile"||(Buffer.isBuffer(e[1])?(r.dataType="Buffer",r.dataSize=e[1].length):typeof e[1]=="string"&&(r.dataType="string",r.dataSize=e[1].length));break;case"readdir":case"stat":case"lstat":case"access":case"chmod":case"mkdir":case"rmdir":case"unlink":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"&&(r.options={...e[1]},delete r.options.callback);break;case"rename":r.oldPath=String(e[0]||""),r.newPath=String(e[1]||"");break;case"open":r.path=String(e[0]||""),r.flags=e[1],r.mode=e[2];break;case"close":case"fstat":r.fd=e[0];break;case"read":case"write":r.fd=e[0],Buffer.isBuffer(e[1])&&(r.bufferSize=e[1].length),r.offset=e[2],r.length=e[3],r.position=e[4];break;default:r.argsCount=e.length-1}return r})(t,o);break;case"dns":a=(function(i,e){const r={};switch(i){case"lookup":r.hostname=String(e[0]||""),typeof e[1]=="object"?(r.family=e[1].family,r.all=e[1].all):typeof e[1]=="number"&&(r.family=e[1]);break;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":r.hostname=String(e[0]||"");break;case"reverse":r.ip=String(e[0]||"");break;default:r.argsCount=e.length-1}return r})(t,o);break;case"crypto":a=(function(i,e){const r={};switch(i){case"pbkdf2":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.iterations=e[2],r.keylen=e[3],r.digest=e[4];break;case"scrypt":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.keylen=e[2],typeof e[3]=="object"&&(r.N=e[3].N,r.r=e[3].r,r.p=e[3].p);break;case"randomBytes":r.size=e[0];break;case"generateKeyPair":r.type=e[0],typeof e[1]=="object"&&(r.modulusLength=e[1].modulusLength,r.namedCurve=e[1].namedCurve);break;default:r.argsCount=e.length-1}return r})(t,o);break;case"zlib":a=(function(i,e){const r={};return Buffer.isBuffer(e[0])?(r.inputType="Buffer",r.inputSize=e[0].length):typeof e[0]=="string"?(r.inputType="string",r.inputSize=e[0].length):r.inputType=typeof e[0],e[1]&&typeof e[1]=="object"&&typeof e[1]!="function"&&(r.options={...e[1]}),r})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture arguments",argsCount:o.length-1}}}function L(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){if(!e)return null;switch(i){case"readFile":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e};case"readdir":return{count:Array.isArray(e)?e.length:0,items:e};case"stat":case"lstat":case"fstat":return{size:e.size,mode:e.mode,isFile:e.isFile(),isDirectory:e.isDirectory()};case"open":return{fd:e};case"read":return{bytesRead:e};case"write":return{bytesWritten:e};default:return e}})(t,o);break;case"dns":a=(function(i,e){if(!e)return null;switch(i){case"lookup":return Array.isArray(e)?{count:e.length,addresses:e}:e;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":return{count:Array.isArray(e)?e.length:0,records:e};case"reverse":return{hostnames:e};default:return e}})(t,o);break;case"crypto":a=(function(i,e){if(!e)return null;switch(i){case"pbkdf2":case"scrypt":case"randomBytes":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:{type:typeof e};case"generateKeyPair":return{hasPublicKey:!!e?.publicKey,hasPrivateKey:!!e?.privateKey};default:return e}})(t,o);break;case"zlib":a=(function(i,e){return e?Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e}:null})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture result",type:typeof o}}}function V(n){return n.operationType==="worker_pool"}class W extends M{constructor(){super(),this.operationName="CollectFunctionSpans"}send(t){const o=l.getConfig().sfDebug;o&&console.log(`[FunctionSpanTransmitter] Preparing to send ${t.length} function span(s)`);for(const s of t)try{if(V(s)){this.sendWorkerPoolSpan(s,o);continue}const a=s;let i;if(a.result!==void 0&&a.result!==null){const r=typeof a.result;i=JSON.stringify({type:r,has_value:!0,value:a.result})}else i=a.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const e=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:a.spanId,parentSpanId:a.parentSpanId,filePath:a.filePath,lineNumber:a.metadata.line,columnNumber:a.metadata.column,functionName:a.functionName,arguments:JSON.stringify(a.args||{}),returnValue:i,startTimeNs:(1e6*Date.now()-1e6*a.duration).toString(),durationNs:(1e6*a.duration).toString()});o&&(console.log(`[FunctionSpanTransmitter] Sending GraphQL mutation to ${this.endpoint}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(e,null,2))),P(this.endpoint,this.operationName,this.getQuery(),e),o&&console.log(`[FunctionSpanTransmitter] Queued function span for ${a.functionName}`)}catch(a){console.error(`[FunctionSpanTransmitter] Error preparing function span for ${s.functionName}:`,a)}}sendWorkerPoolSpan(t,o){try{let s;if(t.result!==void 0&&t.result!==null){const i=typeof t.result;s=JSON.stringify({type:i,has_value:!0,value:t.result})}else s=t.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const a=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:t.spanId,operationName:t.operationName,moduleName:t.moduleName,methodName:t.methodName,startTimeNs:t.startTimeNs,durationNs:t.durationNs,arguments:JSON.stringify(t.args||{}),returnValue:s,error:t.error,pid:t.pid,threadId:t.threadId});o&&(console.log(`[FunctionSpanTransmitter] Sending worker pool span: ${t.operationName}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(a,null,2))),P(this.endpoint,"CollectWorkerPoolSpans",this.getWorkerPoolQuery(),a),o&&console.log(`[FunctionSpanTransmitter] Queued worker pool span for ${t.operationName}`)}catch(s){console.error(`[FunctionSpanTransmitter] Error preparing worker pool span for ${t.operationName}:`,s)}}getWorkerPoolQuery(){return`
1
+ "use strict";const w=require("async_hooks"),B=require("fs"),v=require("worker_threads"),l=require("./contextManager-wMuxqwl9.cjs");class M{apiKey;endpoint;queryType="mutation";operationName="";serviceUUID=l.getConfig().serviceUUID;contextManager;constructor(){this.apiKey=l.getConfig().apiKey,this.endpoint=l.getConfig().apiGraphqlEndpoint,this.contextManager=l.ContextManager.getInstance()}get queryName(){return this.operationName?this.operationName.charAt(0).toLowerCase()+this.operationName.slice(1):""}getDefaultVariables(){const t=Date.now().toString(),o=this.contextManager.getOrSetSfTraceId(),s=this.contextManager.getCurrentFunctionSpanId();return{apiKey:this.apiKey,serviceUuid:this.serviceUUID,sessionId:o,timestampMs:t,parentSpanId:s}}getVariables(t={}){return{...this.getDefaultVariables(),...t}}setOperationName(t){this.operationName=t}setEndpoint(t){this.endpoint=t}setServiceUUID(t){this.serviceUUID=t}}const K=fetch;let _=!1;async function P(n,t,o,s){try{const a=l.getConfig();let i;try{i=JSON.stringify({query:o,variables:s,operationName:t})}catch{i=JSON.stringify({query:o,operationName:t})}_=!0,K(n,{method:"POST",headers:{"Content-Type":"application/json"},body:i}).then(async e=>{if(_=!1,!e.ok)return void(a.sfDebug&&console.error(`GraphQL request failed with status ${e.status} for ${t}`));const r=await e.json();r.errors?.length?(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0;console.error(d==="identifyServiceDetails"?`IdentifyServiceDetails NOT sent successfully for service: UUID=${c.serviceUUID}`:`GraphQL request failed with errors: ${JSON.stringify(g)} for operation key ${d}`)})(r.data,r.errors,a):a.sfDebug&&(function(u,g,c){const d=u&&typeof u=="object"&&!Array.isArray(u)?Object.keys(u)[0]:void 0,p=u[d]||!1;d==="identifyServiceDetails"&&(c.setServiceIdentificationReceived(p),l.getConfig().sfDebug&&console.log(`IdentifyServiceDetails sent successfully for service: UUID=${c.serviceUUID}; serviceIdentificationReceived=${d==="identifyServiceDetails"?p:"N/A"}`))})(r.data,0,a)}).catch(e=>{_=!1,a.sfDebug&&(console.error(`[RequestUtils] Fetch error for ${t} to ${n}:`,e),e.cause&&console.error("[RequestUtils] Error cause:",e.cause))})}catch(a){_=!1,l.getConfig().sfDebug&&console.error("Error sending data to GraphQL server:",a)}}function N(n,t){if(!n)return t;const o=n.toLowerCase();return o==="true"||o==="1"||o==="yes"}const O="__sf_funcspanOverrideStorage";globalThis[O]||(globalThis[O]=new w.AsyncLocalStorage);const I=globalThis[O];function C(n,t){try{const o=JSON.stringify(n).length/1048576;return o<=t?n:{_truncated:!0,_originalSizeMB:o.toFixed(2),_limitMB:t,_preview:JSON.stringify(n).substring(0,500)+"..."}}catch{return{_error:"Failed to serialize data",_type:typeof n}}}function S(n,t){const o=process.env[n];return o===void 0?t:o==="true"||o==="1"}function E(n,t){const o=process.env[n];if(o===void 0)return t;const s=parseFloat(o);return isNaN(s)?t:s}function T(){return{enabled:S("SF_WORKER_POOL_ENABLED",!0),trackFs:S("SF_WORKER_POOL_TRACK_FS",!1),trackDns:S("SF_WORKER_POOL_TRACK_DNS",!1),trackCrypto:S("SF_WORKER_POOL_TRACK_CRYPTO",!1),trackZlib:S("SF_WORKER_POOL_TRACK_ZLIB",!1),captureArguments:S("SF_WORKER_POOL_CAPTURE_ARGUMENTS",!0),captureReturnValue:S("SF_WORKER_POOL_CAPTURE_RETURN_VALUE",!0),argLimitMb:E("SF_WORKER_POOL_ARG_LIMIT_MB",1),returnLimitMb:E("SF_WORKER_POOL_RETURN_LIMIT_MB",1)}}function D(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){const r={};switch(i){case"readFile":case"writeFile":case"appendFile":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"?(r.encoding=e[1].encoding||null,r.flag=e[1].flag||null):typeof e[1]=="string"&&(r.encoding=e[1]),i!=="writeFile"&&i!=="appendFile"||(Buffer.isBuffer(e[1])?(r.dataType="Buffer",r.dataSize=e[1].length):typeof e[1]=="string"&&(r.dataType="string",r.dataSize=e[1].length));break;case"readdir":case"stat":case"lstat":case"access":case"chmod":case"mkdir":case"rmdir":case"unlink":r.path=String(e[0]||""),e[1]&&typeof e[1]=="object"&&(r.options={...e[1]},delete r.options.callback);break;case"rename":r.oldPath=String(e[0]||""),r.newPath=String(e[1]||"");break;case"open":r.path=String(e[0]||""),r.flags=e[1],r.mode=e[2];break;case"close":case"fstat":r.fd=e[0];break;case"read":case"write":r.fd=e[0],Buffer.isBuffer(e[1])&&(r.bufferSize=e[1].length),r.offset=e[2],r.length=e[3],r.position=e[4];break;default:r.argsCount=e.length-1}return r})(t,o);break;case"dns":a=(function(i,e){const r={};switch(i){case"lookup":r.hostname=String(e[0]||""),typeof e[1]=="object"?(r.family=e[1].family,r.all=e[1].all):typeof e[1]=="number"&&(r.family=e[1]);break;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":r.hostname=String(e[0]||"");break;case"reverse":r.ip=String(e[0]||"");break;default:r.argsCount=e.length-1}return r})(t,o);break;case"crypto":a=(function(i,e){const r={};switch(i){case"pbkdf2":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.iterations=e[2],r.keylen=e[3],r.digest=e[4];break;case"scrypt":r.passwordType=typeof e[0],r.saltType=typeof e[1],r.keylen=e[2],typeof e[3]=="object"&&(r.N=e[3].N,r.r=e[3].r,r.p=e[3].p);break;case"randomBytes":r.size=e[0];break;case"generateKeyPair":r.type=e[0],typeof e[1]=="object"&&(r.modulusLength=e[1].modulusLength,r.namedCurve=e[1].namedCurve);break;default:r.argsCount=e.length-1}return r})(t,o);break;case"zlib":a=(function(i,e){const r={};return Buffer.isBuffer(e[0])?(r.inputType="Buffer",r.inputSize=e[0].length):typeof e[0]=="string"?(r.inputType="string",r.inputSize=e[0].length):r.inputType=typeof e[0],e[1]&&typeof e[1]=="object"&&typeof e[1]!="function"&&(r.options={...e[1]}),r})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture arguments",argsCount:o.length-1}}}function L(n,t,o,s){let a;try{switch(n){case"fs":a=(function(i,e){if(!e)return null;switch(i){case"readFile":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e};case"readdir":return{count:Array.isArray(e)?e.length:0,items:e};case"stat":case"lstat":case"fstat":return{size:e.size,mode:e.mode,isFile:e.isFile(),isDirectory:e.isDirectory()};case"open":return{fd:e};case"read":return{bytesRead:e};case"write":return{bytesWritten:e};default:return e}})(t,o);break;case"dns":a=(function(i,e){if(!e)return null;switch(i){case"lookup":return Array.isArray(e)?{count:e.length,addresses:e}:e;case"resolve":case"resolve4":case"resolve6":case"resolveAny":case"resolveMx":case"resolveNs":case"resolveTxt":return{count:Array.isArray(e)?e.length:0,records:e};case"reverse":return{hostnames:e};default:return e}})(t,o);break;case"crypto":a=(function(i,e){if(!e)return null;switch(i){case"pbkdf2":case"scrypt":case"randomBytes":return Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:{type:typeof e};case"generateKeyPair":return{hasPublicKey:!!e?.publicKey,hasPrivateKey:!!e?.privateKey};default:return e}})(t,o);break;case"zlib":a=(function(i,e){return e?Buffer.isBuffer(e)?{type:"Buffer",size:e.length}:typeof e=="string"?{type:"string",size:e.length}:{type:typeof e}:null})(0,o);break;default:return null}return s>0?C(a,s):a}catch{return{error:"Failed to capture result",type:typeof o}}}function V(n){return n.operationType==="worker_pool"}class W extends M{constructor(){super(),this.operationName="CollectFunctionSpans"}send(t){const o=l.getConfig().sfDebug;o&&console.log(`[FunctionSpanTransmitter] Preparing to send ${t.length} function span(s)`);for(const s of t)try{if(V(s)){this.sendWorkerPoolSpan(s,o);continue}const a=s;let i;if(a.result!==void 0&&a.result!==null){const r=typeof a.result;i=JSON.stringify({type:r,has_value:!0,value:a.result})}else i=a.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const e=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:a.spanId,parentSpanId:a.parentSpanId,filePath:a.filePath,lineNumber:a.metadata.line,columnNumber:a.metadata.column,functionName:a.functionName,arguments:JSON.stringify(a.args||{}),returnValue:i,startTimeNs:(1e6*Date.now()-1e6*a.duration).toString(),durationNs:(1e6*a.duration).toString()});o&&(console.log(`[FunctionSpanTransmitter] Sending GraphQL mutation to ${this.endpoint}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(e,null,2))),P(this.endpoint,this.operationName,this.getQuery(),e),o&&console.log(`[FunctionSpanTransmitter] Queued function span for ${a.functionName}`)}catch(a){console.error(`[FunctionSpanTransmitter] Error preparing function span for ${s.functionName}:`,a)}}sendWorkerPoolSpan(t,o){try{let s;if(t.result!==void 0&&t.result!==null){const i=typeof t.result;s=JSON.stringify({type:i,has_value:!0,value:t.result})}else s=t.result===null?JSON.stringify({type:"null",has_value:!0,value:null}):JSON.stringify({type:"undefined",has_value:!1,value:null});const a=this.getVariables({library:"JS/TS BACKEND",version:l.getConfig().version,spanId:t.spanId,operationName:t.operationName,moduleName:t.moduleName,methodName:t.methodName,startTimeNs:t.startTimeNs,durationNs:t.durationNs,arguments:JSON.stringify(t.args||{}),returnValue:s,error:t.error,pid:t.pid,threadId:t.threadId});o&&(console.log(`[FunctionSpanTransmitter] Sending worker pool span: ${t.operationName}`),console.log("[FunctionSpanTransmitter] Variables:",JSON.stringify(a,null,2))),P(this.endpoint,"CollectWorkerPoolSpans",this.getWorkerPoolQuery(),a),o&&console.log(`[FunctionSpanTransmitter] Queued worker pool span for ${t.operationName}`)}catch(s){console.error(`[FunctionSpanTransmitter] Error preparing worker pool span for ${t.operationName}:`,s)}}getWorkerPoolQuery(){return`
2
2
  mutation CollectWorkerPoolSpans(
3
3
  $apiKey: String!,
4
4
  $serviceUuid: String!,
@@ -80,4 +80,4 @@
80
80
  }
81
81
  `}}let F=null;function k(n){const t=l.getGlobalConfigUnsafe(),o=t?.sfDebug||!1;o&&console.log("[WorkerPool] Capturing span:",{operation:n.operationName,duration:`${n.duration}ms`,error:n.error,spanId:n.spanId,parentSpanId:n.parentSpanId}),process.env.SF_FUNCSPAN_CONSOLE_OUTPUT==="true"&&console.log(`
82
82
  ⚙️ Worker Pool Operation:`,{operation:n.operationName,duration:`${n.duration.toFixed(2)}ms`,arguments:n.args,result:n.error?`Error: ${n.error}`:n.result,spanId:n.spanId,parentSpanId:n.parentSpanId||"none"});const s=process.env.SF_FUNCSPAN_JSONL_FILE;if(s)try{const a=s==="true"||s==="1"?"funcspans.jsonl":s,i=Date.now(),e=process.hrtime.bigint(),r=BigInt(n.startTimeNs),u=Number(e-r)/1e6,g=new Date(i-u).toISOString(),c=JSON.stringify({timestamp:g,operationType:n.operationType,operationName:n.operationName,moduleName:n.moduleName,methodName:n.methodName,duration:n.duration,durationNs:n.durationNs,startTimeNs:n.startTimeNs,arguments:n.args,returnValue:n.error?{error:String(n.error)}:n.result,spanId:n.spanId,parentSpanId:n.parentSpanId,pid:n.pid,threadId:n.threadId})+`
83
- `;B.appendFileSync(a,c,"utf-8")}catch(a){console.error("[WorkerPool] Error writing to JSONL file:",a)}if(o&&console.log("[WorkerPool] Sending span to transmitter"),process.env.SF_FUNCSPAN_SKIP_BACKEND!=="true")try{(F||(F=new W),F).send([n]),o&&console.log("[WorkerPool] Span sent successfully")}catch(a){o&&console.error("[WorkerPool] Error sending span:",a)}}exports.BaseTransmitter=M,exports.FunctionSpanTransmitter=W,exports.captureWorkerPoolOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t}`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=new w.AsyncResource("WorkerPoolOperation"),d=process.hrtime.bigint();let p=null;r.captureArguments&&(p=D(n,t,s,r.argLimitMb));const f=s.findIndex(y=>typeof y=="function");if(f===-1)return e&&console.log(`[WorkerPool] No callback found for ${n}.${t}`),o.apply(a,s);const m=s[f],h=[...s];return h[f]=function(y,...$){const b=process.hrtime.bigint()-d,A=Number(b)/1e6;m(y,...$),c.runInAsyncScope(()=>{e&&console.log(`[WorkerPool] ${n}.${t} completed in ${A.toFixed(3)}ms (${b}ns)`);let U=null,R=null;y?R=y?.message||String(y):r.captureReturnValue&&$.length>0&&(U=L(n,t,$[0],r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:A,durationNs:b.toString(),startTimeNs:d.toString(),args:p,result:U,error:R,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId})}),c.emitDestroy()},o.apply(a,h)},exports.captureWorkerPoolPromiseOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t} (Promise)`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=process.hrtime.bigint();let d=null;return r.captureArguments&&(d=D(n,t,s,r.argLimitMb)),o.apply(a,s).then(p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;e&&console.log(`[WorkerPool] ${n}.${t} completed in ${m.toFixed(3)}ms (${f}ns)`);let h=null;return r.captureReturnValue&&(h=L(n,t,p,r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:h,error:null,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p},p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;throw e&&console.log(`[WorkerPool] ${n}.${t} failed in ${m.toFixed(3)}ms: ${p?.message||p}`),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:null,error:p?.message||String(p),spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p})},exports.clearFuncspanOverride=function(){},exports.funcspanOverrideStorage=I,exports.getDefaultConfig=function(){return{capture_arguments:!1,capture_return_value:!1,arg_limit_mb:1,return_limit_mb:1,autocapture_all_child_functions:!1,sample_rate:0,enable_sampling:!1,capture_sf_veritas:!1,parse_json_strings:!1}},exports.getEnvConfig=function(){return{capture_arguments:N(process.env.SF_FUNCSPAN_CAPTURE_ARGUMENTS,!0),capture_return_value:N(process.env.SF_FUNCSPAN_CAPTURE_RETURN_VALUE,!0),arg_limit_mb:parseInt(process.env.SF_FUNCSPAN_ARG_LIMIT_MB||"1",10),return_limit_mb:parseInt(process.env.SF_FUNCSPAN_RETURN_LIMIT_MB||"1",10),autocapture_all_child_functions:N(process.env.SF_FUNCSPAN_AUTOCAPTURE_ALL_CHILD_FUNCTIONS,!1),sample_rate:parseFloat(process.env.SF_FUNCSPAN_SAMPLE_RATE||"1.0"),enable_sampling:N(process.env.SF_FUNCSPAN_ENABLE_SAMPLING,!1),capture_sf_veritas:N(process.env.SF_FUNCSPAN_CAPTURE_SF_VERITAS,!1),parse_json_strings:N(process.env.SF_FUNCSPAN_PARSE_JSON_STRINGS,!1)}},exports.getFuncspanOverride=function(){return I.getStore()},exports.isModuleTrackingEnabled=function(n){const t=T();if(!t.enabled)return!1;switch(n){case"fs":return t.trackFs;case"dns":return t.trackDns;case"crypto":return t.trackCrypto;case"zlib":return t.trackZlib;default:return!1}},exports.mergeConfigs=function(...n){const t={};for(const o of n)for(const s in o)o[s]!==void 0&&(t[s]=o[s]);return t},exports.nonBlockingPost=P,exports.parseHeaderOverride=function(n){try{const t=n.split("-");return t.length!==9?(console.error(`[FuncSpan] Invalid header format: expected 9 parts, got ${t.length}`),null):{capture_arguments:t[0]==="1",capture_return_value:t[1]==="1",arg_limit_mb:parseInt(t[2],10),return_limit_mb:parseInt(t[3],10),autocapture_all_child_functions:t[4]==="1",sample_rate:parseFloat(t[5]),enable_sampling:t[6]==="1",capture_sf_veritas:t[7]==="1",parse_json_strings:t[8]==="1"}}catch(t){return console.error(`[FuncSpan] Failed to parse header override "${n}":`,t),null}},exports.setFuncspanOverride=function(n){I.enterWith(n)},exports.truncateToLimit=C;
83
+ `;B.appendFileSync(a,c,"utf-8")}catch(a){console.error("[WorkerPool] Error writing to JSONL file:",a)}if(o&&console.log("[WorkerPool] Sending span to transmitter"),process.env.SF_FUNCSPAN_SKIP_BACKEND!=="true")try{(F||(F=new W),F).send([n]),o&&console.log("[WorkerPool] Span sent successfully")}catch(a){o&&console.error("[WorkerPool] Error sending span:",a)}}exports.BaseTransmitter=M,exports.FunctionSpanTransmitter=W,exports.captureWorkerPoolOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t}`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=new w.AsyncResource("WorkerPoolOperation"),d=process.hrtime.bigint();let p=null;r.captureArguments&&(p=D(n,t,s,r.argLimitMb));const f=s.findIndex(y=>typeof y=="function");if(f===-1)return e&&console.log(`[WorkerPool] No callback found for ${n}.${t}`),o.apply(a,s);const m=s[f],h=[...s];return h[f]=function(y,...$){const b=process.hrtime.bigint()-d,A=Number(b)/1e6;m(y,...$),c.runInAsyncScope(()=>{e&&console.log(`[WorkerPool] ${n}.${t} completed in ${A.toFixed(3)}ms (${b}ns)`);let U=null,R=null;y?R=y?.message||String(y):r.captureReturnValue&&$.length>0&&(U=L(n,t,$[0],r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:A,durationNs:b.toString(),startTimeNs:d.toString(),args:p,result:U,error:R,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId})}),c.emitDestroy()},o.apply(a,h)},exports.captureWorkerPoolPromiseOperation=function(n,t,o,s,a){const i=l.getGlobalConfigUnsafe(),e=i?.sfDebug||!1;e&&console.log(`[WorkerPool] Capturing ${n}.${t} (Promise)`);const r=T(),u=l.ContextManager.getInstance().getCurrentFunctionSpanId(),g=l.v4();e&&console.log(`[WorkerPool] Span ID: ${g}, Parent: ${u||"none"}`);const c=process.hrtime.bigint();let d=null;return r.captureArguments&&(d=D(n,t,s,r.argLimitMb)),o.apply(a,s).then(p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;e&&console.log(`[WorkerPool] ${n}.${t} completed in ${m.toFixed(3)}ms (${f}ns)`);let h=null;return r.captureReturnValue&&(h=L(n,t,p,r.returnLimitMb)),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:h,error:null,spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p},p=>{const f=process.hrtime.bigint()-c,m=Number(f)/1e6;throw e&&console.log(`[WorkerPool] ${n}.${t} failed in ${m.toFixed(3)}ms: ${p?.message||p}`),k({operationType:"worker_pool",operationName:`${n}.${t}`,moduleName:n,methodName:t,duration:m,durationNs:f.toString(),startTimeNs:c.toString(),args:d,result:null,error:p?.message||String(p),spanId:g,parentSpanId:u,pid:process.pid,threadId:v.threadId}),p})},exports.clearFuncspanOverride=function(){},exports.funcspanOverrideStorage=I,exports.getDefaultConfig=function(){return{capture_arguments:!1,capture_return_value:!1,arg_limit_mb:1,return_limit_mb:1,autocapture_all_child_functions:!1,sample_rate:0,enable_sampling:!1,capture_sf_veritas:!1,parse_json_strings:!1}},exports.getEnvConfig=function(){return{capture_arguments:N(process.env.SF_FUNCSPAN_CAPTURE_ARGUMENTS,!0),capture_return_value:N(process.env.SF_FUNCSPAN_CAPTURE_RETURN_VALUE,!0),arg_limit_mb:parseInt(process.env.SF_FUNCSPAN_ARG_LIMIT_MB||"1",10),return_limit_mb:parseInt(process.env.SF_FUNCSPAN_RETURN_LIMIT_MB||"1",10),autocapture_all_child_functions:N(process.env.SF_FUNCSPAN_AUTOCAPTURE_ALL_CHILD_FUNCTIONS,!1),sample_rate:parseFloat(process.env.SF_FUNCSPAN_SAMPLE_RATE||"1.0"),enable_sampling:N(process.env.SF_FUNCSPAN_ENABLE_SAMPLING,!1),capture_sf_veritas:N(process.env.SF_FUNCSPAN_CAPTURE_SF_VERITAS,!1),parse_json_strings:N(process.env.SF_FUNCSPAN_PARSE_JSON_STRINGS,!1)}},exports.getFuncspanOverride=function(){return I.getStore()},exports.isModuleTrackingEnabled=function(n){const t=T();if(!t.enabled)return!1;switch(n){case"fs":return t.trackFs;case"dns":return t.trackDns;case"crypto":return t.trackCrypto;case"zlib":return t.trackZlib;default:return!1}},exports.isSendingInternalTelemetry=function(){return _},exports.mergeConfigs=function(...n){const t={};for(const o of n)for(const s in o)o[s]!==void 0&&(t[s]=o[s]);return t},exports.nonBlockingPost=P,exports.parseHeaderOverride=function(n){try{const t=n.split("-");return t.length!==9?(console.error(`[FuncSpan] Invalid header format: expected 9 parts, got ${t.length}`),null):{capture_arguments:t[0]==="1",capture_return_value:t[1]==="1",arg_limit_mb:parseInt(t[2],10),return_limit_mb:parseInt(t[3],10),autocapture_all_child_functions:t[4]==="1",sample_rate:parseFloat(t[5]),enable_sampling:t[6]==="1",capture_sf_veritas:t[7]==="1",parse_json_strings:t[8]==="1"}}catch(t){return console.error(`[FuncSpan] Failed to parse header override "${n}":`,t),null}},exports.setFuncspanOverride=function(n){I.enterWith(n)},exports.truncateToLimit=C;
@@ -4,7 +4,7 @@ var S = (n, t, a) => V(n, typeof t != "symbol" ? t + "" : t, a);
4
4
  import { AsyncLocalStorage as J, AsyncResource as z } from "async_hooks";
5
5
  import { appendFileSync as x } from "fs";
6
6
  import { threadId as T } from "worker_threads";
7
- import { g as f, C as P, v as L, a as O } from "./contextManager-Cx03mw7l.js";
7
+ import { g as f, C as P, v as L, a as O } from "./contextManager-C-sqFxpi.js";
8
8
  class j {
9
9
  constructor() {
10
10
  S(this, "apiKey");
@@ -37,6 +37,9 @@ class j {
37
37
  }
38
38
  const q = fetch;
39
39
  let $ = !1;
40
+ function te() {
41
+ return $;
42
+ }
40
43
  async function E(n, t, a, o) {
41
44
  try {
42
45
  const s = f();
@@ -63,13 +66,13 @@ async function E(n, t, a, o) {
63
66
  $ = !1, f().sfDebug && console.error("Error sending data to GraphQL server:", s);
64
67
  }
65
68
  }
66
- function te() {
69
+ function ne() {
67
70
  return { capture_arguments: _(process.env.SF_FUNCSPAN_CAPTURE_ARGUMENTS, !0), capture_return_value: _(process.env.SF_FUNCSPAN_CAPTURE_RETURN_VALUE, !0), arg_limit_mb: parseInt(process.env.SF_FUNCSPAN_ARG_LIMIT_MB || "1", 10), return_limit_mb: parseInt(process.env.SF_FUNCSPAN_RETURN_LIMIT_MB || "1", 10), autocapture_all_child_functions: _(process.env.SF_FUNCSPAN_AUTOCAPTURE_ALL_CHILD_FUNCTIONS, !1), sample_rate: parseFloat(process.env.SF_FUNCSPAN_SAMPLE_RATE || "1.0"), enable_sampling: _(process.env.SF_FUNCSPAN_ENABLE_SAMPLING, !1), capture_sf_veritas: _(process.env.SF_FUNCSPAN_CAPTURE_SF_VERITAS, !1), parse_json_strings: _(process.env.SF_FUNCSPAN_PARSE_JSON_STRINGS, !1) };
68
71
  }
69
- function ne() {
72
+ function re() {
70
73
  return { capture_arguments: !1, capture_return_value: !1, arg_limit_mb: 1, return_limit_mb: 1, autocapture_all_child_functions: !1, sample_rate: 0, enable_sampling: !1, capture_sf_veritas: !1, parse_json_strings: !1 };
71
74
  }
72
- function re(n) {
75
+ function ae(n) {
73
76
  try {
74
77
  const t = n.split("-");
75
78
  return t.length !== 9 ? (console.error(`[FuncSpan] Invalid header format: expected 9 parts, got ${t.length}`), null) : { capture_arguments: t[0] === "1", capture_return_value: t[1] === "1", arg_limit_mb: parseInt(t[2], 10), return_limit_mb: parseInt(t[3], 10), autocapture_all_child_functions: t[4] === "1", sample_rate: parseFloat(t[5]), enable_sampling: t[6] === "1", capture_sf_veritas: t[7] === "1", parse_json_strings: t[8] === "1" };
@@ -85,15 +88,15 @@ function _(n, t) {
85
88
  const F = "__sf_funcspanOverrideStorage";
86
89
  globalThis[F] || (globalThis[F] = new J());
87
90
  const w = globalThis[F];
88
- function ae(n) {
91
+ function se(n) {
89
92
  w.enterWith(n);
90
93
  }
91
- function se() {
94
+ function oe() {
92
95
  return w.getStore();
93
96
  }
94
- function oe() {
97
+ function ie() {
95
98
  }
96
- function ie(...n) {
99
+ function ue(...n) {
97
100
  const t = {};
98
101
  for (const a of n) for (const o in a) a[o] !== void 0 && (t[o] = a[o]);
99
102
  return t;
@@ -117,9 +120,9 @@ function D(n, t) {
117
120
  return isNaN(o) ? t : o;
118
121
  }
119
122
  function A() {
120
- return { enabled: y("SF_WORKER_POOL_ENABLED", !0), trackFs: y("SF_WORKER_POOL_TRACK_FS", !1), trackDns: y("SF_WORKER_POOL_TRACK_DNS", !0), trackCrypto: y("SF_WORKER_POOL_TRACK_CRYPTO", !1), trackZlib: y("SF_WORKER_POOL_TRACK_ZLIB", !1), captureArguments: y("SF_WORKER_POOL_CAPTURE_ARGUMENTS", !0), captureReturnValue: y("SF_WORKER_POOL_CAPTURE_RETURN_VALUE", !0), argLimitMb: D("SF_WORKER_POOL_ARG_LIMIT_MB", 1), returnLimitMb: D("SF_WORKER_POOL_RETURN_LIMIT_MB", 1) };
123
+ return { enabled: y("SF_WORKER_POOL_ENABLED", !0), trackFs: y("SF_WORKER_POOL_TRACK_FS", !1), trackDns: y("SF_WORKER_POOL_TRACK_DNS", !1), trackCrypto: y("SF_WORKER_POOL_TRACK_CRYPTO", !1), trackZlib: y("SF_WORKER_POOL_TRACK_ZLIB", !1), captureArguments: y("SF_WORKER_POOL_CAPTURE_ARGUMENTS", !0), captureReturnValue: y("SF_WORKER_POOL_CAPTURE_RETURN_VALUE", !0), argLimitMb: D("SF_WORKER_POOL_ARG_LIMIT_MB", 1), returnLimitMb: D("SF_WORKER_POOL_RETURN_LIMIT_MB", 1) };
121
124
  }
122
- function ue(n) {
125
+ function le(n) {
123
126
  const t = A();
124
127
  if (!t.enabled) return !1;
125
128
  switch (n) {
@@ -443,7 +446,7 @@ class Q extends j {
443
446
  }
444
447
  }
445
448
  let v = null;
446
- function le(n, t, a, o, s) {
449
+ function ce(n, t, a, o, s) {
447
450
  const i = O(), e = i?.sfDebug || !1;
448
451
  e && console.log(`[WorkerPool] Capturing ${n}.${t}`);
449
452
  const r = A(), u = P.getInstance().getCurrentFunctionSpanId(), d = L();
@@ -463,7 +466,7 @@ function le(n, t, a, o, s) {
463
466
  }), l.emitDestroy();
464
467
  }, a.apply(s, h);
465
468
  }
466
- function ce(n, t, a, o, s) {
469
+ function pe(n, t, a, o, s) {
467
470
  const i = O(), e = i?.sfDebug || !1;
468
471
  e && console.log(`[WorkerPool] Capturing ${n}.${t} (Promise)`);
469
472
  const r = A(), u = P.getInstance().getCurrentFunctionSpanId(), d = L();
@@ -501,17 +504,18 @@ function k(n) {
501
504
  export {
502
505
  j as B,
503
506
  Q as F,
504
- ne as a,
505
- te as b,
506
- le as c,
507
- ce as d,
508
- oe as e,
507
+ re as a,
508
+ ne as b,
509
+ ce as c,
510
+ pe as d,
511
+ le as e,
509
512
  w as f,
510
- se as g,
511
- ue as i,
512
- ie as m,
513
+ oe as g,
514
+ ie as h,
515
+ te as i,
516
+ ue as m,
513
517
  E as n,
514
- re as p,
515
- ae as s,
518
+ ae as p,
519
+ se as s,
516
520
  K as t
517
521
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sailfish-ai/sf-veritas",
3
- "version": "0.2.16",
3
+ "version": "0.2.18",
4
4
  "publishPublicly": true,
5
5
  "description": "A versatile Edge Runtime-compatible package for JavaScript and TypeScript backend systems and scripts.",
6
6
  "main": "./dist/sf-veritas.cjs",
@@ -90,10 +90,17 @@
90
90
  "glob": "^11.1.0",
91
91
  "js-yaml": "^4.1.0",
92
92
  "toml": "^3.0.0",
93
- "next": "^15.1.7",
94
93
  "source-map-js": "^1.2.1",
95
94
  "uuid": "^11.1.0"
96
95
  },
96
+ "peerDependencies": {
97
+ "next": ">=13.0.0"
98
+ },
99
+ "peerDependenciesMeta": {
100
+ "next": {
101
+ "optional": true
102
+ }
103
+ },
97
104
  "devDependencies": {
98
105
  "@rollup/plugin-terser": "^0.4.4",
99
106
  "@types/babel__core": "^7.20.5",
@@ -1,258 +0,0 @@
1
- var V = Object.defineProperty;
2
- var M = (n, e, t) => e in n ? V(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
3
- var r = (n, e, t) => M(n, typeof e != "symbol" ? e + "" : e, t);
4
- import { AsyncLocalStorage as U } from "async_hooks";
5
- import { execSync as G } from "child_process";
6
- import { readFileSync as F, existsSync as D } from "fs";
7
- import * as A from "os";
8
- const a = [];
9
- for (let n = 0; n < 256; ++n) a.push((n + 256).toString(16).slice(1));
10
- let N;
11
- const H = new Uint8Array(16), m = { randomUUID: typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto) };
12
- function S(n, e, t) {
13
- if (m.randomUUID && !n) return m.randomUUID();
14
- const s = (n = n || {}).random ?? n.rng?.() ?? (function() {
15
- if (!N) {
16
- if (typeof crypto > "u" || !crypto.getRandomValues) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
17
- N = crypto.getRandomValues.bind(crypto);
18
- }
19
- return N(H);
20
- })();
21
- if (s.length < 16) throw new Error("Random bytes length must be >= 16");
22
- return s[6] = 15 & s[6] | 64, s[8] = 63 & s[8] | 128, (function(i, o = 0) {
23
- return (a[i[o + 0]] + a[i[o + 1]] + a[i[o + 2]] + a[i[o + 3]] + "-" + a[i[o + 4]] + a[i[o + 5]] + "-" + a[i[o + 6]] + a[i[o + 7]] + "-" + a[i[o + 8]] + a[i[o + 9]] + "-" + a[i[o + 10]] + a[i[o + 11]] + a[i[o + 12]] + a[i[o + 13]] + a[i[o + 14]] + a[i[o + 15]]).toLowerCase();
24
- })(s);
25
- }
26
- class B {
27
- constructor(e) {
28
- r(this, "apiKey");
29
- r(this, "apiGraphqlEndpoint");
30
- r(this, "sfDebug");
31
- r(this, "serviceIdentifier");
32
- r(this, "serviceVersion");
33
- r(this, "serviceUUID");
34
- r(this, "serviceAdditionalMetadata");
35
- r(this, "profilingModeEnabled");
36
- r(this, "profilingMaxDepth");
37
- r(this, "profilingMaxVariableSizeKb");
38
- r(this, "domainsToNotPropagateHeadersTo");
39
- r(this, "nodeModulesToCollectLocalVariablesOn");
40
- r(this, "printConfigurationStatuses");
41
- r(this, "logLevel");
42
- r(this, "stackDepthLocals");
43
- r(this, "stackDepthCodeTraceDepth");
44
- r(this, "packageLibraryType");
45
- r(this, "version");
46
- r(this, "gitSha");
47
- r(this, "gitOrg");
48
- r(this, "gitRepo");
49
- r(this, "gitProvider");
50
- r(this, "serviceDisplayName");
51
- r(this, "infrastructureType");
52
- r(this, "infrastructureDetails");
53
- r(this, "setupInterceptorsFile");
54
- r(this, "setupInterceptorsLine");
55
- r(this, "logIgnoreRegex");
56
- r(this, "captureRequestHeaders");
57
- r(this, "captureResponseHeaders");
58
- r(this, "captureRequestBody");
59
- r(this, "captureResponseBody");
60
- r(this, "requestBodyLimitBytes");
61
- r(this, "responseBodyLimitBytes");
62
- r(this, "_serviceIdentificationReceived", !1);
63
- if (this.apiKey = e.apiKey, this.apiGraphqlEndpoint = e?.apiGraphqlEndpoint || process.env.SAILFISH_GRAPHQL_ENDPOINT || "https://api-service.sailfishqa.com/graphql/", this.sfDebug = e?.debug === !0 || process.env.SF_DEBUG === "true", this.serviceIdentifier = e?.serviceIdentifier || process.env.SERVICE_IDENTIFIER, this.serviceUUID = S(), this.serviceVersion = e?.serviceVersion || process.env.SERVICE_VERSION, this.gitSha = e?.gitSha || process.env.GIT_SHA || process.env.VERCEL_GIT_COMMIT_SHA, this.gitOrg = e?.gitOrg || process.env.GIT_ORG || process.env.VERCEL_GIT_REPO_OWNER, this.gitRepo = e?.gitRepo || process.env.GIT_REPO || process.env.VERCEL_GIT_REPO_SLUG, this.gitProvider = e?.gitProvider || process.env.GIT_PROVIDER, this.serviceDisplayName = e?.serviceDisplayName || process.env.SERVICE_DISPLAY_NAME, !this.gitOrg || !this.gitRepo || !this.gitProvider) {
64
- const g = (function() {
65
- let h = "";
66
- try {
67
- h = G("git remote get-url origin", { encoding: "utf-8", timeout: 3e3, stdio: ["pipe", "pipe", "pipe"] }).trim();
68
- } catch {
69
- try {
70
- const c = F(".git/config", "utf-8").match(/\[remote "origin"\][^[]*url\s*=\s*(.+)/m);
71
- c && (h = c[1].trim());
72
- } catch {
73
- }
74
- }
75
- return h ? (function(c) {
76
- let I, C, f;
77
- if (c.includes("github.com") ? I = "github" : c.includes("gitlab.com") ? I = "gitlab" : c.includes("bitbucket.org") && (I = "bitbucket"), c.startsWith("https://") || c.startsWith("http://")) {
78
- const d = c.split("/");
79
- d.length >= 5 && (C = d[3], f = d[4].replace(/\.git$/, ""));
80
- } else {
81
- const d = c.indexOf(":");
82
- if (d > 0) {
83
- const R = c.substring(d + 1).replace(/\.git$/, "").split("/");
84
- R.length >= 2 && (C = R[0], f = R[1]);
85
- }
86
- }
87
- return { org: C, repo: f, provider: I };
88
- })(h) : {};
89
- })();
90
- this.gitOrg || (this.gitOrg = g.org), this.gitRepo || (this.gitRepo = g.repo), this.gitProvider || (this.gitProvider = g.provider);
91
- }
92
- this.serviceAdditionalMetadata = e?.serviceAdditionalMetadata || {}, this.profilingModeEnabled = e?.profilingModeEnabled ?? !1, this.profilingMaxDepth = e?.profilingMaxDepth ?? 5, this.profilingMaxVariableSizeKb = e?.profilingMaxVariableSizeKb ?? 25, this.domainsToNotPropagateHeadersTo = e?.domainsToNotPropagateHeadersTo || [], this.nodeModulesToCollectLocalVariablesOn = e?.nodeModulesToCollectLocalVariablesOn || ["_all_"], this.printConfigurationStatuses = process.env.PRINT_CONFIGURATION_STATUSES || "true", this.logLevel = process.env.LOG_LEVEL || "INFO", this.stackDepthLocals = process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS !== void 0 ? parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS, 10) : 5, isNaN(this.stackDepthLocals) && (this.stackDepthLocals = -1), this.stackDepthCodeTraceDepth = process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH !== void 0 ? parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH, 10) : -1, isNaN(this.stackDepthCodeTraceDepth) && (this.stackDepthCodeTraceDepth = -1), this.packageLibraryType = "JS/TS BACKEND", this.version = this.getPackageVersion();
93
- const t = (function() {
94
- return process.env.KUBERNETES_SERVICE_HOST || D("/var/run/secrets/kubernetes.io/serviceaccount/token") ? { type: "Kubernetes", details: { namespace: process.env.POD_NAMESPACE || "", podName: process.env.HOSTNAME || "", nodeName: process.env.NODE_NAME || "" } } : process.env.AWS_LAMBDA_FUNCTION_NAME ? { type: "AWS Lambda", details: { functionName: process.env.AWS_LAMBDA_FUNCTION_NAME || "", region: process.env.AWS_REGION || "", runtime: process.env.AWS_EXECUTION_ENV || "" } } : process.env.AWS_EXECUTION_ENV ? { type: "AWS", details: { executionEnv: process.env.AWS_EXECUTION_ENV || "", region: process.env.AWS_REGION || "" } } : process.env.GOOGLE_CLOUD_PROJECT ? { type: "Google Cloud", details: { project: process.env.GOOGLE_CLOUD_PROJECT || "" } } : process.env.AZURE_FUNCTIONS_ENVIRONMENT ? { type: "Azure Functions", details: { environment: process.env.AZURE_FUNCTIONS_ENVIRONMENT || "" } } : process.env.VERCEL ? { type: "Vercel", details: { env: process.env.VERCEL_ENV || "", region: process.env.VERCEL_REGION || "" } } : process.env.NETLIFY ? { type: "Netlify", details: {} } : process.env.FLY_APP_NAME ? { type: "Fly.io", details: { appName: process.env.FLY_APP_NAME || "", region: process.env.FLY_REGION || "" } } : process.env.RENDER_SERVICE_ID ? { type: "Render", details: { serviceId: process.env.RENDER_SERVICE_ID || "" } } : process.env.RAILWAY_ENVIRONMENT ? { type: "Railway", details: { environment: process.env.RAILWAY_ENVIRONMENT || "" } } : D("/.dockerenv") ? { type: "Docker", details: {} } : { type: "Unknown", details: { os: A.platform(), arch: A.arch(), nodeVersion: process.version } };
95
- })();
96
- this.infrastructureType = t.type, this.infrastructureDetails = t.details;
97
- const s = process.env.SF_LOG_IGNORE_REGEX;
98
- if (s) try {
99
- this.logIgnoreRegex = new RegExp(s);
100
- } catch {
101
- }
102
- this.captureRequestHeaders = process.env.SF_NETWORKHOP_CAPTURE_REQUEST_HEADERS === "true", this.captureResponseHeaders = process.env.SF_NETWORKHOP_CAPTURE_RESPONSE_HEADERS === "true", this.captureRequestBody = process.env.SF_NETWORKHOP_CAPTURE_REQUEST_BODY === "true", this.captureResponseBody = process.env.SF_NETWORKHOP_CAPTURE_RESPONSE_BODY === "true";
103
- const i = parseInt(process.env.SF_NETWORKHOP_REQUEST_LIMIT_MB || "1", 10);
104
- this.requestBodyLimitBytes = 1024 * (isNaN(i) ? 1 : i) * 1024;
105
- const o = parseInt(process.env.SF_NETWORKHOP_RESPONSE_LIMIT_MB || "1", 10);
106
- this.responseBodyLimitBytes = 1024 * (isNaN(o) ? 1 : o) * 1024;
107
- }
108
- getPackageVersion() {
109
- return "0.2.14";
110
- }
111
- get serviceIdentificationReceived() {
112
- return this._serviceIdentificationReceived;
113
- }
114
- setServiceIdentificationReceived(e) {
115
- this._serviceIdentificationReceived = e;
116
- }
117
- }
118
- const x = Symbol.for("sailfish.sf_config");
119
- function b() {
120
- return globalThis[x];
121
- }
122
- function q(n) {
123
- const e = b();
124
- if (e) return { config: e };
125
- const t = new B(n);
126
- return (function(s) {
127
- globalThis[x] = s;
128
- })(t), t.sfDebug && console.log("[[getOrCreateConfig]] Created global config:", t), { config: t };
129
- }
130
- function T() {
131
- const n = b();
132
- if (!n) throw new Error("Configuration has not been initialized. Call getOrCreateConfig(options) first.");
133
- return n;
134
- }
135
- const y = Symbol.for("sf.ctx.storeAls"), p = globalThis, O = p[y] ?? (p[y] = new U()), w = ["identitytoolkit.googleapis.com", "t.co", "*.twitter.com", "*.gravatar.com", "*.googleapis.com", "*.amazonaws.com", "*.smooch.io", "*.zendesk.com"], L = Symbol.for("sf.ctx.als"), l = p[L] ?? (p[L] = new U()), P = Symbol.for("sf.ctx.sessionRegistry"), E = p[P] ?? (p[P] = /* @__PURE__ */ new Map()), _ = { handledExceptions: /* @__PURE__ */ new Set(), reentrancyGuardLoggingActive: !1, reentrancyGuardLoggingPreActive: !1, reentrancyGuardPrintActive: !1, reentrancyGuardPrintPreActive: !1, reentrancyGuardExceptionActive: !1, reentrancyGuardExceptionPreActive: !1, excludedDomains: new Set(w), supportedDomains: /* @__PURE__ */ new Set() }, u = class u {
136
- constructor() {
137
- }
138
- current() {
139
- return O.getStore();
140
- }
141
- ensureStore() {
142
- const e = this.current();
143
- if (e) return e;
144
- const t = /* @__PURE__ */ new Map();
145
- return O.enterWith(t), t;
146
- }
147
- runWith(e, t) {
148
- const s = this.current() ?? /* @__PURE__ */ new Map(), i = new Map(s);
149
- for (const [o, g] of Object.entries(e)) i.set(o, g);
150
- return O.run(i, t);
151
- }
152
- static getInstance() {
153
- return p[u.GLOBAL_MANAGER_SYMBOL] || (p[u.GLOBAL_MANAGER_SYMBOL] = new u()), p[u.GLOBAL_MANAGER_SYMBOL];
154
- }
155
- getCurrentContext() {
156
- return l.getStore() || _;
157
- }
158
- setCurrentContext(e) {
159
- const t = l.getStore() || _;
160
- l.enterWith({ ...t, ...e });
161
- }
162
- ensureSession(e) {
163
- let t = E.get(e);
164
- return t || (t = { ..._ }, E.set(e, t)), t;
165
- }
166
- getContextFor(e) {
167
- return E.get(e) ?? _;
168
- }
169
- updateContextFor(e, t) {
170
- const s = this.ensureSession(e);
171
- E.set(e, { ...s, ...t });
172
- }
173
- runWithSession(e, t) {
174
- const s = { ...this.ensureSession(e) };
175
- return l.run(s, t);
176
- }
177
- deleteSession(e) {
178
- E.delete(e);
179
- }
180
- getTraceId() {
181
- return this.getCurrentContext().traceId;
182
- }
183
- getPageVisitUUID() {
184
- return this.getCurrentContext().pageVisitUUID;
185
- }
186
- setTraceId(e) {
187
- this.setCurrentContext({ traceId: e });
188
- }
189
- setPageVisitUUID(e) {
190
- this.setCurrentContext({ pageVisitUUID: e });
191
- }
192
- getCurrentFunctionSpanId() {
193
- return this.getCurrentContext().currentFunctionSpanId;
194
- }
195
- setCurrentFunctionSpanId(e) {
196
- this.setCurrentContext({ currentFunctionSpanId: e });
197
- }
198
- clearCurrentFunctionSpanId() {
199
- this.setCurrentContext({ currentFunctionSpanId: void 0 });
200
- }
201
- getOrSetSfTraceId(e, t = !1) {
202
- let s = this.getTraceId();
203
- return s || (s = e || (t ? S() : `nonsession-applogs-v3/${T().apiKey}/${S()}`), this.setTraceId(s), T().sfDebug && console.log(" Created new trace ID:", s), s);
204
- }
205
- getOrSetPageVisitUUID() {
206
- let e = this.getPageVisitUUID();
207
- return e || (e = S(), this.setPageVisitUUID(e), T().sfDebug && console.log(" Created new page visit UUID:", e), e);
208
- }
209
- getHandledExceptions() {
210
- return this.getCurrentContext().handledExceptions;
211
- }
212
- markExceptionHandled(e) {
213
- const t = this.getHandledExceptions();
214
- t.add(e), this.setCurrentContext({ handledExceptions: t });
215
- }
216
- hasHandledException(e) {
217
- return this.getHandledExceptions().has(e);
218
- }
219
- resetHandledExceptions() {
220
- this.setCurrentContext({ handledExceptions: /* @__PURE__ */ new Set() });
221
- }
222
- getExcludedDomains() {
223
- return this.getCurrentContext().excludedDomains;
224
- }
225
- getSupportedDomains() {
226
- return this.getCurrentContext().supportedDomains;
227
- }
228
- addSupportedDomains(e) {
229
- this.getCurrentContext().supportedDomains.add(e.toLowerCase().trim());
230
- }
231
- setTraceIdFor(e, t) {
232
- this.updateContextFor(e, { traceId: t });
233
- }
234
- setPageVisitUUIDFor(e, t) {
235
- this.updateContextFor(e, { pageVisitUUID: t });
236
- }
237
- };
238
- r(u, "GLOBAL_MANAGER_SYMBOL", Symbol.for("sf.ctx.manager"));
239
- let v = u;
240
- function X(n) {
241
- const e = { ...v.getInstance().getCurrentContext() };
242
- l.run(e, () => {
243
- n();
244
- });
245
- }
246
- function z() {
247
- return v.getInstance().getCurrentFunctionSpanId();
248
- }
249
- export {
250
- v as C,
251
- w as D,
252
- b as a,
253
- z as b,
254
- q as c,
255
- T as g,
256
- X as r,
257
- S as v
258
- };
@@ -1 +0,0 @@
1
- "use strict";const P=require("async_hooks"),x=require("child_process"),O=require("fs");function M(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const A=M(require("os")),o=[];for(let n=0;n<256;++n)o.push((n+256).toString(16).slice(1));let R;const V=new Uint8Array(16),D={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function E(n,e,t){if(D.randomUUID&&!n)return D.randomUUID();const r=(n=n||{}).random??n.rng?.()??(function(){if(!R){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");R=crypto.getRandomValues.bind(crypto)}return R(V)})();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=15&r[6]|64,r[8]=63&r[8]|128,(function(s,i=0){return(o[s[i+0]]+o[s[i+1]]+o[s[i+2]]+o[s[i+3]]+"-"+o[s[i+4]]+o[s[i+5]]+"-"+o[s[i+6]]+o[s[i+7]]+"-"+o[s[i+8]]+o[s[i+9]]+"-"+o[s[i+10]]+o[s[i+11]]+o[s[i+12]]+o[s[i+13]]+o[s[i+14]]+o[s[i+15]]).toLowerCase()})(r)}class F{apiKey;apiGraphqlEndpoint;sfDebug;serviceIdentifier;serviceVersion;serviceUUID;serviceAdditionalMetadata;profilingModeEnabled;profilingMaxDepth;profilingMaxVariableSizeKb;domainsToNotPropagateHeadersTo;nodeModulesToCollectLocalVariablesOn;printConfigurationStatuses;logLevel;stackDepthLocals;stackDepthCodeTraceDepth;packageLibraryType;version;gitSha;gitOrg;gitRepo;gitProvider;serviceDisplayName;infrastructureType;infrastructureDetails;setupInterceptorsFile;setupInterceptorsLine;logIgnoreRegex;captureRequestHeaders;captureResponseHeaders;captureRequestBody;captureResponseBody;requestBodyLimitBytes;responseBodyLimitBytes;_serviceIdentificationReceived=!1;constructor(e){if(this.apiKey=e.apiKey,this.apiGraphqlEndpoint=e?.apiGraphqlEndpoint||process.env.SAILFISH_GRAPHQL_ENDPOINT||"https://api-service.sailfishqa.com/graphql/",this.sfDebug=e?.debug===!0||process.env.SF_DEBUG==="true",this.serviceIdentifier=e?.serviceIdentifier||process.env.SERVICE_IDENTIFIER,this.serviceUUID=E(),this.serviceVersion=e?.serviceVersion||process.env.SERVICE_VERSION,this.gitSha=e?.gitSha||process.env.GIT_SHA||process.env.VERCEL_GIT_COMMIT_SHA,this.gitOrg=e?.gitOrg||process.env.GIT_ORG||process.env.VERCEL_GIT_REPO_OWNER,this.gitRepo=e?.gitRepo||process.env.GIT_REPO||process.env.VERCEL_GIT_REPO_SLUG,this.gitProvider=e?.gitProvider||process.env.GIT_PROVIDER,this.serviceDisplayName=e?.serviceDisplayName||process.env.SERVICE_DISPLAY_NAME,!this.gitOrg||!this.gitRepo||!this.gitProvider){const d=(function(){let h="";try{h=x.execSync("git remote get-url origin",{encoding:"utf-8",timeout:3e3,stdio:["pipe","pipe","pipe"]}).trim()}catch{try{const a=O.readFileSync(".git/config","utf-8").match(/\[remote "origin"\][^[]*url\s*=\s*(.+)/m);a&&(h=a[1].trim())}catch{}}return h?(function(a){let _,C,v;if(a.includes("github.com")?_="github":a.includes("gitlab.com")?_="gitlab":a.includes("bitbucket.org")&&(_="bitbucket"),a.startsWith("https://")||a.startsWith("http://")){const u=a.split("/");u.length>=5&&(C=u[3],v=u[4].replace(/\.git$/,""))}else{const u=a.indexOf(":");if(u>0){const f=a.substring(u+1).replace(/\.git$/,"").split("/");f.length>=2&&(C=f[0],v=f[1])}}return{org:C,repo:v,provider:_}})(h):{}})();this.gitOrg||(this.gitOrg=d.org),this.gitRepo||(this.gitRepo=d.repo),this.gitProvider||(this.gitProvider=d.provider)}this.serviceAdditionalMetadata=e?.serviceAdditionalMetadata||{},this.profilingModeEnabled=e?.profilingModeEnabled??!1,this.profilingMaxDepth=e?.profilingMaxDepth??5,this.profilingMaxVariableSizeKb=e?.profilingMaxVariableSizeKb??25,this.domainsToNotPropagateHeadersTo=e?.domainsToNotPropagateHeadersTo||[],this.nodeModulesToCollectLocalVariablesOn=e?.nodeModulesToCollectLocalVariablesOn||["_all_"],this.printConfigurationStatuses=process.env.PRINT_CONFIGURATION_STATUSES||"true",this.logLevel=process.env.LOG_LEVEL||"INFO",this.stackDepthLocals=process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS!==void 0?parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_LOCALS,10):5,isNaN(this.stackDepthLocals)&&(this.stackDepthLocals=-1),this.stackDepthCodeTraceDepth=process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH!==void 0?parseInt(process.env.SAILFISH_EXCEPTION_STACK_DEPTH_CODE_TRACE_DEPTH,10):-1,isNaN(this.stackDepthCodeTraceDepth)&&(this.stackDepthCodeTraceDepth=-1),this.packageLibraryType="JS/TS BACKEND",this.version=this.getPackageVersion();const t=(function(){return process.env.KUBERNETES_SERVICE_HOST||O.existsSync("/var/run/secrets/kubernetes.io/serviceaccount/token")?{type:"Kubernetes",details:{namespace:process.env.POD_NAMESPACE||"",podName:process.env.HOSTNAME||"",nodeName:process.env.NODE_NAME||""}}:process.env.AWS_LAMBDA_FUNCTION_NAME?{type:"AWS Lambda",details:{functionName:process.env.AWS_LAMBDA_FUNCTION_NAME||"",region:process.env.AWS_REGION||"",runtime:process.env.AWS_EXECUTION_ENV||""}}:process.env.AWS_EXECUTION_ENV?{type:"AWS",details:{executionEnv:process.env.AWS_EXECUTION_ENV||"",region:process.env.AWS_REGION||""}}:process.env.GOOGLE_CLOUD_PROJECT?{type:"Google Cloud",details:{project:process.env.GOOGLE_CLOUD_PROJECT||""}}:process.env.AZURE_FUNCTIONS_ENVIRONMENT?{type:"Azure Functions",details:{environment:process.env.AZURE_FUNCTIONS_ENVIRONMENT||""}}:process.env.VERCEL?{type:"Vercel",details:{env:process.env.VERCEL_ENV||"",region:process.env.VERCEL_REGION||""}}:process.env.NETLIFY?{type:"Netlify",details:{}}:process.env.FLY_APP_NAME?{type:"Fly.io",details:{appName:process.env.FLY_APP_NAME||"",region:process.env.FLY_REGION||""}}:process.env.RENDER_SERVICE_ID?{type:"Render",details:{serviceId:process.env.RENDER_SERVICE_ID||""}}:process.env.RAILWAY_ENVIRONMENT?{type:"Railway",details:{environment:process.env.RAILWAY_ENVIRONMENT||""}}:O.existsSync("/.dockerenv")?{type:"Docker",details:{}}:{type:"Unknown",details:{os:A.platform(),arch:A.arch(),nodeVersion:process.version}}})();this.infrastructureType=t.type,this.infrastructureDetails=t.details;const r=process.env.SF_LOG_IGNORE_REGEX;if(r)try{this.logIgnoreRegex=new RegExp(r)}catch{}this.captureRequestHeaders=process.env.SF_NETWORKHOP_CAPTURE_REQUEST_HEADERS==="true",this.captureResponseHeaders=process.env.SF_NETWORKHOP_CAPTURE_RESPONSE_HEADERS==="true",this.captureRequestBody=process.env.SF_NETWORKHOP_CAPTURE_REQUEST_BODY==="true",this.captureResponseBody=process.env.SF_NETWORKHOP_CAPTURE_RESPONSE_BODY==="true";const s=parseInt(process.env.SF_NETWORKHOP_REQUEST_LIMIT_MB||"1",10);this.requestBodyLimitBytes=1024*(isNaN(s)?1:s)*1024;const i=parseInt(process.env.SF_NETWORKHOP_RESPONSE_LIMIT_MB||"1",10);this.responseBodyLimitBytes=1024*(isNaN(i)?1:i)*1024}getPackageVersion(){return"0.2.14"}get serviceIdentificationReceived(){return this._serviceIdentificationReceived}setServiceIdentificationReceived(e){this._serviceIdentificationReceived=e}}const U=Symbol.for("sailfish.sf_config");function T(){return globalThis[U]}function I(){const n=T();if(!n)throw new Error("Configuration has not been initialized. Call getOrCreateConfig(options) first.");return n}const y=Symbol.for("sf.ctx.storeAls"),c=globalThis,N=c[y]??(c[y]=new P.AsyncLocalStorage),b=["identitytoolkit.googleapis.com","t.co","*.twitter.com","*.gravatar.com","*.googleapis.com","*.amazonaws.com","*.smooch.io","*.zendesk.com"],L=Symbol.for("sf.ctx.als"),l=c[L]??(c[L]=new P.AsyncLocalStorage),m=Symbol.for("sf.ctx.sessionRegistry"),g=c[m]??(c[m]=new Map),S={handledExceptions:new Set,reentrancyGuardLoggingActive:!1,reentrancyGuardLoggingPreActive:!1,reentrancyGuardPrintActive:!1,reentrancyGuardPrintPreActive:!1,reentrancyGuardExceptionActive:!1,reentrancyGuardExceptionPreActive:!1,excludedDomains:new Set(b),supportedDomains:new Set};class p{static GLOBAL_MANAGER_SYMBOL=Symbol.for("sf.ctx.manager");constructor(){}current(){return N.getStore()}ensureStore(){const e=this.current();if(e)return e;const t=new Map;return N.enterWith(t),t}runWith(e,t){const r=this.current()??new Map,s=new Map(r);for(const[i,d]of Object.entries(e))s.set(i,d);return N.run(s,t)}static getInstance(){return c[p.GLOBAL_MANAGER_SYMBOL]||(c[p.GLOBAL_MANAGER_SYMBOL]=new p),c[p.GLOBAL_MANAGER_SYMBOL]}getCurrentContext(){return l.getStore()||S}setCurrentContext(e){const t=l.getStore()||S;l.enterWith({...t,...e})}ensureSession(e){let t=g.get(e);return t||(t={...S},g.set(e,t)),t}getContextFor(e){return g.get(e)??S}updateContextFor(e,t){const r=this.ensureSession(e);g.set(e,{...r,...t})}runWithSession(e,t){const r={...this.ensureSession(e)};return l.run(r,t)}deleteSession(e){g.delete(e)}getTraceId(){return this.getCurrentContext().traceId}getPageVisitUUID(){return this.getCurrentContext().pageVisitUUID}setTraceId(e){this.setCurrentContext({traceId:e})}setPageVisitUUID(e){this.setCurrentContext({pageVisitUUID:e})}getCurrentFunctionSpanId(){return this.getCurrentContext().currentFunctionSpanId}setCurrentFunctionSpanId(e){this.setCurrentContext({currentFunctionSpanId:e})}clearCurrentFunctionSpanId(){this.setCurrentContext({currentFunctionSpanId:void 0})}getOrSetSfTraceId(e,t=!1){let r=this.getTraceId();return r||(r=e||(t?E():`nonsession-applogs-v3/${I().apiKey}/${E()}`),this.setTraceId(r),I().sfDebug&&console.log(" Created new trace ID:",r),r)}getOrSetPageVisitUUID(){let e=this.getPageVisitUUID();return e||(e=E(),this.setPageVisitUUID(e),I().sfDebug&&console.log(" Created new page visit UUID:",e),e)}getHandledExceptions(){return this.getCurrentContext().handledExceptions}markExceptionHandled(e){const t=this.getHandledExceptions();t.add(e),this.setCurrentContext({handledExceptions:t})}hasHandledException(e){return this.getHandledExceptions().has(e)}resetHandledExceptions(){this.setCurrentContext({handledExceptions:new Set})}getExcludedDomains(){return this.getCurrentContext().excludedDomains}getSupportedDomains(){return this.getCurrentContext().supportedDomains}addSupportedDomains(e){this.getCurrentContext().supportedDomains.add(e.toLowerCase().trim())}setTraceIdFor(e,t){this.updateContextFor(e,{traceId:t})}setPageVisitUUIDFor(e,t){this.updateContextFor(e,{pageVisitUUID:t})}}exports.ContextManager=p,exports.DEFAULT_DOMAINS_TO_EXCLUDE=b,exports.getConfig=I,exports.getCurrentFunctionSpanId=function(){return p.getInstance().getCurrentFunctionSpanId()},exports.getGlobalConfigUnsafe=T,exports.getOrCreateConfig=function(n){const e=T();if(e)return{config:e};const t=new F(n);return(function(r){globalThis[U]=r})(t),t.sfDebug&&console.log("[[getOrCreateConfig]] Created global config:",t),{config:t}},exports.runWithContext=function(n){const e={...p.getInstance().getCurrentContext()};l.run(e,()=>{n()})},exports.v4=E;