@singi-labs/sifa-sdk 0.19.57 → 0.19.58

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.d.cts CHANGED
@@ -2599,49 +2599,58 @@ declare function resolveAccountFacetMode(profile: {
2599
2599
  }): AccountFacetMode;
2600
2600
 
2601
2601
  /**
2602
- * Firmographic subset of a company profile that decides whether its `/c/` page
2603
- * is worth indexing. A minimal STRUCTURAL type on purpose -- it does not import
2602
+ * The subset of a company profile that decides whether its `/c/` page is worth
2603
+ * indexing. A minimal STRUCTURAL type on purpose -- it does not import
2604
2604
  * sifa-web's `CompanyProfile`, so this predicate stays importable by any
2605
- * consumer (sifa-web, sifa-app, third parties). Fields mirror the external
2606
- * firmographics that lead a `/c/` page (Wikidata / ROR / GLEIF derived), NOT
2607
- * Sifa-aggregated stats.
2605
+ * consumer (sifa-web, sifa-app, sifa-api's sitemap, third parties).
2608
2606
  *
2609
- * Deliberately ABSENT: claim status and Sifa-derived employee count. Company
2610
- * page indexability is NEVER gated on either (product decision, 2026-07-16) --
2611
- * a rich unclaimed page is indexable; a claimed but empty page is not.
2607
+ * The line (product decision, 2026-09-28): a page is indexable when it is
2608
+ * claimed, when it has a visible people roster, or when it carries enough real
2609
+ * facts. Inferred values (a Jev-classified industry) never count: they are
2610
+ * guesses at the lowest provenance, not content a searcher came for.
2612
2611
  */
2613
2612
  interface CompanyFirmographics {
2614
2613
  /** External canonical name (Wikidata label / registry name). */
2615
2614
  canonicalName?: string | null;
2616
- /** Free-text description / about. */
2615
+ /** Free-text description / about. Counts only from {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters. */
2617
2616
  description?: string | null;
2618
2617
  /** Industry / sector label. */
2619
2618
  industry?: string | null;
2619
+ /** Provenance source of `industry`. `'jev'` (inferred) never counts; absent counts. */
2620
+ industrySource?: string | null;
2620
2621
  /** URL of the company logo. */
2621
2622
  logoUrl?: string | null;
2622
- /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa employee count. */
2623
+ /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa member count. */
2623
2624
  employeeCount?: number | null;
2624
2625
  /** Founding year or date. */
2625
2626
  founded?: string | number | null;
2626
- }
2627
- /**
2628
- * Minimum number of the optional firmographic fields
2629
- * ({@link CompanyFirmographics} minus `canonicalName`) that must be present for
2630
- * a `/c/` company page to be indexable. Named + exported so the threshold is
2631
- * tunable in one place.
2632
- */
2633
- declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
2634
- /**
2635
- * Is a `/c/` company page worth indexing?
2636
- *
2637
- * True iff it has real firmographic content: a non-empty `canonicalName` AND at
2638
- * least {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS} of the optional firmographic
2639
- * fields ({@link CompanyFirmographics.description | description},
2640
- * `industry`, `logoUrl`, `employeeCount`, `founded`) present.
2641
- *
2642
- * NEVER gated on claim status or Sifa employee count -- there is no such
2643
- * parameter (product decision, 2026-07-16). A rich unclaimed stub is indexable;
2644
- * a name-only page (claimed or not) is not.
2627
+ /** Country code or name. */
2628
+ country?: string | null;
2629
+ /** Headquarters block; any non-empty part counts as a location. */
2630
+ hq?: Record<string, unknown> | null;
2631
+ /** External links keyed by type (website, linkedin, wikipedia, ...). */
2632
+ externalLinks?: Record<string, unknown> | null;
2633
+ /** Number of Sifa members who list this organization. */
2634
+ memberCount?: number | null;
2635
+ /** The organization has claimed the page. */
2636
+ claimed?: boolean | null;
2637
+ }
2638
+ /**
2639
+ * Minimum number of real facts an unclaimed page without a visible roster needs
2640
+ * to be indexable. The seven facts are a description of at least
2641
+ * {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters, a logo, a headcount,
2642
+ * a founding date, a location, an external link, and a non-inferred industry;
2643
+ * at least one Sifa member adds one bonus point.
2644
+ */
2645
+ declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 5;
2646
+ /**
2647
+ * Is a `/c/` company page worth indexing (per-page `robots` meta and the
2648
+ * company sitemap)?
2649
+ *
2650
+ * True iff it has a non-empty `canonicalName` AND any of: it is claimed; it has
2651
+ * at least {@link COMPANY_PAGE_ROSTER_MIN_MEMBERS} Sifa members (the roster is
2652
+ * visible); or its {@link companyPageRichness} reaches
2653
+ * {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS}.
2645
2654
  *
2646
2655
  * Pure: no network, no I/O. Third-party importable.
2647
2656
  */
