@phpsandbox/sdk 0.5.0 → 0.6.0-canary.1

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.
@@ -14578,6 +14578,39 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14578
14578
  config(en_default());
14579
14579
 
14580
14580
  // src/customers.ts
14581
+ var eventName = external_exports.string().trim().min(1).max(100);
14582
+ var customerConfigurationSchema = external_exports.object({
14583
+ funnel: external_exports.object({
14584
+ title: external_exports.string().trim().min(1).max(100),
14585
+ stages: external_exports.array(
14586
+ external_exports.discriminatedUnion("measure", [
14587
+ external_exports.object({
14588
+ id: external_exports.string().regex(/^[a-zA-Z0-9_-]+$/).max(50),
14589
+ label: external_exports.string().trim().min(1).max(100),
14590
+ measure: external_exports.literal("event"),
14591
+ event: eventName
14592
+ }),
14593
+ external_exports.object({
14594
+ id: external_exports.string().regex(/^[a-zA-Z0-9_-]+$/).max(50),
14595
+ label: external_exports.string().trim().min(1).max(100),
14596
+ measure: external_exports.literal("first_payment")
14597
+ }),
14598
+ external_exports.object({
14599
+ id: external_exports.string().regex(/^[a-zA-Z0-9_-]+$/).max(50),
14600
+ label: external_exports.string().trim().min(1).max(100),
14601
+ measure: external_exports.literal("event_after_payment"),
14602
+ event: eventName
14603
+ })
14604
+ ])
14605
+ ).max(12)
14606
+ }).nullable(),
14607
+ followUp: external_exports.object({
14608
+ label: external_exports.string().trim().min(1).max(100),
14609
+ triggerEvent: eventName,
14610
+ prerequisiteEvent: eventName.nullable(),
14611
+ stopOnPayment: external_exports.boolean()
14612
+ }).nullable()
14613
+ });
14581
14614
  var customerModeSchema = external_exports.enum(["test", "live"]);
14582
14615
  var customerSchema = external_exports.object({
14583
14616
  id: external_exports.string(),
@@ -14586,6 +14619,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14586
14619
  name: external_exports.string().nullable(),
14587
14620
  source: external_exports.string().nullable(),
14588
14621
  marketingSubscribed: external_exports.boolean(),
14622
+ communicationBasis: external_exports.enum(["unknown", "legacy_account", "explicit_opt_in", "unsubscribed"]).optional(),
14623
+ legacyPolicy: external_exports.string().nullable().optional(),
14624
+ joinedAt: external_exports.string().nullable().optional(),
14625
+ importedAt: external_exports.string().nullable().optional(),
14626
+ lastActiveAt: external_exports.string().nullable().optional(),
14627
+ billingStatus: external_exports.enum(["unknown", "free", "paid"]).optional(),
14589
14628
  suppressionReason: external_exports.string().nullable(),
14590
14629
  activatedAt: external_exports.string().nullable(),
14591
14630
  createdAt: external_exports.string().nullable()
@@ -14599,6 +14638,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14599
14638
  replyTo: external_exports.string().nullable(),
14600
14639
  senderVerified: external_exports.boolean(),
14601
14640
  domainRecords: external_exports.string().nullable(),
14641
+ configuration: customerConfigurationSchema.optional(),
14642
+ emailTemplate: external_exports.string().nullable().optional(),
14602
14643
  provisionedAt: external_exports.string().nullable().optional(),
14603
14644
  lastRequestAt: external_exports.string().nullable().optional(),
14604
14645
  processedAt: external_exports.string().nullable().optional()
@@ -14611,7 +14652,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14611
14652
  activationEvent: external_exports.string()
14612
14653
  });
14613
14654
  var journeySchema = journeyInputSchema.extend({
14614
- kind: external_exports.enum(["welcome", "setup", "purchase"]),
14655
+ kind: external_exports.enum(["welcome", "setup", "purchase", "credit_limit"]),
14615
14656
  version: external_exports.number().int().optional(),
14616
14657
  startsAt: external_exports.string().nullable().optional(),
14617
14658
  draft: journeyInputSchema.nullable().optional()
@@ -14627,16 +14668,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14627
14668
  dueAt: external_exports.string().nullable().optional(),
14628
14669
  attemptedAt: external_exports.string().nullable().optional(),
14629
14670
  receivedAt: external_exports.string().nullable().optional(),
14630
- journeyKind: external_exports.enum(["welcome", "setup", "purchase"]).nullable().optional(),
14671
+ journeyKind: external_exports.enum(["welcome", "setup", "purchase", "credit_limit"]).nullable().optional(),
14631
14672
  journeyVersion: external_exports.number().int().nullable().optional(),
14632
14673
  category: external_exports.enum(["marketing", "service"]).optional(),
14633
14674
  from: external_exports.string().nullable().optional(),
14634
14675
  replyTo: external_exports.string().nullable().optional(),
14635
14676
  renderedText: external_exports.string().nullable().optional(),
14677
+ renderedHtml: external_exports.string().nullable().optional(),
14636
14678
  unsubscribeUrl: external_exports.string().nullable().optional(),
14637
14679
  createdAt: external_exports.string().nullable()
14638
14680
  });
