@aglyn/tenant-feature-instance 1.0.0-beta.270 → 1.0.0-beta.272

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aglyn/tenant-feature-instance",
3
- "version": "1.0.0-beta.270",
3
+ "version": "1.0.0-beta.272",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://aglyn.com",
6
6
  "repository": {
@@ -25,12 +25,12 @@
25
25
  "./package.json": "./package.json"
26
26
  },
27
27
  "dependencies": {
28
- "@aglyn/aglyn": "1.0.0-beta.270",
29
- "@aglyn/shared-data-enums": "1.0.0-beta.270",
30
- "@aglyn/shared-ui-jsx": "1.0.0-beta.270",
31
- "@aglyn/shared-util-email": "1.0.0-beta.270",
32
- "@aglyn/shared-util-http": "1.0.0-beta.270",
33
- "@aglyn/shared-util-timestamp": "1.0.0-beta.270",
28
+ "@aglyn/aglyn": "1.0.0-beta.272",
29
+ "@aglyn/shared-data-enums": "1.0.0-beta.272",
30
+ "@aglyn/shared-ui-jsx": "1.0.0-beta.272",
31
+ "@aglyn/shared-util-email": "1.0.0-beta.272",
32
+ "@aglyn/shared-util-http": "1.0.0-beta.272",
33
+ "@aglyn/shared-util-timestamp": "1.0.0-beta.272",
34
34
  "@swc/helpers": "0.5.23",
35
35
  "lodash-es": "^4.18.1"
36
36
  },
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { type OrgFeatureFlags } from '@aglyn/aglyn';
18
+ /**
19
+ * A plan-gated feature as a console surface draws it: on, locked with the
20
+ * plan that unlocks it, or not yet known.
21
+ */
22
+ export interface PlanFeatureLock {
23
+ /** The plan doc has settled. NEVER refuse before this is true. */
24
+ ready: boolean;
25
+ /** The plan (or a purchased add-on, or an override) includes the feature. */
26
+ entitled: boolean;
27
+ /**
28
+ * `ready && !entitled`: the one state in which a control is drawn disabled
29
+ * with an upgrade path. A pending plan draws nothing locked, because
30
+ * `checkEntitlement(undefined)` answers with the FREE tier and a paying
31
+ * workspace would see its own feature refused while its doc loads.
32
+ */
33
+ locked: boolean;
34
+ /** The cheapest plan carrying the feature ("Business"), if any plan does. */
35
+ planLabel: string | undefined;
36
+ /**
37
+ * The console's plan grid (`/{org}/billing#plans`), or its add-ons section
38
+ * for a feature no plan carries. Undefined until the org slug is known.
39
+ */
40
+ upgradeHref: string | undefined;
41
+ }
42
+ /**
43
+ * The lock state for one feature, from an org billing doc the caller already
44
+ * holds: the console's `useCurrentOrg()`, or a plugin's `useOrgPlan`.
45
+ *
46
+ * Free sees what the paid plans add instead of a console with pieces missing,
47
+ * so every surface that gates on a plan feature draws its control from this
48
+ * one answer: disabled, with the plan that includes it and a link to buy it.
49
+ *
50
+ * `planLabel` is derived from `PLAN_ENTITLEMENTS` on every call, so a notice
51
+ * can never name a tier that no longer carries the feature.
52
+ */
53
+ export declare function resolvePlanFeatureLock(input: {
54
+ org: unknown;
55
+ ready: boolean;
56
+ feature: keyof OrgFeatureFlags;
57
+ orgSlug: string | null | undefined;
58
+ }): PlanFeatureLock;
59
+ /**
60
+ * The one sentence a locked control carries, on hover and for a screen
61
+ * reader: "Scheduled publishing is included from Business."
62
+ */
63
+ export declare function planLockReason(subject: string, planLabel: string | undefined): string;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ import { checkEntitlement, planLabelGrantingFeature } from "@aglyn/aglyn";
17
+ /**
18
+ * The lock state for one feature, from an org billing doc the caller already
19
+ * holds: the console's `useCurrentOrg()`, or a plugin's `useOrgPlan`.
20
+ *
21
+ * Free sees what the paid plans add instead of a console with pieces missing,
22
+ * so every surface that gates on a plan feature draws its control from this
23
+ * one answer: disabled, with the plan that includes it and a link to buy it.
24
+ *
25
+ * `planLabel` is derived from `PLAN_ENTITLEMENTS` on every call, so a notice
26
+ * can never name a tier that no longer carries the feature.
27
+ */ export function resolvePlanFeatureLock(input) {
28
+ const { org, ready, feature, orgSlug } = input;
29
+ const entitled = checkEntitlement(org, feature);
30
+ const planLabel = planLabelGrantingFeature(feature);
31
+ return {
32
+ ready,
33
+ entitled,
34
+ locked: ready === true && !entitled,
35
+ planLabel,
36
+ upgradeHref: orgSlug ? `/${orgSlug}/billing#${planLabel ? 'plans' : 'addons'}` : undefined
37
+ };
38
+ }
39
+ /**
40
+ * The one sentence a locked control carries, on hover and for a screen
41
+ * reader: "Scheduled publishing is included from Business."
42
+ */ export function planLockReason(subject, planLabel) {
43
+ return planLabel ? `${subject} is included from ${planLabel}.` : `${subject} is a paid add-on.`;
44
+ }
45
+
46
+ //# sourceMappingURL=plan-feature-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/tenant/feature/instance/src/lib/hooks/plan-feature-lock.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n checkEntitlement,\n planLabelGrantingFeature,\n type OrgFeatureFlags,\n} from '@aglyn/aglyn'\n\n/**\n * A plan-gated feature as a console surface draws it: on, locked with the\n * plan that unlocks it, or not yet known.\n */\nexport interface PlanFeatureLock {\n /** The plan doc has settled. NEVER refuse before this is true. */\n ready: boolean\n /** The plan (or a purchased add-on, or an override) includes the feature. */\n entitled: boolean\n /**\n * `ready && !entitled`: the one state in which a control is drawn disabled\n * with an upgrade path. A pending plan draws nothing locked, because\n * `checkEntitlement(undefined)` answers with the FREE tier and a paying\n * workspace would see its own feature refused while its doc loads.\n */\n locked: boolean\n /** The cheapest plan carrying the feature (\"Business\"), if any plan does. */\n planLabel: string | undefined\n /**\n * The console's plan grid (`/{org}/billing#plans`), or its add-ons section\n * for a feature no plan carries. Undefined until the org slug is known.\n */\n upgradeHref: string | undefined\n}\n\n/**\n * The lock state for one feature, from an org billing doc the caller already\n * holds: the console's `useCurrentOrg()`, or a plugin's `useOrgPlan`.\n *\n * Free sees what the paid plans add instead of a console with pieces missing,\n * so every surface that gates on a plan feature draws its control from this\n * one answer: disabled, with the plan that includes it and a link to buy it.\n *\n * `planLabel` is derived from `PLAN_ENTITLEMENTS` on every call, so a notice\n * can never name a tier that no longer carries the feature.\n */\nexport function resolvePlanFeatureLock(input: {\n org: unknown\n ready: boolean\n feature: keyof OrgFeatureFlags\n orgSlug: string | null | undefined\n}): PlanFeatureLock {\n const { org, ready, feature, orgSlug } = input\n const entitled = checkEntitlement(org as never, feature)\n const planLabel = planLabelGrantingFeature(feature)\n return {\n ready,\n entitled,\n locked: ready === true && !entitled,\n planLabel,\n upgradeHref: orgSlug\n ? `/${orgSlug}/billing#${planLabel ? 'plans' : 'addons'}`\n : undefined,\n }\n}\n\n/**\n * The one sentence a locked control carries, on hover and for a screen\n * reader: \"Scheduled publishing is included from Business.\"\n */\nexport function planLockReason(\n subject: string,\n planLabel: string | undefined,\n): string {\n return planLabel\n ? `${subject} is included from ${planLabel}.`\n : `${subject} is a paid add-on.`\n}\n"],"names":["checkEntitlement","planLabelGrantingFeature","resolvePlanFeatureLock","input","org","ready","feature","orgSlug","entitled","planLabel","locked","upgradeHref","undefined","planLockReason","subject"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD,SACEA,gBAAgB,EAChBC,wBAAwB,QAEnB,eAAc;AA2BrB;;;;;;;;;;CAUC,GACD,OAAO,SAASC,uBAAuBC,KAKtC;IACC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAE,GAAGJ;IACzC,MAAMK,WAAWR,iBAAiBI,KAAcE;IAChD,MAAMG,YAAYR,yBAAyBK;IAC3C,OAAO;QACLD;QACAG;QACAE,QAAQL,UAAU,QAAQ,CAACG;QAC3BC;QACAE,aAAaJ,UACT,CAAC,CAAC,EAAEA,QAAQ,SAAS,EAAEE,YAAY,UAAU,UAAU,GACvDG;IACN;AACF;AAEA;;;CAGC,GACD,OAAO,SAASC,eACdC,OAAe,EACfL,SAA6B;IAE7B,OAAOA,YACH,GAAGK,QAAQ,kBAAkB,EAAEL,UAAU,CAAC,CAAC,GAC3C,GAAGK,QAAQ,kBAAkB,CAAC;AACpC"}
@@ -0,0 +1,8 @@
1
+ import type { OrgFeatureFlags } from '@aglyn/aglyn';
2
+ import { type PlanFeatureLock } from './plan-feature-lock';
3
+ /**
4
+ * {@link resolvePlanFeatureLock} for a site: its owning org's plan, and the
5
+ * org slug the upgrade link is built from.
6
+ */
7
+ export declare function usePlanFeature(hostId: string | undefined, feature: keyof OrgFeatureFlags): PlanFeatureLock;
8
+ export default usePlanFeature;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ 'use client';
17
+ import { resolvePlanFeatureLock } from "./plan-feature-lock.js";
18
+ import { useConsoleHostRoute } from "./use-console-host-route.js";
19
+ import { useOrgPlan } from "./use-org-plan.js";
20
+ /**
21
+ * {@link resolvePlanFeatureLock} for a site: its owning org's plan, and the
22
+ * org slug the upgrade link is built from.
23
+ */ export function usePlanFeature(hostId, feature) {
24
+ const { orgSlug } = useConsoleHostRoute(hostId);
25
+ const { org, ready } = useOrgPlan(hostId);
26
+ return resolvePlanFeatureLock({
27
+ org,
28
+ ready,
29
+ feature,
30
+ orgSlug
31
+ });
32
+ }
33
+ export default usePlanFeature;
34
+
35
+ //# sourceMappingURL=use-plan-feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../libs/tenant/feature/instance/src/lib/hooks/use-plan-feature.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\nimport type { OrgFeatureFlags } from '@aglyn/aglyn'\nimport { resolvePlanFeatureLock, type PlanFeatureLock } from './plan-feature-lock'\nimport { useConsoleHostRoute } from './use-console-host-route'\nimport { useOrgPlan } from './use-org-plan'\n\n/**\n * {@link resolvePlanFeatureLock} for a site: its owning org's plan, and the\n * org slug the upgrade link is built from.\n */\nexport function usePlanFeature(\n hostId: string | undefined,\n feature: keyof OrgFeatureFlags,\n): PlanFeatureLock {\n const { orgSlug } = useConsoleHostRoute(hostId)\n const { org, ready } = useOrgPlan(hostId)\n return resolvePlanFeatureLock({ org, ready, feature, orgSlug })\n}\n\nexport default usePlanFeature\n"],"names":["resolvePlanFeatureLock","useConsoleHostRoute","useOrgPlan","usePlanFeature","hostId","feature","orgSlug","org","ready"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GACD;AAGA,SAASA,sBAAsB,QAA8B,yBAAqB;AAClF,SAASC,mBAAmB,QAAQ,8BAA0B;AAC9D,SAASC,UAAU,QAAQ,oBAAgB;AAE3C;;;CAGC,GACD,OAAO,SAASC,eACdC,MAA0B,EAC1BC,OAA8B;IAE9B,MAAM,EAAEC,OAAO,EAAE,GAAGL,oBAAoBG;IACxC,MAAM,EAAEG,GAAG,EAAEC,KAAK,EAAE,GAAGN,WAAWE;IAClC,OAAOJ,uBAAuB;QAAEO;QAAKC;QAAOH;QAASC;IAAQ;AAC/D;AAEA,eAAeH,eAAc"}
@@ -50,6 +50,8 @@ export * from './hooks/use-container-options';
50
50
  export * from './hooks/use-org-member-options';