package/dist/index.d.ts CHANGED
@@ -2599,49 +2599,58 @@ declare function resolveAccountFacetMode(profile: {
2599
2599
  }): AccountFacetMode;
2600
2600
 
2601
2601
  /**
2602
- * Firmographic subset of a company profile that decides whether its `/c/` page
2603
- * is worth indexing. A minimal STRUCTURAL type on purpose -- it does not import
2602
+ * The subset of a company profile that decides whether its `/c/` page is worth
2603
+ * indexing. A minimal STRUCTURAL type on purpose -- it does not import
2604
2604
  * sifa-web's `CompanyProfile`, so this predicate stays importable by any
2605
- * consumer (sifa-web, sifa-app, third parties). Fields mirror the external
2606
- * firmographics that lead a `/c/` page (Wikidata / ROR / GLEIF derived), NOT
2607
- * Sifa-aggregated stats.
2605
+ * consumer (sifa-web, sifa-app, sifa-api's sitemap, third parties).
2608
2606
  *
2609
- * Deliberately ABSENT: claim status and Sifa-derived employee count. Company
2610
- * page indexability is NEVER gated on either (product decision, 2026-07-16) --
2611
- * a rich unclaimed page is indexable; a claimed but empty page is not.
2607
+ * The line (product decision, 2026-09-28): a page is indexable when it is
2608
+ * claimed, when it has a visible people roster, or when it carries enough real
2609
+ * facts. Inferred values (a Jev-classified industry) never count: they are
2610
+ * guesses at the lowest provenance, not content a searcher came for.
2612
2611
  */
