@stackedapp/utils 2.35.0 → 2.36.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.
@@ -1,4 +1,4 @@
1
- import { ILevelCondition, ICurrencyCondition, IStakedTokensCondition, ITrustScoreCondition, IDaysInGameCondition, ILoginStreakCondition, IAchievementCondition, IMembershipCondition, IQuestCondition, IEntityLinkCondition, IDynamicConditionItem, IIdentifiersCondition, ITokenBalanceCondition, IStackedAccountCondition, IUserSettingsCondition, IBuyItemCondition, ISpendCurrencyCondition, IDepositCurrencyCondition, ISocialCondition, ILoginCondition, ICompletionContextCondition, ILinkedCompletionsCondition, IDynamicTrackerCondition, IContractInteractionCondition, ITwitterVerificationCondition, ICompletionTrackers, ConditionDetail, StackedSnapshot, StackedBaseUserExtra } from '@stackedapp/types';
1
+ import { ILevelCondition, ICurrencyCondition, IStakedTokensCondition, ITrustScoreCondition, IDaysInGameCondition, ILoginStreakCondition, IAchievementCondition, IMembershipCondition, IQuestCondition, IEntityLinkCondition, IDynamicConditionItem, IIdentifiersCondition, ITokenBalanceCondition, IStackedAccountCondition, IUserSettingsCondition, IBuyItemCondition, ISpendCurrencyCondition, IDepositCurrencyCondition, ISocialCondition, ILoginCondition, ICompletionContextCondition, ILinkedCompletionsCondition, IDynamicTrackerCondition, IContractInteractionCondition, ITwitterVerificationCondition, IMocaCredentialCondition, ICompletionTrackers, ConditionDetail, StackedSnapshot, StackedBaseUserExtra } from '@stackedapp/types';
2
2
  export interface EvalContext {
3
3
  snap: StackedSnapshot;
4
4
  additionalData?: StackedBaseUserExtra;
@@ -39,4 +39,5 @@ export declare function evaluateLinkedCompletions(cond: ILinkedCompletionsCondit
39
39
  export declare function evaluateDynamicTracker(cond: IDynamicTrackerCondition, ctx: EvalContext): EvalResult;
40
40
  export declare function evaluateContractInteraction(cond: IContractInteractionCondition, ctx: EvalContext): EvalResult;
41
41
  export declare function evaluateTwitterVerification(cond: ITwitterVerificationCondition, ctx: EvalContext): EvalResult;
42
+ export declare function evaluateMocaCredential(cond: IMocaCredentialCondition, ctx: EvalContext): EvalResult;
42
43
  //# sourceMappingURL=handlers.d.ts.map
@@ -25,6 +25,7 @@ exports.evaluateLinkedCompletions = evaluateLinkedCompletions;
25
25
  exports.evaluateDynamicTracker = evaluateDynamicTracker;
26
26
  exports.evaluateContractInteraction = evaluateContractInteraction;
27
27
  exports.evaluateTwitterVerification = evaluateTwitterVerification;
28
+ exports.evaluateMocaCredential = evaluateMocaCredential;
28
29
  const types_1 = require("@stackedapp/types");
29
30
  const template_1 = require("../template");
30
31
  const dynamic_1 = require("../dynamic");
@@ -361,7 +362,7 @@ function evaluateDynamic(cond, ctx) {
361
362
  }
362
363
  const AUTH_PLATFORM_DISPLAY_NAMES = {
363
364
  sms: 'SMS', email: 'Email', apple: 'Apple', google: 'Google',
364
- tiktok: 'TikTok', twitter: 'X/Twitter',
365
+ tiktok: 'TikTok', twitter: 'X/Twitter', moca: 'Moca',
365
366
  };
366
367
  function evaluateIdentifiers(cond, ctx) {
367
368
  const playerPlatforms = new Set(ctx.snap.identifiers?.map((i) => i.platform.toLowerCase()) || []);
@@ -843,4 +844,17 @@ function evaluateTwitterVerification(cond, ctx) {
843
844
  }],
844
845
  };
845
846
  }
847
+ function evaluateMocaCredential(cond, ctx) {
848
+ const tracker = ctx.completionTrackers?.mocaCredential?.[cond.id];
849
+ const isMet = tracker?.verified === true;
850
+ return {
851
+ isMet,
852
+ details: [{
853
+ isMet, kind: 'mocaCredential',
854
+ trackerAmount: isMet ? 1 : 0, trackerGoal: 1,
855
+ percentCompleted: isMet ? 100 : 0,
856
+ text: cond.template || 'Verify Moca credential',
857
+ }],
858
+ };
859
+ }
846
860
  //# sourceMappingURL=handlers.js.map
@@ -43,6 +43,7 @@ function evaluateCompletionOnlyCondition(cond, ctx) {
43
43
  case 'dynamicTracker': return (0, handlers_1.evaluateDynamicTracker)(cond, ctx);
44
44
  case 'contractInteraction': return (0, handlers_1.evaluateContractInteraction)(cond, ctx);
45
45
  case 'twitterVerification': return (0, handlers_1.evaluateTwitterVerification)(cond, ctx);
46
+ case 'mocaCredential': return (0, handlers_1.evaluateMocaCredential)(cond, ctx);
46
47
  // base kinds handled by evaluateBaseCondition
47
48
  case 'level':
48
49
  case 'currency':
@@ -387,6 +388,7 @@ const meetsCompletionConditionsBeforeExpiry = ({ completionConditions, completio
387
388
  case 'linkedCompletions':
388
389
  case 'contractInteraction':
389
390
  case 'twitterVerification':
391
+ case 'mocaCredential':
390
392
  if (completionTrackers?.lastUpdated != null && wasUpdatedAfterExpiry(completionTrackers.lastUpdated)) {
391
393
  return false;
392
394
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackedapp/utils",
3
- "version": "2.35.0",
3
+ "version": "2.36.0",
4
4
  "description": "Public utilities for Stacked platform SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",