14639
14681
  var overviewSchema = external_exports.object({
14682
+ funnel: external_exports.object({ title: external_exports.string(), stages: external_exports.array(external_exports.object({ id: external_exports.string(), label: external_exports.string(), count: external_exports.number() })) }).nullable().optional(),
14640
14683
  space: spaceSchema.nullable(),
14641
14684
  customers: external_exports.array(customerSchema),
14642
14685
  journeys: external_exports.array(journeySchema),
@@ -14645,10 +14688,58 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14645
14688
  messageTotal: external_exports.number().optional(),
14646
14689
  events: external_exports.array(external_exports.string()).optional()
14647
14690
  });
14691
+ var customerOrganizationSchema = external_exports.object({
14692
+ id: external_exports.string(),
14693
+ externalId: external_exports.string(),
14694
+ name: external_exports.string(),
14695
+ ownerCustomerId: external_exports.string(),
14696
+ firstPaidAt: external_exports.string().nullable(),
14697
+ activatedAt: external_exports.string().nullable()
14698
+ });
14648
14699
  var CustomerRuntime = class {
14649
14700
  constructor(client) {
14650
14701
  this.client = client;
14651
14702
  }
14703
+ /** Configure this application's event funnel and follow-up rules. Does not activate messaging. */
14704
+ async configure(input) {
14705
+ const configuration = customerConfigurationSchema.parse(input);
14706
+ return customerConfigurationSchema.parse(
14707
+ (await this.client.put("/platform/customers/runtime/configuration", {
14708
+ ...configuration,
14709
+ ...input.emailTemplate !== void 0 ? { emailTemplate: input.emailTemplate } : {}
14710
+ })).data
14711
+ );
14712
+ }
14713
+ /** Inspect the workspace and environment selected by this app credential. */
14714
+ async context() {
14715
+ return external_exports.object({ id: external_exports.string(), notebookId: external_exports.string(), mode: customerModeSchema }).parse((await this.client.get("/platform/customers/runtime/context")).data);
14716
+ }
14717
+ /** Pull due conversion follow-ups, then recheck authoritative billing, credit and access. */
14718
+ async pendingFollowUps() {
14719
+ return external_exports.array(external_exports.object({ messageId: external_exports.string(), organizationExternalId: external_exports.string(), actorExternalId: external_exports.string() })).parse((await this.client.get("/platform/customers/runtime/follow-ups")).data);
14720
+ }
14721
+ /** Eligible deliveries run immediately; expired checks are never reused by a later worker. */
14722
+ async resolveFollowUp(messageId, resolution) {
14723
+ return messageSchema.parse(
14724
+ (await this.client.post(`/platform/customers/runtime/follow-ups/${encodeURIComponent(messageId)}/resolve`, {
14725
+ resolution
14726
+ })).data
14727
+ );
14728
+ }
14729
+ async organization(input) {
14730
+ return customerOrganizationSchema.parse(
14731
+ (await this.client.put("/platform/customers/runtime/organizations", input)).data
14732
+ );
14733
+ }
14734
+ /** Report only server-confirmed positive payments from your existing billing integration. */
14735
+ async confirmPayment(organizationExternalId, input) {
14736
+ return customerOrganizationSchema.parse(
14737
+ (await this.client.post(
14738
+ `/platform/customers/runtime/organizations/${encodeURIComponent(organizationExternalId)}/payments`,
14739
+ input
14740
+ )).data
14741
+ );
14742
+ }
14652
14743
  async identify(input) {
14653
14744
  return customerSchema.parse((await this.client.post("/platform/customers/runtime/identify", input)).data);
14654
14745
  }
@@ -15293,14 +15384,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15293
15384
  const reader = stream.getReader();
15294
15385
  const decoder = new TextDecoder();
15295
15386
  let buffer = "";
15296
- let eventName = "message";
15387
+ let eventName2 = "message";
15297
15388
  let data = [];
15298
15389
  let ended = false;
15299
15390
  let receivedResult = false;
15300
15391
  function dispatch() {
15301
- const name = eventName;
15392
+ const name = eventName2;
15302
15393
  const lines = data;
15303
- eventName = "message";
15394
+ eventName2 = "message";
15304
15395
  data = [];
15305
15396
  if (!lines.length || !PublishStreamSseEventNameSchema.safeParse(name).success) {
15306
15397
  return null;
@@ -15332,7 +15423,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15332
15423
  content = content.slice(1);
15333
15424
  }
15334
15425
  if (field === "event") {
15335
- eventName = content;
15426
+ eventName2 = content;
15336
15427
  }
15337
15428
  if (field === "data") {
15338
15429
  data.push(content);