2613
2612
  interface CompanyFirmographics {
2614
2613
  /** External canonical name (Wikidata label / registry name). */
2615
2614
  canonicalName?: string | null;
2616
- /** Free-text description / about. */
2615
+ /** Free-text description / about. Counts only from {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters. */
2617
2616
  description?: string | null;
2618
2617
  /** Industry / sector label. */
2619
2618
  industry?: string | null;
2619
+ /** Provenance source of `industry`. `'jev'` (inferred) never counts; absent counts. */
2620
+ industrySource?: string | null;
2620
2621
  /** URL of the company logo. */
2621
2622
  logoUrl?: string | null;
2622
- /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa employee count. */
2623
+ /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa member count. */
2623
2624
  employeeCount?: number | null;
2624
2625
  /** Founding year or date. */
2625
2626
  founded?: string | number | null;
2626
- }
2627
- /**
2628
- * Minimum number of the optional firmographic fields
2629
- * ({@link CompanyFirmographics} minus `canonicalName`) that must be present for
2630
- * a `/c/` company page to be indexable. Named + exported so the threshold is
2631
- * tunable in one place.
2632
- */
2633
- declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
2634
- /**
2635
- * Is a `/c/` company page worth indexing?
2636
- *
2637
- * True iff it has real firmographic content: a non-empty `canonicalName` AND at
2638
- * least {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS} of the optional firmographic
2639
- * fields ({@link CompanyFirmographics.description | description},
2640
- * `industry`, `logoUrl`, `employeeCount`, `founded`) present.
2641
- *
2642
- * NEVER gated on claim status or Sifa employee count -- there is no such
2643
- * parameter (product decision, 2026-07-16). A rich unclaimed stub is indexable;
2644
- * a name-only page (claimed or not) is not.
2627
+ /** Country code or name. */
2628
+ country?: string | null;
2629
+ /** Headquarters block; any non-empty part counts as a location. */
2630
+ hq?: Record<string, unknown> | null;
2631
+ /** External links keyed by type (website, linkedin, wikipedia, ...). */
2632
+ externalLinks?: Record<string, unknown> | null;
2633
+ /** Number of Sifa members who list this organization. */
2634
+ memberCount?: number | null;
2635
+ /** The organization has claimed the page. */
2636
+ claimed?: boolean | null;
2637
+ }
2638
+ /**
2639
+ * Minimum number of real facts an unclaimed page without a visible roster needs
2640
+ * to be indexable. The seven facts are a description of at least
2641
+ * {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters, a logo, a headcount,
2642
+ * a founding date, a location, an external link, and a non-inferred industry;
2643
+ * at least one Sifa member adds one bonus point.
2644
+ */
2645
+ declare const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 5;
2646
+ /**
2647
+ * Is a `/c/` company page worth indexing (per-page `robots` meta and the
2648
+ * company sitemap)?
2649
+ *
2650
+ * True iff it has a non-empty `canonicalName` AND any of: it is claimed; it has
2651
+ * at least {@link COMPANY_PAGE_ROSTER_MIN_MEMBERS} Sifa members (the roster is
2652
+ * visible); or its {@link companyPageRichness} reaches
2653
+ * {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS}.
2645
2654
  *
2646
2655
  * Pure: no network, no I/O. Third-party importable.
2647
2656
  */
package/dist/index.js CHANGED
@@ -350,7 +350,7 @@ import {
350
350
  roadmapIssueUrl
351
351
  } from "./roadmap/index.js";
352
352
  import { SIFA_REPO_GROUPS, describeSifaRecord, repoGroupForCollection } from "./repo/index.js";
