@mpgd/cli 0.67.0 → 0.69.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.
- package/dist/app-store-release-asc.d.ts +39 -0
- package/dist/app-store-release-asc.js +274 -0
- package/dist/app-store-release-command.d.ts +73 -0
- package/dist/app-store-release-command.js +280 -0
- package/dist/app-store-release-port.d.ts +168 -0
- package/dist/app-store-release-port.js +24 -0
- package/dist/app-store-release.d.ts +238 -0
- package/dist/app-store-release.js +1246 -0
- package/dist/asc-session.d.ts +6 -2
- package/dist/asc-session.js +12 -3
- package/dist/index.d.ts +5 -0
- package/dist/index.js +289 -2
- package/dist/native-build-info.json +2 -2
- package/dist/native-build-target.js +7 -4
- package/dist/native-deploy-submission.d.ts +11 -0
- package/dist/native-deploy-submission.js +26 -2
- package/dist/play-release-options.d.ts +11 -0
- package/dist/play-release-options.js +40 -14
- package/dist/store-presence-app-store.js +6 -4
- package/dist/store-products-app-store.js +3 -3
- package/dist/testflight-distribution-asc.d.ts +35 -0
- package/dist/testflight-distribution-asc.js +170 -0
- package/dist/testflight-distribution-port.d.ts +73 -0
- package/dist/testflight-distribution-port.js +6 -0
- package/dist/testflight-distribution.d.ts +162 -0
- package/dist/testflight-distribution.js +642 -0
- package/dist/testflight-submission.d.ts +11 -0
- package/dist/testflight-submission.js +20 -1
- package/package.json +18 -18
- package/templates/notifications-overlay/common/src/platform/notificationBackend.ts +22 -3
|
@@ -275,7 +275,8 @@ async function submitVerifiedIosBuildResolved(input, run, { marketingVersion, bu
|
|
|
275
275
|
let membershipFailure;
|
|
276
276
|
try {
|
|
277
277
|
const memberships = await run(['testflight', 'groups', 'list', '--build-id', build.id, '--internal'], lookupTimeoutMs);
|
|
278
|
-
if (
|
|
278
|
+
if (readBuildGroupMembership(memberships, build.id).some((group) => group.id === input.internalGroupId
|
|
279
|
+
&& group.type === 'internal')) {
|
|
279
280
|
return { ...base, status: 'testflight-ready', ...uploadReference, buildId: build.id };
|
|
280
281
|
}
|
|
281
282
|
}
|
|
@@ -405,6 +406,24 @@ function findInternalGroup(response, groupId) {
|
|
|
405
406
|
&& value.type === 'betaGroups' && value.id === groupId
|
|
406
407
|
&& isRecord(value.attributes) && value.attributes.isInternalGroup === true);
|
|
407
408
|
}
|
|
409
|
+
/**
|
|
410
|
+
* asc 5.5.0 prints `testflight groups list --build-id` as its own membership
|
|
411
|
+
* result, not as App Store Connect resources:
|
|
412
|
+
* `{ buildId, appId, complete, groups: [{ id, name, type, membership }] }`
|
|
413
|
+
* (`internal/cli/testflight/build_group_membership.go`). An incomplete lookup
|
|
414
|
+
* is never read as "not a member".
|
|
415
|
+
*/
|
|
416
|
+
export function readBuildGroupMembership(response, buildId) {
|
|
417
|
+
if (!isRecord(response) || response.buildId !== buildId || !Array.isArray(response.groups)
|
|
418
|
+
|| response.groups.some((group) => !isRecord(group) || typeof group.id !== 'string'
|
|
419
|
+
|| group.id === '' || typeof group.type !== 'string')) {
|
|
420
|
+
throw new Error('asc testflight groups list --build-id returned an invalid membership result.');
|
|
421
|
+
}
|
|
422
|
+
if (response.complete !== true) {
|
|
423
|
+
throw new Error('asc could not read every TestFlight group of the build.');
|
|
424
|
+
}
|
|
425
|
+
return response.groups;
|
|
426
|
+
}
|
|
408
427
|
function readDataArray(response, command) {
|
|
409
428
|
if (!isRecord(response) || !Array.isArray(response.data)) {
|
|
410
429
|
throw new Error(`asc ${command} returned an invalid JSON schema.`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mpgd/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0",
|
|
4
4
|
"description": "Gunshi CLI for mpgd-kit starter generation and target workflow orchestration.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"parse5": "7.3.0",
|
|
71
71
|
"postcss": "8.5.28",
|
|
72
72
|
"postcss-value-parser": "4.2.0",
|
|
73
|
-
"@mpgd/catalog": "0.
|
|
74
|
-
"@mpgd/
|
|
75
|
-
"@mpgd/
|
|
76
|
-
"@mpgd/
|
|
73
|
+
"@mpgd/catalog": "0.15.1",
|
|
74
|
+
"@mpgd/target-config": "0.24.8",
|
|
75
|
+
"@mpgd/platform": "0.35.1",
|
|
76
|
+
"@mpgd/phaser-assets": "0.10.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"@types/node": "^24.0.0",
|
|
@@ -81,19 +81,19 @@
|
|
|
81
81
|
"@types/yauzl": "3.4.0",
|
|
82
82
|
"ttsc": "0.34.2",
|
|
83
83
|
"typescript": "7.0.2",
|
|
84
|
-
"@mpgd/adapter-ait": "0.21.
|
|
85
|
-
"@mpgd/adapter-browser": "0.12.
|
|
86
|
-
"@mpgd/adapter-capacitor": "0.19.
|
|
87
|
-
"@mpgd/
|
|
88
|
-
"@mpgd/adapter-verse8": "0.7.
|
|
89
|
-
"@mpgd/
|
|
90
|
-
"@mpgd/bridge": "0.
|
|
91
|
-
"@mpgd/capacitor-
|
|
92
|
-
"@mpgd/capacitor-
|
|
93
|
-
"@mpgd/
|
|
94
|
-
"@mpgd/game-
|
|
95
|
-
"@mpgd/
|
|
96
|
-
"@mpgd/
|
|
84
|
+
"@mpgd/adapter-ait": "0.21.10",
|
|
85
|
+
"@mpgd/adapter-browser": "0.12.5",
|
|
86
|
+
"@mpgd/adapter-capacitor": "0.19.2",
|
|
87
|
+
"@mpgd/adapter-devvit": "0.14.12",
|
|
88
|
+
"@mpgd/adapter-verse8": "0.7.21",
|
|
89
|
+
"@mpgd/analytics": "0.5.9",
|
|
90
|
+
"@mpgd/bridge": "0.19.0",
|
|
91
|
+
"@mpgd/capacitor-play-billing": "0.6.3",
|
|
92
|
+
"@mpgd/capacitor-storekit": "0.7.2",
|
|
93
|
+
"@mpgd/lite-shell": "0.1.0",
|
|
94
|
+
"@mpgd/game-runtime": "0.10.2",
|
|
95
|
+
"@mpgd/game-services": "0.34.0",
|
|
96
|
+
"@mpgd/i18n": "0.6.30"
|
|
97
97
|
},
|
|
98
98
|
"main": "./dist/index.js",
|
|
99
99
|
"types": "./dist/index.d.ts",
|
|
@@ -125,9 +125,28 @@ export function createStarterWorkerNotificationBackend(
|
|
|
125
125
|
storage: createNotificationRuntimeStorage({ storage: platform.storage }),
|
|
126
126
|
// This target's entry in the Worker's registry, or none when the Worker does not serve it.
|
|
127
127
|
async loadRegistryEntry() {
|
|
128
|
-
const { providers, targets } = await client.getProviders();
|
|
129
|
-
const id = targets[platform.configTarget];
|
|
130
|
-
|
|
128
|
+
const { providers, targets, unreadable = [] } = await client.getProviders();
|
|
129
|
+
const id = Object.hasOwn(targets, platform.configTarget) ? targets[platform.configTarget] : undefined;
|
|
130
|
+
if (id === undefined) {
|
|
131
|
+
return undefined;
|
|
132
|
+
}
|
|
133
|
+
const entry = providers.find((candidate) => candidate.provider === id);
|
|
134
|
+
if (entry !== undefined) {
|
|
135
|
+
return entry;
|
|
136
|
+
}
|
|
137
|
+
// An entry the client could not read: a failed load, which the runtime
|
|
138
|
+
// reports, running without the comparison until the next start. An
|
|
139
|
+
// unreadable entry without an id may be this one too.
|
|
140
|
+
const left = unreadable.find((skipped) => skipped.provider === id)
|
|
141
|
+
?? unreadable.find((skipped) => skipped.provider === undefined);
|
|
142
|
+
if (left !== undefined) {
|
|
143
|
+
throw new Error(
|
|
144
|
+
`[notifications] the game-services registry entry for provider ${id} (${platform.configTarget}) `
|
|
145
|
+
+ `cannot be read: ${left.issue}`,
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
// The registry lists no entry for the provider at all.
|
|
149
|
+
return undefined;
|
|
131
150
|
},
|
|
132
151
|
onError(error) {
|
|
133
152
|
console.error('[notifications]', error);
|