51
51
  export * from './hooks/use-org-plan';
52
52
  export * from './hooks/use-merchant-payments';
53
+ export * from './hooks/plan-feature-lock';
54
+ export * from './hooks/use-plan-feature';
53
55
  export * from './hooks/use-scope-tokens';
54
56
  export * from './hooks/use-host-resource-api';
55
57
  export * from './hooks/use-host-version-api';
package/src/lib/tenant.js CHANGED
@@ -49,6 +49,8 @@ export * from "./hooks/use-container-options.js";
49
49
  export * from "./hooks/use-org-member-options.js";
50
50
  export * from "./hooks/use-org-plan.js";
51
51
  export * from "./hooks/use-merchant-payments.js";
52
+ export * from "./hooks/plan-feature-lock.js";
53
+ export * from "./hooks/use-plan-feature.js";
52
54
  export * from "./hooks/use-scope-tokens.js";
53
55
  export * from "./hooks/use-host-resource-api.js";
54
56
  export * from "./hooks/use-host-version-api.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../libs/tenant/feature/instance/src/lib/tenant.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './constants/mock-data'\nexport * from './constants/site-paths'\nexport * from './constants/firebase-config'\nexport * from './constants/firebase-emulator-hosts'\n\nexport * from './hooks/firebase/app-check-recaptcha-container'\nexport * from './hooks/firebase/auth-persistence'\nexport * from './hooks/firebase/firebase-services'\nexport * from './hooks/firebase/firestore-cache'\nexport * from './hooks/firebase/firestore-stall-recovery'\nexport * from './hooks/firebase/firestore-bounded-read'\nexport * from './hooks/helpers/use-doc'\nexport * from './hooks/helpers/use-modify-doc-callback'\nexport * from './hooks/helpers/besigner-nodes-converter'\nexport * from './hooks/helpers/guarded-nodes-save'\nexport * from './hooks/helpers/guarded-seed-write'\n\nexport * from './hooks/firestore-denial-reporter'\nexport * from './hooks/use-firestore-collection'\nexport * from './hooks/use-paged-collection'\nexport * from './hooks/use-sorted-paged-collection'\nexport * from './hooks/sorted-collection-window'\nexport * from './hooks/host-collection-queries'\nexport * from './hooks/list-filter-constraints'\nexport * from './hooks/use-firestore-doc'\nexport * from './hooks/use-switcher-collection'\nexport * from './hooks/use-host-activity-logger'\nexport * from './hooks/use-live-artifact-count'\nexport * from './hooks/use-component'\nexport * from './hooks/use-component-version'\nexport * from './hooks/use-host-document-version'\nexport * from './hooks/use-host-template'\nexport * from './hooks/use-console-host-route'\nexport * from './hooks/use-host-org-id'\nexport * from './hooks/use-container-options'\nexport * from './hooks/use-org-member-options'\nexport * from './hooks/use-org-plan'\nexport * from './hooks/use-merchant-payments'\nexport * from './hooks/use-scope-tokens'\nexport * from './hooks/use-host-resource-api'\nexport * from './hooks/use-host-version-api'\nexport * from './hooks/use-duplicate-resource-api'\nexport * from './hooks/use-plugin-api-post'\nexport * from './components/duplicate-resource-dialog'\nexport * from './hooks/use-plugin-config'\nexport * from './hooks/use-host'\nexport * from './hooks/use-layout'\nexport * from './hooks/use-layout-version'\nexport * from './hooks/use-screen'\nexport * from './hooks/use-screen-version'\nexport * from './hooks/use-user-name'\nexport * from './hooks/use-user-photo'\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,cAAc,2BAAuB;AACrC,cAAc,4BAAwB;AACtC,cAAc,iCAA6B;AAC3C,cAAc,yCAAqC;AAEnD,cAAc,oDAAgD;AAC9D,cAAc,uCAAmC;AACjD,cAAc,wCAAoC;AAClD,cAAc,sCAAkC;AAChD,cAAc,+CAA2C;AACzD,cAAc,6CAAyC;AACvD,cAAc,6BAAyB;AACvC,cAAc,6CAAyC;AACvD,cAAc,8CAA0C;AACxD,cAAc,wCAAoC;AAClD,cAAc,wCAAoC;AAElD,cAAc,uCAAmC;AACjD,cAAc,sCAAkC;AAChD,cAAc,kCAA8B;AAC5C,cAAc,yCAAqC;AACnD,cAAc,sCAAkC;AAChD,cAAc,qCAAiC;AAC/C,cAAc,qCAAiC;AAC/C,cAAc,+BAA2B;AACzC,cAAc,qCAAiC;AAC/C,cAAc,sCAAkC;AAChD,cAAc,qCAAiC;AAC/C,cAAc,2BAAuB;AACrC,cAAc,mCAA+B;AAC7C,cAAc,uCAAmC;AACjD,cAAc,+BAA2B;AACzC,cAAc,oCAAgC;AAC9C,cAAc,6BAAyB;AACvC,cAAc,mCAA+B;AAC7C,cAAc,oCAAgC;AAC9C,cAAc,0BAAsB;AACpC,cAAc,mCAA+B;AAC7C,cAAc,8BAA0B;AACxC,cAAc,mCAA+B;AAC7C,cAAc,kCAA8B;AAC5C,cAAc,wCAAoC;AAClD,cAAc,iCAA6B;AAC3C,cAAc,4CAAwC;AACtD,cAAc,+BAA2B;AACzC,cAAc,sBAAkB;AAChC,cAAc,wBAAoB;AAClC,cAAc,gCAA4B;AAC1C,cAAc,wBAAoB;AAClC,cAAc,gCAA4B;AAC1C,cAAc,2BAAuB;AACrC,cAAc,4BAAwB"}
