@mpgd/cli 0.63.0 → 0.65.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-iap-asc.d.ts +5 -14
- package/dist/app-store-iap-asc.js +9 -116
- package/dist/app-store-presence-asc.d.ts +23 -0
- package/dist/app-store-presence-asc.js +162 -0
- package/dist/app-store-presence-port.d.ts +101 -0
- package/dist/app-store-presence-port.js +13 -0
- package/dist/asc-session.d.ts +43 -0
- package/dist/asc-session.js +118 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +75 -1
- package/dist/native-build-info.json +2 -2
- package/dist/native-build-target.js +492 -413
- package/dist/play-listing-port.d.ts +88 -0
- package/dist/play-listing-port.js +12 -0
- package/dist/play-sdk-adapter.js +103 -17
- package/dist/store-presence-app-store.d.ts +139 -0
- package/dist/store-presence-app-store.js +537 -0
- package/dist/store-presence-command.d.ts +50 -0
- package/dist/store-presence-command.js +145 -0
- package/dist/store-presence-play.d.ts +116 -0
- package/dist/store-presence-play.js +495 -0
- package/dist/store-presence.d.ts +106 -0
- package/dist/store-presence.js +173 -0
- package/dist/store-products-command.d.ts +2 -1
- package/dist/store-products-command.js +15 -42
- package/dist/store-products.d.ts +3 -11
- package/dist/store-products.js +7 -75
- package/dist/store-sync.d.ts +50 -0
- package/dist/store-sync.js +137 -0
- package/package.json +19 -19
- package/templates/lite-overlay/README.md +4 -0
- package/templates/lite-overlay/apps/target-devvit/README.md +10 -0
- package/templates/phaser-game/README.md +32 -3
- package/templates/phaser-game/apps/target-ait/package.json +2 -2
- package/templates/phaser-game/apps/target-cloudflare-pages/package.json +2 -2
- package/templates/phaser-game/apps/target-devvit/README.md +10 -0
- package/templates/phaser-game/apps/target-devvit/package.json +2 -2
- package/templates/phaser-game/package.json +2 -2
- package/templates/phaser-game/src/i18n/messages.ts +3 -0
- package/templates/phaser-game/src/main.ts +42 -0
- package/templates/phaser-game/src/platform/buildGateways/capacitorAndroid.ts +5 -0
- package/templates/phaser-game/src/platform/buildGateways/capacitorIos.ts +5 -0
- package/templates/phaser-game/src/platform/commerceAccountBinding.ts +81 -1
- package/templates/phaser-game/src/platform/gameServices.ts +88 -4
- package/templates/phaser-game/src/platform/guestIdentity.ts +4 -3
- package/templates/phaser-game/src/platform/sessionGatedServices.ts +149 -21
- package/templates/phaser-game/src/styles.css +12 -0
package/dist/index.js
CHANGED
|
@@ -39,6 +39,9 @@ import { promotePlayRelease } from './play-release-promote.js';
|
|
|
39
39
|
import { applyStoreProducts, planStoreProducts, saveStoreProductPlan, } from './store-products-command.js';
|
|
40
40
|
import { formatAppStoreProductPlan } from './store-products-app-store.js';
|
|
41
41
|
import { formatPlayProductPlan } from './store-products-play.js';
|
|
42
|
+
import { applyStorePresence, planStorePresence, saveStorePresencePlan, } from './store-presence-command.js';
|
|
43
|
+
import { formatPlayPresencePlan } from './store-presence-play.js';
|
|
44
|
+
import { formatAppStorePresencePlan } from './store-presence-app-store.js';
|
|
42
45
|
import { changePlayRollout } from './play-release-rollout.js';
|
|
43
46
|
import { readNativeReleaseStatus as readNativeReleaseStatusForCli } from './release-state.js';
|
|
44
47
|
import { uploadRecordedCrashSymbols } from './crash-symbols-upload.js';
|
|
@@ -57,6 +60,10 @@ export { applyStoreProducts, planStoreProducts, saveStoreProductPlan, } from './
|
|
|
57
60
|
export { applyPlayProductPlan, formatPlayProductPlan, planPlayProducts, PlayProductApplyError, } from './store-products-play.js';
|
|
58
61
|
export { AppStoreProductApplyError, applyAppStoreProductPlan, formatAppStoreProductPlan, planAppStoreProducts, } from './store-products-app-store.js';
|
|
59
62
|
export { StoreProductPlanStaleError } from './store-products.js';
|
|
63
|
+
export { StorePlanStaleError } from './store-sync.js';
|
|
64
|
+
export { applyStorePresence, planStorePresence, saveStorePresencePlan, } from './store-presence-command.js';
|
|
65
|
+
export { applyPlayPresence, formatPlayPresencePlan, planPlayPresence, PlayPresenceApplyError, } from './store-presence-play.js';
|
|
66
|
+
export { applyAppStorePresence, AppStorePresenceApplyError, formatAppStorePresencePlan, planAppStorePresence, } from './store-presence-app-store.js';
|
|
60
67
|
export { PlayPromoteUncertainError, promotePlayRelease, } from './play-release-promote.js';
|
|
61
68
|
export { PlayRolloutUncertainError, changePlayRollout, } from './play-release-rollout.js';
|
|
62
69
|
export { IosSubmissionUncertainError, submitVerifiedIosBuild, } from './testflight-submission.js';
|
|
@@ -832,9 +839,76 @@ const storeCommand = defineI18n({
|
|
|
832
839
|
}),
|
|
833
840
|
},
|
|
834
841
|
}),
|
|
842
|
+
presence: defineI18n({
|
|
843
|
+
name: 'presence',
|
|
844
|
+
description: 'Plan and apply the store page text and graphics from mpgd.store-presence.json.',
|
|
845
|
+
resource: commandResource({
|
|
846
|
+
en: 'Plan and apply the store page text and graphics from mpgd.store-presence.json.',
|
|
847
|
+
ko: 'mpgd.store-presence.json으로 스토어 페이지 문구와 그래픽을 계획하고 적용합니다.',
|
|
848
|
+
}),
|
|
849
|
+
subCommands: {
|
|
850
|
+
plan: defineI18n({
|
|
851
|
+
name: 'plan',
|
|
852
|
+
description: 'Read the store listing and print the changes; never writes to the store.',
|
|
853
|
+
resource: commandResource({
|
|
854
|
+
en: 'Read the store listing and print the changes; never writes to the store.',
|
|
855
|
+
ko: '스토어 리스팅을 읽고 변경 사항을 출력합니다. 스토어에 쓰지 않습니다.',
|
|
856
|
+
}),
|
|
857
|
+
args: {
|
|
858
|
+
game: { type: 'string', required: false, description: 'Game project directory.' },
|
|
859
|
+
profile: { type: 'string', required: false, description: 'Deployment profile naming the app and credential; defaults to beta.' },
|
|
860
|
+
store: { type: 'string', required: true, description: 'google-play or app-store.' },
|
|
861
|
+
presence: { type: 'string', required: false, description: 'Store presence file path, relative to the current directory; defaults to mpgd.store-presence.json in the game.' },
|
|
862
|
+
out: { type: 'string', required: false, description: 'New plan JSON path for apply; existing files are not overwritten.' },
|
|
863
|
+
},
|
|
864
|
+
run: async (ctx) => {
|
|
865
|
+
const presence = readOptionalString(ctx.values.presence);
|
|
866
|
+
const result = await planStorePresence({
|
|
867
|
+
game: readOptionalString(ctx.values.game) ?? '.',
|
|
868
|
+
profile: readOptionalString(ctx.values.profile) ?? 'beta',
|
|
869
|
+
store: readRequiredCliOption(ctx.values.store, '--store'),
|
|
870
|
+
...(presence === undefined ? {} : { presenceFile: presence }),
|
|
871
|
+
});
|
|
872
|
+
console.info(result.plan.store === 'google-play'
|
|
873
|
+
? formatPlayPresencePlan(result.plan)
|
|
874
|
+
: formatAppStorePresencePlan(result.plan));
|
|
875
|
+
const out = readOptionalString(ctx.values.out);
|
|
876
|
+
if (out !== undefined) {
|
|
877
|
+
console.info(`Wrote store presence plan: ${saveStorePresencePlan(out, result)}`);
|
|
878
|
+
}
|
|
879
|
+
},
|
|
880
|
+
}),
|
|
881
|
+
apply: defineI18n({
|
|
882
|
+
name: 'apply',
|
|
883
|
+
description: 'Write the reviewed plan (one Play edit); refuses when the store or the files changed since.',
|
|
884
|
+
resource: commandResource({
|
|
885
|
+
en: 'Write the reviewed plan (one Play edit); refuses when the store or the files changed since.',
|
|
886
|
+
ko: '검토한 계획을 적용합니다(Play는 한 번의 편집). 이후 스토어나 파일이 바뀌었으면 거부합니다.',
|
|
887
|
+
}),
|
|
888
|
+
args: {
|
|
889
|
+
plan: { type: 'string', required: true, description: 'Plan JSON written by "store presence plan --out".' },
|
|
890
|
+
game: { type: 'string', required: false, description: 'Current game directory if the game moved.' },
|
|
891
|
+
approve: { type: 'boolean', required: false, description: 'Approve the store writes.' },
|
|
892
|
+
'confirm-image-removal': { type: 'boolean', required: false, description: 'Confirm removing store images a complete set no longer lists.' },
|
|
893
|
+
'changes-not-sent-for-review': { type: 'boolean', required: false, description: 'Google Play: commit without sending for review; send it from Play Console.' },
|
|
894
|
+
},
|
|
895
|
+
run: async (ctx) => {
|
|
896
|
+
const game = readOptionalString(ctx.values.game);
|
|
897
|
+
const result = await applyStorePresence({
|
|
898
|
+
planFile: readRequiredCliOption(ctx.values.plan, '--plan'),
|
|
899
|
+
...(game === undefined ? {} : { game }),
|
|
900
|
+
approved: ctx.values.approve === true,
|
|
901
|
+
...(ctx.values['confirm-image-removal'] === true ? { confirmImageRemoval: true } : {}),
|
|
902
|
+
...(ctx.values['changes-not-sent-for-review'] === true ? { changesNotSentForReview: true } : {}),
|
|
903
|
+
});
|
|
904
|
+
console.info(JSON.stringify(result, null, 2));
|
|
905
|
+
},
|
|
906
|
+
}),
|
|
907
|
+
},
|
|
908
|
+
}),
|
|
835
909
|
},
|
|
836
910
|
run: () => {
|
|
837
|
-
console.info('Use "mpgd store products plan" or "mpgd store
|
|
911
|
+
console.info('Use "mpgd store products plan|apply" or "mpgd store presence plan|apply".');
|
|
838
912
|
},
|
|
839
913
|
});
|
|
840
914
|
const gameCommand = defineI18n({
|