@tinkerlandai/longplay-cli 0.3.18 → 0.3.19

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.19 — 2026-11-06
4
+
5
+ - Publish through GitHub Actions Trusted Publishing, with the registry publisher identity verified before completing the release.
6
+
3
7
  ## 0.3.18 — 2026-11-06
4
8
 
5
9
  - Update from `cdn.longplayai.com`. Installed CLIs on the website channel keep working after the public site and Console moved to their own hosts.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Longplay CLI
2
2
 
3
- Longplay CLI **0.3.18**, Node.js 22+. The executable is `longplay`. CLI versions are independent of the Customer SDKs.
3
+ Longplay CLI **0.3.19**, Node.js 22+. The executable is `longplay`. CLI versions are independent of the Customer SDKs.
4
4
 
5
5
  Install the public npm package:
6
6
 
@@ -11,7 +11,7 @@ longplay doctor --server https://console.longplayai.com --json
11
11
  longplay login --server https://console.longplayai.com
12
12
  ```
13
13
 
14
- For a reproducible installation, use `npm install -g @tinkerlandai/longplay-cli@0.3.18`. Uninstall with `npm uninstall -g @tinkerlandai/longplay-cli`. Node.js 22+ must be on PATH; the package includes the `longplay` command and npm installs its runtime dependencies.
14
+ For a reproducible installation, use `npm install -g @tinkerlandai/longplay-cli@0.3.19`. Uninstall with `npm uninstall -g @tinkerlandai/longplay-cli`. Node.js 22+ must be on PATH; the package includes the `longplay` command and npm installs its runtime dependencies.
15
15
 
16
16
  The existing website installation channel remains available on macOS and Linux:
17
17
 
package/dist/main.js CHANGED
@@ -5815,7 +5815,7 @@ function managementOperationPolicy(operation2, input) {
5815
5815
  // package.json
5816
5816
  var package_default = {
5817
5817
  name: "@indiana/cli",
5818
- version: "0.3.18",
5818
+ version: "0.3.19",
5819
5819
  private: true,
5820
5820
  description: "Longplay management CLI",
5821
5821
  type: "module",
@@ -6104,6 +6104,11 @@ var merchantOperationProblemSchema = z15.strictObject({
6104
6104
  (p) => p.reason !== "RESULT_UNKNOWN" || !p.retryable && p.recovery === "recover_operation",
6105
6105
  "Unknown financial effects require recovery of the original operation"
6106
6106
  );
6107
+ var merchantPaymentRedirectSchema = z15.strictObject({
6108
+ type: z15.literal("redirect"),
6109
+ url: z15.url().startsWith("https://"),
6110
+ expiresAt: at
6111
+ });
6107
6112
  var snapshot = {
6108
6113
  operationId: z15.uuid(),
6109
6114
  customerId: z15.uuid(),
@@ -6145,7 +6150,8 @@ var merchantExecutionSnapshotSchema = z15.discriminatedUnion("type", [
6145
6150
  type: z15.literal("subscription_change"),
6146
6151
  status: z15.enum(["pending", "scheduled", "applied", "failed", "unknown"]),
6147
6152
  merchantSubscriptionId: reference,
6148
- scheduledFor: at.nullable()
6153
+ scheduledFor: at.nullable(),
6154
+ nextAction: merchantPaymentRedirectSchema.optional()
6149
6155
  }).refine(
6150
6156
  (s) => s.status === "scheduled" === (s.scheduledFor !== null),
6151
6157
  "A scheduled change retains its future effective time"
@@ -13079,6 +13085,7 @@ var publicFeatureConfigurationSchema = featureDeliveryPayloadSchema.omit({ evalu
13079
13085
  });
13080
13086
  });
13081
13087
  var evaluateFeaturesRequestSchema = z70.strictObject({
13088
+ /** With a Customer, this is request context only: `customerIdentityAttributes` are refused because the Customer supplies them. */
13082
13089
  attributes: growthAttributesSchema,
13083
13090
  features: z70.array(z70.string().min(1).max(255)).max(500).optional(),
13084
13091
  /** A server credential may select a Customer; a Customer credential must omit this field. */
@@ -13110,25 +13117,59 @@ var evaluateFeaturesResultSchema = z70.strictObject({
13110
13117
  merchandise: growthAttributesSchema
13111
13118
  }).optional()
13112
13119
  });
13120
+ var trackedEventFields = {
13121
+ eventUuid: z70.uuid(),
13122
+ timestamp: z70.iso.datetime({ offset: true }),
13123
+ merchandise: merchandiseReferenceSchema.optional(),
13124
+ deviceId: z70.string().min(1).max(255).optional(),
13125
+ sessionId: z70.string().min(1).max(255).optional()
13126
+ };
13127
+ var evaluationEventFields = {
13128
+ ...trackedEventFields,
13129
+ generation: featurePayloadSchema.shape.generation
13130
+ };
13131
+ var trackEventSchema = z70.discriminatedUnion("kind", [
13132
+ z70.strictObject({
13133
+ ...trackedEventFields,
13134
+ kind: z70.literal("custom"),
13135
+ name: z70.string().min(1).max(255),
13136
+ properties: z70.record(z70.string(), jsonValueSchema).default({})
13137
+ }),
13138
+ z70.strictObject({
13139
+ ...evaluationEventFields,
13140
+ kind: z70.literal("experiment_exposure"),
13141
+ experimentId: z70.string().min(1).max(255),
13142
+ variationId: z70.string().min(1).max(255)
13143
+ }),
13144
+ z70.strictObject({
13145
+ ...evaluationEventFields,
13146
+ kind: z70.literal("feature_usage"),
13147
+ feature: z70.string().min(1).max(255),
13148
+ value: jsonValueSchema,
13149
+ source: remoteFeatureResultSchema.shape.source,
13150
+ ruleId: z70.string().max(255),
13151
+ variationId: z70.string().min(1).max(255).optional()
13152
+ })
13153
+ ]);
13113
13154
  var trackEventsRequestSchema = z70.strictObject({
13114
13155
  customerId: z70.uuid().optional(),
13115
- events: z70.array(
13116
- z70.strictObject({
13117
- eventUuid: z70.uuid(),
13118
- timestamp: z70.iso.datetime({ offset: true }),
13119
- name: z70.string().min(1).max(255),
13120
- merchandise: merchandiseReferenceSchema.optional(),
13121
- properties: z70.record(z70.string(), jsonValueSchema).default({}),
13122
- deviceId: z70.string().min(1).max(255).optional(),
13123
- sessionId: z70.string().min(1).max(255).optional()
13124
- })
13125
- ).min(1).max(100)
13156
+ events: z70.array(trackEventSchema).min(1).max(100)
13157
+ });
13158
+ var trackEventRejectionSchema = z70.strictObject({
13159
+ eventUuid: z70.uuid(),
13160
+ reason: z70.enum([
13161
+ "invalid_event",
13162
+ "invalid_merchandise",
13163
+ "not_delivered",
13164
+ "reserved_name"
13165
+ ])
13126
13166
  });
13127
13167
  var trackEventsResultSchema = z70.strictObject({
13128
13168
  inserted: z70.number().int().nonnegative(),
13129
13169
  duplicates: z70.number().int().nonnegative(),
13130
13170
  rejected: z70.number().int().nonnegative(),
13131
13171
  skipped: z70.number().int().nonnegative(),
13172
+ rejections: z70.array(trackEventRejectionSchema).max(100),
13132
13173
  analyticsConfig: analyticsConfigSchema
13133
13174
  });
13134
13175
 
@@ -13663,6 +13704,13 @@ var funnelDecisionSegmentEvaluationSchema = funnelSegmentEvaluationInstructionSc
13663
13704
 
13664
13705
  // ../contracts/src/customer.ts
13665
13706
  import { z as z80 } from "zod";
13707
+ var customerIdentityAttributes = [
13708
+ "id",
13709
+ "externalUserId",
13710
+ "createdAt",
13711
+ "ageDays",
13712
+ "subscription"
13713
+ ];
13666
13714
  var customerTagsSchema = z80.array(
13667
13715
  z80.string().trim().min(1).max(40).refine((v) => !v.includes(","), "\u6807\u7B7E\u4E0D\u80FD\u5305\u542B\u9017\u53F7")
13668
13716
  ).max(20).refine((v) => new Set(v).size === v.length, "\u6807\u7B7E\u4E0D\u80FD\u91CD\u590D");
@@ -13670,16 +13718,9 @@ var customerAttributesSchema = z80.intersection(
13670
13718
  growthAttributesSchema,
13671
13719
  z80.looseObject({ tags: customerTagsSchema.optional() })
13672
13720
  ).refine(
13673
- (value) => ![
13674
- "id",
13675
- "externalUserId",
13676
- "createdAt",
13677
- "ageDays",
13678
- "subscription",
13679
- "parameters",
13680
- "answers",
13681
- "results"
13682
- ].some((key6) => Object.hasOwn(value, key6)),
13721
+ (value) => ![...customerIdentityAttributes, "parameters", "answers", "results"].some(
13722
+ (key6) => Object.hasOwn(value, key6)
13723
+ ),
13683
13724
  "Reserved customer attribute"
13684
13725
  );
13685
13726
  var name = z80.string().trim().max(80);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinkerlandai/longplay-cli",
3
- "version": "0.3.18",
3
+ "version": "0.3.19",
4
4
  "description": "Longplay management CLI",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",