@solana-mobile/dapp-store-publishing-tools 0.16.0 → 1.0.0

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 (53) hide show
  1. package/lib/CoreUtils.js +0 -3
  2. package/lib/index.js +1 -0
  3. package/lib/portal/attestation.js +189 -0
  4. package/lib/portal/compat.js +3 -0
  5. package/lib/portal/index.js +5 -0
  6. package/lib/portal/signer.js +432 -0
  7. package/lib/portal/types.js +1 -0
  8. package/lib/portal/workflow/contracts.js +1 -0
  9. package/lib/portal/workflow/execution.js +493 -0
  10. package/lib/portal/workflow/ingestion.js +265 -0
  11. package/lib/portal/workflow/lifecycle.js +616 -0
  12. package/lib/portal/workflow/logging.js +8 -0
  13. package/lib/portal/workflow/source/files.js +304 -0
  14. package/lib/portal/workflow/source/preparation.js +318 -0
  15. package/lib/portal/workflow/state/bundle.js +260 -0
  16. package/lib/portal/workflow/state/checkpoints.js +53 -0
  17. package/lib/portal/workflow/state/session.js +100 -0
  18. package/lib/portal/workflow.js +1 -0
  19. package/lib/publish/PublishCoreAttestation.js +18 -17
  20. package/lib/publish/PublishCoreRemove.js +7 -89
  21. package/lib/publish/PublishCoreSubmit.js +7 -117
  22. package/lib/publish/PublishCoreSupport.js +7 -86
  23. package/lib/publish/PublishCoreUpdate.js +7 -117
  24. package/lib/publish/index.js +1 -0
  25. package/lib/schemas/releaseJsonMetadata.json +1 -2
  26. package/package.json +2 -4
  27. package/src/CoreUtils.ts +0 -6
  28. package/src/index.ts +1 -0
  29. package/src/portal/attestation.ts +76 -0
  30. package/src/portal/compat.ts +5 -0
  31. package/src/portal/index.ts +5 -0
  32. package/src/portal/signer.ts +327 -0
  33. package/src/portal/types.ts +447 -0
  34. package/src/portal/workflow/contracts.ts +108 -0
  35. package/src/portal/workflow/execution.ts +412 -0
  36. package/src/portal/workflow/ingestion.ts +187 -0
  37. package/src/portal/workflow/lifecycle.ts +435 -0
  38. package/src/portal/workflow/logging.ts +17 -0
  39. package/src/portal/workflow/source/files.ts +49 -0
  40. package/src/portal/workflow/source/preparation.ts +189 -0
  41. package/src/portal/workflow/state/bundle.ts +193 -0
  42. package/src/portal/workflow/state/checkpoints.ts +70 -0
  43. package/src/portal/workflow/state/session.ts +87 -0
  44. package/src/portal/workflow.ts +9 -0
  45. package/src/publish/PublishCoreAttestation.ts +21 -26
  46. package/src/publish/PublishCoreRemove.ts +13 -109
  47. package/src/publish/PublishCoreSubmit.ts +18 -150
  48. package/src/publish/PublishCoreSupport.ts +13 -102
  49. package/src/publish/PublishCoreUpdate.ts +17 -155
  50. package/src/publish/index.ts +2 -1
  51. package/src/schemas/releaseJsonMetadata.json +1 -2
  52. package/lib/publish/dapp_publisher_portal.js +0 -206
  53. package/src/publish/dapp_publisher_portal.ts +0 -81
