@lotics/app-sdk 0.116.0 → 0.117.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/dist/index.js CHANGED
@@ -24945,6 +24945,14 @@ var booleanDefaultValueSchema = zod_default.boolean().nullish().describe(DEFAULT
24945
24945
  var dateDefaultValueSchema = zod_default.string().nullish().describe(`${DEFAULT_VALUE_DESC} A date string in the field's format.`);
24946
24946
  var selectDefaultValueSchema = zod_default.array(zod_default.string()).nullish().describe(`${DEFAULT_VALUE_DESC} Option key(s) \u2014 one for single-select.`);
24947
24947
  var memberDefaultValueSchema = zod_default.array(zod_default.string()).nullish().describe(`${DEFAULT_VALUE_DESC} Member ID(s) \u2014 one for single-select.`);
24948
+ var fieldCopySchema = zod_default.object({
24949
+ link_field_key: zod_default.string().describe("A one-row link field of this table: the row the value is copied from"),
24950
+ field_key: zod_default.string().describe("The field of the linked table whose value is copied"),
24951
+ options: zod_default.record(zod_default.string(), zod_default.string()).optional().describe("Where the source is a select: each of its option keys \u2192 this field's option key. An option it leaves unmapped is not copied.")
24952
+ }).strict();
24953
+ var defaultFromSchema = fieldCopySchema.nullish().describe(
24954
+ "Copied off the row `link_field_key` names when a record is made, and never re-read: the source changing later leaves the record alone. A value the write states wins; `default_value` fills what the copy leaves empty. null clears it."
24955
+ );
24948
24956
  function perRowRefusals(value) {
24949
24957
  const unitField = value.unit_field == null ? [] : [
24950
24958
  ...value.unit != null ? ['a figure reads its unit from "unit" or from "unit_field", never both'] : [],
@@ -24984,7 +24992,8 @@ var tableNumberFieldShape = tableFieldBaseSchema.extend({
24984
24992
  unit: zod_default.string().nullish().describe(`${UNIT_DESCRIPTION} null clears it. ${BEFORE_NOTATION}`),
24985
24993
  unit_field: zod_default.string().nullish().describe(`${UNIT_FIELD_DESCRIPTION} null clears it. ${BEFORE_NOTATION}`),
24986
24994
  currency_field: zod_default.string().nullish().describe(`${CURRENCY_FIELD_DESCRIPTION} null clears it. ${BEFORE_NOTATION}`),
24987
- default_value: numberDefaultValueSchema
24995
+ default_value: numberDefaultValueSchema,
24996
+ default_from: defaultFromSchema
24988
24997
  });
24989
24998
  var tableNumberFieldSchema = tableNumberFieldShape.superRefine(figureIssue([]));
24990
24999
  var tableNumberFieldInputSchema = tableNumberFieldShape.extend({ format: numberFormatSchema.optional().describe(BEFORE_NOTATION) }).superRefine(figureIssue([]));
@@ -24993,7 +25002,8 @@ var tableTextFieldSchema = tableFieldBaseSchema.extend({
24993
25002
  unique: zod_default.boolean().optional().describe("Unique values required"),
24994
25003
  // it's `optional` only for backward compatibility
24995
25004
  format: textFormatSchema.optional(),
24996
- default_value: textDefaultValueSchema
25005
+ default_value: textDefaultValueSchema,
25006
+ default_from: defaultFromSchema
24997
25007
  });
24998
25008
  var tableDateFieldSchema = tableFieldBaseSchema.extend({
24999
25009
  type: zod_default.literal("date"),
@@ -25004,11 +25014,13 @@ var tableDateFieldSchema = tableFieldBaseSchema.extend({
25004
25014
  ),
25005
25015
  // A derived date is read-only, so derive_from and default_value are mutually
25006
25016
  // exclusive — enforced in validateFieldDefaultValue.
25007
- default_value: dateDefaultValueSchema
25017
+ default_value: dateDefaultValueSchema,
25018
+ default_from: defaultFromSchema
25008
25019
  });
25009
25020
  var tableBooleanFieldSchema = tableFieldBaseSchema.extend({
25010
25021
  type: zod_default.literal("boolean"),
25011
- default_value: booleanDefaultValueSchema
25022
+ default_value: booleanDefaultValueSchema,
25023
+ default_from: defaultFromSchema
25012
25024
  });
25013
25025
  var tableSelectFieldOptionSchema = zod_default.object({
25014
25026
  key: zod_default.string(),
@@ -25020,12 +25032,14 @@ var tableSelectFieldSchema = tableFieldBaseSchema.extend({
25020
25032
  type: zod_default.literal("select"),
25021
25033
  options: zod_default.array(tableSelectFieldOptionSchema),
25022
25034
  multi: zod_default.boolean().optional().describe("Allow multiple selections"),
25023
- default_value: selectDefaultValueSchema
25035
+ default_value: selectDefaultValueSchema,
25036
+ default_from: defaultFromSchema
25024
25037
  });
25025
25038
  var tableSelectMemberFieldSchema = tableFieldBaseSchema.extend({
25026
25039
  type: zod_default.literal("select_member"),
25027
25040
  multi: zod_default.boolean().optional().describe("Allow multiple selections"),
25028
- default_value: memberDefaultValueSchema
25041
+ default_value: memberDefaultValueSchema,
25042
+ default_from: defaultFromSchema
25029
25043
  });
25030
25044
  var recordLinkItemSchema = zod_default.object({
25031
25045
  id: zod_default.string(),
@@ -25048,7 +25062,8 @@ var tableSelectRecordLinkFieldInputSchema = tableFieldBaseSchema.extend({
25048
25062
  ),
25049
25063
  cardinality: zod_default.enum(["one", "many"]).optional().describe(
25050
25064
  "How many linked records this field can hold. Default 'many' (multi-select). 'one' = single-select; this side holds exactly one linked record, paired or not. Two paired sides cannot both be 'one'."
25051
- )
25065
+ ),
25066
+ default_from: defaultFromSchema
25052
25067
  });
25053
25068
  var tableSelectRecordLinkFieldSchema = tableFieldBaseSchema.extend({
25054
25069
  type: zod_default.literal("select_record_link").describe("Field type for linking to records in another table"),
@@ -25064,7 +25079,8 @@ var tableSelectRecordLinkFieldSchema = tableFieldBaseSchema.extend({
25064
25079
  ),
25065
25080
  cardinality: zod_default.enum(["one", "many"]).optional().describe(
25066
25081
  "How many linked records this field can hold. Default 'many' (multi-select). 'one' = single-select; this side holds exactly one linked record, paired or not. Two paired sides cannot both be 'one'."
25067
- )
25082
+ ),
25083
+ default_from: defaultFromSchema
25068
25084
  });
25069
25085
  var tableRollupFieldSchema = tableFieldBaseSchema.extend({
25070
25086
  type: zod_default.literal("rollup").describe(
@@ -25271,35 +25287,41 @@ var tableFieldTypeConfigSchema = zod_default.discriminatedUnion("type", [
25271
25287
  zod_default.object({
25272
25288
  type: zod_default.literal("number"),
25273
25289
  notation: notationSchema.optional().describe(`${NOTATION_DESCRIPTION} Omitted, a decimal.`),
25274
- default_value: numberDefaultValueSchema
25290
+ default_value: numberDefaultValueSchema,
25291
+ default_from: defaultFromSchema
25275
25292
  }).superRefine(notationStatedIssue([])),
25276
25293
  zod_default.object({
25277
25294
  type: zod_default.literal("text"),
25278
25295
  unique: zod_default.boolean().optional().describe("Unique values required"),
25279
25296
  format: textFormatSchema.default("text"),
25280
- default_value: textDefaultValueSchema
25297
+ default_value: textDefaultValueSchema,
25298
+ default_from: defaultFromSchema
25281
25299
  }),
25282
25300
  zod_default.object({
25283
25301
  type: zod_default.literal("date"),
25284
25302
  format: dateFormatSchema.optional(),
25285
25303
  timezone: zod_default.string().optional().describe("IANA timezone"),
25286
25304
  derive_from: zod_default.enum(["created_at", "updated_at"]).nullable().optional().describe("Auto-populate from row system timestamp; field becomes read-only. Only valid for date/datetime formats. Pass null to clear and revert to a manual date field."),
25287
- default_value: dateDefaultValueSchema
25305
+ default_value: dateDefaultValueSchema,
25306
+ default_from: defaultFromSchema
25288
25307
  }),
25289
25308
  zod_default.object({
25290
25309
  type: zod_default.literal("boolean"),
25291
- default_value: booleanDefaultValueSchema
25310
+ default_value: booleanDefaultValueSchema,
25311
+ default_from: defaultFromSchema
25292
25312
  }),
25293
25313
  zod_default.object({
25294
25314
  type: zod_default.literal("select"),
25295
25315
  options: zod_default.array(tableSelectFieldOptionCreateSchema).superRefine(everyOptionMarked((option) => option.name)),
25296
25316
  multi: zod_default.boolean().optional().describe("Allow multiple selections"),
25297
- default_value: selectDefaultValueSchema
25317
+ default_value: selectDefaultValueSchema,
25318
+ default_from: defaultFromSchema
25298
25319
  }),
25299
25320
  zod_default.object({
25300
25321
  type: zod_default.literal("select_member"),
25301
25322
  multi: zod_default.boolean().optional().describe("Allow multiple selections"),
25302
- default_value: memberDefaultValueSchema
25323
+ default_value: memberDefaultValueSchema,
25324
+ default_from: defaultFromSchema
25303
25325
  }),
25304
25326
  zod_default.object({
25305
25327
  type: zod_default.literal("select_record_link"),
@@ -25317,7 +25339,8 @@ var tableFieldTypeConfigSchema = zod_default.discriminatedUnion("type", [
25317
25339
  ),
25318
25340
  cardinality: zod_default.enum(["one", "many"]).optional().describe(
25319
25341
  "How many linked records this field can hold. Default 'many' (multi-select). 'one' = single-select; this side holds exactly one linked record, paired or not. Two paired sides cannot both be 'one'."
25320
- )
25342
+ ),
25343
+ default_from: defaultFromSchema
25321
25344
  }),
25322
25345
  zod_default.object({
25323
25346
  type: zod_default.literal("rollup"),
@@ -30270,18 +30293,27 @@ var NEGATION_TO_POSITIVE = {
30270
30293
  is_not_current_member: "is_current_member",
30271
30294
  is_not_locked: "is_locked"
30272
30295
  };
30296
+ function walkFilter(filter2, visit) {
30297
+ if (!filter2) return;
30298
+ const walk = (node) => {
30299
+ if (node.node_type !== "group") return visit(node);
30300
+ if (Array.isArray(node.children)) for (const child of node.children) walk(child);
30301
+ };
30302
+ walk(filter2);
30303
+ }
30304
+ function filterTraversals(filter2) {
30305
+ const traversals = [];
30306
+ walkFilter(filter2, (node) => {
30307
+ if (node.node_type !== "traversal" || !Array.isArray(node.path)) return;
30308
+ traversals.push({
30309
+ path: node.path.filter((hop) => Boolean(hop)),
30310
+ fieldKey: node.condition?.field_key || void 0
30311
+ });
30312
+ });
30313
+ return traversals;
30314
+ }
30273
30315
  function filterTraversalPaths(filter2) {
30274
- const paths = [];
30275
- if (!filter2) return paths;
30276
- const visit = (node) => {
30277
- if (node.node_type === "group") {
30278
- if (Array.isArray(node.children)) for (const child of node.children) visit(child);
30279
- } else if (node.node_type === "traversal") {
30280
- if (Array.isArray(node.path)) paths.push(node.path.filter((hop) => Boolean(hop)));
30281
- }
30282
- };
30283
- visit(filter2);
30284
- return paths;
30316
+ return filterTraversals(filter2).map((traversal) => traversal.path);
30285
30317
  }
30286
30318
  var FileNamesUnavailableError = class extends Error {
30287
30319
  constructor(fieldKey, operator) {
@@ -66,7 +66,7 @@ export type ReportReadingHead = {
66
66
  /** The read behind it was cut: its figures stand, every total over them is left out (`null`). */
67
67
  truncated: boolean;
68
68
  };
69
- export type TableField = { key: string; name: string; description: string; type: "number"; format: "number" | "currency" | "percentage"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; currency?: string | null | undefined; unit?: string | null | undefined; unit_field?: string | null | undefined; currency_field?: string | null | undefined; default_value?: number | null | undefined; } | { key: string; name: string; description: string; type: "text"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; unique?: boolean | undefined; format?: "text" | "link" | "markdown" | undefined; default_value?: string | null | undefined; } | { key: string; name: string; description: string; type: "date"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; format?: "date" | "datetime" | "date_range" | "datetime_range" | undefined; timezone?: string | undefined; derive_from?: "created_at" | "updated_at" | undefined; default_value?: string | null | undefined; } | { key: string; name: string; description: string; type: "boolean"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; default_value?: boolean | null | undefined; } | { key: string; name: string; description: string; type: "select"; options: { key: string; name: string; color: "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "gray" | "zinc" | "neutral" | "stone"; mark?: { kind: string; name: string; } | undefined; }[]; confirm_before_update?: boolean | undefined; required?: boolean | undefined; multi?: boolean | undefined; default_value?: string[] | null | undefined; } | { key: string; name: string; description: string; type: "select_member"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; multi?: boolean | undefined; default_value?: string[] | null | undefined; } | { key: string; name: string; description: string; type: "select_record_link"; table_id: string; display_field_keys: string[]; confirm_before_update?: boolean | undefined; required?: boolean | undefined; display_field_widths?: Record<string, number> | undefined; paired_field_key?: string | undefined; cardinality?: "one" | "many" | undefined; } | { key: string; name: string; description: string; type: "rollup"; source_field_key: string; aggregate_option: { operation: "count"; field_key?: string | undefined; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique"; field_key: string; } | { operation: "min" | "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range"; field_key: string; } | { operation: "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "earliest" | "latest"; field_key: string; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "selected"; field_key: string; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "selected"; field_key: string; } | { operation: "empty" | "filled" | "percent_empty" | "percent_filled" | "selected"; field_key: string; } | { operation: "checked" | "unchecked" | "percent_checked" | "percent_unchecked"; field_key: string; } | { operation: "empty" | "filled" | "percent_empty" | "percent_filled" | "selected"; field_key: string; } | { operation: "min" | "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range" | "earliest" | "latest" | "checked" | "unchecked" | "percent_checked" | "percent_unchecked"; field_key: string; } | { operation: "min" | "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range" | "earliest" | "latest"; field_key: string; }; confirm_before_update?: boolean | undefined; required?: boolean | undefined; filter?: TableRecordFiltersGroupNode | undefined; aggregate_field_type?: "number" | "boolean" | "date" | "files" | "text" | "select" | "select_member" | "select_record_link" | "rollup" | "formula" | "lookup" | "button" | "autonumber" | undefined; aggregate_field_notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; aggregate_field_format?: string | undefined; aggregate_field_currency?: string | undefined; aggregate_field_unit?: string | undefined; aggregate_field_unit_field?: string | undefined; aggregate_field_currency_field?: string | undefined; } | { key: string; name: string; description: string; type: "lookup"; source_field_key: string; lookup_field_key: string; confirm_before_update?: boolean | undefined; required?: boolean | undefined; lookup_field_type?: "number" | "boolean" | "date" | "files" | "text" | "select" | "select_member" | "select_record_link" | "rollup" | "formula" | "lookup" | "button" | "autonumber" | undefined; lookup_field_notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; lookup_field_format?: string | undefined; lookup_field_currency?: string | undefined; lookup_field_unit?: string | undefined; lookup_field_options?: { key: string; name: string; color?: string | undefined; mark?: { kind: string; name: string; } | undefined; }[] | undefined; lookup_field_autonumber?: boolean | undefined; order_by?: { field_key: string; direction: "asc" | "desc"; } | undefined; } | { key: string; name: string; description: string; type: "files"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; } | { key: string; name: string; description: string; type: "formula"; formula: { expression: string; notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; link?: true | undefined; format?: "number" | "currency" | "percentage" | "link" | undefined; currency?: string | undefined; unit?: string | undefined; unit_field?: string | undefined; currency_field?: string | undefined; options?: { key: string; name: string; color: "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "gray" | "zinc" | "neutral" | "stone"; mark?: { kind: string; name: string; } | undefined; }[] | undefined; output_type?: "number" | "boolean" | "date" | "text" | "datetime" | "select" | undefined; volatile?: boolean | undefined; }; confirm_before_update?: boolean | undefined; required?: boolean | undefined; } | { key: string; name: string; description: string; type: "button"; text: string; confirm_before_update?: boolean | undefined; required?: boolean | undefined; workflow_id?: string | null | undefined; } | { key: string; name: string; description: string; type: "autonumber"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; prefix?: string | undefined; padding?: number | undefined; template?: string | undefined; };
69
+ export type TableField = { key: string; name: string; description: string; type: "number"; format: "number" | "currency" | "percentage"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; currency?: string | null | undefined; unit?: string | null | undefined; unit_field?: string | null | undefined; currency_field?: string | null | undefined; default_value?: number | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "text"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; unique?: boolean | undefined; format?: "text" | "link" | "markdown" | undefined; default_value?: string | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "date"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; format?: "date" | "datetime" | "date_range" | "datetime_range" | undefined; timezone?: string | undefined; derive_from?: "created_at" | "updated_at" | undefined; default_value?: string | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "boolean"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; default_value?: boolean | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "select"; options: { key: string; name: string; color: "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "gray" | "zinc" | "neutral" | "stone"; mark?: { kind: string; name: string; } | undefined; }[]; confirm_before_update?: boolean | undefined; required?: boolean | undefined; multi?: boolean | undefined; default_value?: string[] | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "select_member"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; multi?: boolean | undefined; default_value?: string[] | null | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "select_record_link"; table_id: string; display_field_keys: string[]; confirm_before_update?: boolean | undefined; required?: boolean | undefined; display_field_widths?: Record<string, number> | undefined; paired_field_key?: string | undefined; cardinality?: "one" | "many" | undefined; default_from?: { link_field_key: string; field_key: string; options?: Record<string, string> | undefined; } | null | undefined; } | { key: string; name: string; description: string; type: "rollup"; source_field_key: string; aggregate_option: { operation: "count"; field_key?: string | undefined; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique"; field_key: string; } | { operation: "min" | "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range"; field_key: string; } | { operation: "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "earliest" | "latest"; field_key: string; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "selected"; field_key: string; } | { operation: "unique" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "selected"; field_key: string; } | { operation: "empty" | "filled" | "percent_empty" | "percent_filled" | "selected"; field_key: string; } | { operation: "checked" | "unchecked" | "percent_checked" | "percent_unchecked"; field_key: string; } | { operation: "empty" | "filled" | "percent_empty" | "percent_filled" | "selected"; field_key: string; } | { operation: "min" | "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range" | "earliest" | "latest" | "checked" | "unchecked" | "percent_checked" | "percent_unchecked"; field_key: string; } | { operation: "min" | "unique" | "date_range" | "empty" | "filled" | "percent_empty" | "percent_filled" | "percent_unique" | "sum" | "avg" | "median" | "max" | "range" | "earliest" | "latest"; field_key: string; }; confirm_before_update?: boolean | undefined; required?: boolean | undefined; filter?: TableRecordFiltersGroupNode | undefined; aggregate_field_type?: "number" | "boolean" | "date" | "files" | "text" | "select" | "select_member" | "select_record_link" | "rollup" | "formula" | "lookup" | "button" | "autonumber" | undefined; aggregate_field_notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; aggregate_field_format?: string | undefined; aggregate_field_currency?: string | undefined; aggregate_field_unit?: string | undefined; aggregate_field_unit_field?: string | undefined; aggregate_field_currency_field?: string | undefined; } | { key: string; name: string; description: string; type: "lookup"; source_field_key: string; lookup_field_key: string; confirm_before_update?: boolean | undefined; required?: boolean | undefined; lookup_field_type?: "number" | "boolean" | "date" | "files" | "text" | "select" | "select_member" | "select_record_link" | "rollup" | "formula" | "lookup" | "button" | "autonumber" | undefined; lookup_field_notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; lookup_field_format?: string | undefined; lookup_field_currency?: string | undefined; lookup_field_unit?: string | undefined; lookup_field_options?: { key: string; name: string; color?: string | undefined; mark?: { kind: string; name: string; } | undefined; }[] | undefined; lookup_field_autonumber?: boolean | undefined; order_by?: { field_key: string; direction: "asc" | "desc"; } | undefined; } | { key: string; name: string; description: string; type: "files"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; } | { key: string; name: string; description: string; type: "formula"; formula: { expression: string; notation?: { style: "decimal"; } | { style: "currency"; currency: string | { per_row: string; }; } | { style: "unit"; unit: string | { per_row: string; }; } | undefined; link?: true | undefined; format?: "number" | "currency" | "percentage" | "link" | undefined; currency?: string | undefined; unit?: string | undefined; unit_field?: string | undefined; currency_field?: string | undefined; options?: { key: string; name: string; color: "red" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia" | "pink" | "rose" | "slate" | "gray" | "zinc" | "neutral" | "stone"; mark?: { kind: string; name: string; } | undefined; }[] | undefined; output_type?: "number" | "boolean" | "date" | "text" | "datetime" | "select" | undefined; volatile?: boolean | undefined; }; confirm_before_update?: boolean | undefined; required?: boolean | undefined; } | { key: string; name: string; description: string; type: "button"; text: string; confirm_before_update?: boolean | undefined; required?: boolean | undefined; workflow_id?: string | null | undefined; } | { key: string; name: string; description: string; type: "autonumber"; confirm_before_update?: boolean | undefined; required?: boolean | undefined; prefix?: string | undefined; padding?: number | undefined; template?: string | undefined; };
70
70
  export type TableRecordFilters = TableRecordFiltersConditionNode | TableRecordFiltersTraversalNode | TableRecordFiltersGroupNode;
71
71
  export type TableRecordFiltersConditionNode = { node_type: "condition"; field_key?: string | undefined; type?: string | undefined; operator: string; value?: unknown; unit_option?: string | undefined; };
72
72
  export type TableRecordFiltersGroupNode = { node_type: "group"; logic: "and" | "or"; children: (TableRecordFilters)[]; };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lotics/app-sdk",
3
- "version": "0.116.0",
4
- "description": "The SDK a Lotics custom-code app reads and writes through \u2014 typed hooks over the host bridge, cell readers, mount() and AppRouter",
3
+ "version": "0.117.0",
4
+ "description": "The SDK a Lotics custom-code app reads and writes through — typed hooks over the host bridge, cell readers, mount() and AppRouter",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {