paykitjs 0.0.1-alpha.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.
Files changed (74) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_virtual/_rolldown/runtime.js +14 -0
  3. package/dist/api/define-route.d.ts +94 -0
  4. package/dist/api/define-route.js +153 -0
  5. package/dist/api/methods.d.ts +422 -0
  6. package/dist/api/methods.js +67 -0
  7. package/dist/cli/commands/init.js +264 -0
  8. package/dist/cli/commands/push.js +71 -0
  9. package/dist/cli/commands/status.js +84 -0
  10. package/dist/cli/index.d.ts +1 -0
  11. package/dist/cli/index.js +45 -0
  12. package/dist/cli/templates/index.js +64 -0
  13. package/dist/cli/utils/detect.js +73 -0
  14. package/dist/cli/utils/format.js +58 -0
  15. package/dist/cli/utils/get-config.js +117 -0
  16. package/dist/cli/utils/shared.js +81 -0
  17. package/dist/cli/utils/telemetry.js +63 -0
  18. package/dist/client/index.d.ts +25 -0
  19. package/dist/client/index.js +27 -0
  20. package/dist/core/context.d.ts +17 -0
  21. package/dist/core/context.js +23 -0
  22. package/dist/core/create-paykit.d.ts +7 -0
  23. package/dist/core/create-paykit.js +67 -0
  24. package/dist/core/error-codes.d.ts +12 -0
  25. package/dist/core/error-codes.js +10 -0
  26. package/dist/core/errors.d.ts +41 -0
  27. package/dist/core/errors.js +47 -0
  28. package/dist/core/logger.d.ts +11 -0
  29. package/dist/core/logger.js +51 -0
  30. package/dist/core/utils.js +21 -0
  31. package/dist/customer/customer.api.js +47 -0
  32. package/dist/customer/customer.service.js +342 -0
  33. package/dist/customer/customer.types.d.ts +31 -0
  34. package/dist/database/index.d.ts +8 -0
  35. package/dist/database/index.js +32 -0
  36. package/dist/database/migrations/0000_init.sql +157 -0
  37. package/dist/database/migrations/meta/0000_snapshot.json +1222 -0
  38. package/dist/database/migrations/meta/_journal.json +13 -0
  39. package/dist/database/schema.d.ts +1767 -0
  40. package/dist/database/schema.js +150 -0
  41. package/dist/entitlement/entitlement.api.js +33 -0
  42. package/dist/entitlement/entitlement.service.d.ts +17 -0
  43. package/dist/entitlement/entitlement.service.js +123 -0
  44. package/dist/handlers/next.d.ts +9 -0
  45. package/dist/handlers/next.js +9 -0
  46. package/dist/index.d.ts +14 -0
  47. package/dist/index.js +6 -0
  48. package/dist/invoice/invoice.service.js +54 -0
  49. package/dist/payment/payment.service.js +49 -0
  50. package/dist/payment-method/payment-method.service.js +78 -0
  51. package/dist/product/product-sync.service.js +111 -0
  52. package/dist/product/product.service.js +127 -0
  53. package/dist/providers/provider.d.ts +159 -0
  54. package/dist/providers/stripe.js +547 -0
  55. package/dist/subscription/subscription.api.js +24 -0
  56. package/dist/subscription/subscription.service.js +896 -0
  57. package/dist/subscription/subscription.types.d.ts +18 -0
  58. package/dist/subscription/subscription.types.js +11 -0
  59. package/dist/testing/testing.api.js +29 -0
  60. package/dist/testing/testing.service.js +49 -0
  61. package/dist/types/events.d.ts +181 -0
  62. package/dist/types/instance.d.ts +88 -0
  63. package/dist/types/models.d.ts +11 -0
  64. package/dist/types/options.d.ts +32 -0
  65. package/dist/types/plugin.d.ts +11 -0
  66. package/dist/types/schema.d.ts +99 -0
  67. package/dist/types/schema.js +192 -0
  68. package/dist/utilities/dependencies/check-dependencies.js +16 -0
  69. package/dist/utilities/dependencies/get-dependencies.js +68 -0
  70. package/dist/utilities/dependencies/index.js +8 -0
  71. package/dist/utilities/dependencies/paykit-package-list.js +8 -0
  72. package/dist/webhook/webhook.api.js +29 -0
  73. package/dist/webhook/webhook.service.js +143 -0
  74. package/package.json +76 -0