1
+ {"version":3,"sources":["../../../../../../../libs/tenant/feature/instance/src/lib/tenant.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2022 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './constants/mock-data'\nexport * from './constants/site-paths'\nexport * from './constants/firebase-config'\nexport * from './constants/firebase-emulator-hosts'\n\nexport * from './hooks/firebase/app-check-recaptcha-container'\nexport * from './hooks/firebase/auth-persistence'\nexport * from './hooks/firebase/firebase-services'\nexport * from './hooks/firebase/firestore-cache'\nexport * from './hooks/firebase/firestore-stall-recovery'\nexport * from './hooks/firebase/firestore-bounded-read'\nexport * from './hooks/helpers/use-doc'\nexport * from './hooks/helpers/use-modify-doc-callback'\nexport * from './hooks/helpers/besigner-nodes-converter'\nexport * from './hooks/helpers/guarded-nodes-save'\nexport * from './hooks/helpers/guarded-seed-write'\n\nexport * from './hooks/firestore-denial-reporter'\nexport * from './hooks/use-firestore-collection'\nexport * from './hooks/use-paged-collection'\nexport * from './hooks/use-sorted-paged-collection'\nexport * from './hooks/sorted-collection-window'\nexport * from './hooks/host-collection-queries'\nexport * from './hooks/list-filter-constraints'\nexport * from './hooks/use-firestore-doc'\nexport * from './hooks/use-switcher-collection'\nexport * from './hooks/use-host-activity-logger'\nexport * from './hooks/use-live-artifact-count'\nexport * from './hooks/use-component'\nexport * from './hooks/use-component-version'\nexport * from './hooks/use-host-document-version'\nexport * from './hooks/use-host-template'\nexport * from './hooks/use-console-host-route'\nexport * from './hooks/use-host-org-id'\nexport * from './hooks/use-container-options'\nexport * from './hooks/use-org-member-options'\nexport * from './hooks/use-org-plan'\nexport * from './hooks/use-merchant-payments'\nexport * from './hooks/plan-feature-lock'\nexport * from './hooks/use-plan-feature'\nexport * from './hooks/use-scope-tokens'\nexport * from './hooks/use-host-resource-api'\nexport * from './hooks/use-host-version-api'\nexport * from './hooks/use-duplicate-resource-api'\nexport * from './hooks/use-plugin-api-post'\nexport * from './components/duplicate-resource-dialog'\nexport * from './hooks/use-plugin-config'\nexport * from './hooks/use-host'\nexport * from './hooks/use-layout'\nexport * from './hooks/use-layout-version'\nexport * from './hooks/use-screen'\nexport * from './hooks/use-screen-version'\nexport * from './hooks/use-user-name'\nexport * from './hooks/use-user-photo'\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAED,cAAc,2BAAuB;AACrC,cAAc,4BAAwB;AACtC,cAAc,iCAA6B;AAC3C,cAAc,yCAAqC;AAEnD,cAAc,oDAAgD;AAC9D,cAAc,uCAAmC;AACjD,cAAc,wCAAoC;AAClD,cAAc,sCAAkC;AAChD,cAAc,+CAA2C;AACzD,cAAc,6CAAyC;AACvD,cAAc,6BAAyB;AACvC,cAAc,6CAAyC;AACvD,cAAc,8CAA0C;AACxD,cAAc,wCAAoC;AAClD,cAAc,wCAAoC;AAElD,cAAc,uCAAmC;AACjD,cAAc,sCAAkC;AAChD,cAAc,kCAA8B;AAC5C,cAAc,yCAAqC;AACnD,cAAc,sCAAkC;AAChD,cAAc,qCAAiC;AAC/C,cAAc,qCAAiC;AAC/C,cAAc,+BAA2B;AACzC,cAAc,qCAAiC;AAC/C,cAAc,sCAAkC;AAChD,cAAc,qCAAiC;AAC/C,cAAc,2BAAuB;AACrC,cAAc,mCAA+B;AAC7C,cAAc,uCAAmC;AACjD,cAAc,+BAA2B;AACzC,cAAc,oCAAgC;AAC9C,cAAc,6BAAyB;AACvC,cAAc,mCAA+B;AAC7C,cAAc,oCAAgC;AAC9C,cAAc,0BAAsB;AACpC,cAAc,mCAA+B;AAC7C,cAAc,+BAA2B;AACzC,cAAc,8BAA0B;AACxC,cAAc,8BAA0B;AACxC,cAAc,mCAA+B;AAC7C,cAAc,kCAA8B;AAC5C,cAAc,wCAAoC;AAClD,cAAc,iCAA6B;AAC3C,cAAc,4CAAwC;AACtD,cAAc,+BAA2B;AACzC,cAAc,sBAAkB;AAChC,cAAc,wBAAoB;AAClC,cAAc,gCAA4B;AAC1C,cAAc,wBAAoB;AAClC,cAAc,gCAA4B;AAC1C,cAAc,2BAAuB;AACrC,cAAc,4BAAwB"}