@raytio/types 8.0.0 → 8.2.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.
- package/README.md +215 -51
- package/dist/authz.d.ts +4 -0
- package/dist/authz.js +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/raytio.d.ts +80 -28
- package/dist/schema.d.ts +211 -38
- package/dist/subscription.d.ts +1 -0
- package/dist/tenant.d.ts +6 -0
- package/dist/tenant.js +2 -0
- package/dist/theme.d.ts +4 -0
- package/dist/verification.d.ts +9 -8
- package/dist/wizard.d.ts +37 -2
- package/package.json +2 -2
- package/src/authz.ts +13 -0
- package/src/index.ts +2 -0
- package/src/raytio.ts +98 -35
- package/src/schema.ts +261 -39
- package/src/subscription.ts +1 -0
- package/src/tenant.ts +7 -0
- package/src/theme.ts +4 -0
- package/src/verification.ts +9 -7
- package/src/wizard.ts +44 -2
package/dist/raytio.d.ts
CHANGED
|
@@ -20,6 +20,14 @@ export type GId = StringWithIdentity<"GId">;
|
|
|
20
20
|
export type UId = StringWithIdentity<"UId">;
|
|
21
21
|
/** An `a_id` is the ID of an {@link AA} */
|
|
22
22
|
export type AId = StringWithIdentity<"AId">;
|
|
23
|
+
/** An `ao_id` is the ID of an {@link AAObject} */
|
|
24
|
+
export type AOId = StringWithIdentity<"AOId">;
|
|
25
|
+
/** A `aain_id` is the ID of an Instance Node */
|
|
26
|
+
export type AINId = StringWithIdentity<"AINId">;
|
|
27
|
+
/** A `aaink_id` is the ID of an Instance Node Key */
|
|
28
|
+
export type AINKId = StringWithIdentity<"AINKId">;
|
|
29
|
+
/** A `tnt_id` is the ID of a Tenant */
|
|
30
|
+
export type TNTId = StringWithIdentity<"TNTId">;
|
|
23
31
|
/**
|
|
24
32
|
* An `o_id` is the ID of an {@link Organization}
|
|
25
33
|
*
|
|
@@ -65,8 +73,12 @@ export type PTId = StringWithIdentity<"PTId">;
|
|
|
65
73
|
export type MId = StringWithIdentity<"MId">;
|
|
66
74
|
/** A `gpm_id` is the ID of a Verification Type */
|
|
67
75
|
export type GPMId = StringWithIdentity<"GPMId">;
|
|
76
|
+
/** A `b_id` is the ID of a badge definition */
|
|
77
|
+
export type BId = StringWithIdentity<"BId">;
|
|
78
|
+
/** a `GroupName` is the unique name of a group, often used instead of {@link GId} */
|
|
79
|
+
export type GroupName = StringWithIdentity<"GroupName">;
|
|
68
80
|
export type DataTypes = "string" | "number" | "boolean" | "object" | "integer" | "array" | "null";
|
|
69
|
-
export type SubmissionStatus = "Submitted" | "Processing" | "Rejected" | "Expired" | "Completed" | "DataChanged" | "Received" | "Accepted";
|
|
81
|
+
export type SubmissionStatus = "Submitted" | "Processing" | "Rejected" | "Expired" | "Completed" | "DataChanged" | "Received" | "Pending" | "Accepted";
|
|
70
82
|
/**
|
|
71
83
|
* Every object in the new database has these fields. In the
|
|
72
84
|
* interest of type-safety, the `id` should be one of the
|
|
@@ -143,10 +155,16 @@ export type Lookup = {
|
|
|
143
155
|
label?: string | number;
|
|
144
156
|
children?: Lookup[];
|
|
145
157
|
description?: string;
|
|
158
|
+
/** Icon source in format `icon:{AntDesignIconName}` (e.g., `icon:CameraOutlined`) */
|
|
159
|
+
image_src?: string;
|
|
146
160
|
/** used in AkahuDynamicSection only */
|
|
147
161
|
requires_2FA?: boolean;
|
|
162
|
+
/** Sort order within a lookup set. NULL = unordered. */
|
|
163
|
+
display_order?: number;
|
|
164
|
+
/** Group heading for dropdown lists (e.g., "APAC", "EMEA"). NULL = ungrouped. */
|
|
165
|
+
lookup_group?: string;
|
|
148
166
|
};
|
|
149
|
-
export type AATag = "type:client_only" | "type:share_with_new_user" |
|
|
167
|
+
export type AATag = "type:client_only" | "type:share_with_new_user" | "Merchant";
|
|
150
168
|
export type AA = {
|
|
151
169
|
a_id: AId;
|
|
152
170
|
name: string;
|
|
@@ -166,15 +184,19 @@ export type AA = {
|
|
|
166
184
|
font?: CustomFonts;
|
|
167
185
|
colors?: Colors;
|
|
168
186
|
};
|
|
169
|
-
/**
|
|
187
|
+
/** @deprecated use merchant_id instead */
|
|
170
188
|
service_provider_n_id?: NId;
|
|
171
189
|
/** the id of the associated organization */
|
|
172
190
|
org_id?: OId;
|
|
173
191
|
customer_id: CId;
|
|
192
|
+
/** the id of the associated merchant (replaces service_provider_n_id) */
|
|
193
|
+
merchant_id?: MId;
|
|
174
194
|
/** configuration for the submission rules */
|
|
175
195
|
ruleset?: unknown;
|
|
176
196
|
/** if true, only specific email addresses can submit the form */
|
|
177
197
|
auth_list_enabled?: boolean;
|
|
198
|
+
/** Bot protection challenge type. If set, users must complete a challenge before accessing the wizard. */
|
|
199
|
+
client_challenge_type?: "turnstile" | null;
|
|
178
200
|
/** Currently Unused Attributes */
|
|
179
201
|
start_date?: Date;
|
|
180
202
|
end_date?: Date;
|
|
@@ -186,6 +208,24 @@ export type AA = {
|
|
|
186
208
|
/** @internal fetched separately (see #1511) */
|
|
187
209
|
transitions?: unknown[];
|
|
188
210
|
};
|
|
211
|
+
export type AAObject = CommonFields<AOId> & {
|
|
212
|
+
aa_id: AId;
|
|
213
|
+
aai_id: IId;
|
|
214
|
+
properties: Json;
|
|
215
|
+
labels: string[];
|
|
216
|
+
};
|
|
217
|
+
export type InstanceNode = CommonFields<AINId> & {
|
|
218
|
+
aa_id: AId;
|
|
219
|
+
n_id: NId;
|
|
220
|
+
field_list: string[];
|
|
221
|
+
};
|
|
222
|
+
export type InstanceNodeKey = CommonFields<AINKId> & {
|
|
223
|
+
aa_id: AId;
|
|
224
|
+
aai_id: IId;
|
|
225
|
+
aain_id: AINId;
|
|
226
|
+
field_name: string;
|
|
227
|
+
key_data: string;
|
|
228
|
+
};
|
|
189
229
|
export type InstanceWithoutData = CommonFields<IId, {
|
|
190
230
|
message?: string;
|
|
191
231
|
}> & {
|
|
@@ -202,10 +242,10 @@ export type InstanceWithoutData = CommonFields<IId, {
|
|
|
202
242
|
thread: string;
|
|
203
243
|
/** The status of a submission */
|
|
204
244
|
state: SubmissionStatus;
|
|
205
|
-
/** Hash of the
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
|
|
245
|
+
/** Hash of the Merchant ID */
|
|
246
|
+
sub_merchant_hash: string;
|
|
247
|
+
/** Merchant ID (replaces service_provider_n_id) */
|
|
248
|
+
merchant_id: MId;
|
|
209
249
|
/** added by the client once it calculates the score */
|
|
210
250
|
score?: unknown;
|
|
211
251
|
/** Previous status of the shared information */
|
|
@@ -254,39 +294,37 @@ export type Validation = {
|
|
|
254
294
|
};
|
|
255
295
|
};
|
|
256
296
|
};
|
|
257
|
-
export type WebhookStatus = "
|
|
258
|
-
export type Webhook = {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
/** ISO Date */
|
|
266
|
-
date_created: string;
|
|
267
|
-
/** ISO Date */
|
|
268
|
-
date_updated: string;
|
|
297
|
+
export type WebhookStatus = "PENDING" | "SUBSCRIBED" | "UNSUBSCRIBED" | "UNSUBSCRIBE_FAILED" | "ERROR" | "ARCHIVED";
|
|
298
|
+
export type Webhook = CommonFields<WId> & {
|
|
299
|
+
aa_id: AId;
|
|
300
|
+
webhook_processing_rules: unknown;
|
|
301
|
+
provider_subscription_credentials: unknown;
|
|
302
|
+
provider_signature_check_enabled: boolean;
|
|
303
|
+
provider_signature_credentials: unknown;
|
|
304
|
+
webhook_filter_source: string | null;
|
|
269
305
|
webhook_filter_schema: {
|
|
270
306
|
operator: string;
|
|
271
307
|
field_value: string;
|
|
272
308
|
field_name: string;
|
|
273
|
-
};
|
|
309
|
+
} | null;
|
|
274
310
|
webhook_action: {
|
|
275
311
|
webhook_action_type: string;
|
|
276
|
-
}[];
|
|
277
|
-
webhook_filter_source: string;
|
|
312
|
+
}[] | null;
|
|
278
313
|
webhook_field_mapping_schema: {
|
|
279
314
|
[key: string]: string;
|
|
280
|
-
};
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
provider_signature_check_enabled: boolean;
|
|
284
|
-
provider_signature_credentials: unknown;
|
|
315
|
+
} | null;
|
|
316
|
+
provider_webhook_id: string;
|
|
317
|
+
provider_webhook_subscription_id: string | null;
|
|
285
318
|
subscribe_log?: {
|
|
286
319
|
date: string;
|
|
287
320
|
response_status_code: number;
|
|
288
321
|
response_payload: Json;
|
|
289
|
-
}[];
|
|
322
|
+
}[] | null;
|
|
323
|
+
status: WebhookStatus;
|
|
324
|
+
metadata: unknown;
|
|
325
|
+
wi_id?: WId;
|
|
326
|
+
date_created?: string;
|
|
327
|
+
date_updated?: string;
|
|
290
328
|
};
|
|
291
329
|
/**
|
|
292
330
|
* Link used for an Access Application, including all additional information
|
|
@@ -301,3 +339,17 @@ export type Link = {
|
|
|
301
339
|
details?: AA;
|
|
302
340
|
isDefault?: boolean;
|
|
303
341
|
};
|
|
342
|
+
export type Permission = {
|
|
343
|
+
id: NId;
|
|
344
|
+
n_id: NId;
|
|
345
|
+
labels: string[];
|
|
346
|
+
properties: {
|
|
347
|
+
permissions: string;
|
|
348
|
+
provider_name: string;
|
|
349
|
+
};
|
|
350
|
+
user_permission_type: string | null;
|
|
351
|
+
group_permission_type: "VIEWS" | "EDITS" | null;
|
|
352
|
+
group_name: "ALL" | "Public" | `sharing|${UId}|${UId}` | GId;
|
|
353
|
+
is_owner: boolean;
|
|
354
|
+
permission_id: PId;
|
|
355
|
+
};
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { AA, DataTypes, SchemaName, Urn } from "./raytio";
|
|
2
|
-
import type { Organization } from "./orgs";
|
|
1
|
+
import type { AA, CommonFields, DataTypes, Json, SchemaName, Urn } from "./raytio";
|
|
3
2
|
import type { WizardConfig } from "./wizard";
|
|
4
3
|
/** should be renamed since this applies to ConditionallyVerifiable */
|
|
5
4
|
export type ConditionallyRequired = {
|
|
@@ -8,8 +7,15 @@ export type ConditionallyRequired = {
|
|
|
8
7
|
[fieldName: string]: (string | number | boolean)[];
|
|
9
8
|
};
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
export type
|
|
10
|
+
/** Schema-level conditional tags, evaluated at runtime based on form values */
|
|
11
|
+
export type ConditionalTags = {
|
|
12
|
+
tags: string[];
|
|
13
|
+
if: {
|
|
14
|
+
[fieldName: string]: (string | number | boolean)[];
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type SchemaFieldTag = "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | "display:mask" | `display:replace:('${string}', '${string}')` | "display:terms_conditions" | `display:main_media:${string}` | "display:content-block" | "display:info" | "display:warning" | "display:error" | "date_component:day" | "date_component:month" | "date_component:year" | "action:allow_copy" | "action:allow_unreplace" | "action:allow_password_compromise_check" | "action:client_upload" | "action:hash" | "action:require_webauthn" | `action:generate_pepper:` | `action:timeout:${number}` | `action:server-search:${string}` | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required";
|
|
18
|
+
export type SchemaTag = "action:experimental_pass_object_store_id" | "action:verify" | `action:display_qr_code:${string}:${string}` | `action:display_global_idv_app_qr_code:${string}` | "default_camera:rear" | "default_camera:front" | `oauth2_component:name:${string}` | `oauth2_component:redirect_url:${string}` | `time:${string}:${number}` | `link_to:${string}:${string}` | "display:default_view:edit" | "support_challenge" | "type:merchant" | "type:service_offer" | "type:marketplace" | "type:client_only" | "type:globally_unique_field" | "type:application_object";
|
|
13
19
|
export type SchemaField = {
|
|
14
20
|
/** @deprecated don't use, it's inconsistent */
|
|
15
21
|
$id?: string;
|
|
@@ -30,9 +36,9 @@ export type SchemaField = {
|
|
|
30
36
|
step?: number;
|
|
31
37
|
/** if true, the user must have encryption enabled to save this data, see #1324 */
|
|
32
38
|
encrypt_require?: boolean;
|
|
33
|
-
/**
|
|
39
|
+
/** for string inputs, the maximum character length. Also used to determine textarea rendering (maxLength > 30 renders a textarea) */
|
|
34
40
|
maxLength?: number;
|
|
35
|
-
/**
|
|
41
|
+
/** for string inputs, the minimum character length. Not currently used anywhere in the client */
|
|
36
42
|
minLength?: number;
|
|
37
43
|
/** the default value */
|
|
38
44
|
default?: unknown;
|
|
@@ -85,12 +91,38 @@ export type SchemaField = {
|
|
|
85
91
|
content?: string;
|
|
86
92
|
/** URL to a JSON file in the `Lookup` format */
|
|
87
93
|
lookup?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Transforms the lookup response into the expected `{ key, value }[]` format.
|
|
96
|
+
* Use when the API returns data in a different structure.
|
|
97
|
+
*
|
|
98
|
+
* Simple format (extract array from path, use values as both key and value):
|
|
99
|
+
* ```json
|
|
100
|
+
* "lookupTransform": "[0].scopes"
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
103
|
+
* Object format (specify key/value mapping):
|
|
104
|
+
* ```json
|
|
105
|
+
* "lookupTransform": {
|
|
106
|
+
* "path": "[0].items",
|
|
107
|
+
* "key": "id",
|
|
108
|
+
* "value": "name"
|
|
109
|
+
* }
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
lookupTransform?: string | {
|
|
113
|
+
/** JSON path to extract the array (e.g., "[0].scopes", "data.items") */
|
|
114
|
+
path: string;
|
|
115
|
+
/** Property name to use as the lookup key (if omitted, uses the value itself) */
|
|
116
|
+
key?: string;
|
|
117
|
+
/** Property name to use as the lookup value (if omitted, uses the value itself) */
|
|
118
|
+
value?: string;
|
|
119
|
+
};
|
|
88
120
|
/** @internal the client adds this - it's the fieldName. */
|
|
89
121
|
$prop: string;
|
|
90
122
|
priority?: number;
|
|
91
123
|
/** @internal if supplied, it's the existing field values. Added by the client */
|
|
92
124
|
subObjectRef?: unknown[];
|
|
93
|
-
/**
|
|
125
|
+
/** @deprecated Markdown is now rendered by default for all descriptions. This property is no longer needed. */
|
|
94
126
|
description_decorator?: "md";
|
|
95
127
|
/** if a `pattern` is specified, this is the error message */
|
|
96
128
|
patternMessage?: string;
|
|
@@ -125,12 +157,24 @@ export type SchemaField = {
|
|
|
125
157
|
};
|
|
126
158
|
/** the only difference between the client & server's definition is that the client adds `$prop` */
|
|
127
159
|
export type ServerSchemaField = Omit<SchemaField, "$prop">;
|
|
160
|
+
/** An i18n entry from the fnd_i18n_entries API endpoint */
|
|
161
|
+
export type FndI18nEntry = CommonFields<never> & {
|
|
162
|
+
i18n_key: string;
|
|
163
|
+
category: string;
|
|
164
|
+
translations: {
|
|
165
|
+
[locale: string]: {
|
|
166
|
+
title: string;
|
|
167
|
+
description?: string;
|
|
168
|
+
title_plural?: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
128
172
|
/** not exported. Attributes that are identical in both client schema & server schema */
|
|
129
173
|
export type CommonSchemaAttributes = {
|
|
130
174
|
/** these fields will always exist on schema */
|
|
131
175
|
title: string;
|
|
132
176
|
description: string;
|
|
133
|
-
/**
|
|
177
|
+
/** @deprecated Markdown is now rendered by default for all descriptions. This property is no longer needed. */
|
|
134
178
|
description_decorator?: "md";
|
|
135
179
|
schema_type?: SchemaType;
|
|
136
180
|
/** plural version of the title */
|
|
@@ -138,9 +182,17 @@ export type CommonSchemaAttributes = {
|
|
|
138
182
|
/**
|
|
139
183
|
* the group that a schema belongs to, such as "passports". This is useful for
|
|
140
184
|
* forms that accept different types of similar documents.
|
|
185
|
+
* Can be a single group (string) or multiple groups (string[]) to allow a schema
|
|
186
|
+
* to appear in multiple lists.
|
|
141
187
|
*/
|
|
142
|
-
schema_group?: string;
|
|
188
|
+
schema_group?: string | string[];
|
|
189
|
+
/** Additional search terms to help users find schemas (e.g., ["license", "passport", "drivers license"]) */
|
|
190
|
+
search_terms?: string[];
|
|
143
191
|
tags?: SchemaTag[];
|
|
192
|
+
/** if specified, suggests this onboarding scenario after creating a PO of this schema type */
|
|
193
|
+
suggest_post_create?: SchemaName;
|
|
194
|
+
/** Array of 2-character country codes that this schema is available for */
|
|
195
|
+
schema_country_codes?: string[];
|
|
144
196
|
i18n?: {
|
|
145
197
|
[locale: string]: {
|
|
146
198
|
$schema: {
|
|
@@ -244,38 +296,121 @@ export type CommonSchemaAttributes = {
|
|
|
244
296
|
* view or deafult view
|
|
245
297
|
*/
|
|
246
298
|
compact_table?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Pre-defined filter presets provided by the schema author.
|
|
301
|
+
* These appear as "Default filters" in the admin table UI and
|
|
302
|
+
* cannot be deleted by users (unlike user-saved filters).
|
|
303
|
+
*
|
|
304
|
+
* Each token's `propertyKey` must match a key in `properties`.
|
|
305
|
+
* Valid operators: `=`, `!=`, `:`, `!:`, `>`, `<`, `>=`, `<=`
|
|
306
|
+
*/
|
|
307
|
+
filters?: {
|
|
308
|
+
/** Display name for the filter preset */
|
|
309
|
+
name: string;
|
|
310
|
+
/** How tokens are combined: "and" = all must match, "or" = any must match */
|
|
311
|
+
operation: "and" | "or";
|
|
312
|
+
/** Filter conditions */
|
|
313
|
+
tokens: {
|
|
314
|
+
/** Must match a key in schema `properties` */
|
|
315
|
+
propertyKey: string;
|
|
316
|
+
/** Comparison operator */
|
|
317
|
+
operator: string;
|
|
318
|
+
/** Value to compare against */
|
|
319
|
+
value: string;
|
|
320
|
+
}[];
|
|
321
|
+
}[];
|
|
322
|
+
/** Kanban board configuration for admin dashboard */
|
|
323
|
+
kanban?: {
|
|
324
|
+
/** Field that determines which column a card belongs to */
|
|
325
|
+
column_field?: string;
|
|
326
|
+
/** Field displayed as the card title */
|
|
327
|
+
title_field?: string;
|
|
328
|
+
/** Additional fields displayed on each card */
|
|
329
|
+
card_fields?: string[];
|
|
330
|
+
};
|
|
247
331
|
};
|
|
248
332
|
/** only the schema used for the onboarding wizard have this property */
|
|
249
333
|
onboard_properties?: {
|
|
250
|
-
/** Profile Objects that should be created */
|
|
251
|
-
profile_objects?: {
|
|
252
|
-
schema_name: SchemaName;
|
|
253
|
-
properties: Record<string, unknown>;
|
|
254
|
-
}[];
|
|
255
|
-
/** Relationships that should be created */
|
|
256
|
-
relationships?: {
|
|
257
|
-
/** will normally look like `"{n_id:profile_objects[0]}"` */
|
|
258
|
-
from: string;
|
|
259
|
-
to: string;
|
|
260
|
-
type: string;
|
|
261
|
-
properties?: Record<string, string>;
|
|
262
|
-
}[];
|
|
263
334
|
/**
|
|
264
|
-
*
|
|
265
|
-
*
|
|
335
|
+
* High-level actions for complex workflows.
|
|
336
|
+
* create_organization: Single object for creating one organization
|
|
337
|
+
* create_access_application_link: Array for creating multiple links
|
|
266
338
|
*/
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
}
|
|
278
|
-
|
|
339
|
+
actions?: {
|
|
340
|
+
/** Creates a single organization. Use this instead of legacy 'organizations' array. */
|
|
341
|
+
create_organization?: Array<{
|
|
342
|
+
properties: Json;
|
|
343
|
+
store_as?: string;
|
|
344
|
+
}>;
|
|
345
|
+
/** Creates access application links (can be multiple) */
|
|
346
|
+
create_access_application_link?: Array<{
|
|
347
|
+
properties: Record<string, unknown>;
|
|
348
|
+
store_as?: string;
|
|
349
|
+
}>;
|
|
350
|
+
/** Other actions can be defined as needed */
|
|
351
|
+
[key: string]: any;
|
|
352
|
+
};
|
|
353
|
+
/**
|
|
354
|
+
* Execution order for entity creation. If not specified, uses default order.
|
|
355
|
+
* Examples: ["actions.create_organization", "db.v1.xrm_merchants", "db.v1.dsm_nodes"]
|
|
356
|
+
*/
|
|
357
|
+
execution_order?: string[];
|
|
358
|
+
/**
|
|
359
|
+
* Generic API endpoints organized by namespace and version.
|
|
360
|
+
*
|
|
361
|
+
* Structure: `{namespace}.{version}.{endpoint_name}` → `POST /{namespace}/{version}/{endpoint_name}`
|
|
362
|
+
*
|
|
363
|
+
* Examples:
|
|
364
|
+
* - `db.v1.xrm_merchants` → `POST /db/v1/xrm_merchants`
|
|
365
|
+
* - `db.v2.something` → `POST /db/v2/something`
|
|
366
|
+
* - `persist.v2.endpoint` → `POST /persist/v2/endpoint`
|
|
367
|
+
*
|
|
368
|
+
* Any namespace can be used. The `db` namespace is shown below as the primary example.
|
|
369
|
+
*/
|
|
370
|
+
db?: {
|
|
371
|
+
v1?: {
|
|
372
|
+
/** Profile objects - POST /db/v1/dsm_nodes */
|
|
373
|
+
dsm_nodes?: Array<{
|
|
374
|
+
labels?: string[];
|
|
375
|
+
properties: Record<string, unknown>;
|
|
376
|
+
schema_name?: SchemaName;
|
|
377
|
+
}>;
|
|
378
|
+
/** Merchants - POST /db/v1/xrm_merchants */
|
|
379
|
+
xrm_merchants?: Array<Record<string, unknown>>;
|
|
380
|
+
/** Access Applications - POST /db/v1/dsm_access_applications */
|
|
381
|
+
dsm_access_applications?: Array<Omit<AA, "org_id" | "a_id"> & {
|
|
382
|
+
org_id?: string;
|
|
383
|
+
links?: {
|
|
384
|
+
description: string;
|
|
385
|
+
wizardConfig: Omit<WizardConfig, "a_id">;
|
|
386
|
+
}[];
|
|
387
|
+
}>;
|
|
388
|
+
/** Relationships - POST /db/v1/dsm_node_relationships */
|
|
389
|
+
dsm_node_relationships?: Array<{
|
|
390
|
+
from: string;
|
|
391
|
+
to: string;
|
|
392
|
+
type: string;
|
|
393
|
+
properties?: Record<string, unknown>;
|
|
394
|
+
}>;
|
|
395
|
+
/** Extensible for any other endpoint */
|
|
396
|
+
[endpoint: string]: Array<Record<string, unknown>> | undefined;
|
|
397
|
+
};
|
|
398
|
+
v2?: {
|
|
399
|
+
[endpoint: string]: Array<Record<string, unknown>> | undefined;
|
|
400
|
+
};
|
|
401
|
+
[version: string]: {
|
|
402
|
+
[endpoint: string]: Array<Record<string, unknown>> | undefined;
|
|
403
|
+
} | undefined;
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Additional namespaces can be added following the same structure as `db`.
|
|
407
|
+
* Example: persist?: { v2?: { [endpoint: string]: Array<Record<string, unknown>> } }
|
|
408
|
+
*/
|
|
409
|
+
[namespace: string]: {
|
|
410
|
+
[version: string]: {
|
|
411
|
+
[endpoint: string]: Array<Record<string, unknown>> | undefined;
|
|
412
|
+
} | undefined;
|
|
413
|
+
} | object | string[] | string | undefined;
|
|
279
414
|
/** The relative path in the client to redirect to once finished. May include variables */
|
|
280
415
|
return_to?: string;
|
|
281
416
|
};
|
|
@@ -289,6 +424,11 @@ export type Schema = CommonSchemaAttributes & {
|
|
|
289
424
|
name: SchemaName;
|
|
290
425
|
/** added by client */
|
|
291
426
|
type?: DataTypes;
|
|
427
|
+
/**
|
|
428
|
+
* Schema-level conditional tags, pre-processed for runtime evaluation.
|
|
429
|
+
* When form values match the `if` condition, the tags are added to the schema.
|
|
430
|
+
*/
|
|
431
|
+
conditionalTags?: ConditionalTags[];
|
|
292
432
|
/** the localized title of the `schema_group`. added by the client */
|
|
293
433
|
group_title?: string;
|
|
294
434
|
/** originally `string[]`, the client modifies this */
|
|
@@ -310,13 +450,44 @@ export type Schema = CommonSchemaAttributes & {
|
|
|
310
450
|
* In this case, this attribute defines what database table we need to use
|
|
311
451
|
* to fetch the corresponding data, and which field is the primary_key of that
|
|
312
452
|
* table (e.g. `id`, `o_id` etc.)
|
|
453
|
+
*
|
|
454
|
+
* The `path` property specifies the complete API path to use. If not provided,
|
|
455
|
+
* defaults to `/db/v1/{table}`. When `path` is specified, it is used directly
|
|
456
|
+
* without appending the table name.
|
|
457
|
+
* Examples:
|
|
458
|
+
* - `path: "/db/v1/rpc/my_function"` for RPC endpoints
|
|
459
|
+
* - `path: "/api/v2/custom_endpoint"` for custom API paths
|
|
460
|
+
*
|
|
461
|
+
* The optional `select` parameter supports PostgREST select syntax for nested
|
|
462
|
+
* objects/arrays. For example:
|
|
463
|
+
* `select: "id,item_id,gpm_items(id,item_key)"`
|
|
464
|
+
* This will return nested objects in the response.
|
|
313
465
|
*/
|
|
314
466
|
database?: {
|
|
315
|
-
table
|
|
467
|
+
/** Table name (required when path is not specified to construct `/db/v1/{table}`) */
|
|
468
|
+
table?: string;
|
|
316
469
|
primary_key: string;
|
|
470
|
+
/** Complete API path. If specified, used directly instead of `/db/v1/{table}` */
|
|
471
|
+
path?: string;
|
|
472
|
+
select?: string;
|
|
473
|
+
/** Schema to redirect to after creating a record (for insert schemas) */
|
|
474
|
+
return_to?: SchemaName;
|
|
475
|
+
/** HTTP method override. If specified, uses this instead of the default (POST for create, PATCH for edit, DELETE for delete) */
|
|
476
|
+
method?: "POST" | "PATCH" | "DELETE";
|
|
477
|
+
/**
|
|
478
|
+
* PostgREST query parameters to include in requests.
|
|
479
|
+
* Supports variable substitution: {$context.organizationId}, {$context.userId}, {$context.tenantId}
|
|
480
|
+
* Example: "org_id=eq.{$context.organizationId}&active=eq.true"
|
|
481
|
+
* If this contains "select=", it takes precedence over the `select` property.
|
|
482
|
+
*/
|
|
483
|
+
query_parameters?: string;
|
|
317
484
|
};
|
|
318
485
|
/** the client adds this after processing the i18n property */
|
|
319
486
|
groupNames?: Record<string, string>;
|
|
487
|
+
/** specifies the order in which groups should be displayed */
|
|
488
|
+
groups?: {
|
|
489
|
+
order?: string[];
|
|
490
|
+
};
|
|
320
491
|
/** added by the client to inform downstream components which locale from schema.i18n was used */
|
|
321
492
|
clientLocale?: string;
|
|
322
493
|
/** added by the client, copied from {@link WrappedSchema} */
|
|
@@ -332,7 +503,7 @@ export type Schema = CommonSchemaAttributes & {
|
|
|
332
503
|
isSpSchema?: boolean;
|
|
333
504
|
};
|
|
334
505
|
/** Type Classification of a Schema returned by API */
|
|
335
|
-
export type SchemaType = "ss" | "ps" | "us";
|
|
506
|
+
export type SchemaType = "ss" | "ps" | "us" | "ms";
|
|
336
507
|
/** This is what's returned by the API */
|
|
337
508
|
export type WrappedSchema = {
|
|
338
509
|
active: true;
|
|
@@ -346,6 +517,8 @@ export type WrappedSchema = {
|
|
|
346
517
|
schema_version: string;
|
|
347
518
|
/** whether the \`version\` is the latest version */
|
|
348
519
|
version_current: boolean;
|
|
520
|
+
/** Country codes that this schema is available for */
|
|
521
|
+
schema_country_codes?: string[];
|
|
349
522
|
schema: CommonSchemaAttributes & {
|
|
350
523
|
/** @deprecated don't use this */
|
|
351
524
|
$id?: string;
|
package/dist/subscription.d.ts
CHANGED
|
@@ -47,6 +47,7 @@ export type Subscription = CommonFields<SId> & {
|
|
|
47
47
|
billing_cycle_hour: number | null;
|
|
48
48
|
billing_cycle_minute: number | null;
|
|
49
49
|
billing_cycle_second: number | null;
|
|
50
|
+
subscription_timezone_offset_minutes: number | null;
|
|
50
51
|
subscription_name: string;
|
|
51
52
|
subscription_name_i18n: string | null;
|
|
52
53
|
current_billing_period_start: string;
|
package/dist/tenant.d.ts
ADDED
package/dist/tenant.js
ADDED
package/dist/theme.d.ts
CHANGED
|
@@ -22,6 +22,10 @@ export type Colors = {
|
|
|
22
22
|
feelingHugged: string;
|
|
23
23
|
silverShell: string;
|
|
24
24
|
blank: string;
|
|
25
|
+
altColoursBgLight: string;
|
|
26
|
+
altColoursBgMedium: string;
|
|
27
|
+
elevatedSurface: string;
|
|
28
|
+
fillNeutral: string;
|
|
25
29
|
};
|
|
26
30
|
export type CustomFonts = {
|
|
27
31
|
header?: string;
|
package/dist/verification.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CommonFields, GPMId, Json, NId, ProfileObject, SchemaName } from "./raytio";
|
|
1
|
+
import type { CommonFields, GPMId, Json, MId, NId, ProfileObject, SchemaName } from "./raytio";
|
|
2
2
|
export declare enum SafeHarbourCode {
|
|
3
3
|
/** “a match has been made on each the Full Name, Address and Date of Birth” */
|
|
4
4
|
M1 = "M1",
|
|
@@ -39,13 +39,14 @@ export type VerificationPayload<WithValue extends boolean> = {
|
|
|
39
39
|
source_n_id?: NId;
|
|
40
40
|
/** like `source_n_id` */
|
|
41
41
|
source_hashed_n_id?: NId;
|
|
42
|
+
hashed_source_n_id?: NId;
|
|
42
43
|
type?: null;
|
|
43
44
|
v_id: string;
|
|
44
45
|
verification_type_id: GPMId;
|
|
45
46
|
verification_date: string;
|
|
46
|
-
verifier_id?:
|
|
47
|
-
verifier_source_id?:
|
|
48
|
-
verifier_service_id?:
|
|
47
|
+
verifier_id?: MId;
|
|
48
|
+
verifier_source_id?: MId;
|
|
49
|
+
verifier_service_id?: MId;
|
|
49
50
|
verifier_div: string;
|
|
50
51
|
} & (WithValue extends true ? {
|
|
51
52
|
value: string | number;
|
|
@@ -98,11 +99,11 @@ export declare enum POVerification {
|
|
|
98
99
|
Expired = 70006,
|
|
99
100
|
Loading = 70007
|
|
100
101
|
}
|
|
101
|
-
/** These
|
|
102
|
+
/** These IDs point to merchants (formerly service provider profile objects) */
|
|
102
103
|
export type VerificationProvider = {
|
|
103
|
-
verifierNId?:
|
|
104
|
-
dataSourceNId?:
|
|
105
|
-
serviceProviderNId?:
|
|
104
|
+
verifierNId?: MId;
|
|
105
|
+
dataSourceNId?: MId;
|
|
106
|
+
serviceProviderNId?: MId;
|
|
106
107
|
verificationTypeId?: GPMId;
|
|
107
108
|
/** the date which the verification was verified on, or last re-verified on */
|
|
108
109
|
date?: Date;
|
package/dist/wizard.d.ts
CHANGED
|
@@ -6,19 +6,48 @@ export type WizardPage = {
|
|
|
6
6
|
name?: string | symbol;
|
|
7
7
|
filter: "oneOf" | "anyOf";
|
|
8
8
|
schemas: SchemaName[];
|
|
9
|
+
/**
|
|
10
|
+
* Page type: 'form' for data collection, 'message' for info/error display
|
|
11
|
+
* @default "form"
|
|
12
|
+
*/
|
|
13
|
+
page_type?: "form" | "message";
|
|
14
|
+
/**
|
|
15
|
+
* Content to display on message pages. Supports markdown if page_content_decorator is "md"
|
|
16
|
+
*/
|
|
17
|
+
page_content?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Set to "md" to render page_content as markdown
|
|
20
|
+
*/
|
|
21
|
+
page_content_decorator?: "md";
|
|
22
|
+
/**
|
|
23
|
+
* If true, user cannot proceed past this page (error/blocking behavior)
|
|
24
|
+
* If false, user can continue to next page (informational)
|
|
25
|
+
* @default false
|
|
26
|
+
*/
|
|
27
|
+
is_terminal?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Label for the exit button on terminal pages
|
|
30
|
+
* @default "Home"
|
|
31
|
+
*/
|
|
32
|
+
terminal_button_label?: string;
|
|
33
|
+
/**
|
|
34
|
+
* URL to redirect to when exit button is clicked on terminal pages
|
|
35
|
+
* @default "/" or return_to from WizardConfig
|
|
36
|
+
*/
|
|
37
|
+
terminal_button_url?: string;
|
|
9
38
|
/** the fallback description, if there isn't one for the specific situation */
|
|
10
39
|
description?: string;
|
|
11
40
|
description_select?: string;
|
|
12
41
|
description_create?: string;
|
|
13
42
|
description_update?: string;
|
|
14
|
-
/**
|
|
43
|
+
/** @deprecated - AO/PO classification is now done per-object using schema tags (type:application_object) instead of page-level profile property */
|
|
15
44
|
profile?: boolean;
|
|
16
45
|
/** if true this page can be skipped. The PageResult wil be undefined */
|
|
17
46
|
optional?: boolean;
|
|
18
47
|
/** if true mulitple POs can be shared */
|
|
19
48
|
multiple?: boolean;
|
|
20
49
|
/** see #463 */
|
|
21
|
-
|
|
50
|
+
merchant_link?: boolean;
|
|
22
51
|
/** custom text to display on the Create New button */
|
|
23
52
|
create_new_text?: string;
|
|
24
53
|
/** a URL to a preset for configuing NestedSchemaSelect. {@link DeepConfig} */
|
|
@@ -100,6 +129,12 @@ export type WizardConfig = {
|
|
|
100
129
|
* process will be used
|
|
101
130
|
*/
|
|
102
131
|
quick_onboard?: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* If true, users must explicitly accept privacy terms during quick onboard.
|
|
134
|
+
* If false, the form auto-submits without user intervention.
|
|
135
|
+
* @default true
|
|
136
|
+
*/
|
|
137
|
+
quick_onboard_require_consent?: boolean;
|
|
103
138
|
/** the loading message to show next to the spinner after the review screen */
|
|
104
139
|
sharing_data_message?: string;
|
|
105
140
|
/** If this value is true, the form will display some data sharing information before the form (WizardPreview) */
|