{"id":31677294,"url":"https://github.com/statefarmins/destringify-any-json","last_synced_at":"2026-03-02T00:32:19.257Z","repository":{"id":281033148,"uuid":"936187073","full_name":"StateFarmIns/destringify-any-json","owner":"StateFarmIns","description":"NPM package utility that destringifys and formats any json structure.","archived":false,"fork":false,"pushed_at":"2025-10-02T20:16:17.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-20T19:27:28.176Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StateFarmIns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-20T17:05:44.000Z","updated_at":"2025-10-02T20:16:20.000Z","dependencies_parsed_at":"2025-03-06T16:47:32.850Z","dependency_job_id":null,"html_url":"https://github.com/StateFarmIns/destringify-any-json","commit_stats":null,"previous_names":["statefarmins/json-destringify","statefarmins/destringify-any-json"],"tags_count":0,"template":false,"template_full_name":"StateFarmIns/.github","purl":"pkg:github/StateFarmIns/destringify-any-json","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StateFarmIns%2Fdestringify-any-json","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StateFarmIns%2Fdestringify-any-json/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StateFarmIns%2Fdestringify-any-json/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StateFarmIns%2Fdestringify-any-json/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StateFarmIns","download_url":"https://codeload.github.com/StateFarmIns/destringify-any-json/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StateFarmIns%2Fdestringify-any-json/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29988045,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T22:42:38.399Z","status":"ssl_error","status_checked_at":"2026-03-01T22:41:51.863Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-08T05:02:39.459Z","updated_at":"2026-03-02T00:32:19.217Z","avatar_url":"https://github.com/StateFarmIns.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## What is this project\n    - A repository for tools and code that will aid in the development in the AWs environment\n    - Included functions\n        - destrigify\n\n## What is the destringify function?\n    The problem:\n        When AWS microservices pass an event from one service to the next; the service \n        wraps the event in meta data and stringifies it.  This is repeated each time a \n        resource is passed. This how events that have variable levels of stringification \n        get continually passed through an distributed AWS flow.  \n\n        An example of a log with single and triple levels of stringification.\n\n        \"data\":{\"Records\":[{\"messageId\":\"a59c0eb1-9f86-4e37-8942\",\"receiptHandle\":\"AQEB95j==\",\"body\":\"{\\n \\\"Type\\\" : \n        \\\"Notification\\\",\\n \\\"MessageId\\\" : \\\"fd8e5d6c-fa6a-5571-9747-3d793a1a926c\\\",\\n \\\"SequenceNumber\\\" : \\\"1000000\\\",\\n \n        \\\"TopicArn\\\" : \\\"arn:aws:sns:us-east-1:6:sf-telematics-trace-test5-enrollment-topic.fifo\\\",\\n \\\"Message\\\" : \\\"\n        {\\\\\\\"event_code\\\\\\\":\\\\\\\"EE4220\\\\\\\",\\\\\\\"event_name\\\\\\\":\\\\\\\"Registration Reminder-40\\\\\\\",\n        \\\\\\\"source\\\\\\\":\\\\\\\"EnrollmentLambda-RewriteNewFull\\\\\\\",\\\\\\\"telematics_enrollment_id\\\\\\\":\\\\\\\"91511\\\\\\\",\n        \\\\\\\"physical_object_id\\\\\\\":\\\\\\\"15858412\\\\\\\",\\\\\\\"agre_index_id\\\\\\\":\\\\\\\"3530069169\\\\\\\",\n        \\\\\\\"book_of_business_id\\\\\\\":\\\\\\\"ZS46WM8AL\\\\\\\",\\\\\\\"product_code\\\\\\\":\\\\\\\"20\\\\\\\",\\\\\\\"product_name\\\\\\\":\\\\\\\"DSSB\\\\\\\",\n        \\\\\\\"enrollment_start_reason_code\\\\\\\":\\\\\\\"EN-210000\\\\\\\",\\\\\\\"enrollment_start_date\\\\\\\":\\\\\\\"2024-12-20\\\\\\\",\n        \\\\\\\"enrollment_effective_date\\\\\\\":\\\\\\\"2025-02-07\\\\\\\",\\\\\\\"enrollment_setup_window_end_date\\\\\\\":\\\\\\\"2025-04-08\\\\\\\",\n        \\\\\\\"enrollment_stop_date\\\\\\\":\\\\\\\"9999-12-31\\\\\\\",\\\\\\\"enrollment_complete_date\\\\\\\":\\\\\\\"2025-02-07\\\\\\\",\n        \\\\\\\"enrollment_consent_date\\\\\\\":\\\\\\\"2025-01-30\\\\\\\",\\\\\\\"event_id\\\\\\\":\\\\\\\"6591cdaa-d0d9-4672-b6d5-2ae5393700d2\\\\\\\",\n        \\\\\\\"timestamp\\\\\\\":1738260015994}\\\",\\n \\\"Timestamp\\\" : \\\"2025-01-30T18:00:16.004Z\\\",\\n \\\"UnsubscribeURL\\\" : \n        \\\"https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe\u0026\n        SubscriptionArn=arn:aws:sns:us-east-1::sf-telematics-trace-test5-enrollment-topic.fifo:c62aa\\\",\\n \n        \\\"MessageAttributes\\\" : {\\n \\\"eventTypeCode\\\" : {\\\"Type\\\":\\\"String\\\",\\\"Value\\\":\\\"E20\\\"},\\n \\\"groupId\\\" : \n        {\\\"Type\\\":\\\"String\\\",\\\"Value\\\":\\\"Registration Reminder-40\\\"}\\n }\\n}\",\"attributes\":{\"ApproximateReceiveCount\":\"3\",\n        \"AWSTraceHeader\":\"Root=1-679bbe24-1a9afbcc0a83d3fb;Parent=f8e463248a4c5;Sampled=1;Lineage=2:573fd71f:0\",\n        \"SentTimestamp\":\"17382027\",\"SequenceNumber\":\"18891737812463872\",\"MessageGroupId\":\"m1\",\"SenderId\":\"AIDAYRRVD2ENUBX\",\n        \"MessageDeduplicationId\":\"91768beacb3c9690d0362422141784aaa38c90b\"....\n        \n        Due to the distributed nature of AWS microservice infrastructure, there are a lot of logs/events like this.  \n        Logs can be single, double, triple, quadrupled, ect.. stringified at different levels within a json\n        structure.\n    \n    The challenges:\n        1. During testing, whether automated or manual, the data must always be correctly strigified.\n        2. If a service is called by multiple resources, then input can have variable levels of\n           stringification.  \n        3. It can make the structures(from logs or elsewhere) difficult to read/edit.\n\n    The solution:\n        This function will always return a json object with no stringification.  It will fully parse any json object \n        regardless of the level of stringification at any level within a json object.\n\n    Use cases:\n        1. Include this code in a script that can take a “wall of text\" as input and convert it into \n           something that is readable and editable.  \n\n        2. Called at the beginning of a lambda so that stringification is completely ignored.  \n           This is especially useful when creating custom input for testing purposes.  The test input does not need \n           to be stringified or destringified before being sent into the app.  This applies to unit/integration/manual\n           testing.\n\n        3. An applications that has multiple source of input that contain variable levels of strigification. \n           Especially if the app can be subscribed to and the level of stringification that is received in \n           future events is unknown.\n    \n```javascript\n// Example:\n// Import the destringify function\nimport { destringify } from '@statefarmins/destringify-any-json';\n\n// Use it to parse any JSON structure with any level of stringification\nconst destringifiedJSON = destringify(jsonStructure);\n```\n\n## Contacts\n    - Eric Schaumburg(Blaane15)\n    - Matthew Walden(mwalden2004)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatefarmins%2Fdestringify-any-json","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatefarmins%2Fdestringify-any-json","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatefarmins%2Fdestringify-any-json/lists"}