@protobase/schema 0.28.4 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access/capability.d.ts +12 -0
- package/dist/access/capability.js +21 -1
- package/dist/access/index.d.ts +2 -2
- package/dist/access/resolve.d.ts +2 -0
- package/dist/access/roles.d.ts +11 -5
- package/dist/access/roles.js +14 -5
- package/dist/index.d.ts +2 -2
- package/dist/internal.d.ts +2 -1
- package/dist/internal.js +2 -1
- package/package.json +1 -1
|
@@ -8,6 +8,18 @@ export type CapabilityScope = 'own' | 'team';
|
|
|
8
8
|
* type parameter of `defineRoles` to make unknown names compile-time errors.
|
|
9
9
|
*/
|
|
10
10
|
export type Capability<Name extends string = string> = '*' | `${Name | '*'}.${CapabilityAction | '*'}` | `${Name | '*'}.${CapabilityAction | '*'}.${CapabilityScope | '*'}`;
|
|
11
|
+
/**
|
|
12
|
+
* A capability without wildcards, `<resource|area>.<action>[.<scope>]`: what `roles.has` and `roles.can` ask for, since a
|
|
13
|
+
* wildcard there would be granted by any one of the capabilities it stands for.
|
|
14
|
+
*/
|
|
15
|
+
export type ExactCapability<Name extends string = string> = `${Name}.${CapabilityAction}` | `${Name}.${CapabilityAction}.${CapabilityScope}`;
|
|
11
16
|
/** The rows a held capability grants: all of them, or those of a scope. */
|
|
12
17
|
export type Grant = 'all' | CapabilityScope;
|
|
18
|
+
export type ParsedCapability = {
|
|
19
|
+
name: string;
|
|
20
|
+
action: string;
|
|
21
|
+
scope?: string;
|
|
22
|
+
};
|
|
23
|
+
/** Parses and validates a capability string; throws on anything that is not one. */
|
|
24
|
+
export declare const parseCapability: (capability: string) => ParsedCapability;
|
|
13
25
|
//#endregion
|
|
@@ -14,6 +14,16 @@ const parseCapability = (capability) => {
|
|
|
14
14
|
scope: match[3]
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
+
/** Parses a capability that `has` or `can` asks for; throws on a wildcard, which would mean "any of", not "all of". */
|
|
18
|
+
const parseExactCapability = (capability) => {
|
|
19
|
+
const parsed = parseCapability(capability);
|
|
20
|
+
if ([
|
|
21
|
+
parsed.name,
|
|
22
|
+
parsed.action,
|
|
23
|
+
parsed.scope
|
|
24
|
+
].includes("*")) throw new Error(`"${capability}" has a wildcard, which any one capability it covers would grant: ask for each capability, or use roles.holds(user, "${capability}") to need all of them`);
|
|
25
|
+
return parsed;
|
|
26
|
+
};
|
|
17
27
|
const matches = (pattern, value) => pattern === "*" || pattern === value;
|
|
18
28
|
/**
|
|
19
29
|
* The scopes with which `held` grants `wanted`'s resource and action. An unscoped (or `.*`)
|
|
@@ -26,5 +36,15 @@ const grantsOf = (held, wanted) => {
|
|
|
26
36
|
if (have.scope === void 0 || have.scope === "*") return ["all"];
|
|
27
37
|
return [have.scope];
|
|
28
38
|
};
|
|
39
|
+
const covers = (held, wanted) => held === "*" || held === wanted;
|
|
40
|
+
/**
|
|
41
|
+
* Whether `held` grants all of `wanted`: each of its parts is `*` or the same, and a wanted capability without a scope
|
|
42
|
+
* needs one without a scope (or `.*`). So `*` and `vms.*` hold `vms.*`, while `vms.read` or `*.read` do not.
|
|
43
|
+
*/
|
|
44
|
+
const holdsAll = (held, wanted) => {
|
|
45
|
+
const have = parseCapability(held);
|
|
46
|
+
const want = parseCapability(wanted);
|
|
47
|
+
return covers(have.name, want.name) && covers(have.action, want.action) && (have.scope === void 0 || covers(have.scope, want.scope));
|
|
48
|
+
};
|
|
29
49
|
//#endregion
|
|
30
|
-
export { grantsOf, parseCapability };
|
|
50
|
+
export { grantsOf, holdsAll, parseCapability, parseExactCapability };
|
package/dist/access/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AccessAction, AccessContext, AccessFn, AccessResult, AccessUser, FieldAccess, FieldRule } from "./types.js";
|
|
2
|
-
import { Capability, CapabilityAction, CapabilityScope, Grant } from "./capability.js";
|
|
2
|
+
import { Capability, CapabilityAction, CapabilityScope, ExactCapability, Grant } from "./capability.js";
|
|
3
3
|
import { CapabilityLimit, HeldCapability, RoleEntry, anonymousRole } from "./role-entry.js";
|
|
4
4
|
import { Rule, rule } from "./rule.js";
|
|
5
5
|
import { RoleLimit, Roles, RolesOptions, defineRoles } from "./roles.js";
|
|
6
6
|
import { pickView } from "./pick-view.js";
|
|
7
7
|
import { AccessSource, ResolveOptions, ResolvedAccess, RowFilterOperation, accessWarnings, checkRecord, fieldsUsedBy, resolveAccess } from "./resolve.js";
|
|
8
8
|
import { restrictModel } from "./restrict.js";
|
|
9
|
-
export { type AccessAction, type AccessContext, type AccessFn, type AccessResult, type AccessSource, type AccessUser, type Capability, type CapabilityAction, type CapabilityLimit, type CapabilityScope, type FieldAccess, type FieldRule, type Grant, type HeldCapability, type ResolveOptions, type ResolvedAccess, type RoleEntry, type RoleLimit, type Roles, type RolesOptions, type RowFilterOperation, type Rule, accessWarnings, anonymousRole, checkRecord, defineRoles, fieldsUsedBy, pickView, resolveAccess, restrictModel, rule };
|
|
9
|
+
export { type AccessAction, type AccessContext, type AccessFn, type AccessResult, type AccessSource, type AccessUser, type Capability, type CapabilityAction, type CapabilityLimit, type CapabilityScope, type ExactCapability, type FieldAccess, type FieldRule, type Grant, type HeldCapability, type ResolveOptions, type ResolvedAccess, type RoleEntry, type RoleLimit, type Roles, type RolesOptions, type RowFilterOperation, type Rule, accessWarnings, anonymousRole, checkRecord, defineRoles, fieldsUsedBy, pickView, resolveAccess, restrictModel, rule };
|
package/dist/access/resolve.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export type ResolveOptions = {
|
|
|
28
28
|
fields?: (user: AccessUser, capability: string) => readonly string[] | undefined;
|
|
29
29
|
/** The roles by name, to tell whether the project has an `anonymous` role. */
|
|
30
30
|
definitions?: Record<string, unknown>;
|
|
31
|
+
/** Whether the user's roles grant all of a capability, as `defineRoles` makes it; the gate of API functions. */
|
|
32
|
+
holds?: (user: AccessUser, capability: any) => boolean;
|
|
31
33
|
};
|
|
32
34
|
/**
|
|
33
35
|
* Overrides what an operation without a rule does. Without `roles` the default is `allow`,
|
package/dist/access/roles.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AccessUser } from "./types.js";
|
|
2
|
-
import { Capability, Grant } from "./capability.js";
|
|
2
|
+
import { Capability, ExactCapability, Grant } from "./capability.js";
|
|
3
3
|
import { HeldCapability, RoleEntry } from "./role-entry.js";
|
|
4
4
|
import { Rule } from "./rule.js";
|
|
5
5
|
//#region src/access/roles.d.ts
|
|
@@ -41,8 +41,14 @@ export declare const defineRoles: <Name extends string = string>(definitions: Re
|
|
|
41
41
|
grants: (user: AccessUser, capability: string) => Set<Grant>;
|
|
42
42
|
/** The capabilities limited to fields or rows, by role. */
|
|
43
43
|
limits: RoleLimit[];
|
|
44
|
-
/** Whether the user holds the capability at all, in any scope. For areas and field rules. */
|
|
45
|
-
has: (user: AccessUser, capability:
|
|
44
|
+
/** Whether the user holds the capability at all, in any scope. For areas and field rules. Refuses a wildcard. */
|
|
45
|
+
has: (user: AccessUser, capability: ExactCapability<Name>) => boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Whether one of the user's roles grants all of the capability, wildcards included, in every row and field: `*`
|
|
48
|
+
* and `vms.*` hold `vms.*`, while `vms.read`, `vms.update.own` or a limited `vms.update` do not. For gates such as
|
|
49
|
+
* API functions.
|
|
50
|
+
*/
|
|
51
|
+
holds: (user: AccessUser, capability: Capability<Name>) => boolean;
|
|
46
52
|
/**
|
|
47
53
|
* The fields the user's roles allow for a capability: the union of their lists, or `undefined` when a role grants
|
|
48
54
|
* it without a list (every field) or none grants it.
|
|
@@ -50,9 +56,9 @@ export declare const defineRoles: <Name extends string = string>(definitions: Re
|
|
|
50
56
|
fields: (user: AccessUser, capability: string) => readonly string[] | undefined;
|
|
51
57
|
/**
|
|
52
58
|
* A rule that allows when the user's roles grant the capability: `true` for an unscoped
|
|
53
|
-
* grant, a row filter for `.own`, `.team` and a limit's filter, `false` otherwise.
|
|
59
|
+
* grant, a row filter for `.own`, `.team` and a limit's filter, `false` otherwise. Refuses a wildcard.
|
|
54
60
|
*/
|
|
55
|
-
can: (capability:
|
|
61
|
+
can: (capability: ExactCapability<Name>) => Rule;
|
|
56
62
|
/** A rule that allows when the user has any of the roles. */
|
|
57
63
|
is: (...roles: string[]) => Rule;
|
|
58
64
|
};
|
package/dist/access/roles.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { andResults, orResults, where } from "./combine.js";
|
|
2
|
-
import { grantsOf, parseCapability } from "./capability.js";
|
|
2
|
+
import { grantsOf, holdsAll, parseCapability, parseExactCapability } from "./capability.js";
|
|
3
3
|
import { heldCapabilities } from "./role-entry.js";
|
|
4
4
|
import { rule } from "./rule.js";
|
|
5
5
|
//#region src/access/roles.ts
|
|
@@ -53,8 +53,17 @@ const defineRoles = (definitions, options = {}) => {
|
|
|
53
53
|
role,
|
|
54
54
|
...held
|
|
55
55
|
}))),
|
|
56
|
-
/** Whether the user holds the capability at all, in any scope. For areas and field rules. */
|
|
57
|
-
has: (user, capability) =>
|
|
56
|
+
/** Whether the user holds the capability at all, in any scope. For areas and field rules. Refuses a wildcard. */
|
|
57
|
+
has: (user, capability) => {
|
|
58
|
+
parseExactCapability(capability);
|
|
59
|
+
return grants(user, capability).size > 0;
|
|
60
|
+
},
|
|
61
|
+
/**
|
|
62
|
+
* Whether one of the user's roles grants all of the capability, wildcards included, in every row and field: `*`
|
|
63
|
+
* and `vms.*` hold `vms.*`, while `vms.read`, `vms.update.own` or a limited `vms.update` do not. For gates such as
|
|
64
|
+
* API functions.
|
|
65
|
+
*/
|
|
66
|
+
holds: (user, capability) => heldBy(user).some((held) => !held.fields && !held.filter && holdsAll(held.capability, capability)),
|
|
58
67
|
/**
|
|
59
68
|
* The fields the user's roles allow for a capability: the union of their lists, or `undefined` when a role grants
|
|
60
69
|
* it without a list (every field) or none grants it.
|
|
@@ -67,10 +76,10 @@ const defineRoles = (definitions, options = {}) => {
|
|
|
67
76
|
},
|
|
68
77
|
/**
|
|
69
78
|
* A rule that allows when the user's roles grant the capability: `true` for an unscoped
|
|
70
|
-
* grant, a row filter for `.own`, `.team` and a limit's filter, `false` otherwise.
|
|
79
|
+
* grant, a row filter for `.own`, `.team` and a limit's filter, `false` otherwise. Refuses a wildcard.
|
|
71
80
|
*/
|
|
72
81
|
can: (capability) => {
|
|
73
|
-
const wanted =
|
|
82
|
+
const wanted = parseExactCapability(capability);
|
|
74
83
|
return rule(async (ctx) => {
|
|
75
84
|
const matching = heldBy(ctx.user ?? {}).flatMap((held) => grantsOf(held.capability, wanted).map((grant) => ({
|
|
76
85
|
grant,
|
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ import { printFilter } from "./filter/print.js";
|
|
|
34
34
|
import { OrderByCheck, OrderByParse, checkOrderBy, parseOrderBy, printOrderBy } from "./filter/order-by.js";
|
|
35
35
|
import { createWhere, where } from "./filter/where.js";
|
|
36
36
|
import "./filter/index.js";
|
|
37
|
-
import { Capability, CapabilityAction, CapabilityScope, Grant } from "./access/capability.js";
|
|
37
|
+
import { Capability, CapabilityAction, CapabilityScope, ExactCapability, Grant } from "./access/capability.js";
|
|
38
38
|
import { CapabilityLimit, HeldCapability, RoleEntry, anonymousRole } from "./access/role-entry.js";
|
|
39
39
|
import { Rule, rule } from "./access/rule.js";
|
|
40
40
|
import { RoleLimit, Roles, RolesOptions, defineRoles } from "./access/roles.js";
|
|
@@ -43,4 +43,4 @@ import { AccessSource, ResolveOptions, ResolvedAccess, RowFilterOperation, acces
|
|
|
43
43
|
import { restrictModel } from "./access/restrict.js";
|
|
44
44
|
import "./access/index.js";
|
|
45
45
|
import { AssistantAction, AssistantActionRequest, AssistantCardPart, AssistantDiff, AssistantEvent, AssistantMessage, AssistantMessageRequest, AssistantPart, AssistantState, AssistantStep, AssistantStepState, AssistantTablePart, AssistantTextPart, AssistantTone, AssistantWidgetPart } from "./assistant/protocol.js";
|
|
46
|
-
export { type Access, type AccessAction, type AccessContext, type AccessFn, type AccessResult, type AccessSource, type AccessUser, type ActionInputKind, type ActionInputModel, type ActionModel, type ActionRun, type AnyField, type AppAddress, type AssistantAction, type AssistantActionRequest, type AssistantCardPart, type AssistantDiff, type AssistantEvent, type AssistantMessage, type AssistantMessageRequest, type AssistantPart, type AssistantState, type AssistantStep, type AssistantStepState, type AssistantTablePart, type AssistantTextPart, type AssistantTone, type AssistantWidgetPart, type BadgeShape, type BottomBarItemModel, type BottomBarModel, type BottomBarNames, type BottomBarSource, type CalendarView, type Capability, type CapabilityAction, type CapabilityLimit, type CapabilityScope, type CardFavoriteModel, type CardPhotosModel, type ChartGranularity, type ChartInput, type ChartModel, type ChartRange, type CheckResult, type CheckedFilter, type CommentsSectionModel, type CompareOp, type ComponentRef, type Constraint, type CreateModel, type CreatedOptions, type CustomSectionModel, type DatePreset, type DeletedOptions, type DurationLiteral, type DurationUnit, type EvaluateOptions, type EventActor, type EventContext, type EventHelpers, type EventMatch, type EventModel, type EventOperation, type EventSpec, type ExportModel, type Field, type FieldAccess, type FieldFormat, type FieldMeta, type FieldModel, type FieldPath, type FieldRefValue, type FieldRefs, type FieldRule, type FieldType, type FieldTypeDef, type FieldView, type FieldViewModel, type FieldViews, type FieldWidgetModel, type FieldsInput, type FileField, type FileFieldModel, type FileOptions, type FileProcessor, type FileProcessorInput, type FilterError, type FilterErrorCode, type FilterExpr, type FilterLayout, type FilterLimits, type FilterOf, type FilterParse, type FilterValue, type FilterWidgetModel, type FormAddress, type FormInput, type FormModel, type GalleryModel, type Grant, type GroupChartInput, type GroupChartModel, type GroupItemModel, type GroupModel, type HeldCapability, type HelpWhen, type HistorySectionModel, type ImageFormat, type ImageVariant, type ImageVariantOptions, type InferRecord, type Issue, type JsonValue, type KeyOf, type KeyRefs, type KeyType, type KeyValue, type LayoutItemModel, type ListColumn, type ListDisplayModel, type ListDragModel, type ListModel, type ListQuery, type Literal, type MapSectionModel, type MapView, type NamedListModel, type NavModel, type NavRecentModel, type NowValue, type OrderByCheck, type OrderByItem, type OrderByParse, type ParentAccess, type ParentModel, type PeriodChartInput, type PeriodChartModel, type PositionAfterModel, type RecordChartModel, type RecordChartRange, type RecordKey, type RecordMode, type RecordOf, type RecordWhen, type Ref, type Refs, type RelatedColumnModel, type RelatedModel, type RelatedPresentation, type RelationField, type ResolveOptions, type ResolvedAccess, type ResourceBuilder, type ResourceModel, type RoleEntry, type RoleLimit, type Roles, type RolesOptions, type Rollup, type RollupCount, type RollupFn, type RollupSource, type RollupValue, type RowFilterOperation, type Rule, type SaveFeedback, type SaveSearchModel, type SearchMatch, type SearchRef, type SearchRefs, type SearchResultModel, type SearchesOfModel, type SectionModel, type SectionPresentation, type ShowWhen, type SignInAddress, type SignInPromptModel, type SignInStep, type SignInViewModel, type SortSpec, type Span, type StatusTone, type TabItemModel, type TabModel, type TimelineView, type UndeletedOptions, type UpdatedOptions, type UserMenuItemModel, type UserMenuModel, type UserMenuSource, type Validator, type ViewBuilder, type ViewModel, type ViewProps, accessWarnings, addressWords, anonymousRole, appPath, bottomBar, bottomBarErrors, checkFilter, checkOrderBy, checkRecord, createWhere, defineRoles, enumLabel, evaluateFilter, f, fieldRef, fieldsUsedBy, fitsKeyType, formPath, formRoute, imageFormats, isRecordCondition, keyTypes, layout as l, maxBottomBarItems, parseFilter, parseOrderBy, pickView, printFilter, printOrderBy, readAppPath, readFormAddress, readSignInAddress, resolveAccess, resource, restrictModel, rule, signInParams, signInPath, signInRoute, signInSteps, userMenu, view, where };
|
|
46
|
+
export { type Access, type AccessAction, type AccessContext, type AccessFn, type AccessResult, type AccessSource, type AccessUser, type ActionInputKind, type ActionInputModel, type ActionModel, type ActionRun, type AnyField, type AppAddress, type AssistantAction, type AssistantActionRequest, type AssistantCardPart, type AssistantDiff, type AssistantEvent, type AssistantMessage, type AssistantMessageRequest, type AssistantPart, type AssistantState, type AssistantStep, type AssistantStepState, type AssistantTablePart, type AssistantTextPart, type AssistantTone, type AssistantWidgetPart, type BadgeShape, type BottomBarItemModel, type BottomBarModel, type BottomBarNames, type BottomBarSource, type CalendarView, type Capability, type CapabilityAction, type CapabilityLimit, type CapabilityScope, type CardFavoriteModel, type CardPhotosModel, type ChartGranularity, type ChartInput, type ChartModel, type ChartRange, type CheckResult, type CheckedFilter, type CommentsSectionModel, type CompareOp, type ComponentRef, type Constraint, type CreateModel, type CreatedOptions, type CustomSectionModel, type DatePreset, type DeletedOptions, type DurationLiteral, type DurationUnit, type EvaluateOptions, type EventActor, type EventContext, type EventHelpers, type EventMatch, type EventModel, type EventOperation, type EventSpec, type ExactCapability, type ExportModel, type Field, type FieldAccess, type FieldFormat, type FieldMeta, type FieldModel, type FieldPath, type FieldRefValue, type FieldRefs, type FieldRule, type FieldType, type FieldTypeDef, type FieldView, type FieldViewModel, type FieldViews, type FieldWidgetModel, type FieldsInput, type FileField, type FileFieldModel, type FileOptions, type FileProcessor, type FileProcessorInput, type FilterError, type FilterErrorCode, type FilterExpr, type FilterLayout, type FilterLimits, type FilterOf, type FilterParse, type FilterValue, type FilterWidgetModel, type FormAddress, type FormInput, type FormModel, type GalleryModel, type Grant, type GroupChartInput, type GroupChartModel, type GroupItemModel, type GroupModel, type HeldCapability, type HelpWhen, type HistorySectionModel, type ImageFormat, type ImageVariant, type ImageVariantOptions, type InferRecord, type Issue, type JsonValue, type KeyOf, type KeyRefs, type KeyType, type KeyValue, type LayoutItemModel, type ListColumn, type ListDisplayModel, type ListDragModel, type ListModel, type ListQuery, type Literal, type MapSectionModel, type MapView, type NamedListModel, type NavModel, type NavRecentModel, type NowValue, type OrderByCheck, type OrderByItem, type OrderByParse, type ParentAccess, type ParentModel, type PeriodChartInput, type PeriodChartModel, type PositionAfterModel, type RecordChartModel, type RecordChartRange, type RecordKey, type RecordMode, type RecordOf, type RecordWhen, type Ref, type Refs, type RelatedColumnModel, type RelatedModel, type RelatedPresentation, type RelationField, type ResolveOptions, type ResolvedAccess, type ResourceBuilder, type ResourceModel, type RoleEntry, type RoleLimit, type Roles, type RolesOptions, type Rollup, type RollupCount, type RollupFn, type RollupSource, type RollupValue, type RowFilterOperation, type Rule, type SaveFeedback, type SaveSearchModel, type SearchMatch, type SearchRef, type SearchRefs, type SearchResultModel, type SearchesOfModel, type SectionModel, type SectionPresentation, type ShowWhen, type SignInAddress, type SignInPromptModel, type SignInStep, type SignInViewModel, type SortSpec, type Span, type StatusTone, type TabItemModel, type TabModel, type TimelineView, type UndeletedOptions, type UpdatedOptions, type UserMenuItemModel, type UserMenuModel, type UserMenuSource, type Validator, type ViewBuilder, type ViewModel, type ViewProps, accessWarnings, addressWords, anonymousRole, appPath, bottomBar, bottomBarErrors, checkFilter, checkOrderBy, checkRecord, createWhere, defineRoles, enumLabel, evaluateFilter, f, fieldRef, fieldsUsedBy, fitsKeyType, formPath, formRoute, imageFormats, isRecordCondition, keyTypes, layout as l, maxBottomBarItems, parseFilter, parseOrderBy, pickView, printFilter, printOrderBy, readAppPath, readFormAddress, readSignInAddress, resolveAccess, resource, restrictModel, rule, signInParams, signInPath, signInRoute, signInSteps, userMenu, view, where };
|
package/dist/internal.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { boardErrors, cardPhotoLimit, datesErrors, displayFields, tableDisplay }
|
|
|
6
6
|
import { fieldRefsIn, isFieldRef, markFieldRefs, unmarkFieldRefs } from "./field-ref.js";
|
|
7
7
|
import { bottomBarFor } from "./bottom-bar.js";
|
|
8
8
|
import { decodeKey, encodeKey } from "./keys.js";
|
|
9
|
+
import { parseCapability } from "./access/capability.js";
|
|
9
10
|
import { checkEventFilter } from "./events/event-models.js";
|
|
10
11
|
import { webhookResources } from "./webhooks/webhook-resources.js";
|
|
11
12
|
import { PropShapes, RefShape, pruneByShape, shapes } from "./ref-shape.js";
|
|
@@ -24,4 +25,4 @@ import { layoutItems } from "./layout-items.js";
|
|
|
24
25
|
import { viewOfList } from "./named-list.js";
|
|
25
26
|
import { Locale, isLocale, locales, pickLocale } from "./locale.js";
|
|
26
27
|
import { apiOriginMeta } from "./api-origin-meta.js";
|
|
27
|
-
export { type AddressCheck, type FormulaNode, type Locale, type PluginHost, type PluginRequirement, type PropShapes, type RefShape, type SearchTerm, actionConditionError, actionInputErrors, addressErrors, addressPlaceholders, apiOriginMeta, appHrefError, applyAssistantEvent, boardErrors, bottomBarFor, cardPhotoLimit, chartFields, checkEventFilter, checkedAccept, checkedProvider, datesErrors, decodeKey, defaultRecentLimit, displayFields, emptyAssistantState, encodeKey, fieldRefsIn, fillAddress, hrefField, hrefPlaceholders, inRange, isFieldRef, isGroupChart, isLocale, layoutItems, leavesApp, linkActionError, locales, markFieldRefs, matchedSearchField, matchesSearch, navRecentErrors, parseFormula, parseSize, pickLocale, pluginProblem, promptError, promptFields, pruneByShape, readEventStream, redactSecrets, renderPrompt, searchTerms, shapes, shownInputs, statusTones, tableDisplay, termMatches, unmarkFieldRefs, updateSetErrors, updateValues, viewOfList, webhookResources };
|
|
28
|
+
export { type AddressCheck, type FormulaNode, type Locale, type PluginHost, type PluginRequirement, type PropShapes, type RefShape, type SearchTerm, actionConditionError, actionInputErrors, addressErrors, addressPlaceholders, apiOriginMeta, appHrefError, applyAssistantEvent, boardErrors, bottomBarFor, cardPhotoLimit, chartFields, checkEventFilter, checkedAccept, checkedProvider, datesErrors, decodeKey, defaultRecentLimit, displayFields, emptyAssistantState, encodeKey, fieldRefsIn, fillAddress, hrefField, hrefPlaceholders, inRange, isFieldRef, isGroupChart, isLocale, layoutItems, leavesApp, linkActionError, locales, markFieldRefs, matchedSearchField, matchesSearch, navRecentErrors, parseCapability, parseFormula, parseSize, pickLocale, pluginProblem, promptError, promptFields, pruneByShape, readEventStream, redactSecrets, renderPrompt, searchTerms, shapes, shownInputs, statusTones, tableDisplay, termMatches, unmarkFieldRefs, updateSetErrors, updateValues, viewOfList, webhookResources };
|
package/dist/internal.js
CHANGED
|
@@ -3,6 +3,7 @@ import { promptError, promptFields, renderPrompt } from "./ai-prompt.js";
|
|
|
3
3
|
import { parseFormula } from "./computed/formula.js";
|
|
4
4
|
import { checkedAccept, checkedProvider, parseSize } from "./files/file-options.js";
|
|
5
5
|
import { matchedSearchField, matchesSearch, searchTerms, termMatches } from "./search-match.js";
|
|
6
|
+
import { parseCapability } from "./access/capability.js";
|
|
6
7
|
import { checkEventFilter } from "./events/event-models.js";
|
|
7
8
|
import { layoutItems } from "./layout-items.js";
|
|
8
9
|
import { viewOfList } from "./named-list.js";
|
|
@@ -24,4 +25,4 @@ import { applyAssistantEvent, emptyAssistantState } from "./assistant/apply-even
|
|
|
24
25
|
import { readEventStream } from "./assistant/event-stream.js";
|
|
25
26
|
import { isLocale, locales, pickLocale } from "./locale.js";
|
|
26
27
|
import { apiOriginMeta } from "./api-origin-meta.js";
|
|
27
|
-
export { actionConditionError, actionInputErrors, addressErrors, addressPlaceholders, apiOriginMeta, appHrefError, applyAssistantEvent, boardErrors, bottomBarFor, cardPhotoLimit, chartFields, checkEventFilter, checkedAccept, checkedProvider, datesErrors, decodeKey, defaultRecentLimit, displayFields, emptyAssistantState, encodeKey, fieldRefsIn, fillAddress, hrefField, hrefPlaceholders, inRange, isFieldRef, isGroupChart, isLocale, layoutItems, leavesApp, linkActionError, locales, markFieldRefs, matchedSearchField, matchesSearch, navRecentErrors, parseFormula, parseSize, pickLocale, pluginProblem, promptError, promptFields, pruneByShape, readEventStream, redactSecrets, renderPrompt, searchTerms, shapes, shownInputs, statusTones, tableDisplay, termMatches, unmarkFieldRefs, updateSetErrors, updateValues, viewOfList, webhookResources };
|
|
28
|
+
export { actionConditionError, actionInputErrors, addressErrors, addressPlaceholders, apiOriginMeta, appHrefError, applyAssistantEvent, boardErrors, bottomBarFor, cardPhotoLimit, chartFields, checkEventFilter, checkedAccept, checkedProvider, datesErrors, decodeKey, defaultRecentLimit, displayFields, emptyAssistantState, encodeKey, fieldRefsIn, fillAddress, hrefField, hrefPlaceholders, inRange, isFieldRef, isGroupChart, isLocale, layoutItems, leavesApp, linkActionError, locales, markFieldRefs, matchedSearchField, matchesSearch, navRecentErrors, parseCapability, parseFormula, parseSize, pickLocale, pluginProblem, promptError, promptFields, pruneByShape, readEventStream, redactSecrets, renderPrompt, searchTerms, shapes, shownInputs, statusTones, tableDisplay, termMatches, unmarkFieldRefs, updateSetErrors, updateValues, viewOfList, webhookResources };
|