@domino-sdk/relay-cli 0.6.0 → 0.7.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.
@@ -25,6 +25,12 @@ curl -fsS https://snippets.domino.run/r/registry.json
25
25
 
26
26
  If no recipe fits or the catalog is unavailable, author with the installed SDK declarations and existing project examples. Report an unavailable catalog as unchecked, rather than claiming no matching snippet exists. Snippets are editable starting points; check compatibility with the project's installed SDK before changing package versions.
27
27
 
28
+ ## Point ledger settings
29
+
30
+ Use `settings.pointLedger({ label: "Point ledger", default: "community" })` for a points balance setting. The value is a stable ledger ID, passed to `points(settings.balance, settings.points)`. Console renders a searchable ledger picker. Create and edit names and descriptions in **Rewards → Point ledgers**, or use `management.pointLedgers.save({ id, name, description })` from a trusted backend. Names need not be unique. Never use a display name as an accounting key.
31
+
32
+ Existing balance keys retain their IDs and history. Existing `settings.text` declarations should be changed to `settings.pointLedger` and deployed as a new type version; Console supports preserving values when upgrading from text to a ledger setting. Upgrade existing instances to that version to show the picker. Ledger metadata is project/environment-scoped and is not part of a deployment bundle; save the same ID in each target environment when sharing authored definitions.
33
+
28
34
  ## Resource and date/time settings
29
35
 
30
36
  Use `settings.resource({ label, source: discord.channels() })` for a Discord channel selector. Import `discord` alongside `settings` from `@domino-sdk/relay/authoring`. The connected project integration supplies the server; never add a guild ID setting. Filter with `discord.channels({ types: ["announcement"] })` when only announcement channels qualify. The default includes text and announcement channels. Resource values are stable IDs, not labels.
@@ -21,3 +21,5 @@ An organization administrator creates an identity integration in Console Setting
21
21
  Mount the adapter at `/relay/*` and use `createBrowserRelayClient({ baseUrl: "/relay" })`. Verify a signed-in session, one participant action, and that logging out of the application removes access. The adapter checks application authentication on every request and derives project scope from the integration key. No custom fetch wrapper or browser project headers are needed.
22
22
 
23
23
  Read [authoring](authoring.md) when adding quests or collection slots. Run the app's normal checks and development server. Use its existing preview deployment process when available. `domino deploy` publishes Domino behavior; it does not deploy the app. `domino stage` requires a supported Domino-hosted static repository, so it is not a general deployment command for existing apps.
24
+
25
+ For configurable point rewards, declare the balance setting with `settings.pointLedger` and pass its value to `points`. This gives operators a ledger picker in Console. Ledger IDs stay stable when display names change. Create ledger metadata under **Rewards → Point ledgers**, and use the same ID in each environment targeted by the app's definitions. Existing types using `settings.text` need a new type version and an instance upgrade to adopt the picker.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { observationInputSchema, pointsMutationSchema, referralControlSchema, leaderboardQuerySchema, leaderboardExclusionSchema, leaderboardGroupSchema, projectDeploymentSchema, publishDeploymentSchema, catalogDeploymentSchema, saveQuestDraftSchema, publishQuestDraftSchema, collectionBeginSchema, configurePickupSchema } from '@domino-sdk/relay';
1
+ import { observationInputSchema, pointLedgerSchema, pointsMutationSchema, referralControlSchema, leaderboardQuerySchema, leaderboardExclusionSchema, leaderboardGroupSchema, projectDeploymentSchema, publishDeploymentSchema, catalogDeploymentSchema, saveQuestDraftSchema, publishQuestDraftSchema, collectionBeginSchema, configurePickupSchema } from '@domino-sdk/relay';
2
2
  import { z } from 'zod';
3
3
 
