@hexclave/shared 1.0.51 → 1.0.52
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/dist/{admin-interface-CoReEE6d.d.ts → admin-interface-D9wMduWc.d.ts} +10 -10
- package/dist/{admin-interface-CoReEE6d.d.ts.map → admin-interface-D9wMduWc.d.ts.map} +1 -1
- package/dist/{admin-metrics-mSeJUgs_.d.ts → admin-metrics-bsOkw4YQ.d.ts} +11 -11
- package/dist/{admin-metrics-mSeJUgs_.d.ts.map → admin-metrics-bsOkw4YQ.d.ts.map} +1 -1
- package/dist/ai/unified-prompts/reminders.js +1 -0
- package/dist/ai/unified-prompts/reminders.js.map +1 -1
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +11 -2
- package/dist/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.d.ts +5 -4
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +5 -2
- package/dist/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
- package/dist/apps/apps-config.d.ts +6 -0
- package/dist/apps/apps-config.d.ts.map +1 -1
- package/dist/apps/apps-config.js +6 -0
- package/dist/apps/apps-config.js.map +1 -1
- package/dist/{client-interface-Dq3rFlfp.d.ts → client-interface-BQz4jNAC.d.ts} +8 -8
- package/dist/{client-interface-Dq3rFlfp.d.ts.map → client-interface-BQz4jNAC.d.ts.map} +1 -1
- package/dist/config/schema.d.ts +1 -1
- package/dist/config-authoring.d.ts +1 -1
- package/dist/{current-user-yKG-BuFC.d.ts → current-user-BBoN3hsn.d.ts} +6 -6
- package/dist/{current-user-yKG-BuFC.d.ts.map → current-user-BBoN3hsn.d.ts.map} +1 -1
- package/dist/{email-outbox-szT3xGTQ.d.ts → email-outbox-B1wmVPRG.d.ts} +95 -95
- package/dist/{email-outbox-szT3xGTQ.d.ts.map → email-outbox-B1wmVPRG.d.ts.map} +1 -1
- package/dist/esm/ai/unified-prompts/reminders.js +1 -0
- package/dist/esm/ai/unified-prompts/reminders.js.map +1 -1
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.d.ts.map +1 -1
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js +11 -2
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.js.map +1 -1
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.d.ts +5 -4
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js +5 -2
- package/dist/esm/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.js.map +1 -1
- package/dist/esm/apps/apps-config.d.ts +6 -0
- package/dist/esm/apps/apps-config.d.ts.map +1 -1
- package/dist/esm/apps/apps-config.js +6 -0
- package/dist/esm/apps/apps-config.js.map +1 -1
- package/dist/esm/config/schema.d.ts +5 -5
- package/dist/esm/interface/admin-interface.js +1 -1
- package/dist/esm/interface/admin-metrics.d.ts +10 -10
- package/dist/esm/interface/client-interface.js +1 -1
- package/dist/esm/interface/conversations.d.ts +32 -32
- package/dist/esm/interface/crud/current-user.d.ts +5 -5
- package/dist/esm/interface/crud/email-outbox.d.ts +94 -94
- package/dist/esm/interface/crud/products.d.ts +15 -15
- package/dist/esm/interface/crud/project-api-keys.d.ts +2 -2
- package/dist/esm/interface/crud/team-member-profiles.d.ts +8 -8
- package/dist/esm/interface/crud/transactions.d.ts +20 -20
- package/dist/esm/interface/crud/transactions.d.ts.map +1 -1
- package/dist/esm/interface/crud/users.d.ts +6 -6
- package/dist/esm/interface/plan-usage.d.ts +2 -2
- package/dist/esm/interface/server-interface.js +1 -1
- package/dist/esm/known-errors.d.ts +1 -1
- package/dist/esm/schema-fields.d.ts +2 -2
- package/dist/esm/sessions.d.ts +7 -7
- package/dist/esm/utils/esbuild.d.ts.map +1 -1
- package/dist/esm/utils/esbuild.js +8 -3
- package/dist/esm/utils/esbuild.js.map +1 -1
- package/dist/esm/utils/promises.d.ts +3 -1
- package/dist/esm/utils/promises.d.ts.map +1 -1
- package/dist/esm/utils/promises.js +5 -2
- package/dist/esm/utils/promises.js.map +1 -1
- package/dist/helpers/password.d.ts +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/interface/admin-interface.d.ts +2 -2
- package/dist/interface/admin-interface.js +1 -1
- package/dist/interface/admin-metrics.d.ts +1 -1
- package/dist/interface/client-interface.d.ts +1 -1
- package/dist/interface/client-interface.js +1 -1
- package/dist/interface/conversations.d.ts +32 -32
- package/dist/interface/crud/current-user.d.ts +1 -1
- package/dist/interface/crud/email-outbox.d.ts +1 -1
- package/dist/interface/crud/products.d.ts +1 -1
- package/dist/interface/crud/project-api-keys.d.ts +1 -1
- package/dist/interface/crud/team-member-profiles.d.ts +1 -1
- package/dist/interface/crud/transactions.d.ts +1 -1
- package/dist/interface/crud/users.d.ts +1 -1
- package/dist/interface/plan-usage.d.ts +1 -1
- package/dist/interface/server-interface.d.ts +1 -1
- package/dist/interface/server-interface.js +1 -1
- package/dist/{known-errors-BFf8SVm8.d.ts → known-errors-Bm4a61wL.d.ts} +2 -2
- package/dist/{known-errors-BFf8SVm8.d.ts.map → known-errors-Bm4a61wL.d.ts.map} +1 -1
- package/dist/known-errors.d.ts +1 -1
- package/dist/{plan-usage-CFwV688o.d.ts → plan-usage-BaDxcLZ1.d.ts} +3 -3
- package/dist/{plan-usage-CFwV688o.d.ts.map → plan-usage-BaDxcLZ1.d.ts.map} +1 -1
- package/dist/{products-DzedG6oU.d.ts → products-D4o8A2W0.d.ts} +16 -16
- package/dist/{products-DzedG6oU.d.ts.map → products-D4o8A2W0.d.ts.map} +1 -1
- package/dist/{project-api-keys-Di2ENRam.d.ts → project-api-keys--7V5X_UW.d.ts} +3 -3
- package/dist/{project-api-keys-Di2ENRam.d.ts.map → project-api-keys--7V5X_UW.d.ts.map} +1 -1
- package/dist/{schema-Hy94hCXp.d.ts → schema-DV0SQUbY.d.ts} +6 -6
- package/dist/{schema-Hy94hCXp.d.ts.map → schema-DV0SQUbY.d.ts.map} +1 -1
- package/dist/{schema-fields-DhryPaD4.d.ts → schema-fields-DZtDQEEO.d.ts} +3 -3
- package/dist/{schema-fields-DhryPaD4.d.ts.map → schema-fields-DZtDQEEO.d.ts.map} +1 -1
- package/dist/schema-fields.d.ts +1 -1
- package/dist/{server-interface-CCkVoW9E.d.ts → server-interface-BjY-eS4Q.d.ts} +8 -8
- package/dist/{server-interface-CCkVoW9E.d.ts.map → server-interface-BjY-eS4Q.d.ts.map} +1 -1
- package/dist/{sessions-CKNkS48M.d.ts → sessions-CI-0TBQb.d.ts} +9 -9
- package/dist/{sessions-CKNkS48M.d.ts.map → sessions-CI-0TBQb.d.ts.map} +1 -1
- package/dist/sessions.d.ts +1 -1
- package/dist/{team-member-profiles-jSNAduek.d.ts → team-member-profiles-BoDEqx-0.d.ts} +9 -9
- package/dist/{team-member-profiles-jSNAduek.d.ts.map → team-member-profiles-BoDEqx-0.d.ts.map} +1 -1
- package/dist/{transactions-icyjJzs-.d.ts → transactions-CHNUJ42J.d.ts} +21 -21
- package/dist/transactions-CHNUJ42J.d.ts.map +1 -0
- package/dist/{users-CCg66YDE.d.ts → users-DHNRwoSz.d.ts} +7 -7
- package/dist/{users-CCg66YDE.d.ts.map → users-DHNRwoSz.d.ts.map} +1 -1
- package/dist/utils/esbuild.d.ts.map +1 -1
- package/dist/utils/esbuild.js +8 -3
- package/dist/utils/esbuild.js.map +1 -1
- package/dist/utils/promises.d.ts +3 -1
- package/dist/utils/promises.d.ts.map +1 -1
- package/dist/utils/promises.js +5 -2
- package/dist/utils/promises.js.map +1 -1
- package/package.json +1 -1
- package/src/ai/unified-prompts/reminders.ts +1 -0
- package/src/ai/unified-prompts/skill-site-prompt-parts/ai-setup-prompt.ts +41 -2
- package/src/ai/unified-prompts/skill-site-prompt-parts/docs-json.generated.ts +7 -4
- package/src/apps/apps-config.ts +6 -0
- package/src/utils/esbuild.tsx +18 -3
- package/src/utils/promises.tsx +9 -2
- package/dist/transactions-icyjJzs-.d.ts.map +0 -1
|
@@ -9,6 +9,8 @@ declare const customerProductReadSchema: yup$1.ObjectSchema<{
|
|
|
9
9
|
client_metadata?: {} | null | undefined;
|
|
10
10
|
client_read_only_metadata?: {} | null | undefined;
|
|
11
11
|
server_metadata?: {} | null | undefined;
|
|
12
|
+
server_only: boolean;
|
|
13
|
+
customer_type: "team" | "user" | "custom";
|
|
12
14
|
stackable: boolean;
|
|
13
15
|
prices: Record<string, {
|
|
14
16
|
USD?: string | undefined;
|
|
@@ -22,11 +24,9 @@ declare const customerProductReadSchema: yup$1.ObjectSchema<{
|
|
|
22
24
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
23
25
|
}>;
|
|
24
26
|
display_name: string;
|
|
25
|
-
customer_type: "team" | "user" | "custom";
|
|
26
|
-
server_only: boolean;
|
|
27
27
|
included_items: Record<string, {
|
|
28
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
29
28
|
quantity?: number | undefined;
|
|
29
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
30
30
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
31
31
|
}>;
|
|
32
32
|
};
|
|
@@ -38,11 +38,14 @@ declare const customerProductReadSchema: yup$1.ObjectSchema<{
|
|
|
38
38
|
is_cancelable: boolean;
|
|
39
39
|
} | null | undefined;
|
|
40
40
|
switch_options: {
|
|
41
|
+
product_id: string;
|
|
41
42
|
product: {
|
|
42
43
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
43
44
|
client_metadata?: {} | null | undefined;
|
|
44
45
|
client_read_only_metadata?: {} | null | undefined;
|
|
45
46
|
server_metadata?: {} | null | undefined;
|
|
47
|
+
server_only: boolean;
|
|
48
|
+
customer_type: "team" | "user" | "custom";
|
|
46
49
|
stackable: boolean;
|
|
47
50
|
prices: Record<string, {
|
|
48
51
|
USD?: string | undefined;
|
|
@@ -56,15 +59,12 @@ declare const customerProductReadSchema: yup$1.ObjectSchema<{
|
|
|
56
59
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
57
60
|
}>;
|
|
58
61
|
display_name: string;
|
|
59
|
-
customer_type: "team" | "user" | "custom";
|
|
60
|
-
server_only: boolean;
|
|
61
62
|
included_items: Record<string, {
|
|
62
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
63
63
|
quantity?: number | undefined;
|
|
64
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
64
65
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
65
66
|
}>;
|
|
66
67
|
};
|
|
67
|
-
product_id: string;
|
|
68
68
|
}[] | undefined;
|
|
69
69
|
}, yup$1.AnyObject, {
|
|
70
70
|
id: undefined;
|
|
@@ -101,11 +101,14 @@ declare const customerProductsListResponseSchema: yup$1.ObjectSchema<{
|
|
|
101
101
|
is_cancelable: boolean;
|
|
102
102
|
} | null | undefined;
|
|
103
103
|
switch_options?: {
|
|
104
|
+
product_id: string;
|
|
104
105
|
product: {
|
|
105
106
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
106
107
|
client_metadata?: {} | null | undefined;
|
|
107
108
|
client_read_only_metadata?: {} | null | undefined;
|
|
108
109
|
server_metadata?: {} | null | undefined;
|
|
110
|
+
server_only: boolean;
|
|
111
|
+
customer_type: "team" | "user" | "custom";
|
|
109
112
|
stackable: boolean;
|
|
110
113
|
prices: Record<string, {
|
|
111
114
|
USD?: string | undefined;
|
|
@@ -119,21 +122,21 @@ declare const customerProductsListResponseSchema: yup$1.ObjectSchema<{
|
|
|
119
122
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
120
123
|
}>;
|
|
121
124
|
display_name: string;
|
|
122
|
-
customer_type: "team" | "user" | "custom";
|
|
123
|
-
server_only: boolean;
|
|
124
125
|
included_items: Record<string, {
|
|
125
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
126
126
|
quantity?: number | undefined;
|
|
127
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
127
128
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
128
129
|
}>;
|
|
129
130
|
};
|
|
130
|
-
product_id: string;
|
|
131
131
|
}[] | undefined;
|
|
132
|
+
quantity: number;
|
|
132
133
|
product: {
|
|
133
134
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
134
135
|
client_metadata?: {} | null | undefined;
|
|
135
136
|
client_read_only_metadata?: {} | null | undefined;
|
|
136
137
|
server_metadata?: {} | null | undefined;
|
|
138
|
+
server_only: boolean;
|
|
139
|
+
customer_type: "team" | "user" | "custom";
|
|
137
140
|
stackable: boolean;
|
|
138
141
|
prices: Record<string, {
|
|
139
142
|
USD?: string | undefined;
|
|
@@ -147,15 +150,12 @@ declare const customerProductsListResponseSchema: yup$1.ObjectSchema<{
|
|
|
147
150
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
148
151
|
}>;
|
|
149
152
|
display_name: string;
|
|
150
|
-
customer_type: "team" | "user" | "custom";
|
|
151
|
-
server_only: boolean;
|
|
152
153
|
included_items: Record<string, {
|
|
153
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
154
154
|
quantity?: number | undefined;
|
|
155
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
155
156
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
156
157
|
}>;
|
|
157
158
|
};
|
|
158
|
-
quantity: number;
|
|
159
159
|
id: string | null;
|
|
160
160
|
}[];
|
|
161
161
|
is_paginated: boolean;
|
|
@@ -78,10 +78,10 @@ declare const userApiKeysCrud: import("../../crud").CrudSchemaFromOptions<{
|
|
|
78
78
|
is_public: undefined;
|
|
79
79
|
user_id: undefined;
|
|
80
80
|
}, "">, userApiKeysCreateOutputSchema: yup$1.ObjectSchema<{
|
|
81
|
+
user_id: string;
|
|
81
82
|
type: "user";
|
|
82
83
|
description: string;
|
|
83
84
|
id: string;
|
|
84
|
-
user_id: string;
|
|
85
85
|
created_at_millis: number;
|
|
86
86
|
expires_at_millis: number | undefined;
|
|
87
87
|
manually_revoked_at_millis: number | undefined;
|
|
@@ -177,9 +177,9 @@ declare const teamApiKeysCrud: import("../../crud").CrudSchemaFromOptions<{
|
|
|
177
177
|
team_id: undefined;
|
|
178
178
|
}, "">, teamApiKeysCreateOutputSchema: yup$1.ObjectSchema<{
|
|
179
179
|
type: "team";
|
|
180
|
+
team_id: string;
|
|
180
181
|
description: string;
|
|
181
182
|
id: string;
|
|
182
|
-
team_id: string;
|
|
183
183
|
created_at_millis: number;
|
|
184
184
|
expires_at_millis: number | undefined;
|
|
185
185
|
manually_revoked_at_millis: number | undefined;
|
|
@@ -19,6 +19,10 @@ declare const teamMemberProfilesCrudServerReadSchema: import("yup").ObjectSchema
|
|
|
19
19
|
profile_image_url: string | null;
|
|
20
20
|
} & {
|
|
21
21
|
user: {
|
|
22
|
+
restricted_reason: {
|
|
23
|
+
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
24
|
+
} | null;
|
|
25
|
+
primary_email: string | null;
|
|
22
26
|
display_name: string | null;
|
|
23
27
|
client_metadata: {} | null;
|
|
24
28
|
client_read_only_metadata: {} | null;
|
|
@@ -27,11 +31,7 @@ declare const teamMemberProfilesCrudServerReadSchema: import("yup").ObjectSchema
|
|
|
27
31
|
selected_team_id: string | null;
|
|
28
32
|
is_anonymous: boolean;
|
|
29
33
|
is_restricted: boolean;
|
|
30
|
-
restricted_reason: {
|
|
31
|
-
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
32
|
-
} | null;
|
|
33
34
|
requires_totp_mfa: boolean;
|
|
34
|
-
primary_email: string | null;
|
|
35
35
|
country_code: string | null;
|
|
36
36
|
profile_image_url: string | null;
|
|
37
37
|
signed_up_at_millis: number;
|
|
@@ -142,6 +142,10 @@ declare const teamMemberProfilesCrud: import("../../crud").CrudSchemaFromOptions
|
|
|
142
142
|
profile_image_url: string | null;
|
|
143
143
|
} & {
|
|
144
144
|
user: {
|
|
145
|
+
restricted_reason: {
|
|
146
|
+
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
147
|
+
} | null;
|
|
148
|
+
primary_email: string | null;
|
|
145
149
|
display_name: string | null;
|
|
146
150
|
client_metadata: {} | null;
|
|
147
151
|
client_read_only_metadata: {} | null;
|
|
@@ -150,11 +154,7 @@ declare const teamMemberProfilesCrud: import("../../crud").CrudSchemaFromOptions
|
|
|
150
154
|
selected_team_id: string | null;
|
|
151
155
|
is_anonymous: boolean;
|
|
152
156
|
is_restricted: boolean;
|
|
153
|
-
restricted_reason: {
|
|
154
|
-
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
155
|
-
} | null;
|
|
156
157
|
requires_totp_mfa: boolean;
|
|
157
|
-
primary_email: string | null;
|
|
158
158
|
country_code: string | null;
|
|
159
159
|
profile_image_url: string | null;
|
|
160
160
|
signed_up_at_millis: number;
|
|
@@ -3,8 +3,8 @@ import { InferType } from "yup";
|
|
|
3
3
|
//#region src/interface/crud/transactions.d.ts
|
|
4
4
|
declare const transactionEntrySchema: import("yup").MixedSchema<{
|
|
5
5
|
type: "money_transfer";
|
|
6
|
-
customer_type: "team" | "user" | "custom";
|
|
7
6
|
customer_id: string;
|
|
7
|
+
customer_type: "team" | "user" | "custom";
|
|
8
8
|
charged_amount: {
|
|
9
9
|
USD?: string | undefined;
|
|
10
10
|
EUR?: string | undefined;
|
|
@@ -21,21 +21,27 @@ declare const transactionEntrySchema: import("yup").MixedSchema<{
|
|
|
21
21
|
adjusted_entry_index: number | null;
|
|
22
22
|
} | {
|
|
23
23
|
type: "item_quantity_change";
|
|
24
|
-
quantity: number;
|
|
25
|
-
customer_type: "team" | "user" | "custom";
|
|
26
24
|
item_id: string;
|
|
27
25
|
customer_id: string;
|
|
26
|
+
quantity: number;
|
|
27
|
+
customer_type: "team" | "user" | "custom";
|
|
28
28
|
adjusted_transaction_id: string | null;
|
|
29
29
|
adjusted_entry_index: number | null;
|
|
30
30
|
} | {
|
|
31
31
|
one_time_purchase_id?: string | undefined;
|
|
32
32
|
subscription_id?: string | undefined;
|
|
33
33
|
type: "product_grant";
|
|
34
|
+
customer_id: string;
|
|
35
|
+
product_id: string | null;
|
|
36
|
+
quantity: number;
|
|
37
|
+
customer_type: "team" | "user" | "custom";
|
|
34
38
|
product: {
|
|
35
39
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
36
40
|
client_metadata?: {} | null | undefined;
|
|
37
41
|
client_read_only_metadata?: {} | null | undefined;
|
|
38
42
|
server_metadata?: {} | null | undefined;
|
|
43
|
+
server_only: boolean;
|
|
44
|
+
customer_type: "team" | "user" | "custom";
|
|
39
45
|
stackable: boolean;
|
|
40
46
|
prices: Record<string, {
|
|
41
47
|
USD?: string | undefined;
|
|
@@ -49,18 +55,12 @@ declare const transactionEntrySchema: import("yup").MixedSchema<{
|
|
|
49
55
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
50
56
|
}>;
|
|
51
57
|
display_name: string;
|
|
52
|
-
customer_type: "team" | "user" | "custom";
|
|
53
|
-
server_only: boolean;
|
|
54
58
|
included_items: Record<string, {
|
|
55
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
56
59
|
quantity?: number | undefined;
|
|
60
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
57
61
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
58
62
|
}>;
|
|
59
63
|
};
|
|
60
|
-
quantity: number;
|
|
61
|
-
customer_type: "team" | "user" | "custom";
|
|
62
|
-
customer_id: string;
|
|
63
|
-
product_id: string | null;
|
|
64
64
|
adjusted_transaction_id: string | null;
|
|
65
65
|
adjusted_entry_index: number | null;
|
|
66
66
|
price_id: string | null;
|
|
@@ -87,8 +87,8 @@ declare const transactionSchema: import("yup").ObjectSchema<{
|
|
|
87
87
|
customer_id: string;
|
|
88
88
|
entries: ({
|
|
89
89
|
type: "money_transfer";
|
|
90
|
-
customer_type: "team" | "user" | "custom";
|
|
91
90
|
customer_id: string;
|
|
91
|
+
customer_type: "team" | "user" | "custom";
|
|
92
92
|
charged_amount: {
|
|
93
93
|
USD?: string | undefined;
|
|
94
94
|
EUR?: string | undefined;
|
|
@@ -105,21 +105,27 @@ declare const transactionSchema: import("yup").ObjectSchema<{
|
|
|
105
105
|
adjusted_entry_index: number | null;
|
|
106
106
|
} | {
|
|
107
107
|
type: "item_quantity_change";
|
|
108
|
-
quantity: number;
|
|
109
|
-
customer_type: "team" | "user" | "custom";
|
|
110
108
|
item_id: string;
|
|
111
109
|
customer_id: string;
|
|
110
|
+
quantity: number;
|
|
111
|
+
customer_type: "team" | "user" | "custom";
|
|
112
112
|
adjusted_transaction_id: string | null;
|
|
113
113
|
adjusted_entry_index: number | null;
|
|
114
114
|
} | {
|
|
115
115
|
one_time_purchase_id?: string | undefined;
|
|
116
116
|
subscription_id?: string | undefined;
|
|
117
117
|
type: "product_grant";
|
|
118
|
+
customer_id: string;
|
|
119
|
+
product_id: string | null;
|
|
120
|
+
quantity: number;
|
|
121
|
+
customer_type: "team" | "user" | "custom";
|
|
118
122
|
product: {
|
|
119
123
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
120
124
|
client_metadata?: {} | null | undefined;
|
|
121
125
|
client_read_only_metadata?: {} | null | undefined;
|
|
122
126
|
server_metadata?: {} | null | undefined;
|
|
127
|
+
server_only: boolean;
|
|
128
|
+
customer_type: "team" | "user" | "custom";
|
|
123
129
|
stackable: boolean;
|
|
124
130
|
prices: Record<string, {
|
|
125
131
|
USD?: string | undefined;
|
|
@@ -133,18 +139,12 @@ declare const transactionSchema: import("yup").ObjectSchema<{
|
|
|
133
139
|
free_trial?: import("../../utils/dates").DayInterval | undefined;
|
|
134
140
|
}>;
|
|
135
141
|
display_name: string;
|
|
136
|
-
customer_type: "team" | "user" | "custom";
|
|
137
|
-
server_only: boolean;
|
|
138
142
|
included_items: Record<string, {
|
|
139
|
-
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
140
143
|
quantity?: number | undefined;
|
|
144
|
+
repeat?: "never" | import("../../utils/dates").DayInterval | undefined;
|
|
141
145
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
142
146
|
}>;
|
|
143
147
|
};
|
|
144
|
-
quantity: number;
|
|
145
|
-
customer_type: "team" | "user" | "custom";
|
|
146
|
-
customer_id: string;
|
|
147
|
-
product_id: string | null;
|
|
148
148
|
adjusted_transaction_id: string | null;
|
|
149
149
|
adjusted_entry_index: number | null;
|
|
150
150
|
price_id: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","names":[],"sources":["../../../../src/interface/crud/transactions.ts"],"mappings":";;;cAwFa,sBAAA,gBAAsB,WAAA
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","names":[],"sources":["../../../../src/interface/crud/transactions.ts"],"mappings":";;;cAwFa,sBAAA,gBAAsB,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAMxB,MAAA;;;;;;;;;;;;oBAAA,MAAA;;;;;;;;;;;;;;;;;;;;KAEC,gBAAA,GAAmB,SAAS,QAAQ,sBAAA;AAAA,cAEnC,iBAAA;AAAA,KAUD,eAAA,WAA0B,iBAAiB;AAAA,cAE1C,iBAAA,gBAAiB,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBlB,MAAA;;;;;;;;;;;;sBAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAEA,WAAA,GAAc,SAAS,QAAQ,iBAAA"}
|
|
@@ -162,15 +162,15 @@ declare const usersCrudServerReadSchema: yup$1.ObjectSchema<{
|
|
|
162
162
|
requires_totp_mfa: undefined;
|
|
163
163
|
}, "">;
|
|
164
164
|
declare const usersCrudServerCreateSchema: yup$1.ObjectSchema<{
|
|
165
|
+
primary_email: string | null | undefined;
|
|
165
166
|
display_name: string | null | undefined;
|
|
166
167
|
client_metadata: {} | null | undefined;
|
|
167
168
|
client_read_only_metadata: {} | null | undefined;
|
|
168
169
|
server_metadata: {} | null | undefined;
|
|
169
170
|
is_anonymous: boolean | undefined;
|
|
170
|
-
|
|
171
|
+
password: string | null | undefined;
|
|
171
172
|
country_code: string | null | undefined;
|
|
172
173
|
profile_image_url: string | null | undefined;
|
|
173
|
-
password: string | null | undefined;
|
|
174
174
|
primary_email_verified: boolean | undefined;
|
|
175
175
|
primary_email_auth_enabled: boolean | undefined;
|
|
176
176
|
otp_auth_enabled: boolean | undefined;
|
|
@@ -188,8 +188,8 @@ declare const usersCrudServerCreateSchema: yup$1.ObjectSchema<{
|
|
|
188
188
|
totp_secret_base64: string | null | undefined;
|
|
189
189
|
} & {
|
|
190
190
|
oauth_providers: {
|
|
191
|
-
id: string;
|
|
192
191
|
email: string | null;
|
|
192
|
+
id: string;
|
|
193
193
|
account_id: string;
|
|
194
194
|
}[] | undefined;
|
|
195
195
|
is_anonymous: boolean | undefined;
|
|
@@ -368,15 +368,15 @@ declare const usersCrud: import("../../crud").CrudSchemaFromOptions<{
|
|
|
368
368
|
};
|
|
369
369
|
}, "">;
|
|
370
370
|
serverCreateSchema: yup$1.ObjectSchema<{
|
|
371
|
+
primary_email: string | null | undefined;
|
|
371
372
|
display_name: string | null | undefined;
|
|
372
373
|
client_metadata: {} | null | undefined;
|
|
373
374
|
client_read_only_metadata: {} | null | undefined;
|
|
374
375
|
server_metadata: {} | null | undefined;
|
|
375
376
|
is_anonymous: boolean | undefined;
|
|
376
|
-
|
|
377
|
+
password: string | null | undefined;
|
|
377
378
|
country_code: string | null | undefined;
|
|
378
379
|
profile_image_url: string | null | undefined;
|
|
379
|
-
password: string | null | undefined;
|
|
380
380
|
primary_email_verified: boolean | undefined;
|
|
381
381
|
primary_email_auth_enabled: boolean | undefined;
|
|
382
382
|
otp_auth_enabled: boolean | undefined;
|
|
@@ -394,8 +394,8 @@ declare const usersCrud: import("../../crud").CrudSchemaFromOptions<{
|
|
|
394
394
|
totp_secret_base64: string | null | undefined;
|
|
395
395
|
} & {
|
|
396
396
|
oauth_providers: {
|
|
397
|
-
id: string;
|
|
398
397
|
email: string | null;
|
|
398
|
+
id: string;
|
|
399
399
|
account_id: string;
|
|
400
400
|
}[] | undefined;
|
|
401
401
|
is_anonymous: boolean | undefined;
|
|
@@ -24,15 +24,15 @@ declare const planUsageRowSchema: yup$1.ObjectSchema<{
|
|
|
24
24
|
declare const planUsageResponseSchema: yup$1.ObjectSchema<{
|
|
25
25
|
owner_team_id: string;
|
|
26
26
|
owner_team_display_name: string;
|
|
27
|
-
plan_id: "
|
|
27
|
+
plan_id: "team" | "free" | "growth";
|
|
28
28
|
plan_display_name: string;
|
|
29
29
|
period_start_millis: number;
|
|
30
30
|
period_end_millis: number;
|
|
31
31
|
next_plan_id: "team" | "growth" | null;
|
|
32
32
|
are_plan_limits_enforced: boolean;
|
|
33
33
|
rows: {
|
|
34
|
-
display_name: string;
|
|
35
34
|
item_id: "dashboard_admins" | "auth_users" | "emails_per_month" | "analytics_timeout_seconds" | "analytics_events" | "session_replays" | "onboarding_call";
|
|
35
|
+
display_name: string;
|
|
36
36
|
kind: "current" | "metered" | "capability";
|
|
37
37
|
used: number | null;
|
|
38
38
|
limit: number | null;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { HexclaveAssertionError } from "../utils/errors.js";
|
|
2
2
|
import { filterUndefined } from "../utils/objects.js";
|
|
3
3
|
import { Result } from "../utils/results.js";
|
|
4
|
-
import { KnownErrors } from "../known-errors.js";
|
|
5
4
|
import { urlString } from "../utils/urls.js";
|
|
5
|
+
import { KnownErrors } from "../known-errors.js";
|
|
6
6
|
import { InternalSession } from "../sessions.js";
|
|
7
7
|
import { HexclaveClientInterface } from "./client-interface.js";
|
|
8
8
|
import { decryptValue, encryptValue, hashKey } from "../helpers/vault/client-side.js";
|
|
@@ -518,7 +518,7 @@ declare const KnownErrors: {
|
|
|
518
518
|
CustomerDoesNotExist: KnownErrorConstructor<KnownError & KnownErrorBrand<"CUSTOMER_DOES_NOT_EXIST">, [customerId: string]> & {
|
|
519
519
|
errorCode: "CUSTOMER_DOES_NOT_EXIST";
|
|
520
520
|
};
|
|
521
|
-
ProductDoesNotExist: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_DOES_NOT_EXIST">, [productId: string, context: "
|
|
521
|
+
ProductDoesNotExist: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_DOES_NOT_EXIST">, [productId: string, context: "item_exists" | "server_only" | null]> & {
|
|
522
522
|
errorCode: "PRODUCT_DOES_NOT_EXIST";
|
|
523
523
|
};
|
|
524
524
|
ProductCustomerTypeDoesNotMatch: KnownErrorConstructor<KnownError & KnownErrorBrand<"PRODUCT_CUSTOMER_TYPE_DOES_NOT_MATCH">, [productId: string | undefined, customerId: string, productCustomerType: "team" | "user" | "custom" | undefined, actualCustomerType: "team" | "user" | "custom"]> & {
|
|
@@ -314,8 +314,8 @@ declare const inlineProductSchema: yup$1.ObjectSchema<{
|
|
|
314
314
|
free_trial?: DayInterval | undefined;
|
|
315
315
|
}>;
|
|
316
316
|
included_items: Record<string, {
|
|
317
|
-
repeat?: "never" | DayInterval | undefined;
|
|
318
317
|
quantity?: number | undefined;
|
|
318
|
+
repeat?: "never" | DayInterval | undefined;
|
|
319
319
|
expires?: "never" | "when-purchase-expires" | "when-repeated" | undefined;
|
|
320
320
|
}>;
|
|
321
321
|
client_metadata: {} | null | undefined;
|
|
@@ -491,7 +491,7 @@ declare const branchConfigSourceSchema: yup$1.MixedSchema<{
|
|
|
491
491
|
*/
|
|
492
492
|
declare const configAgentRunSchema: yup$1.ObjectSchema<{
|
|
493
493
|
id: string;
|
|
494
|
-
status: "running" | "awaiting_review" | "success" | "no-change" | "
|
|
494
|
+
status: "error" | "running" | "awaiting_review" | "success" | "no-change" | "cancelled";
|
|
495
495
|
started_at: number;
|
|
496
496
|
finished_at: number | undefined;
|
|
497
497
|
commit_url: string | undefined;
|
package/dist/esm/sessions.d.ts
CHANGED
|
@@ -9,24 +9,24 @@ declare class AccessToken {
|
|
|
9
9
|
private constructor();
|
|
10
10
|
get payload(): {
|
|
11
11
|
exp?: number | undefined;
|
|
12
|
+
project_id: string;
|
|
13
|
+
refresh_token_id: string;
|
|
14
|
+
email: string | null;
|
|
15
|
+
restricted_reason: {
|
|
16
|
+
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
17
|
+
} | null;
|
|
18
|
+
branch_id: string;
|
|
12
19
|
sub: string;
|
|
13
20
|
iat: number;
|
|
14
21
|
iss: string;
|
|
15
22
|
aud: string;
|
|
16
|
-
project_id: string;
|
|
17
|
-
branch_id: string;
|
|
18
|
-
refresh_token_id: string;
|
|
19
23
|
role: "authenticated";
|
|
20
24
|
name: string | null;
|
|
21
|
-
email: string | null;
|
|
22
25
|
email_verified: boolean;
|
|
23
26
|
selected_team_id: string | null;
|
|
24
27
|
signed_up_at: number;
|
|
25
28
|
is_anonymous: boolean;
|
|
26
29
|
is_restricted: boolean;
|
|
27
|
-
restricted_reason: {
|
|
28
|
-
type: "anonymous" | "email_not_verified" | "restricted_by_administrator";
|
|
29
|
-
} | null;
|
|
30
30
|
requires_totp_mfa: boolean;
|
|
31
31
|
};
|
|
32
32
|
get expiresAt(): Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.d.ts","names":[],"sources":["../../../src/utils/esbuild.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"esbuild.d.ts","names":[],"sources":["../../../src/utils/esbuild.tsx"],"mappings":";;;iBAyCgB,iBAAA,IAAqB,OAAO;AAAA,iBAgDtB,gBAAA,CAAiB,WAAA,EAAa,MAAA;EAA2B,WAAA;AAAA,GAAuB,OAAA;EACpG,MAAA;EACA,gBAAA,GAAmB,MAAA;EACnB,aAAA;EACA,SAAA;EACA,gBAAA;AAAA,IACO,OAAA,CAAQ,MAAA"}
|
|
@@ -7,6 +7,11 @@ import { Result } from "./results.js";
|
|
|
7
7
|
import * as esbuild from "esbuild-wasm/lib/browser.js";
|
|
8
8
|
import { traceSpan, withTraceSpan } from "./telemetry.js";
|
|
9
9
|
//#region src/utils/esbuild.tsx
|
|
10
|
+
const esbuildModule = esbuild;
|
|
11
|
+
function getEsbuildApi(module) {
|
|
12
|
+
return module.version == null && module.default != null ? module.default : esbuild;
|
|
13
|
+
}
|
|
14
|
+
const esbuildApi = getEsbuildApi(esbuildModule);
|
|
10
15
|
globalThis.self ??= globalThis;
|
|
11
16
|
let esbuildInitializePromise = null;
|
|
12
17
|
if (typeof process !== "undefined" && typeof process.exit === "function" && getProcessEnv("NODE_ENV") === "development") runAsynchronously(async () => {
|
|
@@ -17,7 +22,7 @@ if (typeof process !== "undefined" && typeof process.exit === "function" && getP
|
|
|
17
22
|
}
|
|
18
23
|
});
|
|
19
24
|
function initializeEsbuild() {
|
|
20
|
-
const esbuildWasmUrl = `https://unpkg.com/esbuild-wasm@${
|
|
25
|
+
const esbuildWasmUrl = `https://unpkg.com/esbuild-wasm@${esbuildApi.version}/esbuild.wasm`;
|
|
21
26
|
if (esbuildInitializePromise == null) {
|
|
22
27
|
esbuildInitializePromise = withTraceSpan("initializeEsbuild", async () => {
|
|
23
28
|
try {
|
|
@@ -35,7 +40,7 @@ function initializeEsbuild() {
|
|
|
35
40
|
worker: false
|
|
36
41
|
};
|
|
37
42
|
try {
|
|
38
|
-
await
|
|
43
|
+
await esbuildApi.initialize(initOptions);
|
|
39
44
|
} catch (e) {
|
|
40
45
|
if (e instanceof Error && e.message === "Cannot call \"initialize\" more than once") {} else throw e;
|
|
41
46
|
}
|
|
@@ -64,7 +69,7 @@ async function bundleJavaScript(sourceFiles, options = {}) {
|
|
|
64
69
|
]);
|
|
65
70
|
let result;
|
|
66
71
|
try {
|
|
67
|
-
result = await traceSpan("bundleJavaScript", async () => await
|
|
72
|
+
result = await traceSpan("bundleJavaScript", async () => await esbuildApi.build({
|
|
68
73
|
entryPoints: ["/entry.js"],
|
|
69
74
|
bundle: true,
|
|
70
75
|
write: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.js","names":[],"sources":["../../../src/utils/esbuild.tsx"],"sourcesContent":["import * as esbuild from 'esbuild-wasm/lib/browser.js';\nimport { join } from 'path';\nimport { getProcessEnv, isBrowserLike } from './env';\nimport { captureError, HexclaveAssertionError, throwErr } from \"./errors\";\nimport { createGlobalAsync } from './globals';\nimport { ignoreUnhandledRejection, runAsynchronously } from './promises';\nimport { Result } from \"./results\";\nimport { traceSpan, withTraceSpan } from './telemetry';\n\n\n// esbuild requires self property to be set, and it is not set by default in nodejs\n(globalThis.self as any) ??= globalThis as any;\n\nlet esbuildInitializePromise: Promise<void> | null = null;\n\nif (typeof process !== \"undefined\" && typeof process.exit === \"function\" && getProcessEnv(\"NODE_ENV\") === 'development') {\n // On development Node.js servers, initialize ESBuild as soon as the module is imported so we have to wait less on the first request\n runAsynchronously(async () => {\n try {\n await initializeEsbuild();\n } catch (e) {\n captureError(\"initialize-esbuild-in-dev\", e);\n }\n });\n}\n\nexport function initializeEsbuild(): Promise<void> {\n const esbuildWasmUrl = `https://unpkg.com/esbuild-wasm@${esbuild.version}/esbuild.wasm`;\n if (esbuildInitializePromise == null) {\n esbuildInitializePromise = withTraceSpan('initializeEsbuild', async () => {\n try {\n let initOptions;\n if (isBrowserLike()) {\n initOptions = {\n wasmURL: esbuildWasmUrl,\n };\n } else {\n const esbuildWasmModule = await createGlobalAsync('esbuildWasmModule', async () => {\n const esbuildWasmResponse = await fetch(esbuildWasmUrl);\n if (!esbuildWasmResponse.ok) {\n throw new HexclaveAssertionError(`Failed to fetch esbuild.wasm: ${esbuildWasmResponse.status} ${esbuildWasmResponse.statusText}: ${await esbuildWasmResponse.text()}`);\n }\n const esbuildWasm = await esbuildWasmResponse.arrayBuffer();\n const esbuildWasmArray = new Uint8Array(esbuildWasm);\n if (esbuildWasmArray[0] !== 0x00 || esbuildWasmArray[1] !== 0x61 || esbuildWasmArray[2] !== 0x73 || esbuildWasmArray[3] !== 0x6d) {\n throw new HexclaveAssertionError(`Invalid esbuild.wasm file: ${new TextDecoder().decode(esbuildWasmArray)}`);\n }\n return new WebAssembly.Module(esbuildWasm);\n });\n initOptions = {\n wasmModule: esbuildWasmModule,\n worker: false,\n };\n }\n try {\n await esbuild.initialize(initOptions);\n } catch (e) {\n if (e instanceof Error && e.message === 'Cannot call \"initialize\" more than once') {\n // this happens especially in local development, just ignore\n } else {\n throw e;\n }\n }\n } catch (e) {\n esbuildInitializePromise = null;\n throw new HexclaveAssertionError(\"Failed to initialize ESBuild\", { cause: e });\n }\n })();\n ignoreUnhandledRejection(esbuildInitializePromise);\n }\n\n return esbuildInitializePromise;\n}\n\nexport async function bundleJavaScript(sourceFiles: Record<string, string> & { '/entry.js': string }, options: {\n format?: 'iife' | 'esm' | 'cjs',\n externalPackages?: Record<string, string>,\n keepAsImports?: string[],\n sourcemap?: false | 'inline',\n allowHttpImports?: boolean,\n} = {}): Promise<Result<string, string>> {\n await initializeEsbuild();\n\n const sourceFilesMap = new Map(Object.entries(sourceFiles));\n const externalPackagesMap = new Map(Object.entries(options.externalPackages ?? {}));\n const keepAsImports = options.keepAsImports ?? [];\n\n const httpImportCache = new Map<string, { contents: string, loader: esbuild.Loader, resolveDir: string }>();\n\n const extToLoader: Map<string, esbuild.Loader> = new Map([\n ['tsx', 'tsx'],\n ['ts', 'ts'],\n ['js', 'js'],\n ['jsx', 'jsx'],\n ['json', 'json'],\n ['css', 'css'],\n ]);\n let result;\n try {\n result = await traceSpan('bundleJavaScript', async () => await esbuild.build({\n entryPoints: ['/entry.js'],\n bundle: true,\n write: false,\n format: options.format ?? 'iife',\n platform: 'browser',\n target: 'es2015',\n jsx: 'automatic',\n sourcemap: options.sourcemap ?? 'inline',\n external: keepAsImports,\n plugins: [\n ...options.allowHttpImports ? [{\n name: \"esm-sh-only\",\n setup(build: esbuild.PluginBuild) {\n // Handle absolute URLs and relative imports from esm.sh modules.\n build.onResolve({ filter: /.*/ }, (args) => {\n // Only touch absolute http(s) specifiers or children of our own namespace\n const isHttp = args.path.startsWith(\"http://\") || args.path.startsWith(\"https://\");\n const fromEsmNs = args.namespace === \"esm-sh\";\n\n if (!isHttp && !fromEsmNs) return null; // Let other plugins handle bare/relative/local\n\n // Resolve relative URLs inside esm.sh-fetched modules\n const url = new URL(args.path, fromEsmNs ? args.importer : undefined);\n\n if (url.protocol !== \"https:\" || url.host !== \"esm.sh\") {\n throw new Error(`Blocked non-esm.sh URL import: ${url.href}`);\n }\n\n return { path: url.href, namespace: \"esm-sh\" };\n });\n\n build.onLoad({ filter: /.*/, namespace: \"esm-sh\" }, async (args) => {\n if (httpImportCache.has(args.path)) return httpImportCache.get(args.path)!;\n\n const res = await fetch(args.path, { redirect: \"follow\" });\n if (!res.ok) throw new Error(`Fetch ${res.status} ${res.statusText} for ${args.path}`);\n const finalUrl = new URL(res.url);\n // Defensive: follow shouldn’t leave esm.sh, but re-check.\n if (finalUrl.host !== \"esm.sh\") {\n throw new Error(`Redirect escaped esm.sh: ${finalUrl.href}`);\n }\n\n const ct = (res.headers.get(\"content-type\") || \"\").toLowerCase();\n let loader: esbuild.Loader =\n ct.includes(\"css\") ? \"css\" :\n ct.includes(\"json\") ? \"json\" :\n ct.includes(\"typescript\") ? \"ts\" :\n ct.includes(\"jsx\") ? \"jsx\" :\n ct.includes(\"tsx\") ? \"tsx\" :\n \"js\";\n\n // Fallback by extension (esm.sh sometimes omits CT)\n const p = finalUrl.pathname;\n if (p.endsWith(\".css\")) loader = \"css\";\n else if (p.endsWith(\".json\")) loader = \"json\";\n else if (p.endsWith(\".ts\")) loader = \"ts\";\n else if (p.endsWith(\".tsx\")) loader = \"tsx\";\n else if (p.endsWith(\".jsx\")) loader = \"jsx\";\n\n const contents = await res.text();\n const result = {\n contents,\n loader,\n // Ensures relative imports inside that module resolve against the file’s URL\n resolveDir: new URL(\".\", finalUrl.href).toString(),\n watchFiles: [finalUrl.href],\n };\n httpImportCache.set(args.path, result);\n return result;\n });\n },\n } as esbuild.Plugin] : [],\n {\n name: 'replace-packages-with-globals',\n setup(build) {\n build.onResolve({ filter: /.*/ }, args => {\n // Skip packages that should remain external (not be shimmed)\n if (keepAsImports.includes(args.path)) {\n return undefined;\n }\n if (externalPackagesMap.has(args.path)) {\n return { path: args.path, namespace: 'package-shim' };\n }\n return undefined;\n });\n\n build.onLoad({ filter: /.*/, namespace: 'package-shim' }, (args) => {\n const contents = externalPackagesMap.get(args.path);\n if (contents == null) throw new HexclaveAssertionError(`esbuild requested file ${args.path} that is not in the virtual file system`);\n\n return { contents, loader: 'ts' };\n });\n },\n },\n {\n name: 'virtual-fs',\n setup(build) {\n build.onResolve({ filter: /.*/ }, args => {\n const absolutePath = join(\"/\", args.path);\n if (sourceFilesMap.has(absolutePath)) {\n return { path: absolutePath, namespace: 'virtual' };\n }\n return undefined;\n });\n\n /* 2️⃣ Load the module from the map */\n build.onLoad({ filter: /.*/, namespace: 'virtual' }, args => {\n const contents = sourceFilesMap.get(args.path);\n if (contents == null) throw new HexclaveAssertionError(`esbuild requested file ${args.path} that is not in the virtual file system`);\n\n const ext = args.path.split('.').pop() ?? '';\n const loader = extToLoader.get(ext) ?? throwErr(`esbuild requested file ${args.path} with unknown extension ${ext}`);\n\n return { contents, loader };\n });\n },\n },\n ],\n }));\n } catch (e) {\n if (e instanceof Error && e.message.startsWith(\"Build failed with \")) {\n return Result.error(e.message);\n }\n throw e;\n }\n\n if (result.errors.length > 0) {\n return Result.error(result.errors.map(e => e.text).join('\\n'));\n }\n\n if (result.outputFiles.length > 0) {\n return Result.ok(result.outputFiles[0].text);\n }\n return throwErr(\"No output generated??\");\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"esbuild.js","names":[],"sources":["../../../src/utils/esbuild.tsx"],"sourcesContent":["import * as esbuild from 'esbuild-wasm/lib/browser.js';\nimport { join } from 'path';\nimport { getProcessEnv, isBrowserLike } from './env';\nimport { captureError, HexclaveAssertionError, throwErr } from \"./errors\";\nimport { createGlobalAsync } from './globals';\nimport { ignoreUnhandledRejection, runAsynchronously } from './promises';\nimport { Result } from \"./results\";\nimport { traceSpan, withTraceSpan } from './telemetry';\n\ntype EsbuildBrowserRuntimeModule = Partial<typeof esbuild> & {\n default?: typeof esbuild,\n};\n\n// The built ESM package can import esbuild-wasm's CJS browser entry as a\n// default-only namespace under Node. Normalize once so both tsx source runs and\n// built dist runs see the same API surface.\nconst esbuildModule: EsbuildBrowserRuntimeModule = esbuild;\nfunction getEsbuildApi(module: EsbuildBrowserRuntimeModule): typeof esbuild {\n return module.version == null && module.default != null\n ? module.default\n : esbuild;\n}\nconst esbuildApi = getEsbuildApi(esbuildModule);\n\n\n// esbuild requires self property to be set, and it is not set by default in nodejs\n(globalThis.self as any) ??= globalThis as any;\n\nlet esbuildInitializePromise: Promise<void> | null = null;\n\nif (typeof process !== \"undefined\" && typeof process.exit === \"function\" && getProcessEnv(\"NODE_ENV\") === 'development') {\n // On development Node.js servers, initialize ESBuild as soon as the module is imported so we have to wait less on the first request\n runAsynchronously(async () => {\n try {\n await initializeEsbuild();\n } catch (e) {\n captureError(\"initialize-esbuild-in-dev\", e);\n }\n });\n}\n\nexport function initializeEsbuild(): Promise<void> {\n const esbuildWasmUrl = `https://unpkg.com/esbuild-wasm@${esbuildApi.version}/esbuild.wasm`;\n if (esbuildInitializePromise == null) {\n esbuildInitializePromise = withTraceSpan('initializeEsbuild', async () => {\n try {\n let initOptions;\n if (isBrowserLike()) {\n initOptions = {\n wasmURL: esbuildWasmUrl,\n };\n } else {\n const esbuildWasmModule = await createGlobalAsync('esbuildWasmModule', async () => {\n const esbuildWasmResponse = await fetch(esbuildWasmUrl);\n if (!esbuildWasmResponse.ok) {\n throw new HexclaveAssertionError(`Failed to fetch esbuild.wasm: ${esbuildWasmResponse.status} ${esbuildWasmResponse.statusText}: ${await esbuildWasmResponse.text()}`);\n }\n const esbuildWasm = await esbuildWasmResponse.arrayBuffer();\n const esbuildWasmArray = new Uint8Array(esbuildWasm);\n if (esbuildWasmArray[0] !== 0x00 || esbuildWasmArray[1] !== 0x61 || esbuildWasmArray[2] !== 0x73 || esbuildWasmArray[3] !== 0x6d) {\n throw new HexclaveAssertionError(`Invalid esbuild.wasm file: ${new TextDecoder().decode(esbuildWasmArray)}`);\n }\n return new WebAssembly.Module(esbuildWasm);\n });\n initOptions = {\n wasmModule: esbuildWasmModule,\n worker: false,\n };\n }\n try {\n await esbuildApi.initialize(initOptions);\n } catch (e) {\n if (e instanceof Error && e.message === 'Cannot call \"initialize\" more than once') {\n // this happens especially in local development, just ignore\n } else {\n throw e;\n }\n }\n } catch (e) {\n esbuildInitializePromise = null;\n throw new HexclaveAssertionError(\"Failed to initialize ESBuild\", { cause: e });\n }\n })();\n ignoreUnhandledRejection(esbuildInitializePromise);\n }\n\n return esbuildInitializePromise;\n}\n\nexport async function bundleJavaScript(sourceFiles: Record<string, string> & { '/entry.js': string }, options: {\n format?: 'iife' | 'esm' | 'cjs',\n externalPackages?: Record<string, string>,\n keepAsImports?: string[],\n sourcemap?: false | 'inline',\n allowHttpImports?: boolean,\n} = {}): Promise<Result<string, string>> {\n await initializeEsbuild();\n\n const sourceFilesMap = new Map(Object.entries(sourceFiles));\n const externalPackagesMap = new Map(Object.entries(options.externalPackages ?? {}));\n const keepAsImports = options.keepAsImports ?? [];\n\n const httpImportCache = new Map<string, { contents: string, loader: esbuild.Loader, resolveDir: string }>();\n\n const extToLoader: Map<string, esbuild.Loader> = new Map([\n ['tsx', 'tsx'],\n ['ts', 'ts'],\n ['js', 'js'],\n ['jsx', 'jsx'],\n ['json', 'json'],\n ['css', 'css'],\n ]);\n let result;\n try {\n result = await traceSpan('bundleJavaScript', async () => await esbuildApi.build({\n entryPoints: ['/entry.js'],\n bundle: true,\n write: false,\n format: options.format ?? 'iife',\n platform: 'browser',\n target: 'es2015',\n jsx: 'automatic',\n sourcemap: options.sourcemap ?? 'inline',\n external: keepAsImports,\n plugins: [\n ...options.allowHttpImports ? [{\n name: \"esm-sh-only\",\n setup(build: esbuild.PluginBuild) {\n // Handle absolute URLs and relative imports from esm.sh modules.\n build.onResolve({ filter: /.*/ }, (args) => {\n // Only touch absolute http(s) specifiers or children of our own namespace\n const isHttp = args.path.startsWith(\"http://\") || args.path.startsWith(\"https://\");\n const fromEsmNs = args.namespace === \"esm-sh\";\n\n if (!isHttp && !fromEsmNs) return null; // Let other plugins handle bare/relative/local\n\n // Resolve relative URLs inside esm.sh-fetched modules\n const url = new URL(args.path, fromEsmNs ? args.importer : undefined);\n\n if (url.protocol !== \"https:\" || url.host !== \"esm.sh\") {\n throw new Error(`Blocked non-esm.sh URL import: ${url.href}`);\n }\n\n return { path: url.href, namespace: \"esm-sh\" };\n });\n\n build.onLoad({ filter: /.*/, namespace: \"esm-sh\" }, async (args) => {\n if (httpImportCache.has(args.path)) return httpImportCache.get(args.path)!;\n\n const res = await fetch(args.path, { redirect: \"follow\" });\n if (!res.ok) throw new Error(`Fetch ${res.status} ${res.statusText} for ${args.path}`);\n const finalUrl = new URL(res.url);\n // Defensive: follow shouldn’t leave esm.sh, but re-check.\n if (finalUrl.host !== \"esm.sh\") {\n throw new Error(`Redirect escaped esm.sh: ${finalUrl.href}`);\n }\n\n const ct = (res.headers.get(\"content-type\") || \"\").toLowerCase();\n let loader: esbuild.Loader =\n ct.includes(\"css\") ? \"css\" :\n ct.includes(\"json\") ? \"json\" :\n ct.includes(\"typescript\") ? \"ts\" :\n ct.includes(\"jsx\") ? \"jsx\" :\n ct.includes(\"tsx\") ? \"tsx\" :\n \"js\";\n\n // Fallback by extension (esm.sh sometimes omits CT)\n const p = finalUrl.pathname;\n if (p.endsWith(\".css\")) loader = \"css\";\n else if (p.endsWith(\".json\")) loader = \"json\";\n else if (p.endsWith(\".ts\")) loader = \"ts\";\n else if (p.endsWith(\".tsx\")) loader = \"tsx\";\n else if (p.endsWith(\".jsx\")) loader = \"jsx\";\n\n const contents = await res.text();\n const result = {\n contents,\n loader,\n // Ensures relative imports inside that module resolve against the file’s URL\n resolveDir: new URL(\".\", finalUrl.href).toString(),\n watchFiles: [finalUrl.href],\n };\n httpImportCache.set(args.path, result);\n return result;\n });\n },\n } as esbuild.Plugin] : [],\n {\n name: 'replace-packages-with-globals',\n setup(build) {\n build.onResolve({ filter: /.*/ }, args => {\n // Skip packages that should remain external (not be shimmed)\n if (keepAsImports.includes(args.path)) {\n return undefined;\n }\n if (externalPackagesMap.has(args.path)) {\n return { path: args.path, namespace: 'package-shim' };\n }\n return undefined;\n });\n\n build.onLoad({ filter: /.*/, namespace: 'package-shim' }, (args) => {\n const contents = externalPackagesMap.get(args.path);\n if (contents == null) throw new HexclaveAssertionError(`esbuild requested file ${args.path} that is not in the virtual file system`);\n\n return { contents, loader: 'ts' };\n });\n },\n },\n {\n name: 'virtual-fs',\n setup(build) {\n build.onResolve({ filter: /.*/ }, args => {\n const absolutePath = join(\"/\", args.path);\n if (sourceFilesMap.has(absolutePath)) {\n return { path: absolutePath, namespace: 'virtual' };\n }\n return undefined;\n });\n\n /* 2️⃣ Load the module from the map */\n build.onLoad({ filter: /.*/, namespace: 'virtual' }, args => {\n const contents = sourceFilesMap.get(args.path);\n if (contents == null) throw new HexclaveAssertionError(`esbuild requested file ${args.path} that is not in the virtual file system`);\n\n const ext = args.path.split('.').pop() ?? '';\n const loader = extToLoader.get(ext) ?? throwErr(`esbuild requested file ${args.path} with unknown extension ${ext}`);\n\n return { contents, loader };\n });\n },\n },\n ],\n }));\n } catch (e) {\n if (e instanceof Error && e.message.startsWith(\"Build failed with \")) {\n return Result.error(e.message);\n }\n throw e;\n }\n\n if (result.errors.length > 0) {\n return Result.error(result.errors.map(e => e.text).join('\\n'));\n }\n\n if (result.outputFiles.length > 0) {\n return Result.ok(result.outputFiles[0].text);\n }\n return throwErr(\"No output generated??\");\n}\n"],"mappings":"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"}
|
|
@@ -38,7 +38,9 @@ declare function ignoreUnhandledRejection<T extends Promise<any>>(promise: T): v
|
|
|
38
38
|
* See concatStacktraces for more information.
|
|
39
39
|
*/
|
|
40
40
|
declare function concatStacktracesIfRejected<T>(promise: Promise<T>): void;
|
|
41
|
-
declare function wait(ms: number
|
|
41
|
+
declare function wait(ms: number, options?: {
|
|
42
|
+
unref?: boolean;
|
|
43
|
+
}): Promise<void>;
|
|
42
44
|
declare function waitUntil(date: Date): Promise<void>;
|
|
43
45
|
declare function runAsynchronouslyWithAlert(...args: Parameters<typeof runAsynchronously>): void;
|
|
44
46
|
declare function runAsynchronously(promiseOrFunc: void | Promise<unknown> | (() => void | Promise<unknown>) | undefined, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promises.d.ts","names":[],"sources":["../../../src/utils/promises.tsx"],"mappings":";;;KAQY,YAAA,MAAkB,OAAA,CAAQ,CAAA;EAChC,MAAA;EAAoB,MAAA;AAAA;EACpB,MAAA;EAAqB,KAAA,EAAO,CAAA;AAAA;EAC5B,MAAA;AAAA;AAAA,KAGD,OAAA,OAAc,KAAA,EAAO,CAAC;AAAA,KACtB,MAAA,IAAU,MAAe;AAAA,iBACd,aAAA,IAAiB,QAAA,GAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,MAAA,EAAQ,MAAA,YAAkB,YAAA,CAAa,CAAA;;;;;iBAwExF,QAAA,IAAY,KAAA,EAAO,CAAA,GAAI,YAAA,CAAa,CAAA;;;;AA7ExC;iBAuHI,QAAA,IAAY,MAAA,YAAkB,YAAY,CAAC,CAAA;AAAA,iBA6C3C,YAAA,IAAgB,YAAY;AAAA,iBAc5B,OAAA,IAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,OAAA;EAAW,oBAAA;AAAA,IAAwC,YAAA,CAAa,CAAA;;;;AA/KrF;AAAA;;iBAuNX,wBAAA,WAAmC,OAAA,OAAc,OAAA,EAAS,CAAC;;AAtN7C;AAC9B;iBA0OgB,2BAAA,IAA+B,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,iBAW1C,IAAA,CAAK,EAAA,
|
|
1
|
+
{"version":3,"file":"promises.d.ts","names":[],"sources":["../../../src/utils/promises.tsx"],"mappings":";;;KAQY,YAAA,MAAkB,OAAA,CAAQ,CAAA;EAChC,MAAA;EAAoB,MAAA;AAAA;EACpB,MAAA;EAAqB,KAAA,EAAO,CAAA;AAAA;EAC5B,MAAA;AAAA;AAAA,KAGD,OAAA,OAAc,KAAA,EAAO,CAAC;AAAA,KACtB,MAAA,IAAU,MAAe;AAAA,iBACd,aAAA,IAAiB,QAAA,GAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,MAAA,EAAQ,MAAA,YAAkB,YAAA,CAAa,CAAA;;;;;iBAwExF,QAAA,IAAY,KAAA,EAAO,CAAA,GAAI,YAAA,CAAa,CAAA;;;;AA7ExC;iBAuHI,QAAA,IAAY,MAAA,YAAkB,YAAY,CAAC,CAAA;AAAA,iBA6C3C,YAAA,IAAgB,YAAY;AAAA,iBAc5B,OAAA,IAAW,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,OAAA;EAAW,oBAAA;AAAA,IAAwC,YAAA,CAAa,CAAA;;;;AA/KrF;AAAA;;iBAuNX,wBAAA,WAAmC,OAAA,OAAc,OAAA,EAAS,CAAC;;AAtN7C;AAC9B;iBA0OgB,2BAAA,IAA+B,OAAA,EAAS,OAAO,CAAC,CAAA;AAAA,iBAW1C,IAAA,CAAK,EAAA,UAAY,OAAA;EAAY,KAAA;AAAA,IAAiB,OAAA;AAAA,iBAuC9C,SAAA,CAAU,IAAA,EAAM,IAAA,GAAI,OAAA;AAAA,iBAsB1B,0BAAA,IAA8B,IAAA,EAAM,UAAU,QAAQ,iBAAA;AAAA,iBAgCtD,iBAAA,CACd,aAAA,SAAsB,OAAA,0BAAiC,OAAA,wBACvD,OAAA;EACE,cAAA;EACA,OAAA,IAAW,KAAA,EAAO,KAAA;AAAA;AAAA,cAoChB,YAAA,SAAqB,KAAK;EAAA,SACF,EAAA;cAAA,EAAA;AAAA;AAAA,iBAMR,OAAA,IAAW,aAAA,EAAe,OAAA,CAAQ,CAAA,WAAY,OAAA,CAAQ,CAAA,IAAK,EAAA,WAAa,OAAA,CAAQ,MAAA,CAAO,CAAA,EAAG,YAAA;AAAA,iBA0B1F,YAAA,IAAgB,OAAA,EAAS,OAAA,CAAQ,CAAA,GAAI,EAAA,WAAa,OAAA,CAAQ,CAAA;;;;AA3ZyB;AAwEzG;;;;;;iBA6WsB,kBAAA,OACpB,KAAA,WAAgB,CAAA,IAChB,WAAA,UACA,EAAA,GAAK,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,OAAA,CAAQ,CAAA,IACvC,OAAA,CAAQ,CAAA;AAAA,KAmDC,gBAAA;EApaa;;;EAwavB,WAAA;EAxakD;;AAAC;EA6anD,UAAA;EAnYsB;;;EAwYtB,UAAA;EAxY0B;;;EA6Y1B,KAAA;EA7Y0D;AA6C5D;;EAqWE,UAAA;AAAA;AAAA,iBAGc,WAAA,IACd,IAAA,QAAY,OAAA,CAAQ,CAAA,GACpB,OAAA,EAAS,gBAAA,SACF,OAAA,CAAQ,CAAA;AAAA,iBA0DD,SAAA,qBAA8B,IAAA,MAAU,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA,GAAI,OAAA,eAAsB,IAAA,EAAM,CAAA,KAAM,OAAA,CAAQ,CAAA"}
|
|
@@ -99,14 +99,17 @@ function concatStacktracesIfRejected(promise) {
|
|
|
99
99
|
if (error instanceof Error) concatStacktraces(error, currentError);
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
async function wait(ms) {
|
|
102
|
+
async function wait(ms, options) {
|
|
103
103
|
if (!Number.isFinite(ms) || ms < 0) throw new HexclaveAssertionError(`wait() requires a non-negative integer number of milliseconds to wait. (found: ${ms}ms)`);
|
|
104
104
|
if (ms >= 2 ** 31) throw new HexclaveAssertionError("The maximum timeout for wait() is 2147483647ms (2**31 - 1). (found: ${ms}ms)");
|
|
105
105
|
return await traceSpan({
|
|
106
106
|
description: "wait(...)",
|
|
107
107
|
attributes: { "stack.wait.ms": ms }
|
|
108
108
|
}, async (span) => {
|
|
109
|
-
return await new Promise((resolve) =>
|
|
109
|
+
return await new Promise((resolve) => {
|
|
110
|
+
const timeout = setTimeout(resolve, ms);
|
|
111
|
+
if (options?.unref === true && typeof timeout === "object") timeout.unref();
|
|
112
|
+
});
|
|
110
113
|
});
|
|
111
114
|
}
|
|
112
115
|
async function waitUntil(date) {
|