@app-vitals/agent-admin 1.2.7 → 1.4.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/openapi.json +7 -2
- package/openapi.platform.json +7 -2
- package/package.json +2 -2
- package/prisma/client/browser.ts +10 -0
- package/prisma/client/client.ts +10 -0
- package/prisma/client/internal/class.ts +24 -4
- package/prisma/client/internal/prismaNamespace.ts +183 -2
- package/prisma/client/internal/prismaNamespaceBrowser.ts +32 -1
- package/prisma/client/models/Agent.ts +282 -0
- package/prisma/client/models/AgentMarketplace.ts +1421 -0
- package/prisma/client/models/GitHubEnterpriseApp.ts +1289 -0
- package/prisma/client/models.ts +2 -0
- package/prisma/migrations/20261101000000_add_agent_marketplace/migration.sql +19 -0
- package/prisma/migrations/20261109000000_add_github_enterprise_app/migration.sql +16 -0
- package/prisma/schema/schema.prisma +37 -0
- package/src/agent-account-assignment.ts +12 -0
- package/src/agent-account-assignment.unit.test.ts +35 -1
- package/src/agent-marketplaces.integration.test.ts +82 -0
- package/src/agents-api.smoke.test.ts +198 -0
- package/src/agents-api.specialty.integration.test.ts +217 -0
- package/src/agents-api.ts +48 -3
- package/src/agents.ts +5 -0
- package/src/github-enterprise-apps.integration.test.ts +152 -0
- package/src/github-enterprise-apps.ts +204 -0
- package/src/github-enterprise-apps.unit.test.ts +42 -0
- package/src/openapi-schemas.ts +4 -0
- package/src/token-crypto.ts +25 -0
- package/src/token-crypto.unit.test.ts +24 -1
|
@@ -403,6 +403,7 @@ export const ModelName = {
|
|
|
403
403
|
SessionAlertState: 'SessionAlertState',
|
|
404
404
|
Agent: 'Agent',
|
|
405
405
|
AgentEnv: 'AgentEnv',
|
|
406
|
+
GitHubEnterpriseApp: 'GitHubEnterpriseApp',
|
|
406
407
|
AgentCronJob: 'AgentCronJob',
|
|
407
408
|
AgentTool: 'AgentTool',
|
|
408
409
|
AgentToken: 'AgentToken',
|
|
@@ -422,7 +423,8 @@ export const ModelName = {
|
|
|
422
423
|
AgentGitHubInstallationsSnapshot: 'AgentGitHubInstallationsSnapshot',
|
|
423
424
|
PushSubscription: 'PushSubscription',
|
|
424
425
|
ChatThreadWatch: 'ChatThreadWatch',
|
|
425
|
-
UserNotificationPrefs: 'UserNotificationPrefs'
|
|
426
|
+
UserNotificationPrefs: 'UserNotificationPrefs',
|
|
427
|
+
AgentMarketplace: 'AgentMarketplace'
|
|
426
428
|
} as const
|
|
427
429
|
|
|
428
430
|
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
|
@@ -438,7 +440,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
|
|
438
440
|
omit: GlobalOmitOptions
|
|
439
441
|
}
|
|
440
442
|
meta: {
|
|
441
|
-
modelProps: "agentWorkQueueSnapshot" | "agentPhaseMethodology" | "sessionFollow" | "sessionAlertState" | "agent" | "agentEnv" | "agentCronJob" | "agentTool" | "agentToken" | "agentPlugin" | "agentMember" | "account" | "accountMember" | "accountInvite" | "agentCronRun" | "agentCronRunSkillUsage" | "agentCronRunModelBreakdown" | "agentChatTokenUsageDailyByModel" | "agentAsk" | "agentCronRunRequest" | "agentCronRunTranscript" | "agentTranscriptRead" | "agentGitHubInstallationsSnapshot" | "pushSubscription" | "chatThreadWatch" | "userNotificationPrefs"
|
|
443
|
+
modelProps: "agentWorkQueueSnapshot" | "agentPhaseMethodology" | "sessionFollow" | "sessionAlertState" | "agent" | "agentEnv" | "gitHubEnterpriseApp" | "agentCronJob" | "agentTool" | "agentToken" | "agentPlugin" | "agentMember" | "account" | "accountMember" | "accountInvite" | "agentCronRun" | "agentCronRunSkillUsage" | "agentCronRunModelBreakdown" | "agentChatTokenUsageDailyByModel" | "agentAsk" | "agentCronRunRequest" | "agentCronRunTranscript" | "agentTranscriptRead" | "agentGitHubInstallationsSnapshot" | "pushSubscription" | "chatThreadWatch" | "userNotificationPrefs" | "agentMarketplace"
|
|
442
444
|
txIsolationLevel: TransactionIsolationLevel
|
|
443
445
|
}
|
|
444
446
|
model: {
|
|
@@ -886,6 +888,80 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
|
|
886
888
|
}
|
|
887
889
|
}
|
|
888
890
|
}
|
|
891
|
+
GitHubEnterpriseApp: {
|
|
892
|
+
payload: Prisma.$GitHubEnterpriseAppPayload<ExtArgs>
|
|
893
|
+
fields: Prisma.GitHubEnterpriseAppFieldRefs
|
|
894
|
+
operations: {
|
|
895
|
+
findUnique: {
|
|
896
|
+
args: Prisma.GitHubEnterpriseAppFindUniqueArgs<ExtArgs>
|
|
897
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload> | null
|
|
898
|
+
}
|
|
899
|
+
findUniqueOrThrow: {
|
|
900
|
+
args: Prisma.GitHubEnterpriseAppFindUniqueOrThrowArgs<ExtArgs>
|
|
901
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
902
|
+
}
|
|
903
|
+
findFirst: {
|
|
904
|
+
args: Prisma.GitHubEnterpriseAppFindFirstArgs<ExtArgs>
|
|
905
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload> | null
|
|
906
|
+
}
|
|
907
|
+
findFirstOrThrow: {
|
|
908
|
+
args: Prisma.GitHubEnterpriseAppFindFirstOrThrowArgs<ExtArgs>
|
|
909
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
910
|
+
}
|
|
911
|
+
findMany: {
|
|
912
|
+
args: Prisma.GitHubEnterpriseAppFindManyArgs<ExtArgs>
|
|
913
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>[]
|
|
914
|
+
}
|
|
915
|
+
create: {
|
|
916
|
+
args: Prisma.GitHubEnterpriseAppCreateArgs<ExtArgs>
|
|
917
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
918
|
+
}
|
|
919
|
+
createMany: {
|
|
920
|
+
args: Prisma.GitHubEnterpriseAppCreateManyArgs<ExtArgs>
|
|
921
|
+
result: BatchPayload
|
|
922
|
+
}
|
|
923
|
+
createManyAndReturn: {
|
|
924
|
+
args: Prisma.GitHubEnterpriseAppCreateManyAndReturnArgs<ExtArgs>
|
|
925
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>[]
|
|
926
|
+
}
|
|
927
|
+
delete: {
|
|
928
|
+
args: Prisma.GitHubEnterpriseAppDeleteArgs<ExtArgs>
|
|
929
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
930
|
+
}
|
|
931
|
+
update: {
|
|
932
|
+
args: Prisma.GitHubEnterpriseAppUpdateArgs<ExtArgs>
|
|
933
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
934
|
+
}
|
|
935
|
+
deleteMany: {
|
|
936
|
+
args: Prisma.GitHubEnterpriseAppDeleteManyArgs<ExtArgs>
|
|
937
|
+
result: BatchPayload
|
|
938
|
+
}
|
|
939
|
+
updateMany: {
|
|
940
|
+
args: Prisma.GitHubEnterpriseAppUpdateManyArgs<ExtArgs>
|
|
941
|
+
result: BatchPayload
|
|
942
|
+
}
|
|
943
|
+
updateManyAndReturn: {
|
|
944
|
+
args: Prisma.GitHubEnterpriseAppUpdateManyAndReturnArgs<ExtArgs>
|
|
945
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>[]
|
|
946
|
+
}
|
|
947
|
+
upsert: {
|
|
948
|
+
args: Prisma.GitHubEnterpriseAppUpsertArgs<ExtArgs>
|
|
949
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$GitHubEnterpriseAppPayload>
|
|
950
|
+
}
|
|
951
|
+
aggregate: {
|
|
952
|
+
args: Prisma.GitHubEnterpriseAppAggregateArgs<ExtArgs>
|
|
953
|
+
result: runtime.Types.Utils.Optional<Prisma.AggregateGitHubEnterpriseApp>
|
|
954
|
+
}
|
|
955
|
+
groupBy: {
|
|
956
|
+
args: Prisma.GitHubEnterpriseAppGroupByArgs<ExtArgs>
|
|
957
|
+
result: runtime.Types.Utils.Optional<Prisma.GitHubEnterpriseAppGroupByOutputType>[]
|
|
958
|
+
}
|
|
959
|
+
count: {
|
|
960
|
+
args: Prisma.GitHubEnterpriseAppCountArgs<ExtArgs>
|
|
961
|
+
result: runtime.Types.Utils.Optional<Prisma.GitHubEnterpriseAppCountAggregateOutputType> | number
|
|
962
|
+
}
|
|
963
|
+
}
|
|
964
|
+
}
|
|
889
965
|
AgentCronJob: {
|
|
890
966
|
payload: Prisma.$AgentCronJobPayload<ExtArgs>
|
|
891
967
|
fields: Prisma.AgentCronJobFieldRefs
|
|
@@ -2366,6 +2442,80 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
|
|
2366
2442
|
}
|
|
2367
2443
|
}
|
|
2368
2444
|
}
|
|
2445
|
+
AgentMarketplace: {
|
|
2446
|
+
payload: Prisma.$AgentMarketplacePayload<ExtArgs>
|
|
2447
|
+
fields: Prisma.AgentMarketplaceFieldRefs
|
|
2448
|
+
operations: {
|
|
2449
|
+
findUnique: {
|
|
2450
|
+
args: Prisma.AgentMarketplaceFindUniqueArgs<ExtArgs>
|
|
2451
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload> | null
|
|
2452
|
+
}
|
|
2453
|
+
findUniqueOrThrow: {
|
|
2454
|
+
args: Prisma.AgentMarketplaceFindUniqueOrThrowArgs<ExtArgs>
|
|
2455
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2456
|
+
}
|
|
2457
|
+
findFirst: {
|
|
2458
|
+
args: Prisma.AgentMarketplaceFindFirstArgs<ExtArgs>
|
|
2459
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload> | null
|
|
2460
|
+
}
|
|
2461
|
+
findFirstOrThrow: {
|
|
2462
|
+
args: Prisma.AgentMarketplaceFindFirstOrThrowArgs<ExtArgs>
|
|
2463
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2464
|
+
}
|
|
2465
|
+
findMany: {
|
|
2466
|
+
args: Prisma.AgentMarketplaceFindManyArgs<ExtArgs>
|
|
2467
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>[]
|
|
2468
|
+
}
|
|
2469
|
+
create: {
|
|
2470
|
+
args: Prisma.AgentMarketplaceCreateArgs<ExtArgs>
|
|
2471
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2472
|
+
}
|
|
2473
|
+
createMany: {
|
|
2474
|
+
args: Prisma.AgentMarketplaceCreateManyArgs<ExtArgs>
|
|
2475
|
+
result: BatchPayload
|
|
2476
|
+
}
|
|
2477
|
+
createManyAndReturn: {
|
|
2478
|
+
args: Prisma.AgentMarketplaceCreateManyAndReturnArgs<ExtArgs>
|
|
2479
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>[]
|
|
2480
|
+
}
|
|
2481
|
+
delete: {
|
|
2482
|
+
args: Prisma.AgentMarketplaceDeleteArgs<ExtArgs>
|
|
2483
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2484
|
+
}
|
|
2485
|
+
update: {
|
|
2486
|
+
args: Prisma.AgentMarketplaceUpdateArgs<ExtArgs>
|
|
2487
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2488
|
+
}
|
|
2489
|
+
deleteMany: {
|
|
2490
|
+
args: Prisma.AgentMarketplaceDeleteManyArgs<ExtArgs>
|
|
2491
|
+
result: BatchPayload
|
|
2492
|
+
}
|
|
2493
|
+
updateMany: {
|
|
2494
|
+
args: Prisma.AgentMarketplaceUpdateManyArgs<ExtArgs>
|
|
2495
|
+
result: BatchPayload
|
|
2496
|
+
}
|
|
2497
|
+
updateManyAndReturn: {
|
|
2498
|
+
args: Prisma.AgentMarketplaceUpdateManyAndReturnArgs<ExtArgs>
|
|
2499
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>[]
|
|
2500
|
+
}
|
|
2501
|
+
upsert: {
|
|
2502
|
+
args: Prisma.AgentMarketplaceUpsertArgs<ExtArgs>
|
|
2503
|
+
result: runtime.Types.Utils.PayloadToResult<Prisma.$AgentMarketplacePayload>
|
|
2504
|
+
}
|
|
2505
|
+
aggregate: {
|
|
2506
|
+
args: Prisma.AgentMarketplaceAggregateArgs<ExtArgs>
|
|
2507
|
+
result: runtime.Types.Utils.Optional<Prisma.AggregateAgentMarketplace>
|
|
2508
|
+
}
|
|
2509
|
+
groupBy: {
|
|
2510
|
+
args: Prisma.AgentMarketplaceGroupByArgs<ExtArgs>
|
|
2511
|
+
result: runtime.Types.Utils.Optional<Prisma.AgentMarketplaceGroupByOutputType>[]
|
|
2512
|
+
}
|
|
2513
|
+
count: {
|
|
2514
|
+
args: Prisma.AgentMarketplaceCountArgs<ExtArgs>
|
|
2515
|
+
result: runtime.Types.Utils.Optional<Prisma.AgentMarketplaceCountAggregateOutputType> | number
|
|
2516
|
+
}
|
|
2517
|
+
}
|
|
2518
|
+
}
|
|
2369
2519
|
}
|
|
2370
2520
|
} & {
|
|
2371
2521
|
other: {
|
|
@@ -2498,6 +2648,22 @@ export const AgentEnvScalarFieldEnum = {
|
|
|
2498
2648
|
export type AgentEnvScalarFieldEnum = (typeof AgentEnvScalarFieldEnum)[keyof typeof AgentEnvScalarFieldEnum]
|
|
2499
2649
|
|
|
2500
2650
|
|
|
2651
|
+
export const GitHubEnterpriseAppScalarFieldEnum = {
|
|
2652
|
+
role: 'role',
|
|
2653
|
+
appId: 'appId',
|
|
2654
|
+
slug: 'slug',
|
|
2655
|
+
enterpriseSlug: 'enterpriseSlug',
|
|
2656
|
+
privateKeyEncrypted: 'privateKeyEncrypted',
|
|
2657
|
+
lastValidationStatus: 'lastValidationStatus',
|
|
2658
|
+
lastValidatedAt: 'lastValidatedAt',
|
|
2659
|
+
lastValidationError: 'lastValidationError',
|
|
2660
|
+
createdAt: 'createdAt',
|
|
2661
|
+
updatedAt: 'updatedAt'
|
|
2662
|
+
} as const
|
|
2663
|
+
|
|
2664
|
+
export type GitHubEnterpriseAppScalarFieldEnum = (typeof GitHubEnterpriseAppScalarFieldEnum)[keyof typeof GitHubEnterpriseAppScalarFieldEnum]
|
|
2665
|
+
|
|
2666
|
+
|
|
2501
2667
|
export const AgentCronJobScalarFieldEnum = {
|
|
2502
2668
|
id: 'id',
|
|
2503
2669
|
agentId: 'agentId',
|
|
@@ -2794,6 +2960,19 @@ export const UserNotificationPrefsScalarFieldEnum = {
|
|
|
2794
2960
|
export type UserNotificationPrefsScalarFieldEnum = (typeof UserNotificationPrefsScalarFieldEnum)[keyof typeof UserNotificationPrefsScalarFieldEnum]
|
|
2795
2961
|
|
|
2796
2962
|
|
|
2963
|
+
export const AgentMarketplaceScalarFieldEnum = {
|
|
2964
|
+
id: 'id',
|
|
2965
|
+
agentId: 'agentId',
|
|
2966
|
+
name: 'name',
|
|
2967
|
+
source: 'source',
|
|
2968
|
+
ref: 'ref',
|
|
2969
|
+
createdAt: 'createdAt',
|
|
2970
|
+
updatedAt: 'updatedAt'
|
|
2971
|
+
} as const
|
|
2972
|
+
|
|
2973
|
+
export type AgentMarketplaceScalarFieldEnum = (typeof AgentMarketplaceScalarFieldEnum)[keyof typeof AgentMarketplaceScalarFieldEnum]
|
|
2974
|
+
|
|
2975
|
+
|
|
2797
2976
|
export const SortOrder = {
|
|
2798
2977
|
asc: 'asc',
|
|
2799
2978
|
desc: 'desc'
|
|
@@ -3095,6 +3274,7 @@ export type GlobalOmitConfig = {
|
|
|
3095
3274
|
sessionAlertState?: Prisma.SessionAlertStateOmit
|
|
3096
3275
|
agent?: Prisma.AgentOmit
|
|
3097
3276
|
agentEnv?: Prisma.AgentEnvOmit
|
|
3277
|
+
gitHubEnterpriseApp?: Prisma.GitHubEnterpriseAppOmit
|
|
3098
3278
|
agentCronJob?: Prisma.AgentCronJobOmit
|
|
3099
3279
|
agentTool?: Prisma.AgentToolOmit
|
|
3100
3280
|
agentToken?: Prisma.AgentTokenOmit
|
|
@@ -3115,6 +3295,7 @@ export type GlobalOmitConfig = {
|
|
|
3115
3295
|
pushSubscription?: Prisma.PushSubscriptionOmit
|
|
3116
3296
|
chatThreadWatch?: Prisma.ChatThreadWatchOmit
|
|
3117
3297
|
userNotificationPrefs?: Prisma.UserNotificationPrefsOmit
|
|
3298
|
+
agentMarketplace?: Prisma.AgentMarketplaceOmit
|
|
3118
3299
|
}
|
|
3119
3300
|
|
|
3120
3301
|
/* Types for Logging */
|
|
@@ -57,6 +57,7 @@ export const ModelName = {
|
|
|
57
57
|
SessionAlertState: 'SessionAlertState',
|
|
58
58
|
Agent: 'Agent',
|
|
59
59
|
AgentEnv: 'AgentEnv',
|
|
60
|
+
GitHubEnterpriseApp: 'GitHubEnterpriseApp',
|
|
60
61
|
AgentCronJob: 'AgentCronJob',
|
|
61
62
|
AgentTool: 'AgentTool',
|
|
62
63
|
AgentToken: 'AgentToken',
|
|
@@ -76,7 +77,8 @@ export const ModelName = {
|
|
|
76
77
|
AgentGitHubInstallationsSnapshot: 'AgentGitHubInstallationsSnapshot',
|
|
77
78
|
PushSubscription: 'PushSubscription',
|
|
78
79
|
ChatThreadWatch: 'ChatThreadWatch',
|
|
79
|
-
UserNotificationPrefs: 'UserNotificationPrefs'
|
|
80
|
+
UserNotificationPrefs: 'UserNotificationPrefs',
|
|
81
|
+
AgentMarketplace: 'AgentMarketplace'
|
|
80
82
|
} as const
|
|
81
83
|
|
|
82
84
|
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
|
@@ -188,6 +190,22 @@ export const AgentEnvScalarFieldEnum = {
|
|
|
188
190
|
export type AgentEnvScalarFieldEnum = (typeof AgentEnvScalarFieldEnum)[keyof typeof AgentEnvScalarFieldEnum]
|
|
189
191
|
|
|
190
192
|
|
|
193
|
+
export const GitHubEnterpriseAppScalarFieldEnum = {
|
|
194
|
+
role: 'role',
|
|
195
|
+
appId: 'appId',
|
|
196
|
+
slug: 'slug',
|
|
197
|
+
enterpriseSlug: 'enterpriseSlug',
|
|
198
|
+
privateKeyEncrypted: 'privateKeyEncrypted',
|
|
199
|
+
lastValidationStatus: 'lastValidationStatus',
|
|
200
|
+
lastValidatedAt: 'lastValidatedAt',
|
|
201
|
+
lastValidationError: 'lastValidationError',
|
|
202
|
+
createdAt: 'createdAt',
|
|
203
|
+
updatedAt: 'updatedAt'
|
|
204
|
+
} as const
|
|
205
|
+
|
|
206
|
+
export type GitHubEnterpriseAppScalarFieldEnum = (typeof GitHubEnterpriseAppScalarFieldEnum)[keyof typeof GitHubEnterpriseAppScalarFieldEnum]
|
|
207
|
+
|
|
208
|
+
|
|
191
209
|
export const AgentCronJobScalarFieldEnum = {
|
|
192
210
|
id: 'id',
|
|
193
211
|
agentId: 'agentId',
|
|
@@ -484,6 +502,19 @@ export const UserNotificationPrefsScalarFieldEnum = {
|
|
|
484
502
|
export type UserNotificationPrefsScalarFieldEnum = (typeof UserNotificationPrefsScalarFieldEnum)[keyof typeof UserNotificationPrefsScalarFieldEnum]
|
|
485
503
|
|
|
486
504
|
|
|
505
|
+
export const AgentMarketplaceScalarFieldEnum = {
|
|
506
|
+
id: 'id',
|
|
507
|
+
agentId: 'agentId',
|
|
508
|
+
name: 'name',
|
|
509
|
+
source: 'source',
|
|
510
|
+
ref: 'ref',
|
|
511
|
+
createdAt: 'createdAt',
|
|
512
|
+
updatedAt: 'updatedAt'
|
|
513
|
+
} as const
|
|
514
|
+
|
|
515
|
+
export type AgentMarketplaceScalarFieldEnum = (typeof AgentMarketplaceScalarFieldEnum)[keyof typeof AgentMarketplaceScalarFieldEnum]
|
|
516
|
+
|
|
517
|
+
|
|
487
518
|
export const SortOrder = {
|
|
488
519
|
asc: 'asc',
|
|
489
520
|
desc: 'desc'
|