353
- var SIFA_SDK_VERSION = "0.19.57";
353
+ var SIFA_SDK_VERSION = "0.19.58";
354
354
  export {
355
355
  ACTIVITY_TIERS,
356
356
  ACTIVITY_VERBS,
@@ -1,23 +1,41 @@
1
1
  // src/logic/company-page-indexable.ts
2
- var COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;
2
+ var COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 5;
3
+ var COMPANY_PAGE_MIN_DESCRIPTION_LENGTH = 40;
4
+ var COMPANY_PAGE_ROSTER_MIN_MEMBERS = 5;
3
5
  function isNonEmptyString(value) {
4
6
  return typeof value === "string" && value.trim().length > 0;
5
7
  }
6
8
  function isPresentNumber(value) {
7
9
  return typeof value === "number" && Number.isFinite(value);
8
10
  }
11
+ function hasAnyValue(record) {
12
+ if (!record) return false;
13
+ return Object.values(record).some((v) => isNonEmptyString(v) || isPresentNumber(v));
14
+ }
15
+ function companyPageRichness(company) {
16
+ let score = 0;
17
+ const description = company.description?.trim() ?? "";
18
+ if (description.length >= COMPANY_PAGE_MIN_DESCRIPTION_LENGTH) score += 1;
19
+ if (isNonEmptyString(company.logoUrl)) score += 1;
20
+ if (isPresentNumber(company.employeeCount)) score += 1;
21
+ if (isPresentNumber(company.founded) || isNonEmptyString(company.founded)) score += 1;
22
+ if (isNonEmptyString(company.country) || hasAnyValue(company.hq)) score += 1;
23
+ if (hasAnyValue(company.externalLinks)) score += 1;
24
+ if (isNonEmptyString(company.industry) && company.industrySource !== "jev") score += 1;
25
+ if (isPresentNumber(company.memberCount) && (company.memberCount ?? 0) >= 1) score += 1;
26
+ return score;
27
+ }
9
28
  function isCompanyPageIndexable(company) {
10
29
  if (!isNonEmptyString(company.canonicalName)) return false;
11
- let present = 0;
12
- if (isNonEmptyString(company.description)) present += 1;
13
- if (isNonEmptyString(company.industry)) present += 1;
14
- if (isNonEmptyString(company.logoUrl)) present += 1;
15
- if (isPresentNumber(company.employeeCount)) present += 1;
16
- if (isPresentNumber(company.founded) || isNonEmptyString(company.founded)) present += 1;
17
- return present >= COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS;
30
+ if (company.claimed === true) return true;
31
+ if ((company.memberCount ?? 0) >= COMPANY_PAGE_ROSTER_MIN_MEMBERS) return true;
32
+ return companyPageRichness(company) >= COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS;
18
33
  }
19
34
  export {
35
+ COMPANY_PAGE_MIN_DESCRIPTION_LENGTH,
20
36
  COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS,
37
+ COMPANY_PAGE_ROSTER_MIN_MEMBERS,
38
+ companyPageRichness,
21
39
  isCompanyPageIndexable
22
40
  };
23
41
  //# sourceMappingURL=company-page-indexable.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/logic/company-page-indexable.ts"],"sourcesContent":["/**\n * Firmographic subset of a company profile that decides whether its `/c/` page\n * is worth indexing. A minimal STRUCTURAL type on purpose -- it does not import\n * sifa-web's `CompanyProfile`, so this predicate stays importable by any\n * consumer (sifa-web, sifa-app, third parties). Fields mirror the external\n * firmographics that lead a `/c/` page (Wikidata / ROR / GLEIF derived), NOT\n * Sifa-aggregated stats.\n *\n * Deliberately ABSENT: claim status and Sifa-derived employee count. Company\n * page indexability is NEVER gated on either (product decision, 2026-07-16) --\n * a rich unclaimed page is indexable; a claimed but empty page is not.\n */\nexport interface CompanyFirmographics {\n /** External canonical name (Wikidata label / registry name). */\n canonicalName?: string | null;\n /** Free-text description / about. */\n description?: string | null;\n /** Industry / sector label. */\n industry?: string | null;\n /** URL of the company logo. */\n logoUrl?: string | null;\n /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa employee count. */\n employeeCount?: number | null;\n /** Founding year or date. */\n founded?: string | number | null;\n}\n\n/**\n * Minimum number of the optional firmographic fields\n * ({@link CompanyFirmographics} minus `canonicalName`) that must be present for\n * a `/c/` company page to be indexable. Named + exported so the threshold is\n * tunable in one place.\n */\nexport const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 2;\n\nfunction isNonEmptyString(value: unknown): boolean {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\n/** A number counts as present when finite; a founded-string counts when non-empty. */\nfunction isPresentNumber(value: unknown): boolean {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\n/**\n * Is a `/c/` company page worth indexing?\n *\n * True iff it has real firmographic content: a non-empty `canonicalName` AND at\n * least {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS} of the optional firmographic\n * fields ({@link CompanyFirmographics.description | description},\n * `industry`, `logoUrl`, `employeeCount`, `founded`) present.\n *\n * NEVER gated on claim status or Sifa employee count -- there is no such\n * parameter (product decision, 2026-07-16). A rich unclaimed stub is indexable;\n * a name-only page (claimed or not) is not.\n *\n * Pure: no network, no I/O. Third-party importable.\n */\nexport function isCompanyPageIndexable(company: CompanyFirmographics): boolean {\n if (!isNonEmptyString(company.canonicalName)) return false;\n\n let present = 0;\n if (isNonEmptyString(company.description)) present += 1;\n if (isNonEmptyString(company.industry)) present += 1;\n if (isNonEmptyString(company.logoUrl)) present += 1;\n if (isPresentNumber(company.employeeCount)) present += 1;\n if (isPresentNumber(company.founded) || isNonEmptyString(company.founded)) present += 1;\n\n return present >= COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS;\n}\n"],"mappings":";AAiCO,IAAM,uCAAuC;AAEpD,SAAS,iBAAiB,OAAyB;AACjD,SAAO,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS;AAC5D;AAGA,SAAS,gBAAgB,OAAyB;AAChD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK;AAC3D;AAgBO,SAAS,uBAAuB,SAAwC;AAC7E,MAAI,CAAC,iBAAiB,QAAQ,aAAa,EAAG,QAAO;AAErD,MAAI,UAAU;AACd,MAAI,iBAAiB,QAAQ,WAAW,EAAG,YAAW;AACtD,MAAI,iBAAiB,QAAQ,QAAQ,EAAG,YAAW;AACnD,MAAI,iBAAiB,QAAQ,OAAO,EAAG,YAAW;AAClD,MAAI,gBAAgB,QAAQ,aAAa,EAAG,YAAW;AACvD,MAAI,gBAAgB,QAAQ,OAAO,KAAK,iBAAiB,QAAQ,OAAO,EAAG,YAAW;AAEtF,SAAO,WAAW;AACpB;","names":[]}
1
+ {"version":3,"sources":["../../src/logic/company-page-indexable.ts"],"sourcesContent":["/**\n * The subset of a company profile that decides whether its `/c/` page is worth\n * indexing. A minimal STRUCTURAL type on purpose -- it does not import\n * sifa-web's `CompanyProfile`, so this predicate stays importable by any\n * consumer (sifa-web, sifa-app, sifa-api's sitemap, third parties).\n *\n * The line (product decision, 2026-09-28): a page is indexable when it is\n * claimed, when it has a visible people roster, or when it carries enough real\n * facts. Inferred values (a Jev-classified industry) never count: they are\n * guesses at the lowest provenance, not content a searcher came for.\n */\nexport interface CompanyFirmographics {\n /** External canonical name (Wikidata label / registry name). */\n canonicalName?: string | null;\n /** Free-text description / about. Counts only from {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters. */\n description?: string | null;\n /** Industry / sector label. */\n industry?: string | null;\n /** Provenance source of `industry`. `'jev'` (inferred) never counts; absent counts. */\n industrySource?: string | null;\n /** URL of the company logo. */\n logoUrl?: string | null;\n /** External headcount figure (e.g. Wikidata P1128). NOT the Sifa member count. */\n employeeCount?: number | null;\n /** Founding year or date. */\n founded?: string | number | null;\n /** Country code or name. */\n country?: string | null;\n /** Headquarters block; any non-empty part counts as a location. */\n hq?: Record<string, unknown> | null;\n /** External links keyed by type (website, linkedin, wikipedia, ...). */\n externalLinks?: Record<string, unknown> | null;\n /** Number of Sifa members who list this organization. */\n memberCount?: number | null;\n /** The organization has claimed the page. */\n claimed?: boolean | null;\n}\n\n/**\n * Minimum number of real facts an unclaimed page without a visible roster needs\n * to be indexable. The seven facts are a description of at least\n * {@link COMPANY_PAGE_MIN_DESCRIPTION_LENGTH} characters, a logo, a headcount,\n * a founding date, a location, an external link, and a non-inferred industry;\n * at least one Sifa member adds one bonus point.\n */\nexport const COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS = 5;\n\n/** Shorter descriptions (\"company in Japan\") are registry one-liners, not content. */\nexport const COMPANY_PAGE_MIN_DESCRIPTION_LENGTH = 40;\n\n/** Member count at which the page shows its people roster; such a page is always indexable. */\nexport const COMPANY_PAGE_ROSTER_MIN_MEMBERS = 5;\n\nfunction isNonEmptyString(value: unknown): boolean {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\nfunction isPresentNumber(value: unknown): boolean {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction hasAnyValue(record: Record<string, unknown> | null | undefined): boolean {\n if (!record) return false;\n return Object.values(record).some((v) => isNonEmptyString(v) || isPresentNumber(v));\n}\n\n/**\n * Richness score of a `/c/` page: one point per real fact present, plus one\n * bonus point when at least one Sifa member lists the organization. Pure.\n */\nexport function companyPageRichness(company: CompanyFirmographics): number {\n let score = 0;\n const description = company.description?.trim() ?? '';\n if (description.length >= COMPANY_PAGE_MIN_DESCRIPTION_LENGTH) score += 1;\n if (isNonEmptyString(company.logoUrl)) score += 1;\n if (isPresentNumber(company.employeeCount)) score += 1;\n if (isPresentNumber(company.founded) || isNonEmptyString(company.founded)) score += 1;\n if (isNonEmptyString(company.country) || hasAnyValue(company.hq)) score += 1;\n if (hasAnyValue(company.externalLinks)) score += 1;\n if (isNonEmptyString(company.industry) && company.industrySource !== 'jev') score += 1;\n if (isPresentNumber(company.memberCount) && (company.memberCount ?? 0) >= 1) score += 1;\n return score;\n}\n\n/**\n * Is a `/c/` company page worth indexing (per-page `robots` meta and the\n * company sitemap)?\n *\n * True iff it has a non-empty `canonicalName` AND any of: it is claimed; it has\n * at least {@link COMPANY_PAGE_ROSTER_MIN_MEMBERS} Sifa members (the roster is\n * visible); or its {@link companyPageRichness} reaches\n * {@link COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS}.\n *\n * Pure: no network, no I/O. Third-party importable.\n */\nexport function isCompanyPageIndexable(company: CompanyFirmographics): boolean {\n if (!isNonEmptyString(company.canonicalName)) return false;\n if (company.claimed === true) return true;\n if ((company.memberCount ?? 0) >= COMPANY_PAGE_ROSTER_MIN_MEMBERS) return true;\n return companyPageRichness(company) >= COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS;\n}\n"],"mappings":";AA6CO,IAAM,uCAAuC;AAG7C,IAAM,sCAAsC;AAG5C,IAAM,kCAAkC;AAE/C,SAAS,iBAAiB,OAAyB;AACjD,SAAO,OAAO,UAAU,YAAY,MAAM,KAAK,EAAE,SAAS;AAC5D;AAEA,SAAS,gBAAgB,OAAyB;AAChD,SAAO,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK;AAC3D;AAEA,SAAS,YAAY,QAA6D;AAChF,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,OAAO,OAAO,MAAM,EAAE,KAAK,CAAC,MAAM,iBAAiB,CAAC,KAAK,gBAAgB,CAAC,CAAC;AACpF;AAMO,SAAS,oBAAoB,SAAuC;AACzE,MAAI,QAAQ;AACZ,QAAM,cAAc,QAAQ,aAAa,KAAK,KAAK;AACnD,MAAI,YAAY,UAAU,oCAAqC,UAAS;AACxE,MAAI,iBAAiB,QAAQ,OAAO,EAAG,UAAS;AAChD,MAAI,gBAAgB,QAAQ,aAAa,EAAG,UAAS;AACrD,MAAI,gBAAgB,QAAQ,OAAO,KAAK,iBAAiB,QAAQ,OAAO,EAAG,UAAS;AACpF,MAAI,iBAAiB,QAAQ,OAAO,KAAK,YAAY,QAAQ,EAAE,EAAG,UAAS;AAC3E,MAAI,YAAY,QAAQ,aAAa,EAAG,UAAS;AACjD,MAAI,iBAAiB,QAAQ,QAAQ,KAAK,QAAQ,mBAAmB,MAAO,UAAS;AACrF,MAAI,gBAAgB,QAAQ,WAAW,MAAM,QAAQ,eAAe,MAAM,EAAG,UAAS;AACtF,SAAO;AACT;AAaO,SAAS,uBAAuB,SAAwC;AAC7E,MAAI,CAAC,iBAAiB,QAAQ,aAAa,EAAG,QAAO;AACrD,MAAI,QAAQ,YAAY,KAAM,QAAO;AACrC,OAAK,QAAQ,eAAe,MAAM,gCAAiC,QAAO;AAC1E,SAAO,oBAAoB,OAAO,KAAK;AACzC;","names":[]}
@@ -45,14 +45,19 @@ import {
45
45
  } from "./org-floor.js";
46
46
  import {
47
47
  isCompanyPageIndexable,
48
- COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS
48
+ companyPageRichness,
49
+ COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS,
50
+ COMPANY_PAGE_MIN_DESCRIPTION_LENGTH,
51
+ COMPANY_PAGE_ROSTER_MIN_MEMBERS
49
52
  } from "./company-page-indexable.js";
50
53
  import { countRecentActivity } from "./recent-activity.js";
51
54
  import { followingFeedFallbackApp } from "./following-feed-fallback.js";
52
55
  import { SELF_APP_ID, excludeSelfApp } from "./self-app.js";
53
56
  import { actorShowsIdentity } from "./actor-identity.js";
54
57
  export {
58
+ COMPANY_PAGE_MIN_DESCRIPTION_LENGTH,
55
59
  COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS,
60
+ COMPANY_PAGE_ROSTER_MIN_MEMBERS,
56
61
  COMPLETENESS_MAX_SCORE,
57
62
  DATE_LOOKAHEAD_MONTHS,
58
63
  DIMENSIONS_MAX_SCORE,
@@ -61,6 +66,7 @@ export {
61
66
  SELF_APP_ID,
62
67
  actorShowsIdentity,
63
68
  classifyEntityRef,
69
+ companyPageRichness,
64
70
  completenessPercent,
65
71
  completenessScore,
66
72
  countFilledDimensions,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/logic/index.ts"],"sourcesContent":["export {\n COMPLETENESS_MAX_SCORE,\n completenessPercent,\n completenessScore,\n type ProfileCompletion,\n} from './profile-completeness.js';\n\nexport {\n DIMENSIONS_MAX_SCORE,\n MIN_SKILLS,\n countFilledDimensions,\n dimensionsFromInputs,\n getFilledDimensionsMap,\n profileToDimensionInputs,\n type DimensionKey,\n type DimensionMap,\n type ProfileDimensionInputs,\n} from './profile-dimensions.js';\n\nexport { pickPrimaryPosition, type PrimaryPositionCandidate } from './primary-position.js';\n\nexport {\n DATE_LOOKAHEAD_MONTHS,\n isBeyondLookahead,\n isUpcomingStart,\n type DateLookaheadKind,\n} from './date-lookahead.js';\n\nexport { pickPrimaryFlagged, type PrimaryFlagCandidate } from './primary-item.js';\n\nexport {\n summarizeProfileView,\n type ProfileSummary,\n type SummarizeProfileViewOptions,\n} from './profile-summary.js';\n\nexport { isPseudoEmployer } from './pseudo-employer.js';\nexport { looksLikeDomain } from './domain-detect.js';\nexport {\n entityDisambiguationLabel,\n searchResultDisambiguation,\n entityResultKey,\n type DisambiguationFields,\n} from './entity-disambiguation.js';\nexport {\n classifyEntityRef,\n isLinked,\n ENTITY_REF_ANCHORS,\n type EntityRefAnchor,\n} from './entity-ref-anchor.js';\nexport { resolveAgentRef, type AgentRefFlat } from './agent-ref.js';\nexport {\n qualifiesAsOrg,\n isRegistrableDomainHandle,\n hasPersonalProfileContent,\n rendersPersonalProfile,\n rendersCompanyProfile,\n resolveAccountFacetMode,\n} from './org-floor.js';\nexport type { PersonalFacetContent } from './org-floor.js';\nexport {\n isCompanyPageIndexable,\n COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS,\n type CompanyFirmographics,\n} from './company-page-indexable.js';\nexport { countRecentActivity, type DailyActivityCount } from './recent-activity.js';\nexport { followingFeedFallbackApp } from './following-feed-fallback.js';\nexport { SELF_APP_ID, excludeSelfApp, type AppWithId } from './self-app.js';\nexport { actorShowsIdentity } from './actor-identity.js';\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEP,SAAS,2BAA0D;AAEnE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,0BAAqD;AAE9D;AAAA,EACE;AAAA,OAGK;AAEP,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,uBAA0C;AACnD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAAoD;AAC7D,SAAS,gCAAgC;AACzC,SAAS,aAAa,sBAAsC;AAC5D,SAAS,0BAA0B;","names":[]}
1
+ {"version":3,"sources":["../../src/logic/index.ts"],"sourcesContent":["export {\n COMPLETENESS_MAX_SCORE,\n completenessPercent,\n completenessScore,\n type ProfileCompletion,\n} from './profile-completeness.js';\n\nexport {\n DIMENSIONS_MAX_SCORE,\n MIN_SKILLS,\n countFilledDimensions,\n dimensionsFromInputs,\n getFilledDimensionsMap,\n profileToDimensionInputs,\n type DimensionKey,\n type DimensionMap,\n type ProfileDimensionInputs,\n} from './profile-dimensions.js';\n\nexport { pickPrimaryPosition, type PrimaryPositionCandidate } from './primary-position.js';\n\nexport {\n DATE_LOOKAHEAD_MONTHS,\n isBeyondLookahead,\n isUpcomingStart,\n type DateLookaheadKind,\n} from './date-lookahead.js';\n\nexport { pickPrimaryFlagged, type PrimaryFlagCandidate } from './primary-item.js';\n\nexport {\n summarizeProfileView,\n type ProfileSummary,\n type SummarizeProfileViewOptions,\n} from './profile-summary.js';\n\nexport { isPseudoEmployer } from './pseudo-employer.js';\nexport { looksLikeDomain } from './domain-detect.js';\nexport {\n entityDisambiguationLabel,\n searchResultDisambiguation,\n entityResultKey,\n type DisambiguationFields,\n} from './entity-disambiguation.js';\nexport {\n classifyEntityRef,\n isLinked,\n ENTITY_REF_ANCHORS,\n type EntityRefAnchor,\n} from './entity-ref-anchor.js';\nexport { resolveAgentRef, type AgentRefFlat } from './agent-ref.js';\nexport {\n qualifiesAsOrg,\n isRegistrableDomainHandle,\n hasPersonalProfileContent,\n rendersPersonalProfile,\n rendersCompanyProfile,\n resolveAccountFacetMode,\n} from './org-floor.js';\nexport type { PersonalFacetContent } from './org-floor.js';\nexport {\n isCompanyPageIndexable,\n companyPageRichness,\n COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS,\n COMPANY_PAGE_MIN_DESCRIPTION_LENGTH,\n COMPANY_PAGE_ROSTER_MIN_MEMBERS,\n type CompanyFirmographics,\n} from './company-page-indexable.js';\nexport { countRecentActivity, type DailyActivityCount } from './recent-activity.js';\nexport { followingFeedFallbackApp } from './following-feed-fallback.js';\nexport { SELF_APP_ID, excludeSelfApp, type AppWithId } from './self-app.js';\nexport { actorShowsIdentity } from './actor-identity.js';\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEP,SAAS,2BAA0D;AAEnE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AAEP,SAAS,0BAAqD;AAE9D;AAAA,EACE;AAAA,OAGK;AAEP,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,uBAA0C;AACnD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAAoD;AAC7D,SAAS,gCAAgC;AACzC,SAAS,aAAa,sBAAsC;AAC5D,SAAS,0BAA0B;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@singi-labs/sifa-sdk",
3
- "version": "0.19.57",
3
+ "version": "0.19.58",
4
4
  "description": "Sifa SDK — public client library for the Sifa AppView on AT Protocol. Shared by sifa-web and sifa-app.",
5
5
  "license": "MIT",
6
6
  "type": "module",