{"id":17472872,"url":"https://github.com/deviavir/node-transip","last_synced_at":"2025-03-17T07:31:09.600Z","repository":{"id":27529748,"uuid":"31010877","full_name":"DeviaVir/node-transip","owner":"DeviaVir","description":"Node.JS library to communicate with the TransIP API","archived":false,"fork":false,"pushed_at":"2023-06-01T19:55:52.000Z","size":56,"stargazers_count":9,"open_issues_count":0,"forks_count":8,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-02-24T04:38:10.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://chase.sillevis.net/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeviaVir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2015-02-19T10:39:46.000Z","updated_at":"2023-04-11T09:46:54.000Z","dependencies_parsed_at":"2024-10-27T12:15:30.284Z","dependency_job_id":"3d3e1568-6046-468e-b895-8f42b991f1b5","html_url":"https://github.com/DeviaVir/node-transip","commit_stats":null,"previous_names":["dualdev/node-transip"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeviaVir%2Fnode-transip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeviaVir%2Fnode-transip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeviaVir%2Fnode-transip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeviaVir%2Fnode-transip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeviaVir","download_url":"https://codeload.github.com/DeviaVir/node-transip/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852390,"owners_count":20358266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-10-18T17:46:40.822Z","updated_at":"2025-03-17T07:31:09.313Z","avatar_url":"https://github.com/DeviaVir.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-transip\nNode.JS Promise-based library to communicate with the TransIP API\n\nThis library creates a new instance of \"TransIP\" for you, exposing a few libraries and methods you can use to communicate.\n\n**Currently only the DomainService methods are supported**\n\nTo start a new TransIP instance:\n\n```js\nvar TransIP = require('transip');\n\nvar transipInstance = new TransIP(login, privateKey);\n```\n\n`login` is your TransIP login username. An example of the `privateKey` can be found in `config/data.example.js`.\n\n## Enable the TransIP API\n\nThe TransIP API is disabled by default, you will have to enable it manually in the control panel. You can create a private key and whitelist your servers after.\n\n## Running the integration tests\n\nUnfortunately, it's not possible or safe for me to publish my private keys so you can run my tests directly. You'll have to adapt the tests to your environment. I run these tests by hand, for now.\n\n## DomainService\n\n### transipInstance.domainService.batchCheckAvailability\n\n```js\ntransipInstance.domainService.batchCheckAvailability(['dualdev.com', 'sillevis.net']).then(function(domains) {\n  // Returns array of domain object \n  // { 'name': 'domain.ext', 'status' 'unavailable|free', 'actions': {} }\n});\n```\n\n### transipInstance.domainService.checkAvailability\n\n```js\ntransipInstance.domainService.checkAvailability('dualdev.com').then(function(domain) {\n  // Returns domain object\n  // { 'name': 'domain.ext', 'status': 'unavailable|free', 'actions': {} }\n});\n```\n\n### transipInstance.domainService.getWhois\n\n```js\ntransipInstance.domainService.getWhois('dualdev.com').then(function(whois) {\n  // Returns whois text (includes line breaks)\n});\n```\n\n### transipInstance.domainService.getDomainNames\n\n```js\ntransipInstance.domainService.getDomainNames().then(function(domains) {\n  // Returns array of domain names\n});\n```\n\n### transipInstance.domainService.getInfo\n\n```js\ntransipInstance.domainService.getInfo('sillevis.net').then(function(info) {\n  // Returns domain object\n  // { 'nameservers': {}, 'contacts': {}, 'dnsEntries': {}, 'branding': {}, 'name': 'domain.ext', 'isLocked': 'true|false', 'registrationDate': /*unix timestamp*/ }\n})\n```\n\n### transipInstance.domainService.batchGetInfo\n\n```js\ntransipInstance.domainService.batchGetInfo(['sillevis.net', 'sierveld.me']).then(function(info) {\n  // Returns domain objects\n  // [{ 'nameservers': {}, 'contacts': {}, 'dnsEntries': {}, 'branding': {}, 'name': 'domain.ext', 'isLocked': 'true|false', 'registrationDate': /*unix timestamp*/ }]\n});\n\n```\n\n### transipInstance.domainService.getAuthCode\n\n```js\ntransipInstance.domainService.getAuthCode('sillevis.net').then(function(authCode) {\n  // Returns authCode\n  // 'authCode'\n})\n```\n\n### transipInstance.domainService.getIsLocked\n\n```js\ntransipInstance.domainService.getIsLocked('sillevis.net').then(function(isLocked) {\n  // Returns lock status for domain\n  // boolean\n})\n```\n\n### transipInstance.domainService.register\n\n```js\ntransipInstance.domainService.register({\n  'name': 'sillevis-test2.nl',\n  'nameservers': {\n    'item': [{\n      'hostname': 'ns01.dualdev.com',\n      'ipv4': '',\n      'ipv6': ''\n    }, {\n      'hostname': 'ns02.dualdev.com',\n      'ipv4': '',\n      'ipv6': ''\n    }, {\n      'hostname': 'ns03.dualdev.com',\n      'ipv4': '',\n      'ipv6': ''\n    }]\n  },\n  'contacts': {\n    'item': [{\n      'type': 'registrant',\n      'firstName': 'Chase',\n      'middleName': null,\n      'lastName': 'Sillevis',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'info@dualdev.com',\n      'country': 'NL' // Two letter code\n    }, {\n      'type': 'administrative',\n      'firstName': 'René',\n      'middleName': null,\n      'lastName': 'van Sweeden',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'sales@dualdev.com',\n      'country': 'NL' // Two letter code\n    }, {\n      'type': 'technical',\n      'firstName': 'Chase',\n      'middleName': null,\n      'lastName': 'Sillevis',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'tech@dualdev.com',\n      'country': 'NL' // Two letter code\n    }]\n  }\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.cancel\n\nPossible arguments for ending: `end` or `immediately`\n\n```js\ntransipInstance.domainService.cancel('sillevis.nl', 'end').then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.transferWithOwnerChange\n\n```js\ntransipInstance.domainService.transferWithOwnerChange({\n  'name': 'sillevis-test2.nl',\n  'contacts': {\n    'item': [{\n      'type': 'registrant',\n      'firstName': 'Chase',\n      'middleName': null,\n      'lastName': 'Sillevis',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'info@dualdev.com',\n      'country': 'NL' // Two letter code\n    }, {\n      'type': 'administrative',\n      'firstName': 'René',\n      'middleName': null,\n      'lastName': 'van Sweeden',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'sales@dualdev.com',\n      'country': 'NL' // Two letter code\n    }, {\n      'type': 'technical',\n      'firstName': 'Chase',\n      'middleName': null,\n      'lastName': 'Sillevis',\n      'companyName': 'DualDev',\n      'companyKvk': '34372569',\n      'companyType': 'VOF',\n      'street': 'Ravelrode',\n      'number': '37',\n      'postalCode': '2717GD',\n      'city': 'Zoetermeer',\n      'phoneNumber': '+31612345678',\n      'faxNumber': '',\n      'email': 'tech@dualdev.com',\n      'country': 'NL' // Two letter code\n    }]\n  }\n}, '12345abcdef').then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.transferWithoutOwnerChange\n\n```js\ntransipInstance.domainService.transferWithoutOwnerChange({\n  'name': 'sillevis-test3.nl'\n}, 'authCode').then(function(response) {\n  // Returns reponse\n  // boolean\n})\n```\n\n### transipInstance.domainService.setNameservers\n\n```js\ntransipInstance.domainService.setNameservers('sillevis.net', {\n  'hostname': 'dana.ns.cloudflare.com',\n  'ipv4': '',\n  'ipv6': ''\n}, {\n  'hostname': 'tim.ns.cloudflare.com',\n  'ipv4': '',\n  'ipv6': ''\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.setLock\n\n```js\ntransipInstance.domainService.setLock('sillevis.net').then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.unsetLock\n\n```js\ntransipInstance.domainService.unsetLock('sillevis.net').then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.setDnsEntries\n\nPlease note that this function will replace **all** DNS entries\n\n```js\ntransipInstance.domainService.setDnsEntries('sillevis.net', {\n  'item': [{\n    'name': 'test',\n    'expire': 10800,\n    'type': 'CNAME',\n    'content': 'lb.dualdev.com.' // Don't forget the \".\" at the end here, when using CNAME for example\n  }]\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.setOwner\n\n```js\ntransipInstance.domainService.setOwner('sillevis.net', {\n  'type': 'registrant',\n  'firstName': 'Chase',\n  'middleName': null,\n  'lastName': 'Sillevis',\n  'companyName': 'DualDev',\n  'companyKvk': '34372569',\n  'companyType': 'VOF',\n  'street': 'Ravelrode',\n  'number': '37',\n  'postalCode': '2717GD',\n  'city': 'Zoetermeer',\n  'phoneNumber': '+31612345678',\n  'faxNumber': '',\n  'email': 'info@dualdev.com',\n  'country': 'NL' // Two letter code\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.setContacts\n\n```js\ntransipInstance.domainService.setContacts('sillevis.net', {\n  'item': [{\n    'type': 'registrant',\n    'firstName': 'Chase',\n    'middleName': null,\n    'lastName': 'Sillevis',\n    'companyName': 'DualDev',\n    'companyKvk': '34372569',\n    'companyType': 'VOF',\n    'street': 'Ravelrode',\n    'number': '37',\n    'postalCode': '2717GD',\n    'city': 'Zoetermeer',\n    'phoneNumber': '+31612345678',\n    'faxNumber': '',\n    'email': 'info@dualdev.com',\n    'country': 'NL' // Two letter code\n  }, {\n    'type': 'administrative',\n    'firstName': 'René',\n    'middleName': null,\n    'lastName': 'van Sweeden',\n    'companyName': 'DualDev',\n    'companyKvk': '34372569',\n    'companyType': 'VOF',\n    'street': 'Ravelrode',\n    'number': '37',\n    'postalCode': '2717GD',\n    'city': 'Zoetermeer',\n    'phoneNumber': '+31612345678',\n    'faxNumber': '',\n    'email': 'sales@dualdev.com',\n    'country': 'NL' // Two letter code\n  }, {\n    'type': 'technical',\n    'firstName': 'Chase',\n    'middleName': null,\n    'lastName': 'Sillevis',\n    'companyName': 'DualDev',\n    'companyKvk': '34372569',\n    'companyType': 'VOF',\n    'street': 'Ravelrode',\n    'number': '37',\n    'postalCode': '2717GD',\n    'city': 'Zoetermeer',\n    'phoneNumber': '+31612345678',\n    'faxNumber': '',\n    'email': 'tech@dualdev.com',\n    'country': 'NL' // Two letter code\n  }]\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.getAllTldInfos\n\n```js\ntransipInstance.domainService.getAllTldInfos().then(function(response) {\n  // Returns array with all TLD objects\n  // [ { 'name': '.nl', 'price': '9.99', 'renewalPrice': '29', capabilities:\n  //   [ 'canRegister',\n  //     'canSetContacts',\n  //     'canSetNameservers',\n  //     'canSetOwner',\n  //     'canTransferWithOwnerChange',\n  //     'requiresAuthCode' ]} ],\n  //   registrationPeriodLength: '12',\n  //   cancelTimeFrame: '1' } ]\n})\n```\n\n### transipInstance.domainService.getTldInfo\n\n```js\ntransipInstance.domainService.getTldInfo('nl').then(function(response) {\n  // Returns object with this TLDs info\n  // { 'name': '.nl', 'price': '9.99', 'renewalPrice': '29', capabilities:\n  //   [ 'canRegister',\n  //     'canSetContacts',\n  //     'canSetNameservers',\n  //     'canSetOwner',\n  //     'canTransferWithOwnerChange',\n  //     'requiresAuthCode' ]} ],\n  //   registrationPeriodLength: '12',\n  //   cancelTimeFrame: '1' }\n})\n```\n\n### transipInstance.domainService.getCurrentDomainAction\n\n```js\ntransipInstance.domainService.getCurrentDomainAction('sillevis.net').then(function(response) {\n  // Returns object with current domain action\n  // { 'name': 'sillevis.net', 'message': null, 'hasFailed': 'false', 'status': null }\n})\n```\n\n### transipInstance.domainService.retryCurrentDomainActionWithNewData\n\n```js\ntransipInstance.domainService.retryCurrentDomainActionWithNewData({\n  'name': 'sillevis.net'\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.retryTransferWithDifferentAuthCode\n\n```js\ntransipInstance.domainService.retryTransferWithDifferentAuthCode({\n  'name': 'sillevis-test4.nl'\n}, '23456789').then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n\n### transipInstance.domainService.cancelDomainAction\n\n```js\ntransipInstance.domainService.cancelDomainAction({\n  'name': 'sierveld.me'\n}).then(function(response) {\n  // Returns response\n  // boolean\n})\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeviavir%2Fnode-transip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeviavir%2Fnode-transip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeviavir%2Fnode-transip/lists"}