@@ -0,0 +1,157 @@
1
+ CREATE TABLE "paykit_customer" (
2
+ "id" text PRIMARY KEY NOT NULL,
3
+ "email" text,
4
+ "name" text,
5
+ "metadata" jsonb,
6
+ "provider" jsonb DEFAULT '{}'::jsonb NOT NULL,
7
+ "deleted_at" timestamp,
8
+ "created_at" timestamp NOT NULL,
9
+ "updated_at" timestamp NOT NULL
10
+ );
11
+ --> statement-breakpoint
12
+ CREATE TABLE "paykit_entitlement" (
13
+ "id" text PRIMARY KEY NOT NULL,
14
+ "subscription_id" text,
15
+ "customer_id" text NOT NULL,
16
+ "feature_id" text NOT NULL,
17
+ "limit" integer,
18
+ "balance" integer,
19
+ "next_reset_at" timestamp,
20
+ "created_at" timestamp NOT NULL,
21
+ "updated_at" timestamp NOT NULL
22
+ );
23
+ --> statement-breakpoint
24
+ CREATE TABLE "paykit_feature" (
25
+ "id" text PRIMARY KEY NOT NULL,
26
+ "type" text NOT NULL,
27
+ "created_at" timestamp NOT NULL,
28
+ "updated_at" timestamp NOT NULL
29
+ );
30
+ --> statement-breakpoint
31
+ CREATE TABLE "paykit_invoice" (
32
+ "id" text PRIMARY KEY NOT NULL,
33
+ "customer_id" text NOT NULL,
34
+ "subscription_id" text,
35
+ "type" text NOT NULL,
36
+ "status" text NOT NULL,
37
+ "amount" integer NOT NULL,
38
+ "currency" text NOT NULL,
39
+ "description" text,
40
+ "hosted_url" text,
41
+ "provider_id" text NOT NULL,
42
+ "provider_data" jsonb NOT NULL,
43
+ "period_start_at" timestamp,
44
+ "period_end_at" timestamp,
45
+ "created_at" timestamp NOT NULL,
46
+ "updated_at" timestamp NOT NULL
47
+ );
48
+ --> statement-breakpoint
49
+ CREATE TABLE "paykit_metadata" (
50
+ "id" text PRIMARY KEY NOT NULL,
51
+ "provider_id" text NOT NULL,
52
+ "type" text NOT NULL,
53
+ "data" jsonb NOT NULL,
54
+ "provider_checkout_session_id" text,
55
+ "expires_at" timestamp,
56
+ "created_at" timestamp NOT NULL
57
+ );
58
+ --> statement-breakpoint
59
+ CREATE TABLE "paykit_payment_method" (
60
+ "id" text PRIMARY KEY NOT NULL,
61
+ "customer_id" text NOT NULL,
62
+ "provider_id" text NOT NULL,
63
+ "provider_data" jsonb NOT NULL,
64
+ "is_default" boolean DEFAULT false NOT NULL,
65
+ "deleted_at" timestamp,
66
+ "created_at" timestamp NOT NULL,
67
+ "updated_at" timestamp NOT NULL
68
+ );
69
+ --> statement-breakpoint
70
+ CREATE TABLE "paykit_product" (
71
+ "internal_id" text PRIMARY KEY NOT NULL,
72
+ "id" text NOT NULL,
73
+ "version" integer DEFAULT 1 NOT NULL,
74
+ "name" text NOT NULL,
75
+ "group" text DEFAULT '' NOT NULL,
76
+ "is_default" boolean DEFAULT false NOT NULL,
77
+ "price_amount" integer,
78
+ "price_interval" text,
79
+ "hash" text,
80
+ "provider" jsonb DEFAULT '{}'::jsonb NOT NULL,
81
+ "created_at" timestamp NOT NULL,
82
+ "updated_at" timestamp NOT NULL
83
+ );
84
+ --> statement-breakpoint
85
+ CREATE TABLE "paykit_product_feature" (
86
+ "product_internal_id" text NOT NULL,
87
+ "feature_id" text NOT NULL,
88
+ "limit" integer,
89
+ "reset_interval" text,
90
+ "config" jsonb,
91
+ "created_at" timestamp NOT NULL,
92
+ "updated_at" timestamp NOT NULL,
93
+ CONSTRAINT "paykit_product_feature_product_internal_id_feature_id_pk" PRIMARY KEY("product_internal_id","feature_id")
94
+ );
95
+ --> statement-breakpoint
96
+ CREATE TABLE "paykit_subscription" (
97
+ "id" text PRIMARY KEY NOT NULL,
98
+ "customer_id" text NOT NULL,
99
+ "product_internal_id" text NOT NULL,
100
+ "provider_id" text,
101
+ "provider_data" jsonb,
102
+ "status" text NOT NULL,
103
+ "canceled" boolean DEFAULT false NOT NULL,
104
+ "cancel_at_period_end" boolean DEFAULT false NOT NULL,
105
+ "started_at" timestamp,
106
+ "trial_ends_at" timestamp,
107
+ "current_period_start_at" timestamp,
108
+ "current_period_end_at" timestamp,
109
+ "canceled_at" timestamp,
110
+ "ended_at" timestamp,
111
+ "scheduled_product_id" text,
112
+ "quantity" integer DEFAULT 1 NOT NULL,
113
+ "created_at" timestamp NOT NULL,
114
+ "updated_at" timestamp NOT NULL
115
+ );
116
+ --> statement-breakpoint
117
+ CREATE TABLE "paykit_webhook_event" (
118
+ "id" text PRIMARY KEY NOT NULL,
119
+ "provider_id" text NOT NULL,
120
+ "provider_event_id" text NOT NULL,
121
+ "type" text NOT NULL,
122
+ "payload" jsonb NOT NULL,
123
+ "status" text NOT NULL,
124
+ "error" text,
125
+ "trace_id" text,
126
+ "received_at" timestamp NOT NULL,
127
+ "processed_at" timestamp
128
+ );
129
+ --> statement-breakpoint
130
+ ALTER TABLE "paykit_entitlement" ADD CONSTRAINT "paykit_entitlement_subscription_id_paykit_subscription_id_fk" FOREIGN KEY ("subscription_id") REFERENCES "public"."paykit_subscription"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
131
+ ALTER TABLE "paykit_entitlement" ADD CONSTRAINT "paykit_entitlement_customer_id_paykit_customer_id_fk" FOREIGN KEY ("customer_id") REFERENCES "public"."paykit_customer"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
132
+ ALTER TABLE "paykit_entitlement" ADD CONSTRAINT "paykit_entitlement_feature_id_paykit_feature_id_fk" FOREIGN KEY ("feature_id") REFERENCES "public"."paykit_feature"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
133
+ ALTER TABLE "paykit_invoice" ADD CONSTRAINT "paykit_invoice_customer_id_paykit_customer_id_fk" FOREIGN KEY ("customer_id") REFERENCES "public"."paykit_customer"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
134
+ ALTER TABLE "paykit_invoice" ADD CONSTRAINT "paykit_invoice_subscription_id_paykit_subscription_id_fk" FOREIGN KEY ("subscription_id") REFERENCES "public"."paykit_subscription"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
135
+ ALTER TABLE "paykit_payment_method" ADD CONSTRAINT "paykit_payment_method_customer_id_paykit_customer_id_fk" FOREIGN KEY ("customer_id") REFERENCES "public"."paykit_customer"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
136
+ ALTER TABLE "paykit_product_feature" ADD CONSTRAINT "paykit_product_feature_product_internal_id_paykit_product_internal_id_fk" FOREIGN KEY ("product_internal_id") REFERENCES "public"."paykit_product"("internal_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
137
+ ALTER TABLE "paykit_product_feature" ADD CONSTRAINT "paykit_product_feature_feature_id_paykit_feature_id_fk" FOREIGN KEY ("feature_id") REFERENCES "public"."paykit_feature"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
138
+ ALTER TABLE "paykit_subscription" ADD CONSTRAINT "paykit_subscription_customer_id_paykit_customer_id_fk" FOREIGN KEY ("customer_id") REFERENCES "public"."paykit_customer"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
139
+ ALTER TABLE "paykit_subscription" ADD CONSTRAINT "paykit_subscription_product_internal_id_paykit_product_internal_id_fk" FOREIGN KEY ("product_internal_id") REFERENCES "public"."paykit_product"("internal_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
140
+ CREATE INDEX "paykit_customer_deleted_at_idx" ON "paykit_customer" USING btree ("deleted_at");--> statement-breakpoint
141
+ CREATE INDEX "paykit_entitlement_subscription_idx" ON "paykit_entitlement" USING btree ("subscription_id");--> statement-breakpoint
142
+ CREATE INDEX "paykit_entitlement_customer_feature_idx" ON "paykit_entitlement" USING btree ("customer_id","feature_id");--> statement-breakpoint
143
+ CREATE INDEX "paykit_entitlement_next_reset_idx" ON "paykit_entitlement" USING btree ("next_reset_at");--> statement-breakpoint
144
+ CREATE INDEX "paykit_invoice_customer_idx" ON "paykit_invoice" USING btree ("customer_id","created_at");--> statement-breakpoint
145
+ CREATE INDEX "paykit_invoice_subscription_idx" ON "paykit_invoice" USING btree ("subscription_id");--> statement-breakpoint
146
+ CREATE INDEX "paykit_invoice_provider_idx" ON "paykit_invoice" USING btree ("provider_id");--> statement-breakpoint
147
+ CREATE UNIQUE INDEX "paykit_metadata_checkout_session_unique" ON "paykit_metadata" USING btree ("provider_id","provider_checkout_session_id");--> statement-breakpoint
148
+ CREATE INDEX "paykit_payment_method_customer_idx" ON "paykit_payment_method" USING btree ("customer_id","deleted_at");--> statement-breakpoint
149
+ CREATE INDEX "paykit_payment_method_provider_idx" ON "paykit_payment_method" USING btree ("provider_id");--> statement-breakpoint
150
+ CREATE UNIQUE INDEX "paykit_product_id_version_unique" ON "paykit_product" USING btree ("id","version");--> statement-breakpoint
151
+ CREATE INDEX "paykit_product_default_idx" ON "paykit_product" USING btree ("is_default");--> statement-breakpoint
152
+ CREATE INDEX "paykit_product_feature_feature_idx" ON "paykit_product_feature" USING btree ("feature_id");--> statement-breakpoint
153
+ CREATE INDEX "paykit_subscription_customer_status_idx" ON "paykit_subscription" USING btree ("customer_id","status","ended_at");--> statement-breakpoint
154
+ CREATE INDEX "paykit_subscription_product_idx" ON "paykit_subscription" USING btree ("product_internal_id");--> statement-breakpoint
155
+ CREATE INDEX "paykit_subscription_provider_idx" ON "paykit_subscription" USING btree ("provider_id");--> statement-breakpoint
156
+ CREATE UNIQUE INDEX "paykit_webhook_event_provider_unique" ON "paykit_webhook_event" USING btree ("provider_id","provider_event_id");--> statement-breakpoint
157
+ CREATE INDEX "paykit_webhook_event_status_idx" ON "paykit_webhook_event" USING btree ("provider_id","status");