4
4
  declare const appRoutingSchema: z.ZodDefault<z.ZodEnum<{
@@ -629,6 +629,11 @@ declare const pageSchema: z.ZodObject<{
629
629
  discord: "discord";
630
630
  }>>>;
631
631
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
632
+ kind: z.ZodLiteral<"point-ledger">;
633
+ default: z.ZodString;
634
+ label: z.ZodString;
635
+ description: z.ZodOptional<z.ZodString>;
636
+ }, z.core.$strict>, z.ZodObject<{
632
637
  kind: z.ZodLiteral<"datetime">;
633
638
  default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
634
639
  label: z.ZodString;
@@ -881,6 +886,11 @@ declare const pageSchema: z.ZodObject<{
881
886
  };
882
887
  integrations: "discord"[];
883
888
  fields: Record<string, {
889
+ kind: "point-ledger";
890
+ default: string;
891
+ label: string;
892
+ description?: string | undefined;
893
+ } | {
884
894
  kind: "datetime";
885
895
  default: string;
886
896
  label: string;
@@ -1325,6 +1335,11 @@ declare const memberDetailSchema: z.ZodObject<{
1325
1335
  discord: "discord";
1326
1336
  }>>>;
1327
1337
  fields: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<[z.ZodObject<{
1338
+ kind: z.ZodLiteral<"point-ledger">;
1339
+ default: z.ZodString;
1340
+ label: z.ZodString;
1341
+ description: z.ZodOptional<z.ZodString>;
1342
+ }, z.core.$strict>, z.ZodObject<{
1328
1343
  kind: z.ZodLiteral<"datetime">;
1329
1344
  default: z.ZodPipe<z.ZodISODateTime, z.ZodTransform<string, string>>;
1330
1345
  label: z.ZodString;
@@ -1577,6 +1592,11 @@ declare const memberDetailSchema: z.ZodObject<{
1577
1592
  };
1578
1593
  integrations: "discord"[];
1579
1594
  fields: Record<string, {
1595
+ kind: "point-ledger";
1596
+ default: string;
1597
+ label: string;
1598
+ description?: string | undefined;
1599
+ } | {
1580
1600
  kind: "datetime";
1581
1601
  default: string;
1582
1602
  label: string;
@@ -2259,6 +2279,18 @@ declare function createManagementClient(options: {
2259
2279
  receivedAt: number;
2260
2280
  }>;
2261
2281
  };
2282
+ pointLedgers: {
2283
+ list: () => Promise<{
2284
+ id: string;
2285
+ name: string;
2286
+ description: string;
2287
+ }[]>;
2288
+ save: (input: z.input<typeof pointLedgerSchema>) => Promise<{
2289
+ id: string;
2290
+ name: string;
2291
+ description: string;
2292
+ }>;
2293
+ };
2262
2294
  points: {
2263
2295
  update: (input: z.input<typeof pointsMutationSchema>) => Promise<{
2264
2296
  entry: {
@@ -2597,7 +2629,7 @@ declare function createManagementClient(options: {
2597
2629
  baseRevision: number;
2598
2630
  releases: ({
2599
2631
  quest: string;
2600
- runtimeVersion: 1 | 2;
2632
+ runtimeVersion: 2 | 1;
2601
2633
  title: string;
2602
2634
  presentation: {
2603
2635
  quiz?: {
@@ -2621,6 +2653,11 @@ declare function createManagementClient(options: {
2621
2653
  };
2622
2654
  integrations: "discord"[];
2623
2655
  fields: Record<string, {
2656
+ kind: "point-ledger";
2657
+ default: string;
2658
+ label: string;
2659
+ description?: string | undefined;
2660
+ } | {
2624
2661
  kind: "datetime";
2625
2662
  default: string;
2626
2663
  label: string;
@@ -2739,8 +2776,8 @@ declare function createManagementClient(options: {
2739
2776
  visibility: "visible" | "hidden";
2740
2777
  budgets: {
2741
2778
  id: string;
2742
- scope: "member" | "project";
2743
- period: "lifetime" | "day";
2779
+ scope: "project" | "member";
2780
+ period: "day" | "lifetime";
2744
2781
  limit: number;
2745
2782
  cost: number | {
2746
2783
  balance: string;
@@ -2802,6 +2839,11 @@ declare function createManagementClient(options: {
2802
2839
  };
2803
2840
  integrations: "discord"[];
2804
2841
  fields: Record<string, {
2842
+ kind: "point-ledger";
2843
+ default: string;
2844
+ label: string;
2845
+ description?: string | undefined;
2846
+ } | {
2805
2847
  kind: "datetime";
2806
2848
  default: string;
2807
2849
  label: string;
@@ -2988,6 +3030,11 @@ declare function createManagementClient(options: {
2988
3030
  };
2989
3031
  integrations: "discord"[];
2990
3032
  fields: Record<string, {
3033
+ kind: "point-ledger";
3034
+ default: string;
3035
+ label: string;
3036
+ description?: string | undefined;
3037
+ } | {
2991
3038
  kind: "datetime";
2992
3039
  default: string;
2993
3040
  label: string;
@@ -3349,7 +3396,7 @@ declare function createManagementClient(options: {
3349
3396
  baseRevision: number;
3350
3397
  releases: ({
3351
3398
  quest: string;
3352
- runtimeVersion: 1 | 2;
3399
+ runtimeVersion: 2 | 1;
3353
3400
  title: string;
3354
3401
  presentation: {
3355
3402
  quiz?: {
@@ -3373,6 +3420,11 @@ declare function createManagementClient(options: {
3373
3420
  };
3374
3421
  integrations: "discord"[];
3375
3422
  fields: Record<string, {
3423
+ kind: "point-ledger";
3424
+ default: string;
3425
+ label: string;
3426
+ description?: string | undefined;
3427
+ } | {
3376
3428
  kind: "datetime";
3377
3429
  default: string;
3378
3430
  label: string;
@@ -3491,8 +3543,8 @@ declare function createManagementClient(options: {
3491
3543
  visibility: "visible" | "hidden";
3492
3544
  budgets: {
3493
3545
  id: string;
3494
- scope: "member" | "project";
3495
- period: "lifetime" | "day";
3546
+ scope: "project" | "member";
3547
+ period: "day" | "lifetime";
3496
3548
  limit: number;
3497
3549
  cost: number | {
3498
3550
  balance: string;
@@ -3554,6 +3606,11 @@ declare function createManagementClient(options: {
3554
3606
  };
3555
3607
  integrations: "discord"[];
3556
3608
  fields: Record<string, {
3609
+ kind: "point-ledger";
3610
+ default: string;
3611
+ label: string;
3612
+ description?: string | undefined;
3613
+ } | {
3557
3614
  kind: "datetime";
3558
3615
  default: string;
3559
3616
  label: string;
@@ -3740,6 +3797,11 @@ declare function createManagementClient(options: {
3740
3797
  };
3741
3798
  integrations: "discord"[];
3742
3799
  fields: Record<string, {
3800
+ kind: "point-ledger";
3801
+ default: string;
3802
+ label: string;
3803
+ description?: string | undefined;
3804
+ } | {
3743
3805
  kind: "datetime";
3744
3806
  default: string;
3745
3807
  label: string;
@@ -4131,6 +4193,11 @@ declare function createManagementClient(options: {
4131
4193
  };
4132
4194
  integrations: "discord"[];
4133
4195
  fields: Record<string, {
4196
+ kind: "point-ledger";
4197
+ default: string;
4198
+ label: string;
4199
+ description?: string | undefined;
4200
+ } | {
4134
4201
  kind: "datetime";
4135
4202
  default: string;
4136
4203
  label: string;
@@ -4343,7 +4410,7 @@ declare function createManagementClient(options: {
4343
4410
  })[];
4344
4411
  releases: ({
4345
4412
  quest: string;
4346
- runtimeVersion: 1 | 2;
4413
+ runtimeVersion: 2 | 1;
4347
4414
  title: string;
4348
4415
  presentation: {
4349
4416
  quiz?: {
@@ -4367,6 +4434,11 @@ declare function createManagementClient(options: {
4367
4434
  };
4368
4435
  integrations: "discord"[];
4369
4436
  fields: Record<string, {
4437
+ kind: "point-ledger";
4438
+ default: string;
4439
+ label: string;
4440
+ description?: string | undefined;
4441
+ } | {
4370
4442
  kind: "datetime";
4371
4443
  default: string;
4372
4444
  label: string;
@@ -4485,8 +4557,8 @@ declare function createManagementClient(options: {
4485
4557
  visibility: "visible" | "hidden";
4486
4558
  budgets: {
4487
4559
  id: string;
4488
- scope: "member" | "project";
4489
- period: "lifetime" | "day";
4560
+ scope: "project" | "member";
4561
+ period: "day" | "lifetime";
4490
4562
  limit: number;
4491
4563
  cost: number | {
4492
4564
  balance: string;
@@ -4548,6 +4620,11 @@ declare function createManagementClient(options: {
4548
4620
  };
4549
4621
  integrations: "discord"[];
4550
4622
  fields: Record<string, {
4623
+ kind: "point-ledger";
4624
+ default: string;
4625
+ label: string;
4626
+ description?: string | undefined;
4627
+ } | {
4551
4628
  kind: "datetime";
4552
4629
  default: string;
4553
4630
  label: string;
@@ -4738,6 +4815,11 @@ declare function createManagementClient(options: {
4738
4815
  };
4739
4816
  integrations: "discord"[];
4740
4817
  fields: Record<string, {
4818
+ kind: "point-ledger";
4819
+ default: string;
4820
+ label: string;
4821
+ description?: string | undefined;
4822
+ } | {
4741
4823
  kind: "datetime";
4742
4824
  default: string;
4743
4825
  label: string;
@@ -4905,6 +4987,11 @@ declare function createManagementClient(options: {
4905
4987
  };
4906
4988
  integrations: "discord"[];
4907
4989
  fields: Record<string, {
4990
+ kind: "point-ledger";
4991
+ default: string;
4992
+ label: string;
4993
+ description?: string | undefined;
4994
+ } | {
4908
4995
  kind: "datetime";
4909
4996
  default: string;
4910
4997
  label: string;
@@ -5117,7 +5204,7 @@ declare function createManagementClient(options: {
5117
5204
  })[];
5118
5205
  releases: ({
5119
5206
  quest: string;
5120
- runtimeVersion: 1 | 2;
5207
+ runtimeVersion: 2 | 1;
5121
5208
  title: string;
5122
5209
  presentation: {
5123
5210
  quiz?: {
@@ -5141,6 +5228,11 @@ declare function createManagementClient(options: {
5141
5228
  };
5142
5229
  integrations: "discord"[];
5143
5230
  fields: Record<string, {
5231
+ kind: "point-ledger";
5232
+ default: string;
5233
+ label: string;
5234
+ description?: string | undefined;
5235
+ } | {
5144
5236
  kind: "datetime";
5145
5237
  default: string;
5146
5238
  label: string;
@@ -5259,8 +5351,8 @@ declare function createManagementClient(options: {
5259
5351
  visibility: "visible" | "hidden";
5260
5352
  budgets: {
5261
5353
  id: string;
5262
- scope: "member" | "project";
5263
- period: "lifetime" | "day";
5354
+ scope: "project" | "member";
5355
+ period: "day" | "lifetime";
5264
5356
  limit: number;
5265
5357
  cost: number | {
5266
5358
  balance: string;
@@ -5322,6 +5414,11 @@ declare function createManagementClient(options: {
5322
5414
  };
5323
5415
  integrations: "discord"[];
5324
5416
  fields: Record<string, {
5417
+ kind: "point-ledger";
5418
+ default: string;
5419
+ label: string;
5420
+ description?: string | undefined;
5421
+ } | {
5325
5422
  kind: "datetime";
5326
5423
  default: string;
5327
5424
  label: string;
@@ -5603,7 +5700,7 @@ declare function createManagementClient(options: {
5603
5700
  };
5604
5701
  releases: ({
5605
5702
  quest: string;
5606
- runtimeVersion: 1 | 2;
5703
+ runtimeVersion: 2 | 1;
5607
5704
  title: string;
5608
5705
  presentation: {
5609
5706
  quiz?: {
@@ -5627,6 +5724,11 @@ declare function createManagementClient(options: {
5627
5724
  };
5628
5725
  integrations: "discord"[];
5629
5726
  fields: Record<string, {
5727
+ kind: "point-ledger";
5728
+ default: string;
5729
+ label: string;
5730
+ description?: string | undefined;
5731
+ } | {
5630
5732
  kind: "datetime";
5631
5733
  default: string;
5632
5734
  label: string;
@@ -5745,8 +5847,8 @@ declare function createManagementClient(options: {
5745
5847
  visibility: "visible" | "hidden";
5746
5848
  budgets: {
5747
5849
  id: string;
5748
- scope: "member" | "project";
5749
- period: "lifetime" | "day";
5850
+ scope: "project" | "member";
5851
+ period: "day" | "lifetime";
5750
5852
  limit: number;
5751
5853
  cost: number | {
5752
5854
  balance: string;
@@ -5808,6 +5910,11 @@ declare function createManagementClient(options: {
5808
5910
  };
5809
5911
  integrations: "discord"[];
5810
5912
  fields: Record<string, {
5913
+ kind: "point-ledger";
5914
+ default: string;
5915
+ label: string;
5916
+ description?: string | undefined;
5917
+ } | {
5811
5918
  kind: "datetime";
5812
5919
  default: string;
5813
5920
  label: string;
@@ -6033,7 +6140,7 @@ declare function createManagementClient(options: {
6033
6140
  };
6034
6141
  releases: ({
6035
6142
  quest: string;
6036
- runtimeVersion: 1 | 2;
6143
+ runtimeVersion: 2 | 1;
6037
6144
  title: string;
6038
6145
  presentation: {
6039
6146
  quiz?: {
@@ -6057,6 +6164,11 @@ declare function createManagementClient(options: {
6057
6164
  };
6058
6165
  integrations: "discord"[];
6059
6166
  fields: Record<string, {
6167
+ kind: "point-ledger";
6168
+ default: string;
6169
+ label: string;
6170
+ description?: string | undefined;
6171
+ } | {
6060
6172
  kind: "datetime";
6061
6173
  default: string;
6062
6174
  label: string;
@@ -6175,8 +6287,8 @@ declare function createManagementClient(options: {
6175
6287
  visibility: "visible" | "hidden";
6176
6288
  budgets: {
6177
6289
  id: string;
6178
- scope: "member" | "project";
6179
- period: "lifetime" | "day";
6290
+ scope: "project" | "member";
6291
+ period: "day" | "lifetime";
6180
6292
  limit: number;
6181
6293
  cost: number | {
6182
6294
  balance: string;
@@ -6238,6 +6350,11 @@ declare function createManagementClient(options: {
6238
6350
  };
6239
6351
  integrations: "discord"[];
6240
6352
  fields: Record<string, {
6353
+ kind: "point-ledger";
6354
+ default: string;
6355
+ label: string;
6356
+ description?: string | undefined;
6357
+ } | {
6241
6358
  kind: "datetime";
6242
6359
  default: string;
6243
6360
  label: string;
@@ -6732,6 +6849,11 @@ declare function createManagementClient(options: {
6732
6849
  };
6733
6850
  integrations: "discord"[];
6734
6851
  fields: Record<string, {
6852
+ kind: "point-ledger";
6853
+ default: string;
6854
+ label: string;
6855
+ description?: string | undefined;
6856
+ } | {
6735
6857
  kind: "datetime";
6736
6858
  default: string;
6737
6859
  label: string;
@@ -6913,6 +7035,11 @@ declare function createManagementClient(options: {
6913
7035
  };
6914
7036
  integrations: "discord"[];
6915
7037
  fields: Record<string, {
7038
+ kind: "point-ledger";
7039
+ default: string;
7040
+ label: string;
7041
+ description?: string | undefined;
7042
+ } | {
6916
7043
  kind: "datetime";
6917
7044
  default: string;
6918
7045
  label: string;
@@ -7328,6 +7455,11 @@ declare function createManagementClient(options: {
7328
7455
  };
7329
7456
  integrations: "discord"[];
7330
7457
  fields: Record<string, {
7458
+ kind: "point-ledger";
7459
+ default: string;
7460
+ label: string;
7461
+ description?: string | undefined;
7462
+ } | {
7331
7463
  kind: "datetime";
7332
7464
  default: string;
7333
7465
  label: string;
@@ -7509,6 +7641,11 @@ declare function createManagementClient(options: {
7509
7641
  };
7510
7642
  integrations: "discord"[];
7511
7643
  fields: Record<string, {
7644
+ kind: "point-ledger";
7645
+ default: string;
7646
+ label: string;
7647
+ description?: string | undefined;
7648
+ } | {
7512
7649
  kind: "datetime";
7513
7650
  default: string;
7514
7651
  label: string;
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  // src/index.ts
2
+ import { pointLedgerSchema } from "@domino-sdk/relay";
2
3
  import { rewardDeliveriesSchema } from "@domino-sdk/relay";
3
4
  import {
4
5
  observationInputSchema,
@@ -485,6 +486,14 @@ function createManagementClient(options) {
485
486
  observationInputSchema.parse(input)
486
487
  )
487
488
  },
489
+ pointLedgers: {
490
+ list: () => request("/point-ledgers", z3.array(pointLedgerSchema)),
491
+ save: (input) => request(
492
+ "/point-ledgers",
493
+ pointLedgerSchema,
494
+ pointLedgerSchema.parse(input)
495
+ )
496
+ },
488
497
  points: {
489
498
  update: (input) => request(
490
499
  "/points",
package/package.json CHANGED
@@ -10,9 +10,9 @@
10
10
  "dependencies": {
11
11
  "commander": "15.0.0",
12
12
  "zod": "4.3.6",
13
- "@domino-sdk/relay": "0.6.0"
13
+ "@domino-sdk/relay": "0.7.0"
14
14
  },
15
- "version": "0.6.0",
15
+ "version": "0.7.0",
16
16
  "bin": {
17
17
  "domino": "./cli.mjs"
18
18
  },