@newfold/huapi-js 0.1.0-beta.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +83 -0
  2. package/package.json +15 -0
  3. package/src/handlers.d.ts +2 -0
  4. package/src/handlers.js +7 -0
  5. package/src/index.d.ts +1 -0
  6. package/src/index.js +5 -0
  7. package/src/lib/handlers/index.d.ts +5 -0
  8. package/src/lib/handlers/index.js +8 -0
  9. package/src/lib/handlers/sites/data/sites.d.ts +19 -0
  10. package/src/lib/handlers/sites/data/sites.js +178 -0
  11. package/src/lib/handlers/sites/getHostingSitesHandler.d.ts +9 -0
  12. package/src/lib/handlers/sites/getHostingSitesHandler.js +17 -0
  13. package/src/orval-generated/index.d.ts +336 -0
  14. package/src/orval-generated/index.js +398 -0
  15. package/src/orval-generated/index.msw.d.ts +127 -0
  16. package/src/orval-generated/index.msw.js +100 -0
  17. package/src/orval-generated/models/addonsCodeguardBackupCreate200.d.ts +10 -0
  18. package/src/orval-generated/models/addonsCodeguardBackupCreate200.js +9 -0
  19. package/src/orval-generated/models/addonsCodeguardBackupCreateBody.d.ts +13 -0
  20. package/src/orval-generated/models/addonsCodeguardBackupCreateBody.js +9 -0
  21. package/src/orval-generated/models/addonsCodeguardBackupDownload200.d.ts +10 -0
  22. package/src/orval-generated/models/addonsCodeguardBackupDownload200.js +9 -0
  23. package/src/orval-generated/models/addonsCodeguardBackupDownloadBody.d.ts +15 -0
  24. package/src/orval-generated/models/addonsCodeguardBackupDownloadBody.js +9 -0
  25. package/src/orval-generated/models/addonsCodeguardBackupRestore200.d.ts +10 -0
  26. package/src/orval-generated/models/addonsCodeguardBackupRestore200.js +9 -0
  27. package/src/orval-generated/models/addonsCodeguardBackupRestoreBody.d.ts +17 -0
  28. package/src/orval-generated/models/addonsCodeguardBackupRestoreBody.js +9 -0
  29. package/src/orval-generated/models/addonsCodeguardBackups200.d.ts +11 -0
  30. package/src/orval-generated/models/addonsCodeguardBackups200.js +2 -0
  31. package/src/orval-generated/models/addonsCodeguardBackups200BackupsItem.d.ts +13 -0
  32. package/src/orval-generated/models/addonsCodeguardBackups200BackupsItem.js +2 -0
  33. package/src/orval-generated/models/addonsCodeguardBackups200BackupsItemDatabaseBackupsItem.d.ts +13 -0
  34. package/src/orval-generated/models/addonsCodeguardBackups200BackupsItemDatabaseBackupsItem.js +9 -0
  35. package/src/orval-generated/models/addonsCodeguardBackupsParams.d.ts +10 -0
  36. package/src/orval-generated/models/addonsCodeguardBackupsParams.js +9 -0
  37. package/src/orval-generated/models/addonsCodeguardDatabaseBackupCreate200.d.ts +10 -0
  38. package/src/orval-generated/models/addonsCodeguardDatabaseBackupCreate200.js +9 -0
  39. package/src/orval-generated/models/addonsCodeguardDatabaseBackupCreateBody.d.ts +13 -0
  40. package/src/orval-generated/models/addonsCodeguardDatabaseBackupCreateBody.js +9 -0
  41. package/src/orval-generated/models/addonsCodeguardDatabaseBackupList200.d.ts +11 -0
  42. package/src/orval-generated/models/addonsCodeguardDatabaseBackupList200.js +2 -0
  43. package/src/orval-generated/models/addonsCodeguardDatabaseBackupList200BackupsItem.d.ts +11 -0
  44. package/src/orval-generated/models/addonsCodeguardDatabaseBackupList200BackupsItem.js +9 -0
  45. package/src/orval-generated/models/addonsCodeguardDatabaseBackupListParams.d.ts +11 -0
  46. package/src/orval-generated/models/addonsCodeguardDatabaseBackupListParams.js +9 -0
  47. package/src/orval-generated/models/addonsCodeguardDatabaseBackupRestore200.d.ts +10 -0
  48. package/src/orval-generated/models/addonsCodeguardDatabaseBackupRestore200.js +9 -0
  49. package/src/orval-generated/models/addonsCodeguardDatabaseBackupRestoreBody.d.ts +15 -0
  50. package/src/orval-generated/models/addonsCodeguardDatabaseBackupRestoreBody.js +9 -0
  51. package/src/orval-generated/models/addonsCodeguardDatabaseList200.d.ts +12 -0
  52. package/src/orval-generated/models/addonsCodeguardDatabaseList200.js +2 -0
  53. package/src/orval-generated/models/addonsCodeguardDatabaseList200DatabasesItem.d.ts +11 -0
  54. package/src/orval-generated/models/addonsCodeguardDatabaseList200DatabasesItem.js +2 -0
  55. package/src/orval-generated/models/addonsCodeguardDatabaseList200DatabasesItemDatabaseBackup.d.ts +13 -0
  56. package/src/orval-generated/models/addonsCodeguardDatabaseList200DatabasesItemDatabaseBackup.js +9 -0
  57. package/src/orval-generated/models/addonsCodeguardLoginLinkGenerate200.d.ts +10 -0
  58. package/src/orval-generated/models/addonsCodeguardLoginLinkGenerate200.js +9 -0
  59. package/src/orval-generated/models/addonsCodeguardPlanInfo200.d.ts +17 -0
  60. package/src/orval-generated/models/addonsCodeguardPlanInfo200.js +2 -0
  61. package/src/orval-generated/models/addonsCodeguardPlanInfo200SeatsItem.d.ts +12 -0
  62. package/src/orval-generated/models/addonsCodeguardPlanInfo200SeatsItem.js +9 -0
  63. package/src/orval-generated/models/addonsCodeguardWebsiteBackupCreate200.d.ts +10 -0
  64. package/src/orval-generated/models/addonsCodeguardWebsiteBackupCreate200.js +9 -0
  65. package/src/orval-generated/models/addonsCodeguardWebsiteBackupCreateBody.d.ts +11 -0
  66. package/src/orval-generated/models/addonsCodeguardWebsiteBackupCreateBody.js +9 -0
  67. package/src/orval-generated/models/addonsCodeguardWebsiteBackupList200.d.ts +11 -0
  68. package/src/orval-generated/models/addonsCodeguardWebsiteBackupList200.js +2 -0
  69. package/src/orval-generated/models/addonsCodeguardWebsiteBackupList200BackupsItem.d.ts +13 -0
  70. package/src/orval-generated/models/addonsCodeguardWebsiteBackupList200BackupsItem.js +9 -0
  71. package/src/orval-generated/models/addonsCodeguardWebsiteBackupListParams.d.ts +10 -0
  72. package/src/orval-generated/models/addonsCodeguardWebsiteBackupListParams.js +9 -0
  73. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore200.d.ts +10 -0
  74. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore200.js +9 -0
  75. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore400.d.ts +12 -0
  76. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore400.js +2 -0
  77. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore400Error.d.ts +10 -0
  78. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestore400Error.js +9 -0
  79. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestoreBody.d.ts +13 -0
  80. package/src/orval-generated/models/addonsCodeguardWebsiteBackupRestoreBody.js +9 -0
  81. package/src/orval-generated/models/addonsCodeguardWebsiteList200.d.ts +11 -0
  82. package/src/orval-generated/models/addonsCodeguardWebsiteList200.js +2 -0
  83. package/src/orval-generated/models/addonsCodeguardWebsiteList200WebsiteListItem.d.ts +11 -0
  84. package/src/orval-generated/models/addonsCodeguardWebsiteList200WebsiteListItem.js +2 -0
  85. package/src/orval-generated/models/addonsCodeguardWebsiteList200WebsiteListItemWebsite.d.ts +12 -0
  86. package/src/orval-generated/models/addonsCodeguardWebsiteList200WebsiteListItemWebsite.js +9 -0
  87. package/src/orval-generated/models/hostingAddons200.d.ts +11 -0
  88. package/src/orval-generated/models/hostingAddons200.js +2 -0
  89. package/src/orval-generated/models/hostingAddons200RowsItem.d.ts +13 -0
  90. package/src/orval-generated/models/hostingAddons200RowsItem.js +9 -0
  91. package/src/orval-generated/models/hostingAddonsParams.d.ts +12 -0
  92. package/src/orval-generated/models/hostingAddonsParams.js +9 -0
  93. package/src/orval-generated/models/hostingFtpList200.d.ts +11 -0
  94. package/src/orval-generated/models/hostingFtpList200.js +2 -0
  95. package/src/orval-generated/models/hostingFtpList200FtpAccountItem.d.ts +11 -0
  96. package/src/orval-generated/models/hostingFtpList200FtpAccountItem.js +9 -0
  97. package/src/orval-generated/models/hostingInfo200.d.ts +10 -0
  98. package/src/orval-generated/models/hostingInfo200.js +9 -0
  99. package/src/orval-generated/models/hostingSites200.d.ts +11 -0
  100. package/src/orval-generated/models/hostingSites200.js +2 -0
  101. package/src/orval-generated/models/hostingSites200RowsItem.d.ts +12 -0
  102. package/src/orval-generated/models/hostingSites200RowsItem.js +9 -0
  103. package/src/orval-generated/models/index.d.ts +46 -0
  104. package/src/orval-generated/models/index.js +49 -0
  105. package/src/orval-generated/models/sitesInfo200.d.ts +20 -0
  106. package/src/orval-generated/models/sitesInfo200.js +9 -0
  107. package/src/orval-generated/models/sitesSso200.d.ts +10 -0
  108. package/src/orval-generated/models/sitesSso200.js +9 -0
  109. package/src/orval-generated/models/sso200.d.ts +10 -0
  110. package/src/orval-generated/models/sso200.js +9 -0