@@ -1,206 +0,0 @@
1
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
- try {
3
- var info = gen[key](arg);
4
- var value = info.value;
5
- } catch (error) {
6
- reject(error);
7
- return;
8
- }
9
- if (info.done) {
10
- resolve(value);
11
- } else {
12
- Promise.resolve(value).then(_next, _throw);
13
- }
14
- }
15
- function _async_to_generator(fn) {
16
- return function() {
17
- var self = this, args = arguments;
18
- return new Promise(function(resolve, reject) {
19
- var gen = fn.apply(self, args);
20
- function _next(value) {
21
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
- }
23
- function _throw(err) {
24
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
- }
26
- _next(undefined);
27
- });
28
- };
29
- }
30
- function _ts_generator(thisArg, body) {
31
- var f, y, t, _ = {
32
- label: 0,
33
- sent: function() {
34
- if (t[0] & 1) throw t[1];
35
- return t[1];
36
- },
37
- trys: [],
38
- ops: []
39
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
- return this;
42
- }), g;
43
- function verb(n) {
44
- return function(v) {
45
- return step([
46
- n,
47
- v
48
- ]);
49
- };
50
- }
51
- function step(op) {
52
- if (f) throw new TypeError("Generator is already executing.");
53
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
54
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
- if (y = 0, t) op = [
56
- op[0] & 2,
57
- t.value
58
- ];
59
- switch(op[0]){
60
- case 0:
61
- case 1:
62
- t = op;
63
- break;
64
- case 4:
65
- _.label++;
66
- return {
67
- value: op[1],
68
- done: false
69
- };
70
- case 5:
71
- _.label++;
72
- y = op[1];
73
- op = [
74
- 0
75
- ];
76
- continue;
77
- case 7:
78
- op = _.ops.pop();
79
- _.trys.pop();
80
- continue;
81
- default:
82
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
- _ = 0;
84
- continue;
85
- }
86
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
- _.label = op[1];
88
- break;
89
- }
90
- if (op[0] === 6 && _.label < t[1]) {
91
- _.label = t[1];
92
- t = op;
93
- break;
94
- }
95
- if (t && _.label < t[2]) {
96
- _.label = t[2];
97
- _.ops.push(op);
98
- break;
99
- }
100
- if (t[2]) _.ops.pop();
101
- _.trys.pop();
102
- continue;
103
- }
104
- op = body.call(thisArg, _);
105
- } catch (e) {
106
- op = [
107
- 6,
108
- e
109
- ];
110
- y = 0;
111
- } finally{
112
- f = t = 0;
113
- }
114
- if (op[0] & 5) throw op[1];
115
- return {
116
- value: op[0] ? op[1] : void 0,
117
- done: true
118
- };
119
- }
120
- }
121
- import axios from "axios";
122
- export var PORTAL_ID = "22812690";
123
- export var CONTACT_OBJECT_ID = "0-1";
124
- export var CONTACT_PROPERTY_COMPANY = "company"; // string
125
- export var CONTACT_PROPERTY_EMAIL = "email"; // string
126
- export var CONTACT_PROPERTY_WEBSITE = "website"; // string
127
- export var TICKET_OBJECT_ID = "0-5";
128
- export var TICKET_PROPERTY_CONTENT = "content"; // string
129
- export var TICKET_PROPERTY_ATTESTATION_PAYLOAD = "attestation_payload"; // base64-encoded string
130
- export var TICKET_PROPERTY_AUTHORIZED_REQUEST = "requestor_is_authorized_to_submit_this_request"; // boolean
131
- export var TICKET_PROPERTY_CRITICAL_UPDATE = "critical_update"; // boolean
132
- export var TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS = "dapp_collection_account_address"; // base58-encoded string
133
- export var TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS = "dapp_release_account_address"; // base58-encoded string
134
- export var TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME = "google_play_store_package_name"; // string
135
- export var TICKET_PROPERTY_POLICY_COMPLIANT = "complies_with_solana_dapp_store_policies"; // boolean
136
- export var TICKET_PROPERTY_REQUEST_UNIQUE_ID = "request_unique_id"; // string (32 base-10 digits)
137
- export var TICKET_PROPERTY_TESTING_INSTRUCTIONS = "testing_instructions"; // string
138
- export var TICKET_PROPERTY_ALPHA_TEST = "alpha_test"; // boolean
139
- export var TICKET_PROPERTY_ALPHA_TESTERS = "alpha_testers"; // string
140
- export var FORM_SUBMIT = "1464247f-6804-46e1-8114-952f372daa81";
141
- export var FORM_UPDATE = "87b4cbe7-957f-495c-a132-8b789678883d";
142
- export var FORM_REMOVE = "913a4e44-ec90-4db6-8aa9-c49f29b569b9";
143
- export var FORM_SUPPORT = "2961f018-6a4d-4e9d-8332-e219428c8cf2";
144
- export var URL_FORM_SUBMIT = "https://api.hsforms.com/submissions/v3/integration/submit/".concat(PORTAL_ID, "/").concat(FORM_SUBMIT);
145
- export var URL_FORM_UPDATE = "https://api.hsforms.com/submissions/v3/integration/submit/".concat(PORTAL_ID, "/").concat(FORM_UPDATE);
146
- export var URL_FORM_REMOVE = "https://api.hsforms.com/submissions/v3/integration/submit/".concat(PORTAL_ID, "/").concat(FORM_REMOVE);
147
- export var URL_FORM_SUPPORT = "https://api.hsforms.com/submissions/v3/integration/submit/".concat(PORTAL_ID, "/").concat(FORM_SUPPORT);
148
- export var submitRequestToSolanaDappPublisherPortal = function(request, url, dryRun) {
149
- return _async_to_generator(function() {
150
- var config;
151
- return _ts_generator(this, function(_state) {
152
- switch(_state.label){
153
- case 0:
154
- config = {
155
- method: "POST",
156
- url: url,
157
- headers: {
158
- "Content-Type": "application/json"
159
- },
160
- data: JSON.stringify(request)
161
- };
162
- if (!!dryRun) return [
163
- 3,
164
- 2
165
- ];
166
- return [
167
- 4,
168
- axios(config).then(function(response) {
169
- var isAlphaObject = request.fields.find(function(obj) {
170
- return obj.name === TICKET_PROPERTY_ALPHA_TEST;
171
- });
172
- if (isAlphaObject !== undefined && isAlphaObject.value) {
173
- var requestUniqueId = request.fields.find(function(obj) {
174
- return obj.name === TICKET_PROPERTY_REQUEST_UNIQUE_ID;
175
- }).value;
176
- console.log("Your alpha submission has been received.\n" + "It will not be reviewed or published to users.\n" + "Use nonce '".concat(requestUniqueId, "' to launch alpha app.\n") + "This can only be used on devices for which the genesis token was listed in your 'config.yaml'");
177
- } else {
178
- console.info("dApp publisher portal response:", response.data);
179
- }
180
- }).catch(function(error) {
181
- if (error.response) {
182
- throw new Error("Failed to submit request\nError status code: ".concat(error.response.status, "\nError message: ").concat(error.response.data));
183
- } else if (error.request) {
184
- throw new Error("Failed to submit request: ".concat(error.request));
185
- } else {
186
- throw new Error("Failed to submit request: ".concat(error));
187
- }
188
- })
189
- ];
190
- case 1:
191
- _state.sent();
192
- return [
193
- 3,
194
- 3
195
- ];
196
- case 2:
197
- console.warn("Dry run, not actually sending request to dApp publisher portal");
198
- _state.label = 3;
199
- case 3:
200
- return [
201
- 2
202
- ];
203
- }
204
- });
205
- })();
206
- };
@@ -1,81 +0,0 @@
1
- import axios, { AxiosRequestConfig } from "axios";
2
-
3
- export const PORTAL_ID = "22812690";
4
-
5
- export const CONTACT_OBJECT_ID = "0-1";
6
- export const CONTACT_PROPERTY_COMPANY = "company"; // string
7
- export const CONTACT_PROPERTY_EMAIL = "email"; // string
8
- export const CONTACT_PROPERTY_WEBSITE = "website"; // string
9
-
10
- export const TICKET_OBJECT_ID = "0-5";
11
- export const TICKET_PROPERTY_CONTENT = "content"; // string
12
- export const TICKET_PROPERTY_ATTESTATION_PAYLOAD = "attestation_payload"; // base64-encoded string
13
- export const TICKET_PROPERTY_AUTHORIZED_REQUEST = "requestor_is_authorized_to_submit_this_request"; // boolean
14
- export const TICKET_PROPERTY_CRITICAL_UPDATE = "critical_update"; // boolean
15
- export const TICKET_PROPERTY_DAPP_COLLECTION_ACCOUNT_ADDRESS = "dapp_collection_account_address"; // base58-encoded string
16
- export const TICKET_PROPERTY_DAPP_RELEASE_ACCOUNT_ADDRESS = "dapp_release_account_address"; // base58-encoded string
17
- export const TICKET_PROPERTY_GOOGLE_PLAY_STORE_PACKAGE_NAME = "google_play_store_package_name"; // string
18
- export const TICKET_PROPERTY_POLICY_COMPLIANT = "complies_with_solana_dapp_store_policies"; // boolean
19
- export const TICKET_PROPERTY_REQUEST_UNIQUE_ID = "request_unique_id"; // string (32 base-10 digits)
20
- export const TICKET_PROPERTY_TESTING_INSTRUCTIONS = "testing_instructions"; // string
21
- export const TICKET_PROPERTY_ALPHA_TEST = "alpha_test"; // boolean
22
- export const TICKET_PROPERTY_ALPHA_TESTERS = "alpha_testers"; // string
23
-
24
- export const FORM_SUBMIT = "1464247f-6804-46e1-8114-952f372daa81";
25
- export const FORM_UPDATE = "87b4cbe7-957f-495c-a132-8b789678883d";
26
- export const FORM_REMOVE = "913a4e44-ec90-4db6-8aa9-c49f29b569b9";
27
- export const FORM_SUPPORT = "2961f018-6a4d-4e9d-8332-e219428c8cf2";
28
-
29
- export const URL_FORM_SUBMIT = `https://api.hsforms.com/submissions/v3/integration/submit/${PORTAL_ID}/${FORM_SUBMIT}`
30
- export const URL_FORM_UPDATE = `https://api.hsforms.com/submissions/v3/integration/submit/${PORTAL_ID}/${FORM_UPDATE}`
31
- export const URL_FORM_REMOVE = `https://api.hsforms.com/submissions/v3/integration/submit/${PORTAL_ID}/${FORM_REMOVE}`
32
- export const URL_FORM_SUPPORT = `https://api.hsforms.com/submissions/v3/integration/submit/${PORTAL_ID}/${FORM_SUPPORT}`
33
-
34
- export const submitRequestToSolanaDappPublisherPortal = async (
35
- request: any,
36
- url: string,
37
- dryRun: boolean
38
- ) => {
39
- const config = {
40
- method: "POST",
41
- url: url,
42
- headers: {
43
- "Content-Type": "application/json",
44
- },
45
- data: JSON.stringify(request),
46
- } as AxiosRequestConfig;
47
-
48
- if (!dryRun) {
49
- await axios(config)
50
- .then((response) => {
51
- const isAlphaObject = request.fields.find((obj: { objectTypeId: string, name: string; value: string}) => {
52
- return obj.name === TICKET_PROPERTY_ALPHA_TEST
53
- })
54
-
55
- if (isAlphaObject !== undefined && isAlphaObject.value) {
56
- const requestUniqueId = request.fields.find((obj: { objectTypeId: string, name: string; value: string}) => {
57
- return obj.name === TICKET_PROPERTY_REQUEST_UNIQUE_ID
58
- }).value
59
- console.log(
60
- `Your alpha submission has been received.\n` +
61
- `It will not be reviewed or published to users.\n` +
62
- `Use nonce '${requestUniqueId}' to launch alpha app.\n` +
63
- `This can only be used on devices for which the genesis token was listed in your 'config.yaml'`
64
- )
65
- } else {
66
- console.info(`dApp publisher portal response:`, response.data);
67
- }
68
- })
69
- .catch((error) => {
70
- if (error.response) {
71
- throw new Error(`Failed to submit request\nError status code: ${error.response.status}\nError message: ${error.response.data}`);
72
- } else if (error.request) {
73
- throw new Error(`Failed to submit request: ${error.request}`);
74
- } else {
75
- throw new Error(`Failed to submit request: ${error}`);
76
- }
77
- });
78
- } else {
79
- console.warn("Dry run, not actually sending request to dApp publisher portal");
80
- }
81
- };