Forms
LabReport
Errors
This form has no errors.
Default Data
| Property | Value |
|---|---|
| Model Format | same as normalized format |
| Normalized Format | App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| View Format | same as normalized format |
Submitted Data
This form was not submitted.
Passed Options
| Option | Passed Value | Resolved Value |
|---|---|---|
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
[ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| data | App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
same as passed value |
| entityDto | EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 656 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } |
same as passed value |
| translation_domain | "messages" |
same as passed value |
Resolved Options
| Option | Value |
|---|---|
| action | "" |
| allow_extra_fields | true |
| allow_file_upload | false |
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| attr_translation_parameters | [] |
| auto_initialize | true |
| block_name | null |
| block_prefix | null |
| by_reference | true |
| compound | true |
| constraints | [] |
| csrf_field_name | "_token" |
| csrf_message | "The CSRF token is invalid. Please try to resubmit the form." |
| csrf_protection | true |
| csrf_token_id | null |
| csrf_token_manager | Symfony\Component\Security\Csrf\CsrfTokenManager {#395 -generator: Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator {#396 …} -storage: Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage {#397 …} -namespace: Closure() {#399 …} } |
| data | App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| data_class | "App\Entity\LabReport" |
| disabled | false |
| empty_data | Closure(FormInterface $form) {#1771 : "Symfony\Component\Form\Extension\Core\Type\FormType" : { : "App\Entity\LabReport" } } |
| entityDto | EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 656 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } |
| error_bubbling | true |
| error_mapping | [] |
| extra_fields_message | "This form should not contain extra fields." |
| form_attr | false |
| getter | null |
| help | null |
| help_attr | [] |
| help_html | false |
| help_translation_parameters | [] |
| inherit_data | false |
| invalid_message | "This value is not valid." |
| invalid_message_parameters | [] |
| is_empty_callback | null |
| label | null |
| label_attr | [] |
| label_format | null |
| label_html | false |
| label_translation_parameters | [] |
| mapped | true |
| method | "POST" |
| post_max_size_message | "The uploaded file was too large. Please try to upload a smaller file." |
| priority | 0 |
| property_path | null |
| required | true |
| row_attr | [] |
| setter | null |
| translation_domain | "messages" |
| trim | true |
| upload_max_size_message | Closure() {#1773 : "Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension" : { : Symfony\Component\Translation\DataCollectorTranslator {#65 …} : Closure() {#1770 …} : "validators" } } |
| validation_groups | null |
View Vars
| Variable | Value |
|---|---|
| action | "" |
| attr | [ "class" => "ea-edit-form" "id" => "edit-LabReport-form" ] |
| attr_translation_parameters | [] |
| block_prefixes | [ "form" "ea_crud" "_LabReport" ] |
| cache_key | "_LabReport_ea_crud" |
| compound | true |
| data | App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |
| disabled | false |
| ea_crud_form | [ "assets" => "** This variable no longer stores field assets. Instead, use "ea.crud.fieldAssets()" in your Twig template." "entity" => EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844 -isAccessible: true -fqcn: "App\Entity\LabReport" -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …} -instance: App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } -primaryKeyName: "id" -primaryKeyValue: 656 -permission: null -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …} -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …} } "form_tabs" => [] "form_fieldsets" => [] ] |
| ea_vars | EasyCorp\Bundle\EasyAdminBundle\Dto\FormVarsDto {#4043 -fieldDto: null -entityDto: null } |
| errors | Symfony\Component\Form\FormErrorIterator {#1829 -errors: [] -form: Symfony\Component\Form\Form {#1779 …} } |
| form | Symfony\Component\Form\FormView {#1838 …5} |
| full_name | "LabReport" |
| help | null |
| help_attr | [] |
| help_html | false |
| help_translation_parameters | [] |
| id | "LabReport" |
| label | null |
| label_attr | [] |
| label_format | null |
| label_html | false |
| label_translation_parameters | [] |
| method | "POST" |
| multipart | false |
| name | "LabReport" |
| priority | 0 |
| required | true |
| row_attr | [] |
| submitted | false |
| translation_domain | "messages" |
| unique_block_prefix | "_LabReport" |
| valid | true |
| value | App\Entity\LabReport {#854 -id: 656 -name: "CBD Full Spectrum Relief & Relax Softgels COA4" -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg?v=1742234264" -source: null -type: "jpg" -project: Proxies\__CG__\App\Entity\Project {#903 -id: 104 -name: "pure cbd" -url: "https://purecbdnc.com/" -prompt: null -chatJson: null -externalLabReportsUrl: null -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …} -productMatchingUrl: null -productUrls: Doctrine\ORM\PersistentCollection {#1556 …} -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …} -labReports: Doctrine\ORM\PersistentCollection {#1558 …} -createdAt: DateTime @1744068184 {#1495 : 2025-04-07 23:23:04.0 UTC (+00:00) } -updatedAt: DateTime @1768199044 {#1485 : 2026-01-12 06:24:04.0 UTC (+00:00) } -spiderSourceMatchingUrls: null -state: "ready_to_hunt" -products: Doctrine\ORM\PersistentCollection {#1560 …} -productPages: Doctrine\ORM\PersistentCollection {#1581 …} -websiteFramework: "shopify" -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}" -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …} -productExcludePaths: null -aILogs: Doctrine\ORM\PersistentCollection {#1586 …} -user: null -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …} -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …} } -labReportSource: null -createdAt: DateTime @1747757403 {#848 : 2025-05-20 16:10:03.0 UTC (+00:00) } -updatedAt: DateTime @1747743079 {#845 : 2025-05-20 12:11:19.0 UTC (+00:00) } -category: null -state: "processed" -expiryDate: "" -extractionDate: "2023-10-15" -thcaPercentage: "0" -totalThcPercentage: "0" -deltaNinePercentage: "0" -deltaNineWithThcaCombined: "0" -comments: null -internalUrl: "https://cbdextract.nw.agency/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte | LoQ | Analyte | LoQ |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n| 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n| 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n| 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n| 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n| 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n| 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n| 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n| 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n| 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n| Acetone | < 50 ppm | n-Butane | < 100 ppm |\n| Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n| Benzene | < 1 ppm | Pentane | < 50 ppm |\n| Chloroform | < 10 ppm | Propane | < 100 ppm |\n| Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n| Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n| Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n| Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n| Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n| 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n| Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n| 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n| Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n| N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n| Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n| Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n| Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n| Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n| Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n| Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n"" -debugData: null -jsonContent: [ "pages" => [ [ "page" => 1 "md" => """ # LIMITS OF QUANTITATION\n \n ## Residual Solvents: ResSolv.2\n \n | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm |\n """ "images" => [ [ "name" => "page_1.jpg" "height" => 0 "width" => 0 "x" => 0 "y" => 0 "type" => "full_page_screenshot" ] ] "charts" => [] "items" => [ [ "type" => "heading" "lvl" => 1 "value" => "LIMITS OF QUANTITATION" "md" => "# LIMITS OF QUANTITATION" ] [ "type" => "heading" "lvl" => 2 "value" => "Residual Solvents: ResSolv.2" "md" => "## Residual Solvents: ResSolv.2" ] [ "type" => "table" "rows" => [ [ "Analyte" "LoQ" "Analyte" "LoQ" ] [ "(+/-)-2-Butanol" "< 10 ppm" "Ethyl Acetate" "< 50 ppm" ] [ "1,1-Dichloroethene" "< 5 ppm" "Ethyl benzene" "< 25 ppm" ] [ "1,2-Dichloroethane" "< 2 ppm" "Ethylene Glycol" "< 100 ppm" ] [ "1,4-Dioxane" "< 25 ppm" "Ethylene Oxide" "< 50 ppm" ] [ "2,2-Dimethylbutane" "< 25 ppm" "Heptane" "< 50 ppm" ] [ "2,3-Dimethylbutane" "< 25 ppm" "Hexane" "< 10 ppm" ] [ "2-Ethoxyethanol" "< 25 ppm" "Isobutane" "< 100 ppm" ] [ "2-Methylbutane (Isopentane)" "< 75 ppm" "Isopropyl acetate" "< 10 ppm" ] [ "2-Methylpentane" "< 25 ppm" "Methanol" "< 50 ppm" ] [ "2-Propanol" "< 50 ppm" "Methylene Chloride" "< 50 ppm" ] [ "3-Methylpentane" "< 25 ppm" "N,N-Dimethylformamide" "< 10 ppm" ] [ "Acetone" "< 50 ppm" "n-Butane" "< 100 ppm" ] [ "Acetonitrile" "< 50 ppm" "Neopentane" "< 100 ppm" ] [ "Benzene" "< 1 ppm" "Pentane" "< 50 ppm" ] [ "Chloroform" "< 10 ppm" "Propane" "< 100 ppm" ] [ "Cumene" "< 100 ppm" "Tetrahydrofuran" "< 10 ppm" ] [ "Cyclohexane" "< 50 ppm" "Toluene" "< 50 ppm" ] [ "Diethyl ether" "< 50 ppm" "Trichloroethene" "< 50 ppm" ] [ "Ethanol" "< 50 ppm" "Xylenes (p-, m-, o-)" "< 50 ppm" ] [ "Nitromethane" "< 25 ppm" "1-Propanol" "< 100 ppm" ] [ "1,2-Dimethoxyethane" "< 10 ppm" "2-Methyl-1-Propanol" "< 100 ppm" ] [ "Pyridine" "< 10 ppm" "1-Butanol" "< 50 ppm" ] [ "2-Methoxyethanol" "< 50 ppm" "Propyl Acetate" "< 50 ppm" ] [ "Formamide" "< 50 ppm" "3-Methyl-1-Butanol" "< 100 ppm" ] [ "N,N-Dimethylacetamide" "< 100 ppm" "Isobutyl Acetate" "< 50 ppm" ] [ "Ethyl Ether" "< 100 ppm" "1-Pentanol" "< 100 ppm" ] [ "Methyl Acetate" "< 100 ppm" "Butyl Acetate" "< 50 ppm" ] [ "Tert-Butylmethyl Ether" "< 50 ppm" "Anisole" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 50 ppm" "N-Methylpyrrolidone" "< 50 ppm" ] [ "Methylbutyl Ketone" "< 25 ppm" "Tetralin" "< 10 ppm" ] [ "Methylisobutyl Ketone" "< 100 ppm" "Sulfolane" "< 10 ppm" ] ] "md" => """ | Analyte | LoQ | Analyte | LoQ |\n | --------------------------- | --------- | --------------------- | --------- |\n | (+/-)-2-Butanol | < 10 ppm | Ethyl Acetate | < 50 ppm |\n | 1,1-Dichloroethene | < 5 ppm | Ethyl benzene | < 25 ppm |\n | 1,2-Dichloroethane | < 2 ppm | Ethylene Glycol | < 100 ppm |\n | 1,4-Dioxane | < 25 ppm | Ethylene Oxide | < 50 ppm |\n | 2,2-Dimethylbutane | < 25 ppm | Heptane | < 50 ppm |\n | 2,3-Dimethylbutane | < 25 ppm | Hexane | < 10 ppm |\n | 2-Ethoxyethanol | < 25 ppm | Isobutane | < 100 ppm |\n | 2-Methylbutane (Isopentane) | < 75 ppm | Isopropyl acetate | < 10 ppm |\n | 2-Methylpentane | < 25 ppm | Methanol | < 50 ppm |\n | 2-Propanol | < 50 ppm | Methylene Chloride | < 50 ppm |\n | 3-Methylpentane | < 25 ppm | N,N-Dimethylformamide | < 10 ppm |\n | Acetone | < 50 ppm | n-Butane | < 100 ppm |\n | Acetonitrile | < 50 ppm | Neopentane | < 100 ppm |\n | Benzene | < 1 ppm | Pentane | < 50 ppm |\n | Chloroform | < 10 ppm | Propane | < 100 ppm |\n | Cumene | < 100 ppm | Tetrahydrofuran | < 10 ppm |\n | Cyclohexane | < 50 ppm | Toluene | < 50 ppm |\n | Diethyl ether | < 50 ppm | Trichloroethene | < 50 ppm |\n | Ethanol | < 50 ppm | Xylenes (p-, m-, o-) | < 50 ppm |\n | Nitromethane | < 25 ppm | 1-Propanol | < 100 ppm |\n | 1,2-Dimethoxyethane | < 10 ppm | 2-Methyl-1-Propanol | < 100 ppm |\n | Pyridine | < 10 ppm | 1-Butanol | < 50 ppm |\n | 2-Methoxyethanol | < 50 ppm | Propyl Acetate | < 50 ppm |\n | Formamide | < 50 ppm | 3-Methyl-1-Butanol | < 100 ppm |\n | N,N-Dimethylacetamide | < 100 ppm | Isobutyl Acetate | < 50 ppm |\n | Ethyl Ether | < 100 ppm | 1-Pentanol | < 100 ppm |\n | Methyl Acetate | < 100 ppm | Butyl Acetate | < 50 ppm |\n | Tert-Butylmethyl Ether | < 50 ppm | Anisole | < 50 ppm |\n | Methylbutyl Ketone | < 50 ppm | N-Methylpyrrolidone | < 50 ppm |\n | Methylbutyl Ketone | < 25 ppm | Tetralin | < 10 ppm |\n | Methylisobutyl Ketone | < 100 ppm | Sulfolane | < 10 ppm | """ "isPerfectTable" => true "csv" => """ "Analyte","LoQ","Analyte","LoQ"\n "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n "Benzene","< 1 ppm","Pentane","< 50 ppm"\n "Chloroform","< 10 ppm","Propane","< 100 ppm"\n "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm" """ ] ] "status" => "OK" "originalOrientationAngle" => 0 "links" => [] "triggeredAutoMode" => false "parsingMode" => "multimodal-openai-gpt4o" "structuredData" => null "noStructuredContent" => false "noTextContent" => false ] ] "job_metadata" => [ "credits_used" => 0 "job_credits_usage" => 0 "job_pages" => 1 "job_auto_mode_triggered_pages" => 0 "job_is_cache_hit" => false ] ] -labName: "Sample Laboratory Inc." -sampleName: "Residual Solvent Analysis Report" -sampleMatrix: "Cannabis Extract" -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/CBDFullSpectrumRelief&RelaxSoftgelsCOA4.jpg" -productType: "cannabis" -aILogs: Doctrine\ORM\PersistentCollection {#964 …} -products: Doctrine\ORM\PersistentCollection {#1018 …} } |