package/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # @newfold/huapi-js
2
+
3
+ > A JavaScript Client Library for HUAPI
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ $ yarn add @newfold/huapi-js
9
+ # yarn package installed
10
+ ```
11
+
12
+ ## Usage
13
+
14
+ ### React Hooks
15
+
16
+ ```js
17
+ import React from 'react';
18
+
19
+ import { useHostingSites } from '@newfold/huapi-js';
20
+
21
+ const MyComponent = () => {
22
+ const hostingId = '2';
23
+ const { isLoading, data } = useHostingSites(hostingId);
24
+
25
+ if (isLoading) return <h1>Loading...</h1>;
26
+
27
+ return (
28
+ <div>
29
+ {data?.data?.rows?.map((site) => {
30
+ <div key={site.id}>{site.name}</div>;
31
+ })}
32
+ </div>
33
+ );
34
+ };
35
+ ```
36
+
37
+ ### Mocking with custom handlers
38
+
39
+ Custom [Mock Service Worker](https://mswjs.io/) handlers can be imported directly from `@newfold/huapi-js` to easily manipulate your local application or unit tests in an offline testing setting.
40
+
41
+ First, ensure that [Mock Service Worker](https://mswjs.io/) is configured in your project, then import and add handlers during your `setupWorker` or `setupServer` calls as follows:
42
+
43
+ ```js
44
+ // import handlers to override data as needed for testing
45
+ import { getHostingSitesHandler } from '@newfold/huapi-js/src/handlers';
46
+
47
+ // add the handlers to your setupServer call
48
+ const server = setupServer(
49
+ ...[
50
+ // mock GET /hosting/:hosting-id/sites
51
+ getHostingSitesHandler(),
52
+
53
+ // add additional handlers here:
54
+ // postHostingSite(),
55
+ ]
56
+ );
57
+ ```
58
+
59
+ #### Advanced handlers
60
+
61
+ ## Building from huapi
62
+
63
+ Eventually we would like to have an automatic CICD pipeline that kicks off when new `huapi` builds change the openapi.json specification file (OAS). For now, we can do this manually by running the build command locally and publishing to npm. This can be done with the following steps:
64
+
65
+ 1. Ensure your repo is on the `main` branch and in a clean state locally (no unstaged changes)
66
+ 2. Run `yarn build` to pull down the OAS and create new build files
67
+ 3. Publish to npm with `yarn publish --public` [or to use `npm` first manually update the version in package.json and git commit/push this change, then use `npm publish --access public` to publish the changes]
68
+
69
+ > NOTE: You may need to request permissions to publish to the npm registry. Please speak to your manager to request access for this through the Hosting Engineering Leadership Team. Please provide your npmjs.com username with your request, and ensure 2FA Authentication is enabled in your npmjs.com dashboard.
70
+
71
+ ## Development
72
+
73
+ ### Adding Endpoints
74
+
75
+ `@newfold/haupi-js` is based on the OpenAPI specification file that is published by the core `huapi` project. To add new endpoints, update the core project and publish an updated file, then ensure the build script in `package.json` is pointed to it.
76
+
77
+ ```sh
78
+ # run the build command to build a new verions
79
+ $ yarn build
80
+ # building @newfold/huapi-js...
81
+ ```
82
+
83
+ ### Adding Custom Mock Handlers
package/package.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "@newfold/huapi-js",
3
+ "version": "0.1.0-beta.59",
4
+ "peerDependencies": {
5
+ "@faker-js/faker": "^6.1.2",
6
+ "axios": "^0.27.2",
7
+ "msw": "^0.42.1",
8
+ "react": "^17.0.0 || ^18.0.0",
9
+ "react-query": "^3.39.1",
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "main": "./src/index.js",
13
+ "typings": "./src/index.d.ts",
14
+ "dependencies": {}
15
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/handlers';
2
+ export * from './orval-generated/index.msw';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // export custom handlers
5
+ tslib_1.__exportStar(require("./lib/handlers"), exports);
6
+ // export orval-generated handlers
7
+ tslib_1.__exportStar(require("./orval-generated/index.msw"), exports);
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './orval-generated';
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ // export orval-generated
5
+ tslib_1.__exportStar(require("./orval-generated"), exports);
@@ -0,0 +1,5 @@
1
+ /**
2
+ * NOTE: this will move to @newfold/huapi-js in the future
3
+ * Usage: `import { getHostingSitesHandler } from '@newfold/huapi-js';`
4
+ */
5
+ export * from './sites/getHostingSitesHandler';
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ /**
5
+ * NOTE: this will move to @newfold/huapi-js in the future
6
+ * Usage: `import { getHostingSitesHandler } from '@newfold/huapi-js';`
7
+ */
8
+ tslib_1.__exportStar(require("./sites/getHostingSitesHandler"), exports);
@@ -0,0 +1,19 @@
1
+ export declare const getResponseByStatus: (responseKey: string, status: number) => {
2
+ message: string;
3
+ limit?: undefined;
4
+ n_pages?: undefined;
5
+ n_rows?: undefined;
6
+ page?: undefined;
7
+ rows?: undefined;
8
+ } | {
9
+ limit: number;
10
+ n_pages: number;
11
+ n_rows: number;
12
+ page: number;
13
+ rows: {
14
+ id: string;
15
+ name: string;
16
+ url: string;
17
+ }[];
18
+ message?: undefined;
19
+ };
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getResponseByStatus = void 0;
4
+ const rows = [
5
+ {
6
+ id: '1',
7
+ name: 'Site 1',
8
+ url: 'https://site-1.com',
9
+ },
10
+ {
11
+ id: '2',
12
+ name: 'Site 2',
13
+ url: 'https://site-2.com',
14
+ },
15
+ {
16
+ id: '3',
17
+ name: 'Site 3',
18
+ url: 'https://site-3.com',
19
+ },
20
+ {
21
+ id: '4',
22
+ name: 'Site 4',
23
+ url: 'https://site-4.com',
24
+ },
25
+ {
26
+ id: '5',
27
+ name: 'Site 5',
28
+ url: 'https://site-5.com',
29
+ },
30
+ {
31
+ id: '6',
32
+ name: 'Site 6',
33
+ url: 'https://site-6.com',
34
+ },
35
+ {
36
+ id: '7',
37
+ name: 'Site 7',
38
+ url: 'https://site-7.com',
39
+ },
40
+ {
41
+ id: '8',
42
+ name: 'Site 8',
43
+ url: 'https://site-8.com',
44
+ },
45
+ {
46
+ id: '9',
47
+ name: 'Site 9',
48
+ url: 'https://site-9.com',
49
+ },
50
+ {
51
+ id: '10',
52
+ name: 'Site 10',
53
+ url: 'https://site-10.com',
54
+ },
55
+ ];
56
+ const getResponseByStatus = (responseKey, status) => {
57
+ switch (status) {
58
+ case 500 - 599:
59
+ return {
60
+ message: 'Something went wrong',
61
+ };
62
+ case 200 - 299:
63
+ default:
64
+ switch (responseKey) {
65
+ case '0':
66
+ return {
67
+ limit: 10,
68
+ n_pages: 0,
69
+ n_rows: 0,
70
+ page: 1,
71
+ rows: [],
72
+ };
73
+ case '1':
74
+ return {
75
+ limit: 10,
76
+ n_pages: 1,
77
+ n_rows: 1,
78
+ page: 1,
79
+ rows: [rows[0]],
80
+ };
81
+ default:
82
+ case 'some':
83
+ return {
84
+ limit: 10,
85
+ n_pages: 1,
86
+ n_rows: 3,
87
+ page: 1,
88
+ rows,
89
+ };
90
+ case 'many':
91
+ return {
92
+ limit: 10,
93
+ n_pages: 50,
94
+ n_rows: 3,
95
+ page: 1,
96
+ rows: [
97
+ ...rows,
98
+ {
99
+ id: '11',
100
+ name: 'Site 11',
101
+ url: 'https://site-11.com',
102
+ },
103
+ {
104
+ id: '12',
105
+ name: 'Site 12',
106
+ url: 'https://site-12.com',
107
+ },
108
+ {
109
+ id: '13',
110
+ name: 'Site 13',
111
+ url: 'https://site-13.com',
112
+ },
113
+ {
114
+ id: '14',
115
+ name: 'Site 14',
116
+ url: 'https://site-14.com',
117
+ },
118
+ {
119
+ id: '15',
120
+ name: 'Site 15',
121
+ url: 'https://site-15.com',
122
+ },
123
+ {
124
+ id: '16',
125
+ name: 'Site 16',
126
+ url: 'https://site-16.com',
127
+ },
128
+ {
129
+ id: '17',
130
+ name: 'Site 17',
131
+ url: 'https://site-17.com',
132
+ },
133
+ {
134
+ id: '18',
135
+ name: 'Site 18',
136
+ url: 'https://site-18.com',
137
+ },
138
+ {
139
+ id: '19',
140
+ name: 'Site 19',
141
+ url: 'https://site-19.com',
142
+ },
143
+ {
144
+ id: '20',
145
+ name: 'Site 20',
146
+ url: 'https://site-20.com',
147
+ },
148
+ {
149
+ id: '21',
150
+ name: 'Site 21',
151
+ url: 'https://site-21.com',
152
+ },
153
+ {
154
+ id: '22',
155
+ name: 'Site 22',
156
+ url: 'https://site-22.com',
157
+ },
158
+ {
159
+ id: '23',
160
+ name: 'Site 23',
161
+ url: 'https://site-23.com',
162
+ },
163
+ {
164
+ id: '24',
165
+ name: 'Site 24',
166
+ url: 'https://site-24.com',
167
+ },
168
+ {
169
+ id: '25',
170
+ name: 'Site 25',
171
+ url: 'https://site-25.com',
172
+ },
173
+ ],
174
+ };
175
+ }
176
+ }
177
+ };
178
+ exports.getResponseByStatus = getResponseByStatus;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * getHostingSitesHandler
3
+ * @param {string} responseKey - the key of the response to return from the responses object
4
+ * @param {int} status - the status code to mock
5
+ * @param {int} delay - the delay in ms to wait before returning the response
6
+ * @returns - a msw handler
7
+ */
8
+ export declare function getHostingSitesHandler(responseKey?: string, // int or string
9
+ status?: number, delay?: number): import("msw").RestHandler<import("msw/lib/glossary-58eca5a8").M<import("msw/lib/glossary-58eca5a8").c>>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHostingSitesHandler = void 0;
4
+ const msw_1 = require("msw");
5
+ const sites_1 = require("./data/sites");
6
+ /**
7
+ * getHostingSitesHandler
8
+ * @param {string} responseKey - the key of the response to return from the responses object
9
+ * @param {int} status - the status code to mock
10
+ * @param {int} delay - the delay in ms to wait before returning the response
11
+ * @returns - a msw handler
12
+ */
13
+ function getHostingSitesHandler(responseKey = '1', // int or string
14
+ status = 200, delay = 1000) {
15
+ return msw_1.rest.get('*/v1/hosting/:hostingId/sites', (req, res, ctx) => res(ctx.delay(delay), ctx.status(status, 'Mocked status'), ctx.json((0, sites_1.getResponseByStatus)(responseKey, status))));
16
+ }
17
+ exports.getHostingSitesHandler = getHostingSitesHandler;