{"id":16323494,"url":"https://github.com/you54f/pact-plugin-template-node","last_synced_at":"2026-04-20T03:02:49.506Z","repository":{"id":66228873,"uuid":"572533856","full_name":"YOU54F/pact-plugin-template-node","owner":"YOU54F","description":"Pact 🔗 Plugin 🔌 template for the TypeScript 🐱‍💻 language = 🫶","archived":false,"fork":false,"pushed_at":"2023-03-12T09:33:54.000Z","size":74,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-16T23:54:08.151Z","etag":null,"topics":["contract-testing","grpc","grpc-server","pact","pact-plugin","quick-start","template","typescript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YOU54F.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-30T13:35:16.000Z","updated_at":"2023-03-08T20:01:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"71bff204-788c-4025-9f5f-20c443ebf860","html_url":"https://github.com/YOU54F/pact-plugin-template-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YOU54F/pact-plugin-template-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YOU54F%2Fpact-plugin-template-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YOU54F%2Fpact-plugin-template-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YOU54F%2Fpact-plugin-template-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YOU54F%2Fpact-plugin-template-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YOU54F","download_url":"https://codeload.github.com/YOU54F/pact-plugin-template-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YOU54F%2Fpact-plugin-template-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32031070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["contract-testing","grpc","grpc-server","pact","pact-plugin","quick-start","template","typescript"],"created_at":"2024-10-10T22:54:57.779Z","updated_at":"2026-04-20T03:02:49.484Z","avatar_url":"https://github.com/YOU54F.png","language":"JavaScript","readme":"\n\n\n## Lifecycle of Requests for this plugin\n\n🚧 - Please note this is still under active development and does not currently work e2e! Busy building some others and will come back to it. In the mean time visit 👉 https://docs.pact.io/plugins for some working templates 👌\n\n\n### During consumer test\n\n2022/11/29 16:16:39 Received InitPlugin request: plugin-driver-rust 0.1.16\n2022/11/29 16:16:39 Received UpdateCatalogue request: [type:MATCHER key:\"v3-includes\" type:MATCHER key:\"v3-decimal-type\" type:CONTENT_GENERATOR key:\"binary\" values:{key:\"content-types\" value:\"application/octet-stream\"} type:MATCHER key:\"v4-max-equals-ignore-order\" type:TRANSPORT key:\"https\" type:TRANSPORT key:\"http\" type:MATCHER key:\"v3-time\" type:MATCHER key:\"v3-null\" type:MATCHER key:\"v1-equality\" type:MATCHER key:\"v4-array-contains\" key:\"json\" values:{key:\"content-types\" value:\"application/.*json,application/json-rpc,application/jsonrequest\"} key:\"matt\" values:{key:\"content-types\" value:\"text/matt;application/matt\"} key:\"text\" values:{key:\"content-types\" value:\"text/plain\"} key:\"xml\" values:{key:\"content-types\" value:\"application/.*xml,text/xml\"} type:MATCHER key:\"v3-content-type\" type:MATCHER key:\"v4-not-empty\" type:CONTENT_GENERATOR key:\"json\" values:{key:\"content-types\" value:\"application/.*json,application/json-rpc,application/jsonrequest\"} type:MATCHER key:\"v3-integer-type\" type:MATCHER key:\"v2-minmax-type\" type:TRANSPORT key:\"matt\" type:MATCHER key:\"v4-semver\" type:MATCHER key:\"v2-type\" type:MATCHER key:\"v2-max-type\" key:\"multipart-form-data\" values:{key:\"content-types\" value:\"multipart/form-data,multipart/mixed\"} type:MATCHER key:\"v4-equals-ignore-order\" type:MATCHER key:\"v3-datetime\" type:MATCHER key:\"v2-min-type\" type:MATCHER key:\"v4-min-equals-ignore-order\" type:MATCHER key:\"v2-regex\" type:MATCHER key:\"v3-number-type\" type:MATCHER key:\"v4-minmax-equals-ignore-order\" type:MATCHER key:\"v3-date\"]\n2022/11/29 16:16:40 Received ConfigureInteraction request: application/matt fields:{key:\"request\" value:{struct_value:{fields:{key:\"body\" value:{string_value:\"hellotcp\"}}}}} fields:{key:\"response\" value:{struct_value:{fields:{key:\"body\" value:{string_value:\"tcpworld\"}}}}}\n2022/11/29 16:16:40 Parsed ContentsConfig: hellotcp tcpworld \u003cnil\u003e\n2022/11/29 16:16:40 Received StartMockServer request: hostInterface:\"127.0.0.1\" pact:\"{\\\"consumer\\\":{\\\"name\\\":\\\"myconsumer\\\"},\\\"interactions\\\":[{\\\"description\\\":\\\"a MATT message\\\",\\\"key\\\":\\\"daf974126abe44c0\\\",\\\"pending\\\":false,\\\"request\\\":{\\\"contents\\\":{\\\"content\\\":\\\"MATThellotcpMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}},\\\"response\\\":[{\\\"contents\\\":{\\\"content\\\":\\\"MATTtcpworldMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}}],\\\"transport\\\":\\\"matt\\\",\\\"type\\\":\\\"Synchronous/Messages\\\"}],\\\"metadata\\\":{\\\"pact-js\\\":{\\\"version\\\":\\\"10.3.0\\\"},\\\"pactRust\\\":{\\\"ffi\\\":\\\"0.3.15\\\",\\\"models\\\":\\\"1.0.1\\\"},\\\"pactSpecification\\\":{\\\"version\\\":\\\"4.0\\\"},\\\"plugins\\\":[{\\\"configuration\\\":{},\\\"name\\\":\\\"matt\\\",\\\"version\\\":\\\"0.0.4\\\"}]},\\\"provider\\\":{\\\"name\\\":\\\"myprovider\\\"}}\"\n2022/11/29 16:16:40 Starting TCP server 328573a1-b1d5-4468-a94c-4161304f1b66 on port 56280\n2022/11/29 16:16:40 TCP server started 328573a1-b1d5-4468-a94c-4161304f1b66 on port 56280\n2022/11/29 16:16:40 Received GetMockServerResults request: serverKey:\"328573a1-b1d5-4468-a94c-4161304f1b66\"\n2022/11/29 16:16:40 Received GetMockServerResults request: serverKey:\"328573a1-b1d5-4468-a94c-4161304f1b66\"\n2022/11/29 16:16:40 Received ShutdownMockServer request: serverKey:\"328573a1-b1d5-4468-a94c-4161304f1b66\"\n\n### During Verification\n\n2022/11/29 16:16:44 starting server on port 56291\n2022/11/29 16:16:44 Received InitPlugin request: plugin-driver-rust 0.1.16\n2022/11/29 16:16:44 Received UpdateCatalogue request: [type:MATCHER key:\"v3-time\" type:MATCHER key:\"v4-max-equals-ignore-order\" type:MATCHER key:\"v2-min-type\" type:MATCHER key:\"v3-null\" type:MATCHER key:\"v2-max-type\" type:CONTENT_GENERATOR key:\"json\" values:{key:\"content-types\" value:\"application/.*json,application/json-rpc,application/jsonrequest\"} type:MATCHER key:\"v1-equality\" type:TRANSPORT key:\"matt\" key:\"xml\" values:{key:\"content-types\" value:\"application/.*xml,text/xml\"} type:MATCHER key:\"v3-datetime\" key:\"multipart-form-data\" values:{key:\"content-types\" value:\"multipart/form-data,multipart/mixed\"} type:MATCHER key:\"v2-regex\" type:MATCHER key:\"v3-decimal-type\" type:MATCHER key:\"v2-minmax-type\" type:MATCHER key:\"v4-min-equals-ignore-order\" key:\"text\" values:{key:\"content-types\" value:\"text/plain\"} key:\"json\" values:{key:\"content-types\" value:\"application/.*json,application/json-rpc,application/jsonrequest\"} type:CONTENT_GENERATOR key:\"binary\" values:{key:\"content-types\" value:\"application/octet-stream\"} type:MATCHER key:\"v4-not-empty\" key:\"matt\" values:{key:\"content-types\" value:\"text/matt;application/matt\"} type:MATCHER key:\"v3-date\" type:MATCHER key:\"v3-integer-type\" type:MATCHER key:\"v4-array-contains\" type:MATCHER key:\"v3-includes\" type:MATCHER key:\"v3-number-type\" type:MATCHER key:\"v4-minmax-equals-ignore-order\" type:MATCHER key:\"v3-content-type\" type:MATCHER key:\"v4-equals-ignore-order\" type:MATCHER key:\"v4-semver\" type:MATCHER key:\"v2-type\"]\n2022/11/29 16:16:44 Received PrepareInteractionForVerification request: pact:\"{\\\"consumer\\\":{\\\"name\\\":\\\"myconsumer\\\"},\\\"interactions\\\":[{\\\"description\\\":\\\"a MATT message\\\",\\\"key\\\":\\\"daf974126abe44c0\\\",\\\"pending\\\":false,\\\"request\\\":{\\\"contents\\\":{\\\"content\\\":\\\"MATThellotcpMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}},\\\"response\\\":[{\\\"contents\\\":{\\\"content\\\":\\\"MATTtcpworldMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}}],\\\"transport\\\":\\\"matt\\\",\\\"type\\\":\\\"Synchronous/Messages\\\"},{\\\"description\\\":\\\"an HTTP request to /matt\\\",\\\"key\\\":\\\"b6c5b973534175ec\\\",\\\"pending\\\":false,\\\"providerStates\\\":[{\\\"name\\\":\\\"the Matt protocol exists\\\"}],\\\"request\\\":{\\\"body\\\":{\\\"content\\\":\\\"MATThelloMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false},\\\"headers\\\":{\\\"content-type\\\":[\\\"application/matt\\\"]},\\\"method\\\":\\\"POST\\\",\\\"path\\\":\\\"/matt\\\"},\\\"response\\\":{\\\"body\\\":{\\\"content\\\":\\\"MATTworldMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false},\\\"headers\\\":{\\\"content-type\\\":[\\\"application/matt\\\"]},\\\"status\\\":200},\\\"type\\\":\\\"Synchronous/HTTP\\\"}],\\\"metadata\\\":{\\\"pact-js\\\":{\\\"version\\\":\\\"10.3.0\\\"},\\\"pactRust\\\":{\\\"ffi\\\":\\\"0.3.15\\\",\\\"mockserver\\\":\\\"0.9.6\\\",\\\"models\\\":\\\"1.0.1\\\"},\\\"pactSpecification\\\":{\\\"version\\\":\\\"4.0\\\"},\\\"plugins\\\":[{\\\"configuration\\\":{},\\\"name\\\":\\\"matt\\\",\\\"version\\\":\\\"0.0.4\\\"}]},\\\"provider\\\":{\\\"name\\\":\\\"myprovider\\\"}}\" interactionKey:\"daf974126abe44c0\" config:{fields:{key:\"host\" value:{string_value:\"127.0.0.1\"}} fields:{key:\"port\" value:{number_value:8887}}}\n2022/11/29 16:16:44 Received VerifyInteraction request: interactionData:{body:{contentType:\"application/matt\" content:{value:\"MATThellotcpMATT\"}}} config:{fields:{key:\"host\" value:{string_value:\"127.0.0.1\"}} fields:{key:\"port\" value:{number_value:8887}}} pact:\"{\\\"consumer\\\":{\\\"name\\\":\\\"myconsumer\\\"},\\\"interactions\\\":[{\\\"description\\\":\\\"a MATT message\\\",\\\"key\\\":\\\"daf974126abe44c0\\\",\\\"pending\\\":false,\\\"request\\\":{\\\"contents\\\":{\\\"content\\\":\\\"MATThellotcpMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}},\\\"response\\\":[{\\\"contents\\\":{\\\"content\\\":\\\"MATTtcpworldMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false}}],\\\"transport\\\":\\\"matt\\\",\\\"type\\\":\\\"Synchronous/Messages\\\"},{\\\"description\\\":\\\"an HTTP request to /matt\\\",\\\"key\\\":\\\"b6c5b973534175ec\\\",\\\"pending\\\":false,\\\"providerStates\\\":[{\\\"name\\\":\\\"the Matt protocol exists\\\"}],\\\"request\\\":{\\\"body\\\":{\\\"content\\\":\\\"MATThelloMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false},\\\"headers\\\":{\\\"content-type\\\":[\\\"application/matt\\\"]},\\\"method\\\":\\\"POST\\\",\\\"path\\\":\\\"/matt\\\"},\\\"response\\\":{\\\"body\\\":{\\\"content\\\":\\\"MATTworldMATT\\\",\\\"contentType\\\":\\\"application/matt\\\",\\\"contentTypeHint\\\":\\\"DEFAULT\\\",\\\"encoded\\\":false},\\\"headers\\\":{\\\"content-type\\\":[\\\"application/matt\\\"]},\\\"status\\\":200},\\\"type\\\":\\\"Synchronous/HTTP\\\"}],\\\"metadata\\\":{\\\"pact-js\\\":{\\\"version\\\":\\\"10.3.0\\\"},\\\"pactRust\\\":{\\\"ffi\\\":\\\"0.3.15\\\",\\\"mockserver\\\":\\\"0.9.6\\\",\\\"models\\\":\\\"1.0.1\\\"},\\\"pactSpecification\\\":{\\\"version\\\":\\\"4.0\\\"},\\\"plugins\\\":[{\\\"configuration\\\":{},\\\"name\\\":\\\"matt\\\",\\\"version\\\":\\\"0.0.4\\\"}]},\\\"provider\\\":{\\\"name\\\":\\\"myprovider\\\"}}\" interactionKey:\"daf974126abe44c0\"\n2022/11/29 16:16:44 Received CompareContents request: expected:{contentType:\"application/matt\" content:{value:\"MATTworldMATT\"}} actual:{contentType:\"application/matt;charset=utf-8\" content:{value:\"MATTworldMATT\"}} allow_unexpected_keys:true pluginConfiguration:{interactionConfiguration:{} pactConfiguration:{}}\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyou54f%2Fpact-plugin-template-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyou54f%2Fpact-plugin-template-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyou54f%2Fpact-plugin-template-node/lists"}