π― Target: next release (v1.2.0 β see #121).
Context
The public docs site already documents part of the tools/ and types/ surface, under a consistent
convention in docs/content/docs/2.working-with-the-rest-api/:
- Tools β
80.tools-<name>.md, frontmatter category: 'Tools'
- Types β
90.types-<name>.md, frontmatter category: 'Types'
- Each page carries
title / description / navigation.title / a links: block pointing at the backing
source file (rules in .github/contributing/documentation.md).
The gap is that only a subset is covered, and several exported symbols still carry @todo add docs in source
(e.g. tools/index.ts, types/payloads.ts).
Everything below is part of the public contract β it's all re-exported from
packages/jssdk/src/index.ts β so it deserves a page.
tools/ β current coverage vs gaps
| Source |
Public export |
Doc page |
Status |
tools/text.ts |
Text |
80.tools-text.md |
β
|
tools/type.ts |
Type |
80.tools-type.md |
β
|
tools/browser.ts |
Browser |
80.tools-browser.md |
β
|
tools/use-formatters.ts |
useFormatter, FormatterIban, IbanSpecification |
80.tools-use-formatters.md |
β verify FormatterIban/IbanSpecification are covered, not just useFormatter |
tools/index.ts |
pick, omit, isArrayOfArray, getEnumValue |
β |
β missing (all four have @todo add docs) |
tools/environment.ts |
Environment, getEnvironment() |
β |
β missing |
tools/scroll-size.ts |
scroll-size util |
β |
β missing |
tools/uuidv7.ts |
(internal β surfaced via Text) |
β |
mention under Text |
types/ β current coverage vs gaps
Only 2 of ~17 type modules have a dedicated page (90.types-iresult.md, 90.types-type-b24.md). The two the
request calls out:
types/common.ts β the foundational building blocks used everywhere:
scalar aliases (NumberString, ISODate, BoolString, GenderString), the field-metadata shapes (Fields,
MultiField, MultiFieldArray, UserFieldType), and the DataType enum. No page.
types/payloads.ts β the REST response envelope: PayloadTime,
GetPayload, ListPayload, BatchPayload / BatchPayloadResult, SuccessPayload, Payload. SuccessPayload
already has a good JSDoc; the rest carry @todo / @todo ! add api3 markers, so the v3-envelope story is also
incomplete in source. No page.
Other undocumented types/* modules (for the overview/follow-ups below): auth, user, slider, handler,
placement/*, crm/*, catalog, bizproc/*, event, plus http/limiters/b24-helper/pull which are only
partially surfaced through the Core / Limiters / Helper / Pull pages.
Proposed placement (where what goes)
Following the existing convention exactly β new files in docs/content/docs/2.working-with-the-rest-api/, copy
frontmatter from the nearest existing page, and add a links: entry to the backing source file:
Tools
| New page |
Covers |
category |
80.tools-object-helpers.md |
pick, omit, getEnumValue, isArrayOfArray |
Tools |
80.tools-environment.md |
getEnvironment(), Environment enum |
Tools |
| Scroll size |
fold a short "Scroll size" section into 80.tools-browser.md (small surface β avoids a near-empty page); split into 80.tools-scroll-size.md only if preferred |
Tools |
Types
| New page |
Covers |
category |
90.types-common.md |
all of common.ts (scalars, field shapes, DataType) |
Types |
90.types-payloads.md |
all of payloads.ts (envelope types) + a note on the v2/v3 envelope status |
Types |
90.types-index.md (or extend the section index) |
a types overview table mapping every types/* module β its page (or "internal / surfaced via X"), so the whole directory is navigable |
Types |
Acceptance criteria
Tools docs
Types docs (the two named files)
Whole types/ directory
Cross-cutting
Out of scope
- Per-domain type pages beyond
common + payloads β captured as follow-up rows above, not required for v1.2.0.
- Restructuring the existing documented pages.
Related
Context
The public docs site already documents part of the
tools/andtypes/surface, under a consistentconvention in
docs/content/docs/2.working-with-the-rest-api/:80.tools-<name>.md, frontmattercategory: 'Tools'90.types-<name>.md, frontmattercategory: 'Types'title/description/navigation.title/ alinks:block pointing at the backingsource file (rules in
.github/contributing/documentation.md).The gap is that only a subset is covered, and several exported symbols still carry
@todo add docsin source(e.g.
tools/index.ts,types/payloads.ts).Everything below is part of the public contract β it's all re-exported from
packages/jssdk/src/index.tsβ so it deserves a page.tools/β current coverage vs gapstools/text.tsText80.tools-text.mdtools/type.tsType80.tools-type.mdtools/browser.tsBrowser80.tools-browser.mdtools/use-formatters.tsuseFormatter,FormatterIban,IbanSpecification80.tools-use-formatters.mdFormatterIban/IbanSpecificationare covered, not justuseFormattertools/index.tspick,omit,isArrayOfArray,getEnumValue@todo add docs)tools/environment.tsEnvironment,getEnvironment()tools/scroll-size.tstools/uuidv7.tsText)Texttypes/β current coverage vs gapsOnly 2 of ~17 type modules have a dedicated page (
90.types-iresult.md,90.types-type-b24.md). The two therequest calls out:
types/common.tsβ the foundational building blocks used everywhere:scalar aliases (
NumberString,ISODate,BoolString,GenderString), the field-metadata shapes (Fields,MultiField,MultiFieldArray,UserFieldType), and theDataTypeenum. No page.types/payloads.tsβ the REST response envelope:PayloadTime,GetPayload,ListPayload,BatchPayload/BatchPayloadResult,SuccessPayload,Payload.SuccessPayloadalready has a good JSDoc; the rest carry
@todo/@todo ! add api3markers, so the v3-envelope story is alsoincomplete in source. No page.
Other undocumented
types/*modules (for the overview/follow-ups below):auth,user,slider,handler,placement/*,crm/*,catalog,bizproc/*,event, plushttp/limiters/b24-helper/pullwhich are onlypartially surfaced through the Core / Limiters / Helper / Pull pages.
Proposed placement (where what goes)
Following the existing convention exactly β new files in
docs/content/docs/2.working-with-the-rest-api/, copyfrontmatter from the nearest existing page, and add a
links:entry to the backing source file:Tools
category80.tools-object-helpers.mdpick,omit,getEnumValue,isArrayOfArrayTools80.tools-environment.mdgetEnvironment(),EnvironmentenumTools80.tools-browser.md(small surface β avoids a near-empty page); split into80.tools-scroll-size.mdonly if preferredToolsTypes
category90.types-common.mdcommon.ts(scalars, field shapes,DataType)Types90.types-payloads.mdpayloads.ts(envelope types) + a note on the v2/v3 envelope statusTypes90.types-index.md(or extend the section index)types/*module β its page (or "internal / surfaced via X"), so the whole directory is navigableTypesAcceptance criteria
Tools docs
80.tools-object-helpers.mdforpick/omit/getEnumValue/isArrayOfArray, and replace the@todo add docsJSDoc intools/index.tswith real descriptions in thesame PR (docs ship with code per the contributing guide).
80.tools-environment.mdforgetEnvironment()+Environment.80.tools-use-formatters.mddocumentsFormatterIban/IbanSpecification, not onlyuseFormatter.Types docs (the two named files)
90.types-common.mdcovering every export ofcommon.ts, with a one-line "where it's used" for thenon-obvious shapes (
MultiField,UserFieldType,DataType).90.types-payloads.mdcovering the envelope types; clarify which fields are v2-only vs v3 and reflect(or resolve) the
@todo ! add api3markers in source.Whole
types/directorytypes/*module and links to its page or notes where it'ssurfaced β this is the navigable map for the directory.
auth,user,crm,catalog,bizproc,event,placement,pull,http,limiters) as follow-up rows;common+payloadsare the priority for this release.Cross-cutting
links:to its source file and slots into the right.navigation.ymlorder.skills/file references these helpers/types, refresh it in the same PR (agent-facing mirror).Out of scope
common+payloadsβ captured as follow-up rows above, not required for v1.2.0.Related
packages/jssdk/src/tools/packages/jssdk/src/types/β incl.common.ts,payloads.ts.github/contributing/documentation.md90.types-type-b24.md,80.tools-text.mdv1.2.0milestone and triage open issues against itΒ #121 β v1.2.0 milestone / triage (this targets it)