@budibase/server 1.3.15-alpha.0 → 1.3.15-alpha.3
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.
- package/builder/assets/{index.b266d29f.js → index.e1d89439.js} +288 -288
- package/builder/assets/{index.f5c54dd2.css → index.ecdac070.css} +2 -2
- package/builder/index.html +2 -2
- package/coverage/clover.xml +21 -21
- package/coverage/coverage-final.json +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +5 -2
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +34 -34
- package/dist/api/controllers/plugin/file.js +24 -0
- package/dist/api/controllers/plugin/github.js +69 -0
- package/dist/api/controllers/{plugin.js → plugin/index.js} +87 -14
- package/dist/api/controllers/plugin/npm.js +58 -0
- package/dist/api/controllers/plugin/uploaders.js +11 -0
- package/dist/api/controllers/plugin/url.js +24 -0
- package/dist/api/controllers/plugin/utils.js +26 -0
- package/dist/api/controllers/screen.js +1 -0
- package/dist/api/controllers/static/templates/preview.hbs +3 -1
- package/dist/api/routes/plugin.js +1 -0
- package/dist/app.js +2 -0
- package/dist/integrations/base/sqlTable.js +3 -1
- package/dist/package.json +7 -6
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +56 -12
- package/dist/websocket.js +22 -0
- package/package.json +8 -7
- package/src/api/controllers/plugin/file.ts +15 -0
- package/src/api/controllers/plugin/github.ts +75 -0
- package/src/api/controllers/plugin/index.ts +206 -0
- package/src/api/controllers/plugin/npm.ts +56 -0
- package/src/api/controllers/plugin/uploaders.ts +4 -0
- package/src/api/controllers/plugin/url.ts +12 -0
- package/src/api/controllers/plugin/utils.ts +19 -0
- package/src/api/controllers/screen.js +1 -0
- package/src/api/controllers/static/templates/preview.hbs +3 -1
- package/src/api/routes/plugin.ts +1 -0
- package/src/app.ts +2 -0
- package/src/integrations/base/sqlTable.ts +3 -1
- package/src/module.d.ts +1 -0
- package/src/utilities/fileSystem/index.js +72 -12
- package/src/websocket.ts +26 -0
- package/src/api/controllers/plugin.ts +0 -110
|
@@ -79,7 +79,7 @@ module.exports.budibaseTempDir = budibaseTempDir
|
|
|
79
79
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
80
80
|
Code coverage generated by
|
|
81
81
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
82
|
-
at
|
|
82
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
83
83
|
</div>
|
|
84
84
|
<script src="../prettify.js"></script>
|
|
85
85
|
<script>
|
|
@@ -136,7 +136,7 @@ exports.resolve = function (...args) {
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at
|
|
139
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -502,7 +502,7 @@ module.exports = {
|
|
|
502
502
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
503
503
|
Code coverage generated by
|
|
504
504
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
505
|
-
at
|
|
505
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
506
506
|
</div>
|
|
507
507
|
<script src="../prettify.js"></script>
|
|
508
508
|
<script>
|
|
@@ -445,7 +445,7 @@ exports.getGlobalUsersFromMetadata = async users => {
|
|
|
445
445
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
446
446
|
Code coverage generated by
|
|
447
447
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
448
|
-
at
|
|
448
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
449
449
|
</div>
|
|
450
450
|
<script src="../prettify.js"></script>
|
|
451
451
|
<script>
|
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
237
237
|
Code coverage generated by
|
|
238
238
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
239
|
-
at
|
|
239
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
240
240
|
</div>
|
|
241
241
|
<script src="../prettify.js"></script>
|
|
242
242
|
<script>
|
|
@@ -586,7 +586,7 @@ exports.isQsTrue = param => {
|
|
|
586
586
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
587
587
|
Code coverage generated by
|
|
588
588
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
589
|
-
at
|
|
589
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
590
590
|
</div>
|
|
591
591
|
<script src="../prettify.js"></script>
|
|
592
592
|
<script>
|
|
@@ -436,7 +436,7 @@ module.exports = InMemoryQueue
|
|
|
436
436
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
437
437
|
Code coverage generated by
|
|
438
438
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
439
|
-
at
|
|
439
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
440
440
|
</div>
|
|
441
441
|
<script src="../../prettify.js"></script>
|
|
442
442
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at
|
|
104
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at
|
|
104
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -145,7 +145,7 @@ exports.createRoutingView = createRoutingView
|
|
|
145
145
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
146
146
|
Code coverage generated by
|
|
147
147
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
148
|
-
at
|
|
148
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
149
149
|
</div>
|
|
150
150
|
<script src="../../prettify.js"></script>
|
|
151
151
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at
|
|
119
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -1096,7 +1096,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =>
|
|
|
1096
1096
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1097
1097
|
Code coverage generated by
|
|
1098
1098
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1099
|
-
at
|
|
1099
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
1100
1100
|
</div>
|
|
1101
1101
|
<script src="../../prettify.js"></script>
|
|
1102
1102
|
<script>
|
|
@@ -346,7 +346,7 @@ exports.processDates = <span class="fstat-no" title="function not covered" >(t</
|
|
|
346
346
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
347
347
|
Code coverage generated by
|
|
348
348
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
349
|
-
at
|
|
349
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
350
350
|
</div>
|
|
351
351
|
<script src="../../prettify.js"></script>
|
|
352
352
|
<script>
|
|
@@ -142,7 +142,7 @@ module.exports = ScriptRunner
|
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
143
143
|
Code coverage generated by
|
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
145
|
-
at
|
|
145
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
146
146
|
</div>
|
|
147
147
|
<script src="../prettify.js"></script>
|
|
148
148
|
<script>
|
|
@@ -283,7 +283,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
|
|
|
283
283
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
284
284
|
Code coverage generated by
|
|
285
285
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
286
|
-
at
|
|
286
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
287
287
|
</div>
|
|
288
288
|
<script src="../prettify.js"></script>
|
|
289
289
|
<script>
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
94
|
-
at
|
|
94
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
<script src="../prettify.js"></script>
|
|
97
97
|
<script>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at
|
|
119
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -310,7 +310,7 @@ exports.getUniqueRows = async appIds => {
|
|
|
310
310
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
311
311
|
Code coverage generated by
|
|
312
312
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
313
|
-
at
|
|
313
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
314
314
|
</div>
|
|
315
315
|
<script src="../../prettify.js"></script>
|
|
316
316
|
<script>
|
|
@@ -124,7 +124,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
|
|
|
124
124
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
125
125
|
Code coverage generated by
|
|
126
126
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
127
|
-
at
|
|
127
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
128
128
|
</div>
|
|
129
129
|
<script src="../../prettify.js"></script>
|
|
130
130
|
<script>
|
|
@@ -205,7 +205,7 @@ exports.publicApiUserFix = ctx => {
|
|
|
205
205
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
206
206
|
Code coverage generated by
|
|
207
207
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
208
|
-
at
|
|
208
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
209
209
|
</div>
|
|
210
210
|
<script src="../prettify.js"></script>
|
|
211
211
|
<script>
|
|
@@ -535,7 +535,7 @@ exports.getChecklist = <span class="fstat-no" title="function not covered" >as</
|
|
|
535
535
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
536
536
|
Code coverage generated by
|
|
537
537
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
538
|
-
at
|
|
538
|
+
at Tue Sep 13 2022 09:47:25 GMT+0000 (Coordinated Universal Time)
|
|
539
539
|
</div>
|
|
540
540
|
<script src="../prettify.js"></script>
|
|
541
541
|
<script>
|
package/coverage/lcov.info
CHANGED
|
@@ -1399,9 +1399,9 @@ FN:54,(anonymous_3)
|
|
|
1399
1399
|
FN:55,(anonymous_4)
|
|
1400
1400
|
FN:66,(anonymous_5)
|
|
1401
1401
|
FN:67,(anonymous_6)
|
|
1402
|
-
FN:
|
|
1403
|
-
FN:
|
|
1404
|
-
FN:
|
|
1402
|
+
FN:96,(anonymous_7)
|
|
1403
|
+
FN:110,(anonymous_8)
|
|
1404
|
+
FN:122,(anonymous_9)
|
|
1405
1405
|
FNF:10
|
|
1406
1406
|
FNH:6
|
|
1407
1407
|
FNDA:1,(anonymous_0)
|
|
@@ -1447,29 +1447,29 @@ DA:66,0
|
|
|
1447
1447
|
DA:67,0
|
|
1448
1448
|
DA:68,0
|
|
1449
1449
|
DA:69,0
|
|
1450
|
-
DA:78,0
|
|
1451
1450
|
DA:79,0
|
|
1452
|
-
DA:
|
|
1453
|
-
DA:84,
|
|
1454
|
-
DA:
|
|
1451
|
+
DA:80,0
|
|
1452
|
+
DA:84,24
|
|
1453
|
+
DA:85,23
|
|
1455
1454
|
DA:87,24
|
|
1456
|
-
DA:
|
|
1457
|
-
DA:96,
|
|
1455
|
+
DA:88,24
|
|
1456
|
+
DA:96,44
|
|
1458
1457
|
DA:97,1
|
|
1459
1458
|
DA:98,1
|
|
1460
|
-
DA:
|
|
1461
|
-
DA:
|
|
1459
|
+
DA:99,1
|
|
1460
|
+
DA:101,1
|
|
1462
1461
|
DA:103,1
|
|
1463
|
-
DA:
|
|
1464
|
-
DA:
|
|
1465
|
-
DA:110,
|
|
1466
|
-
DA:111,
|
|
1467
|
-
DA:
|
|
1468
|
-
DA:114,
|
|
1462
|
+
DA:104,1
|
|
1463
|
+
DA:107,1
|
|
1464
|
+
DA:110,44
|
|
1465
|
+
DA:111,48
|
|
1466
|
+
DA:112,0
|
|
1467
|
+
DA:114,48
|
|
1469
1468
|
DA:115,0
|
|
1470
|
-
DA:
|
|
1471
|
-
DA:119,
|
|
1472
|
-
DA:
|
|
1469
|
+
DA:116,0
|
|
1470
|
+
DA:119,48
|
|
1471
|
+
DA:120,24
|
|
1472
|
+
DA:122,24
|
|
1473
1473
|
LF:56
|
|
1474
1474
|
LH:40
|
|
1475
1475
|
BRDA:35,0,0,23
|
|
@@ -1482,20 +1482,20 @@ BRDA:64,3,0,0
|
|
|
1482
1482
|
BRDA:64,3,1,0
|
|
1483
1483
|
BRDA:67,4,0,0
|
|
1484
1484
|
BRDA:67,4,1,0
|
|
1485
|
-
BRDA:
|
|
1486
|
-
BRDA:
|
|
1487
|
-
BRDA:
|
|
1488
|
-
BRDA:
|
|
1489
|
-
BRDA:
|
|
1490
|
-
BRDA:
|
|
1491
|
-
BRDA:
|
|
1492
|
-
BRDA:
|
|
1493
|
-
BRDA:
|
|
1494
|
-
BRDA:
|
|
1495
|
-
BRDA:
|
|
1496
|
-
BRDA:
|
|
1497
|
-
BRDA:
|
|
1498
|
-
BRDA:
|
|
1485
|
+
BRDA:79,5,0,0
|
|
1486
|
+
BRDA:79,5,1,0
|
|
1487
|
+
BRDA:84,6,0,23
|
|
1488
|
+
BRDA:84,6,1,1
|
|
1489
|
+
BRDA:111,7,0,0
|
|
1490
|
+
BRDA:111,7,1,48
|
|
1491
|
+
BRDA:114,8,0,0
|
|
1492
|
+
BRDA:114,8,1,48
|
|
1493
|
+
BRDA:115,9,0,0
|
|
1494
|
+
BRDA:115,9,1,0
|
|
1495
|
+
BRDA:119,10,0,24
|
|
1496
|
+
BRDA:119,10,1,24
|
|
1497
|
+
BRDA:119,11,0,48
|
|
1498
|
+
BRDA:119,11,1,48
|
|
1499
1499
|
BRF:24
|
|
1500
1500
|
BRH:11
|
|
1501
1501
|
end_of_record
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.fileUpload = void 0;
|
|
13
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
14
|
+
function fileUpload(file) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
if (!file.name.endsWith(".tar.gz")) {
|
|
17
|
+
throw new Error("Plugin must be compressed into a gzipped tarball.");
|
|
18
|
+
}
|
|
19
|
+
const path = (0, fileSystem_1.createTempFolder)(file.name.split(".tar.gz")[0]);
|
|
20
|
+
yield (0, fileSystem_1.extractTarball)(file.path, path);
|
|
21
|
+
return yield (0, fileSystem_1.getPluginMetadata)(path);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
exports.fileUpload = fileUpload;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.githubUpload = exports.request = void 0;
|
|
16
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
17
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
18
|
+
const utils_1 = require("./utils");
|
|
19
|
+
function request(url, headers, err) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const response = yield (0, node_fetch_1.default)(url, { headers });
|
|
22
|
+
if (response.status >= 300) {
|
|
23
|
+
const respErr = yield response.text();
|
|
24
|
+
throw new Error(`Error: ${err} - ${respErr}`);
|
|
25
|
+
}
|
|
26
|
+
return response.json();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
exports.request = request;
|
|
30
|
+
function githubUpload(url, name = "", token = "") {
|
|
31
|
+
var _a;
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
let githubUrl = url;
|
|
34
|
+
if (!githubUrl.includes("https://github.com/")) {
|
|
35
|
+
throw new Error("The plugin origin must be from Github");
|
|
36
|
+
}
|
|
37
|
+
if (url.includes(".git")) {
|
|
38
|
+
githubUrl = url.replace(".git", "");
|
|
39
|
+
}
|
|
40
|
+
const githubApiUrl = githubUrl.replace("https://github.com/", "https://api.github.com/repos/");
|
|
41
|
+
const headers = token ? { Authorization: `Bearer ${token}` } : {};
|
|
42
|
+
const pluginDetails = yield request(githubApiUrl, headers, "Repository not found");
|
|
43
|
+
const pluginName = pluginDetails.name || name;
|
|
44
|
+
const pluginLatestReleaseUrl = (pluginDetails === null || pluginDetails === void 0 ? void 0 : pluginDetails["releases_url"])
|
|
45
|
+
? pluginDetails === null || pluginDetails === void 0 ? void 0 : pluginDetails["releases_url"].replace("{/id}", "/latest")
|
|
46
|
+
: undefined;
|
|
47
|
+
if (!pluginLatestReleaseUrl) {
|
|
48
|
+
throw new Error("Github release not found");
|
|
49
|
+
}
|
|
50
|
+
const pluginReleaseDetails = yield request(pluginLatestReleaseUrl, headers, "Github latest release not found");
|
|
51
|
+
const pluginReleaseTarballAsset = (_a = pluginReleaseDetails === null || pluginReleaseDetails === void 0 ? void 0 : pluginReleaseDetails.assets) === null || _a === void 0 ? void 0 : _a.find((x) => (x === null || x === void 0 ? void 0 : x["content_type"]) === "application/gzip");
|
|
52
|
+
const pluginLastReleaseTarballUrl = pluginReleaseTarballAsset === null || pluginReleaseTarballAsset === void 0 ? void 0 : pluginReleaseTarballAsset["browser_download_url"];
|
|
53
|
+
if (!pluginLastReleaseTarballUrl) {
|
|
54
|
+
throw new Error("Github latest release url not found");
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
const path = yield (0, utils_1.downloadUnzipTarball)(pluginLastReleaseTarballUrl, pluginName, headers);
|
|
58
|
+
return yield (0, fileSystem_1.getPluginMetadata)(path);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
let errMsg = (err === null || err === void 0 ? void 0 : err.message) || err;
|
|
62
|
+
if (errMsg === "unexpected response Not Found") {
|
|
63
|
+
errMsg = "Github release tarball not found";
|
|
64
|
+
}
|
|
65
|
+
throw new Error(errMsg);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
exports.githubUpload = githubUpload;
|
|
@@ -12,14 +12,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.processPlugin = exports.destroy = exports.fetch = exports.upload = exports.getPlugins = void 0;
|
|
16
|
-
const constants_1 = require("
|
|
17
|
-
const fileSystem_1 = require("
|
|
15
|
+
exports.processPlugin = exports.storePlugin = exports.destroy = exports.fetch = exports.create = exports.upload = exports.getPlugins = void 0;
|
|
16
|
+
const constants_1 = require("../../../constants");
|
|
17
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
18
|
+
const uploaders_1 = require("./uploaders");
|
|
18
19
|
const tenancy_1 = require("@budibase/backend-core/tenancy");
|
|
19
|
-
const
|
|
20
|
+
const plugins_1 = require("@budibase/backend-core/plugins");
|
|
21
|
+
const utils_1 = require("../../../db/utils");
|
|
20
22
|
const objectStore_1 = require("@budibase/backend-core/objectStore");
|
|
21
23
|
const types_1 = require("@budibase/types");
|
|
22
|
-
const environment_1 = __importDefault(require("
|
|
24
|
+
const environment_1 = __importDefault(require("../../../environment"));
|
|
25
|
+
const websocket_1 = require("../../../websocket");
|
|
23
26
|
function getPlugins(type) {
|
|
24
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
28
|
const db = (0, tenancy_1.getGlobalDB)();
|
|
@@ -45,7 +48,7 @@ function upload(ctx) {
|
|
|
45
48
|
let docs = [];
|
|
46
49
|
// can do single or multiple plugins
|
|
47
50
|
for (let plugin of plugins) {
|
|
48
|
-
const doc = yield processPlugin(plugin);
|
|
51
|
+
const doc = yield processPlugin(plugin, types_1.PluginSource.FILE);
|
|
49
52
|
docs.push(doc);
|
|
50
53
|
}
|
|
51
54
|
ctx.body = {
|
|
@@ -60,6 +63,50 @@ function upload(ctx) {
|
|
|
60
63
|
});
|
|
61
64
|
}
|
|
62
65
|
exports.upload = upload;
|
|
66
|
+
function create(ctx) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const { source, url, headers, githubToken } = ctx.request.body;
|
|
69
|
+
if (!environment_1.default.SELF_HOSTED) {
|
|
70
|
+
ctx.throw(400, "Plugins not supported outside of self-host.");
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
let metadata;
|
|
74
|
+
let directory;
|
|
75
|
+
// Generating random name as a backup and needed for url
|
|
76
|
+
let name = "PLUGIN_" + Math.floor(100000 + Math.random() * 900000);
|
|
77
|
+
switch (source) {
|
|
78
|
+
case types_1.PluginSource.NPM:
|
|
79
|
+
const { metadata: metadataNpm, directory: directoryNpm } = yield (0, uploaders_1.npmUpload)(url, name);
|
|
80
|
+
metadata = metadataNpm;
|
|
81
|
+
directory = directoryNpm;
|
|
82
|
+
break;
|
|
83
|
+
case types_1.PluginSource.GITHUB:
|
|
84
|
+
const { metadata: metadataGithub, directory: directoryGithub } = yield (0, uploaders_1.githubUpload)(url, name, githubToken);
|
|
85
|
+
metadata = metadataGithub;
|
|
86
|
+
directory = directoryGithub;
|
|
87
|
+
break;
|
|
88
|
+
case types_1.PluginSource.URL:
|
|
89
|
+
const headersObj = headers || {};
|
|
90
|
+
const { metadata: metadataUrl, directory: directoryUrl } = yield (0, uploaders_1.urlUpload)(url, name, headersObj);
|
|
91
|
+
metadata = metadataUrl;
|
|
92
|
+
directory = directoryUrl;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
(0, plugins_1.validate)(metadata === null || metadata === void 0 ? void 0 : metadata.schema);
|
|
96
|
+
const doc = yield storePlugin(metadata, directory, source);
|
|
97
|
+
ctx.body = {
|
|
98
|
+
message: "Plugin uploaded successfully",
|
|
99
|
+
plugins: [doc],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
const errMsg = (err === null || err === void 0 ? void 0 : err.message) ? err === null || err === void 0 ? void 0 : err.message : err;
|
|
104
|
+
ctx.throw(400, `Failed to import plugin: ${errMsg}`);
|
|
105
|
+
}
|
|
106
|
+
ctx.status = 200;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
exports.create = create;
|
|
63
110
|
function fetch(ctx) {
|
|
64
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
112
|
ctx.body = yield getPlugins();
|
|
@@ -67,17 +114,28 @@ function fetch(ctx) {
|
|
|
67
114
|
}
|
|
68
115
|
exports.fetch = fetch;
|
|
69
116
|
function destroy(ctx) {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
+
const db = (0, tenancy_1.getGlobalDB)();
|
|
119
|
+
const { pluginId } = ctx.params;
|
|
120
|
+
try {
|
|
121
|
+
const plugin = yield db.get(pluginId);
|
|
122
|
+
const bucketPath = `${plugin.name}/`;
|
|
123
|
+
yield (0, objectStore_1.deleteFolder)(constants_1.ObjectStoreBuckets.PLUGINS, bucketPath);
|
|
124
|
+
yield db.remove(pluginId, plugin._rev);
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
const errMsg = (err === null || err === void 0 ? void 0 : err.message) ? err === null || err === void 0 ? void 0 : err.message : err;
|
|
128
|
+
ctx.throw(400, `Failed to delete plugin: ${errMsg}`);
|
|
129
|
+
}
|
|
130
|
+
ctx.message = `Plugin ${ctx.params.pluginId} deleted.`;
|
|
131
|
+
ctx.status = 200;
|
|
132
|
+
});
|
|
71
133
|
}
|
|
72
134
|
exports.destroy = destroy;
|
|
73
|
-
function
|
|
135
|
+
function storePlugin(metadata, directory, source) {
|
|
74
136
|
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
if (!environment_1.default.SELF_HOSTED) {
|
|
76
|
-
throw new Error("Plugins not supported outside of self-host.");
|
|
77
|
-
}
|
|
78
137
|
const db = (0, tenancy_1.getGlobalDB)();
|
|
79
|
-
const
|
|
80
|
-
const version = metadata.package.version, name = metadata.package.name, description = metadata.package.description;
|
|
138
|
+
const version = metadata.package.version, name = metadata.package.name, description = metadata.package.description, hash = metadata.schema.hash;
|
|
81
139
|
// first open the tarball into tmp directory
|
|
82
140
|
const bucketPath = `${name}/`;
|
|
83
141
|
const files = yield (0, objectStore_1.uploadDirectory)(constants_1.ObjectStoreBuckets.PLUGINS, directory, bucketPath);
|
|
@@ -109,11 +167,26 @@ function processPlugin(plugin) {
|
|
|
109
167
|
catch (err) {
|
|
110
168
|
rev = undefined;
|
|
111
169
|
}
|
|
112
|
-
|
|
170
|
+
let doc = Object.assign(Object.assign({ _id: pluginId, _rev: rev }, metadata), { name,
|
|
113
171
|
version,
|
|
172
|
+
hash,
|
|
114
173
|
description, jsUrl: `${bucketPath}${jsFileName}` });
|
|
174
|
+
if (source) {
|
|
175
|
+
doc = Object.assign(Object.assign({}, doc), { source });
|
|
176
|
+
}
|
|
115
177
|
const response = yield db.put(doc);
|
|
178
|
+
websocket_1.ClientAppSocket.emit("plugin-update", { name, hash });
|
|
116
179
|
return Object.assign(Object.assign({}, doc), { _rev: response.rev });
|
|
117
180
|
});
|
|
118
181
|
}
|
|
182
|
+
exports.storePlugin = storePlugin;
|
|
183
|
+
function processPlugin(plugin, source) {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
if (!environment_1.default.SELF_HOSTED) {
|
|
186
|
+
throw new Error("Plugins not supported outside of self-host.");
|
|
187
|
+
}
|
|
188
|
+
const { metadata, directory } = yield (0, uploaders_1.fileUpload)(plugin);
|
|
189
|
+
return yield storePlugin(metadata, directory, source);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
119
192
|
exports.processPlugin = processPlugin;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.npmUpload = void 0;
|
|
16
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
17
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const utils_1 = require("./utils");
|
|
20
|
+
function npmUpload(url, name, headers = {}) {
|
|
21
|
+
var _a, _b, _c;
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
let npmTarballUrl = url;
|
|
24
|
+
let pluginName = name;
|
|
25
|
+
if (!npmTarballUrl.includes("https://www.npmjs.com") &&
|
|
26
|
+
!npmTarballUrl.includes("https://registry.npmjs.org")) {
|
|
27
|
+
throw new Error("The plugin origin must be from NPM");
|
|
28
|
+
}
|
|
29
|
+
if (!npmTarballUrl.includes(".tgz")) {
|
|
30
|
+
const npmPackageURl = url.replace("https://www.npmjs.com/package/", "https://registry.npmjs.org/");
|
|
31
|
+
const response = yield (0, node_fetch_1.default)(npmPackageURl);
|
|
32
|
+
if (response.status !== 200) {
|
|
33
|
+
throw new Error("NPM Package not found");
|
|
34
|
+
}
|
|
35
|
+
let npmDetails = yield response.json();
|
|
36
|
+
pluginName = npmDetails.name;
|
|
37
|
+
const npmVersion = npmDetails["dist-tags"].latest;
|
|
38
|
+
npmTarballUrl = (_c = (_b = (_a = npmDetails === null || npmDetails === void 0 ? void 0 : npmDetails.versions) === null || _a === void 0 ? void 0 : _a[npmVersion]) === null || _b === void 0 ? void 0 : _b.dist) === null || _c === void 0 ? void 0 : _c.tarball;
|
|
39
|
+
if (!npmTarballUrl) {
|
|
40
|
+
throw new Error("NPM tarball url not found");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const path = yield (0, utils_1.downloadUnzipTarball)(npmTarballUrl, pluginName, headers);
|
|
44
|
+
const tarballPluginFile = (0, fileSystem_1.findFileRec)(path, ".tar.gz");
|
|
45
|
+
if (!tarballPluginFile) {
|
|
46
|
+
throw new Error("Tarball plugin file not found");
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
yield (0, fileSystem_1.extractTarball)(tarballPluginFile, path);
|
|
50
|
+
(0, fileSystem_1.deleteFolderFileSystem)((0, path_1.join)(path, "package"));
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
throw new Error(err);
|
|
54
|
+
}
|
|
55
|
+
return yield (0, fileSystem_1.getPluginMetadata)(path);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
exports.npmUpload = npmUpload;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.urlUpload = exports.npmUpload = exports.githubUpload = exports.fileUpload = void 0;
|
|
4
|
+
var file_1 = require("./file");
|
|
5
|
+
Object.defineProperty(exports, "fileUpload", { enumerable: true, get: function () { return file_1.fileUpload; } });
|
|
6
|
+
var github_1 = require("./github");
|
|
7
|
+
Object.defineProperty(exports, "githubUpload", { enumerable: true, get: function () { return github_1.githubUpload; } });
|
|
8
|
+
var npm_1 = require("./npm");
|
|
9
|
+
Object.defineProperty(exports, "npmUpload", { enumerable: true, get: function () { return npm_1.npmUpload; } });
|
|
10
|
+
var url_1 = require("./url");
|
|
11
|
+
Object.defineProperty(exports, "urlUpload", { enumerable: true, get: function () { return url_1.urlUpload; } });
|