@proofchain/sdk 2.2.0 → 2.3.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/index.d.mts CHANGED
@@ -1858,15 +1858,27 @@ interface UserQuestProgress {
1858
1858
  user_id: string;
1859
1859
  quest_id: string;
1860
1860
  quest_name: string;
1861
- status: 'not_started' | 'in_progress' | 'completed' | 'failed' | 'expired';
1861
+ status: 'not_started' | 'in_progress' | 'completed' | 'failed' | 'expired' | 'reward_pending';
1862
1862
  started_at?: string;
1863
1863
  completed_at?: string;
1864
1864
  expires_at?: string;
1865
1865
  completion_count: number;
1866
1866
  current_step_order: number;
1867
+ steps_completed: number;
1868
+ total_steps: number;
1869
+ completion_percentage: number;
1867
1870
  step_progress: StepProgress[];
1868
1871
  points_earned: number;
1869
- reward_earned: boolean;
1872
+ reward_earned?: RewardEarned;
1873
+ }
1874
+ interface RewardEarned {
1875
+ id: string;
1876
+ reward_name: string;
1877
+ reward_type: string;
1878
+ value?: number;
1879
+ value_currency?: string;
1880
+ status: string;
1881
+ earned_at: string;
1870
1882
  }
1871
1883
  interface StepProgress {
1872
1884
  step_id: string;
@@ -1876,6 +1888,14 @@ interface StepProgress {
1876
1888
  completed_at?: string;
1877
1889
  event_id?: string;
1878
1890
  }
1891
+ interface StepCompletionResult {
1892
+ step_index: number;
1893
+ step_completed: boolean;
1894
+ quest_completed: boolean;
1895
+ current_count: number;
1896
+ target_count: number;
1897
+ points_earned: number;
1898
+ }
1879
1899
  interface QuestWithProgress extends Quest {
1880
1900
  user_progress?: UserQuestProgress;
1881
1901
  }
@@ -1938,6 +1958,13 @@ declare class QuestsClient {
1938
1958
  * Get a quest by ID
1939
1959
  */
1940
1960
  get(questId: string): Promise<Quest>;
1961
+ /**
1962
+ * List available quests for a user (active, public quests with user progress)
1963
+ * This is the main endpoint for frontend quest displays
1964
+ */
1965
+ listAvailable(userId: string, options?: {
1966
+ category?: string;
1967
+ }): Promise<QuestWithProgress[]>;
1941
1968
  /**
1942
1969
  * Get a quest by slug
1943
1970
  */
@@ -1955,7 +1982,11 @@ declare class QuestsClient {
1955
1982
  */
1956
1983
  delete(questId: string): Promise<void>;
1957
1984
  /**
1958
- * Activate a quest
1985
+ * Publish/activate a quest (changes status from draft to active)
1986
+ */
1987
+ publish(questId: string): Promise<Quest>;
1988
+ /**
1989
+ * @deprecated Use publish() instead
1959
1990
  */
1960
1991
  activate(questId: string): Promise<Quest>;
1961
1992
  /**
@@ -1983,9 +2014,9 @@ declare class QuestsClient {
1983
2014
  */
1984
2015
  getUserProgress(questId: string, userId: string): Promise<UserQuestProgress>;
1985
2016
  /**
1986
- * Complete a step manually
2017
+ * Complete a step manually by step index
1987
2018
  */
1988
- completeStep(questId: string, userId: string, stepId: string): Promise<UserQuestProgress>;
2019
+ completeStep(questId: string, userId: string, stepIndex: number): Promise<StepCompletionResult>;
1989
2020
  /**
1990
2021
  * Get all quest progress for a user
1991
2022
  */
@@ -2753,4 +2784,4 @@ declare class TimeoutError extends ProofChainError {
2753
2784
  constructor(message?: string);
2754
2785
  }
2755
2786
 
2756
- export { type Achievement, type ActivitySummaryView, type AddNFTRequest, type ApiKey, type AttestRequest, type AttestationMode, type AttestationResult, AuthenticationError, AuthorizationError, type AvailableView, type Badge, type BatchIngestRequest, type BatchIngestResponse, type BatchVerifyResult, type BlockchainProof, type BlockchainStats, type Certificate, type CertificateVerifyResult, CertificatesResource, type Channel, type ChannelState, type ChannelStatus, ChannelsResource, type ComprehensiveWalletInfo, type CreateAchievementRequest, type CreateApiKeyRequest, type CreateBadgeRequest, type CreateChannelRequest, type CreateDataViewRequest, type CreateDualWalletsRequest, type CreateEndUserRequest, type CreateEventRequest, type CreatePassportDefinitionRequest, type CreatePassportRequest, type CreateQuestRequest, type CreateQuestStepRequest, type CreateRewardDefinitionRequest, type CreateSchemaRequest, type CreateTemplateFieldRequest, type CreateTemplateRequest, type CreateWalletRequest, type CreateWebhookRequest, type DataViewColumn, type DataViewComputation, type DataViewDetail, type DataViewExecuteResult, type DataViewInfo, type DataViewListResponse, type DataViewPreviewRequest, type DataViewPreviewResult, type DataViewSummary, DataViewsClient, DocumentsResource, type DualWallets, type EarnedReward, type EndUser, type EndUserListResponse, EndUsersClient, type Event, type EventBatchProof, type EventMetadata, type EventStatus, EventsResource, type ExecuteSwapRequest, type Facet, type FacetsResponse, type FanProfileView, type FieldValue, type IngestEventRequest, type IngestEventResponse, IngestionClient, type IngestionClientOptions, type IssueCertificateRequest, type LinkWalletRequest, type ListCertificatesRequest, type ListEndUsersOptions, type ListEventsRequest, type ListQuestsOptions, type ListRewardsOptions, type ListSchemasOptions, type ManualRewardRequest, type MergeUsersRequest, type Milestone, type NFT, NetworkError, NotFoundError, type Passport, PassportClient, type PassportDefinition, type PassportFieldValue, type PassportHistory, type PassportTemplate, type PassportV2Data, type PassportWithFields, ProofChain, ProofChainError, type ProofChainOptions, type ProofVerifyResult, type Quest, type QuestStep, type QuestWithProgress, QuestsClient, RateLimitError, type RewardAsset, type RewardDefinition, RewardsClient, type Schema, type SchemaDetail, type SchemaField, type SchemaListResponse, type ValidationError$1 as SchemaValidationError, SchemasClient, type SearchFilters, type SearchQueryRequest, type SearchRequest, SearchResource, type SearchResponse, type SearchResult, type SearchStats, ServerError, type Settlement, type StepProgress, type StreamAck, type StreamEventRequest, type SwapQuote, type SwapQuoteRequest, type SwapResult, type TemplateField, type TenantInfo, TenantResource, type TierDefinition, TimeoutError, type TokenBalance, type TransferRequest, type TransferResult, type UpdateDataViewRequest, type UpdateEndUserRequest, type UpdatePassportRequest, type UpdateWebhookRequest, type UsageStats, type UserAchievement, type UserActivity, type UserActivityResponse, type UserBadge, type UserQuestProgress, type UserWalletSummary, type UserWithWallets, type UsersWithWalletsResponse, type ValidateDataRequest, ValidationError, type ValidationErrorDetail, type ValidationResult, type VaultFile, type VaultFolder, type VaultListResponse, VaultResource, type VaultStats, type VaultUploadRequest, type VerificationResult, VerifyResource, type ViewColumn, type ViewTemplate, type Wallet, type WalletBalance, WalletClient, type WalletStats, type Webhook, WebhooksResource };
2787
+ export { type Achievement, type ActivitySummaryView, type AddNFTRequest, type ApiKey, type AttestRequest, type AttestationMode, type AttestationResult, AuthenticationError, AuthorizationError, type AvailableView, type Badge, type BatchIngestRequest, type BatchIngestResponse, type BatchVerifyResult, type BlockchainProof, type BlockchainStats, type Certificate, type CertificateVerifyResult, CertificatesResource, type Channel, type ChannelState, type ChannelStatus, ChannelsResource, type ComprehensiveWalletInfo, type CreateAchievementRequest, type CreateApiKeyRequest, type CreateBadgeRequest, type CreateChannelRequest, type CreateDataViewRequest, type CreateDualWalletsRequest, type CreateEndUserRequest, type CreateEventRequest, type CreatePassportDefinitionRequest, type CreatePassportRequest, type CreateQuestRequest, type CreateQuestStepRequest, type CreateRewardDefinitionRequest, type CreateSchemaRequest, type CreateTemplateFieldRequest, type CreateTemplateRequest, type CreateWalletRequest, type CreateWebhookRequest, type DataViewColumn, type DataViewComputation, type DataViewDetail, type DataViewExecuteResult, type DataViewInfo, type DataViewListResponse, type DataViewPreviewRequest, type DataViewPreviewResult, type DataViewSummary, DataViewsClient, DocumentsResource, type DualWallets, type EarnedReward, type EndUser, type EndUserListResponse, EndUsersClient, type Event, type EventBatchProof, type EventMetadata, type EventStatus, EventsResource, type ExecuteSwapRequest, type Facet, type FacetsResponse, type FanProfileView, type FieldValue, type IngestEventRequest, type IngestEventResponse, IngestionClient, type IngestionClientOptions, type IssueCertificateRequest, type LinkWalletRequest, type ListCertificatesRequest, type ListEndUsersOptions, type ListEventsRequest, type ListQuestsOptions, type ListRewardsOptions, type ListSchemasOptions, type ManualRewardRequest, type MergeUsersRequest, type Milestone, type NFT, NetworkError, NotFoundError, type Passport, PassportClient, type PassportDefinition, type PassportFieldValue, type PassportHistory, type PassportTemplate, type PassportV2Data, type PassportWithFields, ProofChain, ProofChainError, type ProofChainOptions, type ProofVerifyResult, type Quest, type QuestStep, type QuestWithProgress, QuestsClient, RateLimitError, type RewardAsset, type RewardDefinition, type RewardEarned, RewardsClient, type Schema, type SchemaDetail, type SchemaField, type SchemaListResponse, type ValidationError$1 as SchemaValidationError, SchemasClient, type SearchFilters, type SearchQueryRequest, type SearchRequest, SearchResource, type SearchResponse, type SearchResult, type SearchStats, ServerError, type Settlement, type StepCompletionResult, type StepProgress, type StreamAck, type StreamEventRequest, type SwapQuote, type SwapQuoteRequest, type SwapResult, type TemplateField, type TenantInfo, TenantResource, type TierDefinition, TimeoutError, type TokenBalance, type TransferRequest, type TransferResult, type UpdateDataViewRequest, type UpdateEndUserRequest, type UpdatePassportRequest, type UpdateWebhookRequest, type UsageStats, type UserAchievement, type UserActivity, type UserActivityResponse, type UserBadge, type UserQuestProgress, type UserWalletSummary, type UserWithWallets, type UsersWithWalletsResponse, type ValidateDataRequest, ValidationError, type ValidationErrorDetail, type ValidationResult, type VaultFile, type VaultFolder, type VaultListResponse, VaultResource, type VaultStats, type VaultUploadRequest, type VerificationResult, VerifyResource, type ViewColumn, type ViewTemplate, type Wallet, type WalletBalance, WalletClient, type WalletStats, type Webhook, WebhooksResource };
package/dist/index.d.ts CHANGED
@@ -1858,15 +1858,27 @@ interface UserQuestProgress {
1858
1858
  user_id: string;
1859
1859
  quest_id: string;
1860
1860
  quest_name: string;
1861
- status: 'not_started' | 'in_progress' | 'completed' | 'failed' | 'expired';
1861
+ status: 'not_started' | 'in_progress' | 'completed' | 'failed' | 'expired' | 'reward_pending';
1862
1862
  started_at?: string;
1863
1863
  completed_at?: string;
1864
1864
  expires_at?: string;
1865
1865
  completion_count: number;
1866
1866
  current_step_order: number;
1867
+ steps_completed: number;
1868
+ total_steps: number;
1869
+ completion_percentage: number;
1867
1870
  step_progress: StepProgress[];
1868
1871
  points_earned: number;
1869
- reward_earned: boolean;
1872
+ reward_earned?: RewardEarned;
1873
+ }
1874
+ interface RewardEarned {
1875
+ id: string;
1876
+ reward_name: string;
1877
+ reward_type: string;
1878
+ value?: number;
1879
+ value_currency?: string;
1880
+ status: string;
1881
+ earned_at: string;
1870
1882
  }
1871
1883
  interface StepProgress {
1872
1884
  step_id: string;
@@ -1876,6 +1888,14 @@ interface StepProgress {
1876
1888
  completed_at?: string;
1877
1889
  event_id?: string;
1878
1890
  }
1891
+ interface StepCompletionResult {
1892
+ step_index: number;
1893
+ step_completed: boolean;
1894
+ quest_completed: boolean;
1895
+ current_count: number;
1896
+ target_count: number;
1897
+ points_earned: number;
1898
+ }
1879
1899
  interface QuestWithProgress extends Quest {
1880
1900
  user_progress?: UserQuestProgress;
1881
1901
  }
@@ -1938,6 +1958,13 @@ declare class QuestsClient {
1938
1958
  * Get a quest by ID
1939
1959
  */
1940
1960
  get(questId: string): Promise<Quest>;
1961
+ /**
1962
+ * List available quests for a user (active, public quests with user progress)
1963
+ * This is the main endpoint for frontend quest displays
1964
+ */
1965
+ listAvailable(userId: string, options?: {
1966
+ category?: string;
1967
+ }): Promise<QuestWithProgress[]>;
1941
1968
  /**
1942
1969
  * Get a quest by slug
1943
1970
  */
@@ -1955,7 +1982,11 @@ declare class QuestsClient {
1955
1982
  */
1956
1983
  delete(questId: string): Promise<void>;
1957
1984
  /**
1958
- * Activate a quest
1985
+ * Publish/activate a quest (changes status from draft to active)
1986
+ */
1987
+ publish(questId: string): Promise<Quest>;
1988
+ /**
1989
+ * @deprecated Use publish() instead
1959
1990
  */
1960
1991
  activate(questId: string): Promise<Quest>;
1961
1992
  /**
@@ -1983,9 +2014,9 @@ declare class QuestsClient {
1983
2014
  */
1984
2015
  getUserProgress(questId: string, userId: string): Promise<UserQuestProgress>;
1985
2016
  /**
1986
- * Complete a step manually
2017
+ * Complete a step manually by step index
1987
2018
  */
1988
- completeStep(questId: string, userId: string, stepId: string): Promise<UserQuestProgress>;
2019
+ completeStep(questId: string, userId: string, stepIndex: number): Promise<StepCompletionResult>;
1989
2020
  /**
1990
2021
  * Get all quest progress for a user
1991
2022
  */
@@ -2753,4 +2784,4 @@ declare class TimeoutError extends ProofChainError {
2753
2784
  constructor(message?: string);
2754
2785
  }
2755
2786
 
2756
- export { type Achievement, type ActivitySummaryView, type AddNFTRequest, type ApiKey, type AttestRequest, type AttestationMode, type AttestationResult, AuthenticationError, AuthorizationError, type AvailableView, type Badge, type BatchIngestRequest, type BatchIngestResponse, type BatchVerifyResult, type BlockchainProof, type BlockchainStats, type Certificate, type CertificateVerifyResult, CertificatesResource, type Channel, type ChannelState, type ChannelStatus, ChannelsResource, type ComprehensiveWalletInfo, type CreateAchievementRequest, type CreateApiKeyRequest, type CreateBadgeRequest, type CreateChannelRequest, type CreateDataViewRequest, type CreateDualWalletsRequest, type CreateEndUserRequest, type CreateEventRequest, type CreatePassportDefinitionRequest, type CreatePassportRequest, type CreateQuestRequest, type CreateQuestStepRequest, type CreateRewardDefinitionRequest, type CreateSchemaRequest, type CreateTemplateFieldRequest, type CreateTemplateRequest, type CreateWalletRequest, type CreateWebhookRequest, type DataViewColumn, type DataViewComputation, type DataViewDetail, type DataViewExecuteResult, type DataViewInfo, type DataViewListResponse, type DataViewPreviewRequest, type DataViewPreviewResult, type DataViewSummary, DataViewsClient, DocumentsResource, type DualWallets, type EarnedReward, type EndUser, type EndUserListResponse, EndUsersClient, type Event, type EventBatchProof, type EventMetadata, type EventStatus, EventsResource, type ExecuteSwapRequest, type Facet, type FacetsResponse, type FanProfileView, type FieldValue, type IngestEventRequest, type IngestEventResponse, IngestionClient, type IngestionClientOptions, type IssueCertificateRequest, type LinkWalletRequest, type ListCertificatesRequest, type ListEndUsersOptions, type ListEventsRequest, type ListQuestsOptions, type ListRewardsOptions, type ListSchemasOptions, type ManualRewardRequest, type MergeUsersRequest, type Milestone, type NFT, NetworkError, NotFoundError, type Passport, PassportClient, type PassportDefinition, type PassportFieldValue, type PassportHistory, type PassportTemplate, type PassportV2Data, type PassportWithFields, ProofChain, ProofChainError, type ProofChainOptions, type ProofVerifyResult, type Quest, type QuestStep, type QuestWithProgress, QuestsClient, RateLimitError, type RewardAsset, type RewardDefinition, RewardsClient, type Schema, type SchemaDetail, type SchemaField, type SchemaListResponse, type ValidationError$1 as SchemaValidationError, SchemasClient, type SearchFilters, type SearchQueryRequest, type SearchRequest, SearchResource, type SearchResponse, type SearchResult, type SearchStats, ServerError, type Settlement, type StepProgress, type StreamAck, type StreamEventRequest, type SwapQuote, type SwapQuoteRequest, type SwapResult, type TemplateField, type TenantInfo, TenantResource, type TierDefinition, TimeoutError, type TokenBalance, type TransferRequest, type TransferResult, type UpdateDataViewRequest, type UpdateEndUserRequest, type UpdatePassportRequest, type UpdateWebhookRequest, type UsageStats, type UserAchievement, type UserActivity, type UserActivityResponse, type UserBadge, type UserQuestProgress, type UserWalletSummary, type UserWithWallets, type UsersWithWalletsResponse, type ValidateDataRequest, ValidationError, type ValidationErrorDetail, type ValidationResult, type VaultFile, type VaultFolder, type VaultListResponse, VaultResource, type VaultStats, type VaultUploadRequest, type VerificationResult, VerifyResource, type ViewColumn, type ViewTemplate, type Wallet, type WalletBalance, WalletClient, type WalletStats, type Webhook, WebhooksResource };
2787
+ export { type Achievement, type ActivitySummaryView, type AddNFTRequest, type ApiKey, type AttestRequest, type AttestationMode, type AttestationResult, AuthenticationError, AuthorizationError, type AvailableView, type Badge, type BatchIngestRequest, type BatchIngestResponse, type BatchVerifyResult, type BlockchainProof, type BlockchainStats, type Certificate, type CertificateVerifyResult, CertificatesResource, type Channel, type ChannelState, type ChannelStatus, ChannelsResource, type ComprehensiveWalletInfo, type CreateAchievementRequest, type CreateApiKeyRequest, type CreateBadgeRequest, type CreateChannelRequest, type CreateDataViewRequest, type CreateDualWalletsRequest, type CreateEndUserRequest, type CreateEventRequest, type CreatePassportDefinitionRequest, type CreatePassportRequest, type CreateQuestRequest, type CreateQuestStepRequest, type CreateRewardDefinitionRequest, type CreateSchemaRequest, type CreateTemplateFieldRequest, type CreateTemplateRequest, type CreateWalletRequest, type CreateWebhookRequest, type DataViewColumn, type DataViewComputation, type DataViewDetail, type DataViewExecuteResult, type DataViewInfo, type DataViewListResponse, type DataViewPreviewRequest, type DataViewPreviewResult, type DataViewSummary, DataViewsClient, DocumentsResource, type DualWallets, type EarnedReward, type EndUser, type EndUserListResponse, EndUsersClient, type Event, type EventBatchProof, type EventMetadata, type EventStatus, EventsResource, type ExecuteSwapRequest, type Facet, type FacetsResponse, type FanProfileView, type FieldValue, type IngestEventRequest, type IngestEventResponse, IngestionClient, type IngestionClientOptions, type IssueCertificateRequest, type LinkWalletRequest, type ListCertificatesRequest, type ListEndUsersOptions, type ListEventsRequest, type ListQuestsOptions, type ListRewardsOptions, type ListSchemasOptions, type ManualRewardRequest, type MergeUsersRequest, type Milestone, type NFT, NetworkError, NotFoundError, type Passport, PassportClient, type PassportDefinition, type PassportFieldValue, type PassportHistory, type PassportTemplate, type PassportV2Data, type PassportWithFields, ProofChain, ProofChainError, type ProofChainOptions, type ProofVerifyResult, type Quest, type QuestStep, type QuestWithProgress, QuestsClient, RateLimitError, type RewardAsset, type RewardDefinition, type RewardEarned, RewardsClient, type Schema, type SchemaDetail, type SchemaField, type SchemaListResponse, type ValidationError$1 as SchemaValidationError, SchemasClient, type SearchFilters, type SearchQueryRequest, type SearchRequest, SearchResource, type SearchResponse, type SearchResult, type SearchStats, ServerError, type Settlement, type StepCompletionResult, type StepProgress, type StreamAck, type StreamEventRequest, type SwapQuote, type SwapQuoteRequest, type SwapResult, type TemplateField, type TenantInfo, TenantResource, type TierDefinition, TimeoutError, type TokenBalance, type TransferRequest, type TransferResult, type UpdateDataViewRequest, type UpdateEndUserRequest, type UpdatePassportRequest, type UpdateWebhookRequest, type UsageStats, type UserAchievement, type UserActivity, type UserActivityResponse, type UserBadge, type UserQuestProgress, type UserWalletSummary, type UserWithWallets, type UsersWithWalletsResponse, type ValidateDataRequest, ValidationError, type ValidationErrorDetail, type ValidationResult, type VaultFile, type VaultFolder, type VaultListResponse, VaultResource, type VaultStats, type VaultUploadRequest, type VerificationResult, VerifyResource, type ViewColumn, type ViewTemplate, type Wallet, type WalletBalance, WalletClient, type WalletStats, type Webhook, WebhooksResource };
package/dist/index.js CHANGED
@@ -1371,6 +1371,16 @@ var QuestsClient = class {
1371
1371
  async get(questId) {
1372
1372
  return this.http.get(`/quests/${questId}`);
1373
1373
  }
1374
+ /**
1375
+ * List available quests for a user (active, public quests with user progress)
1376
+ * This is the main endpoint for frontend quest displays
1377
+ */
1378
+ async listAvailable(userId, options = {}) {
1379
+ const params = new URLSearchParams();
1380
+ params.append("user_id", userId);
1381
+ if (options.category) params.append("category", options.category);
1382
+ return this.http.get(`/quests/available?${params.toString()}`);
1383
+ }
1374
1384
  /**
1375
1385
  * Get a quest by slug
1376
1386
  */
@@ -1399,10 +1409,16 @@ var QuestsClient = class {
1399
1409
  // Quest Status
1400
1410
  // ---------------------------------------------------------------------------
1401
1411
  /**
1402
- * Activate a quest
1412
+ * Publish/activate a quest (changes status from draft to active)
1413
+ */
1414
+ async publish(questId) {
1415
+ return this.http.post(`/quests/${questId}/publish`, {});
1416
+ }
1417
+ /**
1418
+ * @deprecated Use publish() instead
1403
1419
  */
1404
1420
  async activate(questId) {
1405
- return this.http.post(`/quests/${questId}/activate`, {});
1421
+ return this.publish(questId);
1406
1422
  }
1407
1423
  /**
1408
1424
  * Pause a quest
@@ -1448,12 +1464,13 @@ var QuestsClient = class {
1448
1464
  return this.http.get(`/quests/${questId}/progress/${encodeURIComponent(userId)}`);
1449
1465
  }
1450
1466
  /**
1451
- * Complete a step manually
1467
+ * Complete a step manually by step index
1452
1468
  */
1453
- async completeStep(questId, userId, stepId) {
1454
- return this.http.post(`/quests/${questId}/steps/${stepId}/complete`, {
1455
- user_id: userId
1456
- });
1469
+ async completeStep(questId, userId, stepIndex) {
1470
+ return this.http.post(
1471
+ `/quests/${questId}/progress/${encodeURIComponent(userId)}/step/${stepIndex}/complete`,
1472
+ {}
1473
+ );
1457
1474
  }
1458
1475
  /**
1459
1476
  * Get all quest progress for a user
package/dist/index.mjs CHANGED
@@ -1319,6 +1319,16 @@ var QuestsClient = class {
1319
1319
  async get(questId) {
1320
1320
  return this.http.get(`/quests/${questId}`);
1321
1321
  }
1322
+ /**
1323
+ * List available quests for a user (active, public quests with user progress)
1324
+ * This is the main endpoint for frontend quest displays
1325
+ */
1326
+ async listAvailable(userId, options = {}) {
1327
+ const params = new URLSearchParams();
1328
+ params.append("user_id", userId);
1329
+ if (options.category) params.append("category", options.category);
1330
+ return this.http.get(`/quests/available?${params.toString()}`);
1331
+ }
1322
1332
  /**
1323
1333
  * Get a quest by slug
1324
1334
  */
@@ -1347,10 +1357,16 @@ var QuestsClient = class {
1347
1357
  // Quest Status
1348
1358
  // ---------------------------------------------------------------------------
1349
1359
  /**
1350
- * Activate a quest
1360
+ * Publish/activate a quest (changes status from draft to active)
1361
+ */
1362
+ async publish(questId) {
1363
+ return this.http.post(`/quests/${questId}/publish`, {});
1364
+ }
1365
+ /**
1366
+ * @deprecated Use publish() instead
1351
1367
  */
1352
1368
  async activate(questId) {
1353
- return this.http.post(`/quests/${questId}/activate`, {});
1369
+ return this.publish(questId);
1354
1370
  }
1355
1371
  /**
1356
1372
  * Pause a quest
@@ -1396,12 +1412,13 @@ var QuestsClient = class {
1396
1412
  return this.http.get(`/quests/${questId}/progress/${encodeURIComponent(userId)}`);
1397
1413
  }
1398
1414
  /**
1399
- * Complete a step manually
1415
+ * Complete a step manually by step index
1400
1416
  */
1401
- async completeStep(questId, userId, stepId) {
1402
- return this.http.post(`/quests/${questId}/steps/${stepId}/complete`, {
1403
- user_id: userId
1404
- });
1417
+ async completeStep(questId, userId, stepIndex) {
1418
+ return this.http.post(
1419
+ `/quests/${questId}/progress/${encodeURIComponent(userId)}/step/${stepIndex}/complete`,
1420
+ {}
1421
+ );
1405
1422
  }
1406
1423
  /**
1407
1424
  * Get all quest progress for a user
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proofchain/sdk",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Official JavaScript/TypeScript SDK for ProofChain - blockchain-anchored document attestation",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",