@sanoma-ai/workflows 0.5.0 → 0.6.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/README.md +1 -1
- package/dist/describe.d.ts +1 -1
- package/dist/describe.js +1 -1
- package/dist/describe.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +8 -0
- package/dist/shared.js +8 -0
- package/dist/shared.js.map +1 -1
- package/dist/sites.d.ts +38 -1
- package/dist/sites.js +153 -26
- package/dist/sites.js.map +1 -1
- package/package.json +1 -1
- package/src/describe.ts +1 -1
- package/src/index.ts +1 -0
- package/src/shared.ts +11 -0
- package/src/sites.ts +198 -33
package/README.md
CHANGED
|
@@ -580,7 +580,7 @@ A sandbox run does not survive a worker restart: its fakes keep their state in t
|
|
|
580
580
|
`@sanoma-ai/app` is one UI over a config; another (a Slack bot, an internal tool) can be built on the same pieces, which the package exports for that:
|
|
581
581
|
|
|
582
582
|
- `describeConfig(config)` and its types (`ConfigDescription`, `WorkflowEntry`, `OpEntry`, `VendorEntry`, `ResourceTypeEntry`, `DeclaredResource`, `ResourceProblem`), and `readDataFiles(root, connectors)` and `readResources(config)`, from `@sanoma-ai/workflows/describe`: what to render, as plain JSON, with each workflow's outline. It is a separate entry so the worker never loads the parser the outline uses, and the lint refuses it in workflow files. `resolveConfig(config)` returns the checked config as a `ResolvedConfig`, with the operations and drivers by id, the resource types by `<vendor>.<type>` (`types`), the workflows by name (the built-ins `drift`, `apply` and `call` among them), its `root` and each vendor's `credentials` (`CredentialStatus`); `isOp(x)` tells an operation from a built-in in a workflow's `uses`.
|
|
583
|
-
- `readSites(root, description, connectors, policies?)`, from `@sanoma-ai/workflows/describe`, which `describeConfig` returns as `sites`: what each site calls, read with oxc and never run, for a workflow's **Used by**. A site is a folder of `sites/` with a `routes/`, named as a URL segment; its `routes/**` and `components/**` (`.ts`, `.tsx`, less tests) are read for each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`, called or passed on (`queryFn: api.data.leads.list`): `api.<name>` and `api.<name>.<method>` are the workflow whose `apiNameOf` is `<name>`, `api.data.<collection>.<op>` a collection, `api.<vendor>.<resource>.<op>` the operation of that id. Each is a `SiteCall` (`kind`, `target`, `method`, what it calls of a workflow or collection as written (`start`, `latest`, `list`), `via`, `file`, `line`, `column`, and `page`, the page's path from its `createFileRoute` or `createLazyFileRoute` id, in a page's file); a `SiteEntry` holds a site's `name`, its `title` (a string `defineSite({ title })` in `site.ts`), its `calls` and its `problems`: each call to a workflow, collection or operation the config does not have (`calls workflow "<name>", which does not exist`), or to an operation a page may not call directly, and, given the policies (`describeConfig` passes them unless they have problems), on a public site each start (`api.<name>(…)`, `.start(…)`, a `RunForm`) and direct call that no company `permit` could let a visitor make, its `when` and `unless` aside (one naming `anonymous`; on a site with a `login`, `anonymous` or the group `visitors`), whose message ends with the permit to add, and, whatever the policies, its call of a built-in workflow or read of a workflow's runs but `.result` (`.latest`, `.runs`, `.approvals`, `.ledger`), which the app refuses a visitor; which `sanoma check` fails on. A name not written out (a variable, a template with holes, a computed member) is skipped, as is a call through a namespace import or a destructured `api`.
|
|
583
|
+
- `readSites(root, description, connectors, policies?)`, from `@sanoma-ai/workflows/describe`, which `describeConfig` returns as `sites`: what each site calls, read with oxc and never run, for a workflow's **Used by**. A site is a folder of `sites/` with a `routes/`, named as a URL segment; its `routes/**` and `components/**` (`.ts`, `.tsx`, less tests) are read for each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`, called or passed on (`queryFn: api.data.leads.list`): `api.<name>` and `api.<name>.<method>` are the workflow whose `apiNameOf` is `<name>`, `api.data.<collection>.<op>` a collection, `api.<vendor>.<resource>.<op>` the operation of that id. Each is a `SiteCall` (`kind`, `target`, `method`, what it calls of a workflow or collection as written (`start`, `latest`, `list`), `via`, `file`, `line`, `column`, and `page`, the page's path from its `createFileRoute` or `createLazyFileRoute` id, in a page's file); a `SiteEntry` holds a site's `name`, its `title` (a string `defineSite({ title })` in `site.ts`), its `pages` (each `SitePage` a `path` from a route file's id, one per path, a layout and its index being one; and on a path with one parameter, such as `/sites/www/blog/$slug`, `content`, the one kind its file reads an entry of by that parameter, `content.<kind>.get(params.slug)` (or `slug`, destructured) with `content` from `sanoma/site`, for the app's sitemap and its pages' languages, which `siteContentPages(root)` gives the app's build alone, path to kind), its `calls`, its `warnings` (on a public site, each page with one parameter whose file reads content but not by that parameter, so the sitemap lists none of its pages: a warning `sanoma check` prints and does not fail on) and its `problems`: each call to a workflow, collection or operation the config does not have (`calls workflow "<name>", which does not exist`), or to an operation a page may not call directly, and, given the policies (`describeConfig` passes them unless they have problems), on a public site each start (`api.<name>(…)`, `.start(…)`, a `RunForm`) and direct call that no company `permit` could let a visitor make, its `when` and `unless` aside (one naming `anonymous`; on a site with a `login`, `anonymous` or the group `visitors`), whose message ends with the permit to add, and, whatever the policies, its call of a built-in workflow or read of a workflow's runs but `.result` (`.latest`, `.runs`, `.approvals`, `.ledger`), which the app refuses a visitor; which `sanoma check` fails on. A name not written out (a variable, a template with holes, a computed member) is skipped, as is a call through a namespace import or a destructured `api`.
|
|
584
584
|
- `generateApi(description)` and `writeApi(root, description)`, from `@sanoma-ai/workflows/describe`: a site's typed `api`, `.sanoma/api.ts` (`API_FILE`), from a `ConfigDescription`, types and JSDoc only and the same text for the same description. It holds a record type per collection and `CompanyApi`: `<apiNameOf(workflow)>: WorkflowFn<input>` per workflow, built-ins too; `<vendor>: { <resource>: { <op>: OpFn<input> } }` for the operations `direct` marks; `data: { <collection>: CollectionApi<record> }`; each member documented from its title or description. Then it augments `sanoma/site`'s `Register`. Inputs are typed from their JSON Schema for the kinds a start form draws, constants, and unions of them (`null` among them); anything else, and every output, is `unknown`. A workflow with `describeConfig`'s api-name problem is left out (`problems`). `writeApi` writes only when the text differs (`wrote`).
|
|
585
585
|
- `SanomaClient`: call an operation directly (`call`, see [Direct calls](#direct-calls)), start runs, list them (`runs({ limit, status, workflow })`) or read a workflow's last result (`latest`), read a run's ledger and approvals, decide approvals, with the checks described above, and start a drift check or an apply and read its report (`drift`, `driftReport`, `apply`, `applyReport`, see [Drift](#drift) and [Apply](#apply)).
|
|
586
586
|
- `APPROVALS_EVENT` and `decisionEventOf(approvalId)`: the DBOS events a run publishes its approvals and each decision on, for a UI that reads DBOS directly. `ApprovalMessage` is the zod schema of a decision as a run reads it. `RunArgs` is what a run receives: its input, `startedBy` and, for a sandbox run, its scenario as `sandbox`.
|
package/dist/describe.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export { Reference, type DataValue } from "./datafile.ts";
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function readResources(config: SanomaConfig): DeclaredResource[];
|
|
21
21
|
export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, type Binding, type Bindings, type Rebind, } from "./lockfile.ts";
|
|
22
|
-
export { readSites, type SiteCall, type SiteEntry } from "./sites.ts";
|
|
22
|
+
export { readSites, type SiteCall, type SiteEntry, type SitePage, siteContentPages, siteLocales } from "./sites.ts";
|
|
23
23
|
export { API_FILE, generateApi, writeApi, writeGenerated } from "./sdk.ts";
|
|
24
24
|
export { SCHEMA_FILE, schemaOf, schemaText, type CedarSchemaJson } from "./schema.ts";
|
|
25
25
|
export type { ApplyInput, ApplyPlan, ApplyReport, ApplyResult, PlanAnswer, PlanStep } from "./apply.ts";
|
package/dist/describe.js
CHANGED
|
@@ -34,7 +34,7 @@ export function readResources(config) {
|
|
|
34
34
|
}
|
|
35
35
|
export { LOCKFILE, readLockfile, serializeLockfile, writeLockfile, diffLockfiles, } from "./lockfile.js";
|
|
36
36
|
// What the sites call, read from their source: a workflow's Used by.
|
|
37
|
-
export { readSites } from "./sites.js";
|
|
37
|
+
export { readSites, siteContentPages, siteLocales } from "./sites.js";
|
|
38
38
|
// The generated SDK, `.sanoma/api.ts`: a site's `api` typed from this description.
|
|
39
39
|
export { API_FILE, generateApi, writeApi, writeGenerated } from "./sdk.js";
|
|
40
40
|
// The Cedar schema, `.sanoma/schema.cedarschema`: what a company's policies are validated and decided against.
|
package/dist/describe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../src/describe.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,6 @@ export { resolveRevision, SOURCE_RESOLVE, type Source } from "./source.ts";
|
|
|
23
23
|
export type { HostCapabilities, HostLifetime, HostOutputs, HostSpec } from "./host.ts";
|
|
24
24
|
export { type CallOptions, SanomaClient, type RunsFilter, type RunSummary, type StartOptions, type StoredSecret, } from "./client.ts";
|
|
25
25
|
export { dbosClient } from "./db.ts";
|
|
26
|
-
export { AGENTS, ANONYMOUS, ANONYMOUS_PRINCIPAL, approverLabel, approverOf, declaresPeople, type PeopleResource, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, isVisitor, mayDecide, problemAt, problemLine, RUN_STATUSES, type RunStatus, VISITORS, visitorPrincipal, } from "./shared.ts";
|
|
26
|
+
export { AGENTS, ANONYMOUS, ANONYMOUS_PRINCIPAL, approverLabel, approverOf, declaresPeople, type PeopleResource, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, isVisitor, mayDecide, problemAt, problemLine, RUN_STATUSES, type RunStatus, VISITORS, visitorPrincipal, warningLine, } from "./shared.ts";
|
|
27
27
|
export { defineDriver, type DriverImpl, type OpIdOf } from "./op.ts";
|
|
28
28
|
export { defineSteps, type Expect, type RunView, type Seed, type Steps } from "./steps.ts";
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { SanomaClient, } from "./client.js";
|
|
|
25
25
|
// A raw DBOS client on the runtime's database, for tests and tools that read DBOS directly.
|
|
26
26
|
export { dbosClient } from "./db.js";
|
|
27
27
|
// Also at `@sanoma-ai/workflows/shared`, which a browser bundle can import.
|
|
28
|
-
export { AGENTS, ANONYMOUS, ANONYMOUS_PRINCIPAL, approverLabel, approverOf, declaresPeople, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, isVisitor, mayDecide, problemAt, problemLine, RUN_STATUSES, VISITORS, visitorPrincipal, } from "./shared.js";
|
|
28
|
+
export { AGENTS, ANONYMOUS, ANONYMOUS_PRINCIPAL, approverLabel, approverOf, declaresPeople, personOf, principalOf, RUNTIME_AGENTS, credentialReady, DEFAULT_SLEEP_NAME, ENDED_STATUSES, errorMessage, isEnded, isLoopback, isVisitor, mayDecide, problemAt, problemLine, RUN_STATUSES, VISITORS, visitorPrincipal, warningLine, } from "./shared.js";
|
|
29
29
|
// describeConfig, with the outline and every problem lintWorkflow finds, lives at
|
|
30
30
|
// `@sanoma-ai/workflows/describe`: what a UI renders from, apart from what runs. The worker reads
|
|
31
31
|
// each workflow's outline too, to hold its runs to it.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAOhB,eAAe,EACf,WAAW,EAEX,IAAI,EACJ,YAAY,EAMZ,eAAe,EAEf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,SAAS,GAWV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAGf,cAAc,EACd,YAAY,EAQZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAA0C,MAAM,aAAa,CAAC;AACtH,2GAA2G;AAC3G,gIAAgI;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAyB,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,cAAc,EACd,UAAU,GAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,cAAc,GAMf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,IAAI,EAIJ,UAAU,EAIV,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,SAAS,EAIT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAmC,MAAM,aAAa,CAAC;AAC3E,qGAAqG;AACrG,OAAO,EACL,cAAc,EACd,QAAQ,EACR,aAAa,EAEb,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAE3E,OAAO,EAEL,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,4FAA4F;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,4EAA4E;AAC5E,OAAO,EACL,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EAEZ,QAAQ,EACR,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAOhB,eAAe,EACf,WAAW,EAEX,IAAI,EACJ,YAAY,EAMZ,eAAe,EAEf,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,cAAc,EACd,SAAS,GAWV,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAGf,cAAc,EACd,YAAY,EAQZ,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAA0C,MAAM,aAAa,CAAC;AACtH,2GAA2G;AAC3G,gIAAgI;AAChI,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAyB,aAAa,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EACL,cAAc,EACd,UAAU,GAMX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,cAAc,GAMf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,IAAI,EAIJ,UAAU,EAIV,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EAEX,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,SAAS,EAIT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,GAKf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAmC,MAAM,aAAa,CAAC;AAC3E,qGAAqG;AACrG,OAAO,EACL,cAAc,EACd,QAAQ,EACR,aAAa,EAEb,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAe,MAAM,aAAa,CAAC;AAE3E,OAAO,EAEL,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,4FAA4F;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,4EAA4E;AAC5E,OAAO,EACL,MAAM,EACN,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EAEd,QAAQ,EACR,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EAEZ,QAAQ,EACR,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,kFAAkF;AAClF,kGAAkG;AAClG,uDAAuD;AACvD,OAAO,EAAE,YAAY,EAAgC,MAAM,SAAS,CAAC;AACrE,6FAA6F;AAC7F,OAAO,EAAE,WAAW,EAAoD,MAAM,YAAY,CAAC;AAC3F,8EAA8E"}
|
package/dist/shared.d.ts
CHANGED
|
@@ -32,6 +32,12 @@ export declare const EFFECTS: readonly ["read", "write", "publish", "send", "mon
|
|
|
32
32
|
export declare const WORKFLOW_ACTION = "workflow:";
|
|
33
33
|
/** A site's folder name under `sites/`, its URL segment: what the app mounts and `readSites` reads. */
|
|
34
34
|
export declare const SITE_NAME: RegExp;
|
|
35
|
+
/**
|
|
36
|
+
* A public site's language, as `defineSite({ locales })` names it: a BCP 47 language tag of a
|
|
37
|
+
* language and subtags (`en`, `fr`, `pt-BR`), which is also its URL segment (`/pt-BR/…`) and a
|
|
38
|
+
* content file's suffix (`<slug>.pt-BR.md`).
|
|
39
|
+
*/
|
|
40
|
+
export declare const LOCALE: RegExp;
|
|
35
41
|
/** A public site's domain: a host name of two labels or more, lowercase (`sanoma.example`). */
|
|
36
42
|
export declare const DOMAIN_NAME: RegExp;
|
|
37
43
|
/**
|
|
@@ -209,6 +215,8 @@ export declare function problemLine(p: {
|
|
|
209
215
|
column?: number;
|
|
210
216
|
message: string;
|
|
211
217
|
}): string;
|
|
218
|
+
/** A warning as one line, as `problemLine` with `warning: ` before its message: what is worth fixing but not wrong. */
|
|
219
|
+
export declare const warningLine: (p: Parameters<typeof problemLine>[0]) => string;
|
|
212
220
|
/**
|
|
213
221
|
* Whether a host is this machine: `localhost`, `127.x.x.x` or `::1` (bare, or bracketed as a URL's
|
|
214
222
|
* `hostname` has it). The one rule for what the app listens on and answers to, and for where the
|
package/dist/shared.js
CHANGED
|
@@ -24,6 +24,12 @@ export const EFFECTS = ["read", "write", "publish", "send", "money", "access"];
|
|
|
24
24
|
export const WORKFLOW_ACTION = "workflow:";
|
|
25
25
|
/** A site's folder name under `sites/`, its URL segment: what the app mounts and `readSites` reads. */
|
|
26
26
|
export const SITE_NAME = /^[a-z][a-z0-9-]*$/;
|
|
27
|
+
/**
|
|
28
|
+
* A public site's language, as `defineSite({ locales })` names it: a BCP 47 language tag of a
|
|
29
|
+
* language and subtags (`en`, `fr`, `pt-BR`), which is also its URL segment (`/pt-BR/…`) and a
|
|
30
|
+
* content file's suffix (`<slug>.pt-BR.md`).
|
|
31
|
+
*/
|
|
32
|
+
export const LOCALE = /^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$/;
|
|
27
33
|
/** A public site's domain: a host name of two labels or more, lowercase (`sanoma.example`). */
|
|
28
34
|
export const DOMAIN_NAME = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/;
|
|
29
35
|
/**
|
|
@@ -269,6 +275,8 @@ export function problemLine(p) {
|
|
|
269
275
|
return p.message;
|
|
270
276
|
return p.line === undefined ? `${p.file}: ${p.message}` : `${p.file}:${p.line}:${p.column ?? 1}: ${p.message}`;
|
|
271
277
|
}
|
|
278
|
+
/** A warning as one line, as `problemLine` with `warning: ` before its message: what is worth fixing but not wrong. */
|
|
279
|
+
export const warningLine = (p) => problemLine({ ...p, message: `warning: ${p.message}` });
|
|
272
280
|
/**
|
|
273
281
|
* Whether a host is this machine: `localhost`, `127.x.x.x` or `::1` (bare, or bracketed as a URL's
|
|
274
282
|
* `hostname` has it). The one rule for what the app listens on and answers to, and for where the
|
package/dist/shared.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"}
|
package/dist/sites.d.ts
CHANGED
|
@@ -31,6 +31,17 @@ export interface SiteCall {
|
|
|
31
31
|
*/
|
|
32
32
|
page?: string;
|
|
33
33
|
}
|
|
34
|
+
/** A page of a site: a route file's path, and for a page per content entry the kind it reads. */
|
|
35
|
+
export interface SitePage {
|
|
36
|
+
/** As `SiteCall.page` has it: `/sites/www`, `/sites/www/blog/$slug`. */
|
|
37
|
+
path: string;
|
|
38
|
+
/**
|
|
39
|
+
* For a path with one parameter (`$slug`), the content kind whose entries are its pages: the one
|
|
40
|
+
* kind its file reads by that parameter, `content.<kind>.get(params.slug)` (or `slug`,
|
|
41
|
+
* destructured) with `content` from `sanoma/site`.
|
|
42
|
+
*/
|
|
43
|
+
content?: string;
|
|
44
|
+
}
|
|
34
45
|
/** A site, `sites/<name>/`, and what it calls. */
|
|
35
46
|
export interface SiteEntry {
|
|
36
47
|
/** Its folder's name, where it is mounted: `/sites/<name>`. */
|
|
@@ -41,8 +52,15 @@ export interface SiteEntry {
|
|
|
41
52
|
public?: true;
|
|
42
53
|
/** `defineSite({ login })`, the connector whose login half signs visitors in, as written: one that names none is among `problems`. */
|
|
43
54
|
login?: string;
|
|
55
|
+
/**
|
|
56
|
+
* `defineSite({ locales })`, a public site's languages, the first its default: kept only when
|
|
57
|
+
* every one is a `LOCALE`, written once, on a public site with no login; else a problem.
|
|
58
|
+
*/
|
|
59
|
+
locales?: string[];
|
|
44
60
|
/** The host a public site answers on: set by `startApp` from its `domains`, never by `readSites`. */
|
|
45
61
|
domain?: string;
|
|
62
|
+
/** Its pages, by path: one for each path its `routes/` files give (a layout and its index are one). */
|
|
63
|
+
pages: SitePage[];
|
|
46
64
|
/** Its calls, by file and then in the file's order. */
|
|
47
65
|
calls: SiteCall[];
|
|
48
66
|
/**
|
|
@@ -53,12 +71,19 @@ export interface SiteEntry {
|
|
|
53
71
|
problems: (LintProblem & {
|
|
54
72
|
file: string;
|
|
55
73
|
})[];
|
|
74
|
+
/**
|
|
75
|
+
* On a public site, each page with one parameter whose file reads content the sitemap cannot
|
|
76
|
+
* tie to it (`SitePage.content`), so the sitemap lists none of its pages: at the first read.
|
|
77
|
+
*/
|
|
78
|
+
warnings: (LintProblem & {
|
|
79
|
+
file: string;
|
|
80
|
+
})[];
|
|
56
81
|
}
|
|
57
82
|
/**
|
|
58
83
|
* The sites under `root`: each folder of `sites/` with a `routes/` whose name is a URL segment,
|
|
59
84
|
* by name (as `@sanoma-ai/app/build`'s `sitesOf` mounts them). Reads `routes/**` and
|
|
60
85
|
* `components/**` (`.ts` and `.tsx`, less tests and declarations) of each with oxc, never running
|
|
61
|
-
* them: each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
86
|
+
* them: each page (`SitePage`, from a route's id), each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
62
87
|
* called or passed on (`queryFn: api.data.leads.list`):
|
|
63
88
|
* `api.<name>` and `api.<name>.<method>` are a workflow, `api.data.<collection>.<op>` a collection,
|
|
64
89
|
* and `api.<vendor>.<resource>.<op>` an operation. A name that is not written out (a variable, a
|
|
@@ -73,6 +98,18 @@ export interface SiteEntry {
|
|
|
73
98
|
* built-in workflow, and its read of a workflow's runs but `.result`, which `callApi` refuses a visitor.
|
|
74
99
|
*/
|
|
75
100
|
export declare function readSites(root: string | undefined, description: Pick<ConfigDescription, "workflows" | "collections" | "ops">, connectors: SiteConnectors, policies?: readonly CedarPolicySource[]): SiteEntry[];
|
|
101
|
+
/**
|
|
102
|
+
* Each site's pages under `root` whose entries are a content kind's (`SitePage.content`), path to
|
|
103
|
+
* kind: what the app's build gives its router (`virtual:sanoma/locales`), so a page lists only the
|
|
104
|
+
* languages its entry is in. Read as `readSites` reads them, never run.
|
|
105
|
+
*/
|
|
106
|
+
export declare function siteContentPages(root: string): Record<string, string>;
|
|
107
|
+
/**
|
|
108
|
+
* Each site's languages (`defineSite({ locales })`, the first its default) under `root`, by name,
|
|
109
|
+
* for the sites whose `site.ts` gives them without a problem there: what the app's build gives
|
|
110
|
+
* its router (`virtual:sanoma/locales`). Read as `readSites` reads them, never run.
|
|
111
|
+
*/
|
|
112
|
+
export declare function siteLocales(root: string): Record<string, string[]>;
|
|
76
113
|
/** The connectors a site's `login` is checked against: the config's vendors, and those with a login half. */
|
|
77
114
|
type SiteConnectors = {
|
|
78
115
|
vendors: ReadonlySet<string>;
|
package/dist/sites.js
CHANGED
|
@@ -6,19 +6,21 @@ import { keyName } from "./datafile.js";
|
|
|
6
6
|
import { stringValue, unwrap } from "./outline.js";
|
|
7
7
|
import { filesUnder, isDirectory } from "./paths.js";
|
|
8
8
|
import { START } from "./schema.js";
|
|
9
|
-
import { ANONYMOUS, apiNameOf, BUILT_IN_WORKFLOWS, DATA_VENDOR, SITE_NAME, VISITORS, WORKFLOW_ACTION, } from "./shared.js";
|
|
9
|
+
import { ANONYMOUS, apiNameOf, BUILT_IN_WORKFLOWS, DATA_VENDOR, LOCALE, SITE_NAME, VISITORS, WORKFLOW_ACTION, } from "./shared.js";
|
|
10
10
|
/** Where a site's code is: its pages and its components. */
|
|
11
11
|
const SITE_DIRS = ["routes", "components"];
|
|
12
12
|
/** Where `api`, `RunForm` and `defineSite` come from: `sanoma/site`, which re-exports the app's. */
|
|
13
13
|
const SITE_SOURCES = new Set(["sanoma/site", "@sanoma-ai/app/site"]);
|
|
14
14
|
const KIND_NAMES = { workflow: "workflow", collection: "collection", op: "operation" };
|
|
15
|
+
/** What a route's loader and head name its path's parameters by. */
|
|
16
|
+
const PARAMS = new Set(["params"]);
|
|
15
17
|
/** What makes a route from its id, whose first argument is the id. */
|
|
16
18
|
const ROUTE_MAKERS = new Set(["createFileRoute", "createLazyFileRoute"]);
|
|
17
19
|
/**
|
|
18
20
|
* The sites under `root`: each folder of `sites/` with a `routes/` whose name is a URL segment,
|
|
19
21
|
* by name (as `@sanoma-ai/app/build`'s `sitesOf` mounts them). Reads `routes/**` and
|
|
20
22
|
* `components/**` (`.ts` and `.tsx`, less tests and declarations) of each with oxc, never running
|
|
21
|
-
* them: each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
23
|
+
* them: each page (`SitePage`, from a route's id), each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
22
24
|
* called or passed on (`queryFn: api.data.leads.list`):
|
|
23
25
|
* `api.<name>` and `api.<name>.<method>` are a workflow, `api.data.<collection>.<op>` a collection,
|
|
24
26
|
* and `api.<vendor>.<resource>.<op>` an operation. A name that is not written out (a variable, a
|
|
@@ -36,8 +38,6 @@ export function readSites(root, description, connectors, policies) {
|
|
|
36
38
|
if (root === undefined)
|
|
37
39
|
return [];
|
|
38
40
|
const dir = join(root, "sites");
|
|
39
|
-
if (!isDirectory(dir))
|
|
40
|
-
return [];
|
|
41
41
|
const workflows = new Set(description.workflows.map((wf) => wf.name));
|
|
42
42
|
const collections = new Set(description.collections.map((c) => c.name));
|
|
43
43
|
const ops = new Map(description.ops.map((op) => [op.id, op]));
|
|
@@ -96,16 +96,10 @@ export function readSites(root, description, connectors, policies) {
|
|
|
96
96
|
: undefined;
|
|
97
97
|
return { call: { kind, target, via, ...at }, ...(problem && { problem }) };
|
|
98
98
|
};
|
|
99
|
-
return
|
|
100
|
-
|
|
101
|
-
.
|
|
102
|
-
|
|
103
|
-
.map((name) => {
|
|
104
|
-
const files = SITE_DIRS.flatMap((sub) => filesUnder(join(dir, name, sub), isSource)).toSorted();
|
|
105
|
-
const resolved = files.flatMap((path) => {
|
|
106
|
-
const file = readSource(path);
|
|
107
|
-
return typeof file === "string" ? [] : usesIn(file, relative(root, path).split(sep).join("/")).map(resolve);
|
|
108
|
-
});
|
|
99
|
+
return siteNames(dir).map((name) => {
|
|
100
|
+
const read = readSiteFiles(root, name);
|
|
101
|
+
const resolved = read.flatMap(({ uses }) => uses.map(resolve));
|
|
102
|
+
const pages = pagesOf(read);
|
|
109
103
|
const siteFile = `sites/${name}/site.ts`;
|
|
110
104
|
const { problems: optionProblems, ...options } = siteOptionsOf(join(root, siteFile), connectors);
|
|
111
105
|
const calls = resolved.map((r) => r.call);
|
|
@@ -116,16 +110,71 @@ export function readSites(root, description, connectors, policies) {
|
|
|
116
110
|
}),
|
|
117
111
|
...optionProblems.map((p) => ({ file: siteFile, ...p })),
|
|
118
112
|
];
|
|
119
|
-
|
|
113
|
+
const sorted = [...pages.keys()].toSorted().map((path) => pages.get(path));
|
|
114
|
+
// A page's file it warns of, unless another of its files (a lazy one, its layout) gives its kind.
|
|
115
|
+
const warnings = options.public
|
|
116
|
+
? read.flatMap(({ route, warning }) => (warning && !pages.get(route.path)?.content ? [warning] : []))
|
|
117
|
+
: [];
|
|
118
|
+
return { name, ...options, pages: sorted, calls, problems, warnings };
|
|
120
119
|
});
|
|
121
120
|
}
|
|
122
|
-
/**
|
|
123
|
-
function
|
|
121
|
+
/** A site's pages, by path, from its files: a layout's and its index's (one path) merged. */
|
|
122
|
+
function pagesOf(read) {
|
|
123
|
+
const pages = new Map();
|
|
124
|
+
for (const { route } of read) {
|
|
125
|
+
if (route)
|
|
126
|
+
pages.set(route.path, { ...pages.get(route.path), ...route });
|
|
127
|
+
}
|
|
128
|
+
return pages;
|
|
129
|
+
}
|
|
130
|
+
/** Each of site `name`'s files under `root`, as `readSiteFile` reads it, by path. */
|
|
131
|
+
const readSiteFiles = (root, name) => SITE_DIRS.flatMap((sub) => filesUnder(join(root, "sites", name, sub), isSource))
|
|
132
|
+
.toSorted()
|
|
133
|
+
.flatMap((path) => {
|
|
134
|
+
const file = readSource(path);
|
|
135
|
+
return typeof file === "string" ? [] : [readSiteFile(file, relative(root, path).split(sep).join("/"))];
|
|
136
|
+
});
|
|
137
|
+
/**
|
|
138
|
+
* Each site's pages under `root` whose entries are a content kind's (`SitePage.content`), path to
|
|
139
|
+
* kind: what the app's build gives its router (`virtual:sanoma/locales`), so a page lists only the
|
|
140
|
+
* languages its entry is in. Read as `readSites` reads them, never run.
|
|
141
|
+
*/
|
|
142
|
+
export function siteContentPages(root) {
|
|
143
|
+
return Object.fromEntries(siteNames(join(root, "sites")).flatMap((name) => [...pagesOf(readSiteFiles(root, name)).values()].flatMap(({ path, content }) => content ? [[path, content]] : [])));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Each site's languages (`defineSite({ locales })`, the first its default) under `root`, by name,
|
|
147
|
+
* for the sites whose `site.ts` gives them without a problem there: what the app's build gives
|
|
148
|
+
* its router (`virtual:sanoma/locales`). Read as `readSites` reads them, never run.
|
|
149
|
+
*/
|
|
150
|
+
export function siteLocales(root) {
|
|
151
|
+
const none = new Set();
|
|
152
|
+
return Object.fromEntries(siteNames(join(root, "sites")).flatMap((name) => {
|
|
153
|
+
const { locales } = siteOptionsOf(join(root, "sites", name, "site.ts"), { vendors: none, logins: none });
|
|
154
|
+
return locales ? [[name, locales]] : [];
|
|
155
|
+
}));
|
|
156
|
+
}
|
|
157
|
+
/** The sites in `dir`: each folder with a `routes/` whose name is a URL segment, sorted. */
|
|
158
|
+
const siteNames = (dir) => isDirectory(dir)
|
|
159
|
+
? readdirSync(dir, { withFileTypes: true })
|
|
160
|
+
.filter((d) => d.isDirectory() && SITE_NAME.test(d.name) && existsSync(join(dir, d.name, "routes")))
|
|
161
|
+
.map((d) => d.name)
|
|
162
|
+
.toSorted()
|
|
163
|
+
: [];
|
|
164
|
+
/**
|
|
165
|
+
* What one file holds: its uses, in its order, and the page it is, from its route's id, with the
|
|
166
|
+
* content kind whose entry its one parameter names (`SitePage.content`). A file under `routes/` is
|
|
167
|
+
* read whole; any other only when it imports `api` or `RunForm`.
|
|
168
|
+
*/
|
|
169
|
+
function readSiteFile({ program, at }, file) {
|
|
124
170
|
const api = importedAs(program, SITE_SOURCES, "api");
|
|
125
171
|
const runForm = importedAs(program, SITE_SOURCES, "RunForm");
|
|
126
|
-
|
|
127
|
-
|
|
172
|
+
const content = importedAs(program, SITE_SOURCES, "content");
|
|
173
|
+
if (!api.size && !runForm.size && !file.includes("/routes/"))
|
|
174
|
+
return { uses: [] };
|
|
128
175
|
const found = [];
|
|
176
|
+
/** Each `content.<kind>.get(arg)`: its kind, its argument and where it is. */
|
|
177
|
+
const gets = [];
|
|
129
178
|
let page;
|
|
130
179
|
const visit = (node) => {
|
|
131
180
|
if (!node)
|
|
@@ -136,13 +185,16 @@ function usesIn({ program, at }, file) {
|
|
|
136
185
|
if (named)
|
|
137
186
|
return void found.push({ ...named, via: "api", file, ...at(node.start) });
|
|
138
187
|
}
|
|
139
|
-
else if (node.type === "CallExpression"
|
|
188
|
+
else if (node.type === "CallExpression") {
|
|
140
189
|
const callee = unwrap(node.callee);
|
|
141
|
-
if (callee?.type === "Identifier" && ROUTE_MAKERS.has(callee.name)) {
|
|
190
|
+
if (callee?.type === "Identifier" && ROUTE_MAKERS.has(callee.name) && page === undefined) {
|
|
142
191
|
const id = stringValue(node.arguments[0]);
|
|
143
192
|
if (id !== undefined)
|
|
144
193
|
page = pageOf(id);
|
|
145
194
|
}
|
|
195
|
+
const kind = contentKind(callee, content);
|
|
196
|
+
if (kind !== undefined)
|
|
197
|
+
gets.push({ kind, arg: unwrap(node.arguments[0]), start: node.start });
|
|
146
198
|
}
|
|
147
199
|
else if (node.type === "JSXOpeningElement" && node.name.type === "JSXIdentifier" && runForm.has(node.name.name)) {
|
|
148
200
|
const attribute = node.attributes.find((a) => a.type === "JSXAttribute" && a.name.type === "JSXIdentifier" && a.name.name === "workflow");
|
|
@@ -155,10 +207,48 @@ function usesIn({ program, at }, file) {
|
|
|
155
207
|
visit(child);
|
|
156
208
|
};
|
|
157
209
|
visit(program);
|
|
158
|
-
|
|
210
|
+
const uses = found.map((use) => (page === undefined ? use : { ...use, page }));
|
|
211
|
+
if (page === undefined)
|
|
212
|
+
return { uses };
|
|
213
|
+
// The one parameter's name (not a splat's), and the kinds whose `get` is given it (`params.slug`, or `slug` destructured).
|
|
214
|
+
const params = page.split("/").filter((segment) => segment.startsWith("$"));
|
|
215
|
+
if (params.length !== 1 || params[0] === "$")
|
|
216
|
+
return { uses, route: { path: page } };
|
|
217
|
+
const param = params[0].slice(1);
|
|
218
|
+
const kinds = new Set(gets
|
|
219
|
+
.filter(({ arg }) => arg?.type === "Identifier"
|
|
220
|
+
? arg.name === param
|
|
221
|
+
: arg?.type === "MemberExpression" && memberPath(arg, PARAMS)?.join(".") === param)
|
|
222
|
+
.map(({ kind }) => kind));
|
|
223
|
+
if (kinds.size === 1)
|
|
224
|
+
return { uses, route: { path: page, content: [...kinds][0] } };
|
|
225
|
+
// A read by the parameter in a form the sitemap does not follow (`params.id.toLowerCase()`, two kinds).
|
|
226
|
+
const unfollowed = gets.find(({ arg }) => mentions(arg, param));
|
|
227
|
+
if (!unfollowed)
|
|
228
|
+
return { uses, route: { path: page } };
|
|
229
|
+
const message = `the sitemap lists none of this page's entries: it reads content by the page's parameter in a way it cannot follow. ` +
|
|
230
|
+
`Read one kind by it as written, \`content.<kind>.get(params.${param})\` (or \`${param}\` destructured)`;
|
|
231
|
+
return { uses, route: { path: page }, warning: { file, ...at(unfollowed.start), message } };
|
|
159
232
|
}
|
|
160
|
-
/**
|
|
161
|
-
|
|
233
|
+
/** Whether `node` reads the parameter `param` anywhere in it: `params.<param>`, or `param` destructured (not another parameter, nor a property's name, `post.slug` or `{ slug: x }`). */
|
|
234
|
+
const mentions = (node, param) => {
|
|
235
|
+
if (!node)
|
|
236
|
+
return false;
|
|
237
|
+
if (node.type === "Identifier")
|
|
238
|
+
return node.name === param;
|
|
239
|
+
if (node.type === "Property" && !node.computed)
|
|
240
|
+
return mentions(node.value, param);
|
|
241
|
+
if (node.type === "MemberExpression") {
|
|
242
|
+
const path = memberPath(node, PARAMS);
|
|
243
|
+
if (path)
|
|
244
|
+
return path[0] === param;
|
|
245
|
+
if (!node.computed)
|
|
246
|
+
return mentions(node.object, param);
|
|
247
|
+
}
|
|
248
|
+
return childrenOf(node).some((child) => mentions(child, param));
|
|
249
|
+
};
|
|
250
|
+
/** The names of a member path on one of `roots` (`api.data.leads.list` is `data`, `leads`, `list`); undefined for a path on anything else or a name not written out. */
|
|
251
|
+
function memberPath(member, roots) {
|
|
162
252
|
const path = [];
|
|
163
253
|
let node = member;
|
|
164
254
|
while (node?.type === "MemberExpression") {
|
|
@@ -168,7 +258,17 @@ function apiPath(member, api) {
|
|
|
168
258
|
path.unshift(key);
|
|
169
259
|
node = unwrap(node.object);
|
|
170
260
|
}
|
|
171
|
-
|
|
261
|
+
return node?.type === "Identifier" && roots.has(node.name) ? path : undefined;
|
|
262
|
+
}
|
|
263
|
+
/** The kind of `content.<kind>.get`, a callee on `content` imported from `sanoma/site`; undefined for any other. */
|
|
264
|
+
function contentKind(callee, content) {
|
|
265
|
+
const path = callee?.type === "MemberExpression" ? memberPath(callee, content) : undefined;
|
|
266
|
+
return path?.length === 2 && path[1] === "get" ? path[0] : undefined;
|
|
267
|
+
}
|
|
268
|
+
/** What a member path on `api` names; undefined for a path on anything else, a name not written out, or no name. */
|
|
269
|
+
function apiPath(member, api) {
|
|
270
|
+
const path = memberPath(member, api);
|
|
271
|
+
if (!path?.length)
|
|
172
272
|
return undefined;
|
|
173
273
|
const [first, second, third] = path;
|
|
174
274
|
if (first === DATA_VENDOR)
|
|
@@ -202,8 +302,9 @@ const unread = (what, as) => `${what} is read without running site.ts: write it
|
|
|
202
302
|
/**
|
|
203
303
|
* What `site.ts` says of its site, read without running it, and what is wrong there: its default
|
|
204
304
|
* export must be `defineSite({ … })` written out, so it can be read at all; then `title` when it is
|
|
205
|
-
* a string, `public` and `
|
|
305
|
+
* a string, `public`, `login` and `locales`, which must be literals. `login` is kept as written; one on a
|
|
206
306
|
* site that is not public, or naming no connector of the config with a login half, is a problem.
|
|
307
|
+
* `locales` is kept only when it has no problem.
|
|
207
308
|
*/
|
|
208
309
|
function siteOptionsOf(path, connectors) {
|
|
209
310
|
const file = readSource(path);
|
|
@@ -257,10 +358,36 @@ function siteOptionsOf(path, connectors) {
|
|
|
257
358
|
const message = loginAt && loginProblem();
|
|
258
359
|
if (message)
|
|
259
360
|
problem(loginAt, message);
|
|
361
|
+
const localesAt = property("locales");
|
|
362
|
+
const list = unwrap(localesAt?.value);
|
|
363
|
+
// A hole or a spread is no string.
|
|
364
|
+
const tags = list?.type === "ArrayExpression" ? list.elements.map((e) => stringValue(e)) : undefined;
|
|
365
|
+
const locales = tags?.every((tag) => tag !== undefined) ? tags : undefined;
|
|
366
|
+
const localesProblem = () => {
|
|
367
|
+
if (locales === undefined)
|
|
368
|
+
return unread("`locales`", "an array of strings");
|
|
369
|
+
if (!locales.length)
|
|
370
|
+
return "`locales` names a site's languages, its default first: give one or more, or remove it";
|
|
371
|
+
const bad = locales.find((locale) => !LOCALE.test(locale));
|
|
372
|
+
if (bad !== undefined)
|
|
373
|
+
return `"${bad}" is not a language tag such as "en", "fr" or "pt-BR"`;
|
|
374
|
+
const twice = locales.find((locale, i) => locales.indexOf(locale) !== i);
|
|
375
|
+
if (twice !== undefined)
|
|
376
|
+
return `"${twice}" is in \`locales\` twice`;
|
|
377
|
+
// When `public` is what is wrong, it is said there.
|
|
378
|
+
if ((!isPublic && !publicUnread) || loginAt) {
|
|
379
|
+
return "`locales` are for a public site with no login: add `public: true`, or remove `locales`";
|
|
380
|
+
}
|
|
381
|
+
return undefined;
|
|
382
|
+
};
|
|
383
|
+
const localesMessage = localesAt && localesProblem();
|
|
384
|
+
if (localesMessage)
|
|
385
|
+
problem(localesAt, localesMessage);
|
|
260
386
|
return {
|
|
261
387
|
...(title !== undefined && { title }),
|
|
262
388
|
...(isPublic && { public: true }),
|
|
263
389
|
...(login !== undefined && { login }),
|
|
390
|
+
...(localesAt && !localesMessage && isPublic && !loginAt && { locales }),
|
|
264
391
|
problems,
|
|
265
392
|
};
|
|
266
393
|
}
|
package/dist/sites.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../src/sites.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/describe.ts
CHANGED
|
@@ -63,7 +63,7 @@ export {
|
|
|
63
63
|
type Rebind,
|
|
64
64
|
} from "./lockfile.ts";
|
|
65
65
|
// What the sites call, read from their source: a workflow's Used by.
|
|
66
|
-
export { readSites, type SiteCall, type SiteEntry } from "./sites.ts";
|
|
66
|
+
export { readSites, type SiteCall, type SiteEntry, type SitePage, siteContentPages, siteLocales } from "./sites.ts";
|
|
67
67
|
// The generated SDK, `.sanoma/api.ts`: a site's `api` typed from this description.
|
|
68
68
|
export { API_FILE, generateApi, writeApi, writeGenerated } from "./sdk.ts";
|
|
69
69
|
// The Cedar schema, `.sanoma/schema.cedarschema`: what a company's policies are validated and decided against.
|
package/src/index.ts
CHANGED
|
@@ -175,6 +175,7 @@ export {
|
|
|
175
175
|
type RunStatus,
|
|
176
176
|
VISITORS,
|
|
177
177
|
visitorPrincipal,
|
|
178
|
+
warningLine,
|
|
178
179
|
} from "./shared.ts";
|
|
179
180
|
// describeConfig, with the outline and every problem lintWorkflow finds, lives at
|
|
180
181
|
// `@sanoma-ai/workflows/describe`: what a UI renders from, apart from what runs. The worker reads
|
package/src/shared.ts
CHANGED
|
@@ -55,6 +55,13 @@ export const WORKFLOW_ACTION = "workflow:";
|
|
|
55
55
|
/** A site's folder name under `sites/`, its URL segment: what the app mounts and `readSites` reads. */
|
|
56
56
|
export const SITE_NAME = /^[a-z][a-z0-9-]*$/;
|
|
57
57
|
|
|
58
|
+
/**
|
|
59
|
+
* A public site's language, as `defineSite({ locales })` names it: a BCP 47 language tag of a
|
|
60
|
+
* language and subtags (`en`, `fr`, `pt-BR`), which is also its URL segment (`/pt-BR/…`) and a
|
|
61
|
+
* content file's suffix (`<slug>.pt-BR.md`).
|
|
62
|
+
*/
|
|
63
|
+
export const LOCALE = /^[a-z]{2,3}(-[A-Za-z0-9]{2,8})*$/;
|
|
64
|
+
|
|
58
65
|
/** A public site's domain: a host name of two labels or more, lowercase (`sanoma.example`). */
|
|
59
66
|
export const DOMAIN_NAME = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/;
|
|
60
67
|
|
|
@@ -395,6 +402,10 @@ export function problemLine(p: { file?: string; line?: number; column?: number;
|
|
|
395
402
|
return p.line === undefined ? `${p.file}: ${p.message}` : `${p.file}:${p.line}:${p.column ?? 1}: ${p.message}`;
|
|
396
403
|
}
|
|
397
404
|
|
|
405
|
+
/** A warning as one line, as `problemLine` with `warning: ` before its message: what is worth fixing but not wrong. */
|
|
406
|
+
export const warningLine = (p: Parameters<typeof problemLine>[0]): string =>
|
|
407
|
+
problemLine({ ...p, message: `warning: ${p.message}` });
|
|
408
|
+
|
|
398
409
|
/**
|
|
399
410
|
* Whether a host is this machine: `localhost`, `127.x.x.x` or `::1` (bare, or bracketed as a URL's
|
|
400
411
|
* `hostname` has it). The one rule for what the app listens on and answers to, and for where the
|
package/src/sites.ts
CHANGED
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
apiNameOf,
|
|
13
13
|
BUILT_IN_WORKFLOWS,
|
|
14
14
|
DATA_VENDOR,
|
|
15
|
+
LOCALE,
|
|
15
16
|
SITE_NAME,
|
|
16
17
|
VISITORS,
|
|
17
18
|
WORKFLOW_ACTION,
|
|
@@ -51,6 +52,18 @@ export interface SiteCall {
|
|
|
51
52
|
page?: string;
|
|
52
53
|
}
|
|
53
54
|
|
|
55
|
+
/** A page of a site: a route file's path, and for a page per content entry the kind it reads. */
|
|
56
|
+
export interface SitePage {
|
|
57
|
+
/** As `SiteCall.page` has it: `/sites/www`, `/sites/www/blog/$slug`. */
|
|
58
|
+
path: string;
|
|
59
|
+
/**
|
|
60
|
+
* For a path with one parameter (`$slug`), the content kind whose entries are its pages: the one
|
|
61
|
+
* kind its file reads by that parameter, `content.<kind>.get(params.slug)` (or `slug`,
|
|
62
|
+
* destructured) with `content` from `sanoma/site`.
|
|
63
|
+
*/
|
|
64
|
+
content?: string;
|
|
65
|
+
}
|
|
66
|
+
|
|
54
67
|
/** A site, `sites/<name>/`, and what it calls. */
|
|
55
68
|
export interface SiteEntry {
|
|
56
69
|
/** Its folder's name, where it is mounted: `/sites/<name>`. */
|
|
@@ -61,8 +74,15 @@ export interface SiteEntry {
|
|
|
61
74
|
public?: true;
|
|
62
75
|
/** `defineSite({ login })`, the connector whose login half signs visitors in, as written: one that names none is among `problems`. */
|
|
63
76
|
login?: string;
|
|
77
|
+
/**
|
|
78
|
+
* `defineSite({ locales })`, a public site's languages, the first its default: kept only when
|
|
79
|
+
* every one is a `LOCALE`, written once, on a public site with no login; else a problem.
|
|
80
|
+
*/
|
|
81
|
+
locales?: string[];
|
|
64
82
|
/** The host a public site answers on: set by `startApp` from its `domains`, never by `readSites`. */
|
|
65
83
|
domain?: string;
|
|
84
|
+
/** Its pages, by path: one for each path its `routes/` files give (a layout and its index are one). */
|
|
85
|
+
pages: SitePage[];
|
|
66
86
|
/** Its calls, by file and then in the file's order. */
|
|
67
87
|
calls: SiteCall[];
|
|
68
88
|
/**
|
|
@@ -71,6 +91,11 @@ export interface SiteEntry {
|
|
|
71
91
|
* make, at its file; then what is wrong in its `site.ts`.
|
|
72
92
|
*/
|
|
73
93
|
problems: (LintProblem & { file: string })[];
|
|
94
|
+
/**
|
|
95
|
+
* On a public site, each page with one parameter whose file reads content the sitemap cannot
|
|
96
|
+
* tie to it (`SitePage.content`), so the sitemap lists none of its pages: at the first read.
|
|
97
|
+
*/
|
|
98
|
+
warnings: (LintProblem & { file: string })[];
|
|
74
99
|
}
|
|
75
100
|
|
|
76
101
|
/** Where a site's code is: its pages and its components. */
|
|
@@ -78,6 +103,8 @@ const SITE_DIRS = ["routes", "components"];
|
|
|
78
103
|
/** Where `api`, `RunForm` and `defineSite` come from: `sanoma/site`, which re-exports the app's. */
|
|
79
104
|
const SITE_SOURCES: ReadonlySet<string> = new Set(["sanoma/site", "@sanoma-ai/app/site"]);
|
|
80
105
|
const KIND_NAMES = { workflow: "workflow", collection: "collection", op: "operation" } as const;
|
|
106
|
+
/** What a route's loader and head name its path's parameters by. */
|
|
107
|
+
const PARAMS: ReadonlySet<string> = new Set(["params"]);
|
|
81
108
|
/** What makes a route from its id, whose first argument is the id. */
|
|
82
109
|
const ROUTE_MAKERS: ReadonlySet<string> = new Set(["createFileRoute", "createLazyFileRoute"]);
|
|
83
110
|
|
|
@@ -85,7 +112,7 @@ const ROUTE_MAKERS: ReadonlySet<string> = new Set(["createFileRoute", "createLaz
|
|
|
85
112
|
* The sites under `root`: each folder of `sites/` with a `routes/` whose name is a URL segment,
|
|
86
113
|
* by name (as `@sanoma-ai/app/build`'s `sitesOf` mounts them). Reads `routes/**` and
|
|
87
114
|
* `components/**` (`.ts` and `.tsx`, less tests and declarations) of each with oxc, never running
|
|
88
|
-
* them: each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
115
|
+
* them: each page (`SitePage`, from a route's id), each `<RunForm workflow="…" />` and each use of `api`, both imported from `sanoma/site`,
|
|
89
116
|
* called or passed on (`queryFn: api.data.leads.list`):
|
|
90
117
|
* `api.<name>` and `api.<name>.<method>` are a workflow, `api.data.<collection>.<op>` a collection,
|
|
91
118
|
* and `api.<vendor>.<resource>.<op>` an operation. A name that is not written out (a variable, a
|
|
@@ -107,7 +134,6 @@ export function readSites(
|
|
|
107
134
|
): SiteEntry[] {
|
|
108
135
|
if (root === undefined) return [];
|
|
109
136
|
const dir = join(root, "sites");
|
|
110
|
-
if (!isDirectory(dir)) return [];
|
|
111
137
|
const workflows = new Set(description.workflows.map((wf) => wf.name));
|
|
112
138
|
const collections = new Set(description.collections.map((c) => c.name));
|
|
113
139
|
const ops = new Map(description.ops.map((op) => [op.id, op]));
|
|
@@ -167,39 +193,105 @@ export function readSites(
|
|
|
167
193
|
return { call: { kind, target, via, ...at }, ...(problem && { problem }) };
|
|
168
194
|
};
|
|
169
195
|
|
|
170
|
-
return
|
|
171
|
-
|
|
172
|
-
.
|
|
196
|
+
return siteNames(dir).map((name) => {
|
|
197
|
+
const read = readSiteFiles(root, name);
|
|
198
|
+
const resolved = read.flatMap(({ uses }) => uses.map(resolve));
|
|
199
|
+
const pages = pagesOf(read);
|
|
200
|
+
const siteFile = `sites/${name}/site.ts`;
|
|
201
|
+
const { problems: optionProblems, ...options } = siteOptionsOf(join(root, siteFile), connectors);
|
|
202
|
+
const calls = resolved.map((r) => r.call);
|
|
203
|
+
const problems = [
|
|
204
|
+
...resolved.flatMap(({ call, problem }) => {
|
|
205
|
+
const message = problem ?? (options.public ? refused(call, options.login) : undefined);
|
|
206
|
+
return message === undefined ? [] : [{ file: call.file, line: call.line, column: call.column, message }];
|
|
207
|
+
}),
|
|
208
|
+
...optionProblems.map((p) => ({ file: siteFile, ...p })),
|
|
209
|
+
];
|
|
210
|
+
const sorted = [...pages.keys()].toSorted().map((path) => pages.get(path)!);
|
|
211
|
+
// A page's file it warns of, unless another of its files (a lazy one, its layout) gives its kind.
|
|
212
|
+
const warnings = options.public
|
|
213
|
+
? read.flatMap(({ route, warning }) => (warning && !pages.get(route!.path)?.content ? [warning] : []))
|
|
214
|
+
: [];
|
|
215
|
+
return { name, ...options, pages: sorted, calls, problems, warnings };
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/** A site's pages, by path, from its files: a layout's and its index's (one path) merged. */
|
|
220
|
+
function pagesOf(read: readonly { route?: SitePage }[]): Map<string, SitePage> {
|
|
221
|
+
const pages = new Map<string, SitePage>();
|
|
222
|
+
for (const { route } of read) {
|
|
223
|
+
if (route) pages.set(route.path, { ...pages.get(route.path), ...route });
|
|
224
|
+
}
|
|
225
|
+
return pages;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/** Each of site `name`'s files under `root`, as `readSiteFile` reads it, by path. */
|
|
229
|
+
const readSiteFiles = (root: string, name: string) =>
|
|
230
|
+
SITE_DIRS.flatMap((sub) => filesUnder(join(root, "sites", name, sub), isSource))
|
|
173
231
|
.toSorted()
|
|
174
|
-
.
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
const file = readSource(path);
|
|
178
|
-
return typeof file === "string" ? [] : usesIn(file, relative(root, path).split(sep).join("/")).map(resolve);
|
|
179
|
-
});
|
|
180
|
-
const siteFile = `sites/${name}/site.ts`;
|
|
181
|
-
const { problems: optionProblems, ...options } = siteOptionsOf(join(root, siteFile), connectors);
|
|
182
|
-
const calls = resolved.map((r) => r.call);
|
|
183
|
-
const problems = [
|
|
184
|
-
...resolved.flatMap(({ call, problem }) => {
|
|
185
|
-
const message = problem ?? (options.public ? refused(call, options.login) : undefined);
|
|
186
|
-
return message === undefined ? [] : [{ file: call.file, line: call.line, column: call.column, message }];
|
|
187
|
-
}),
|
|
188
|
-
...optionProblems.map((p) => ({ file: siteFile, ...p })),
|
|
189
|
-
];
|
|
190
|
-
return { name, ...options, calls, problems };
|
|
232
|
+
.flatMap((path) => {
|
|
233
|
+
const file = readSource(path);
|
|
234
|
+
return typeof file === "string" ? [] : [readSiteFile(file, relative(root, path).split(sep).join("/"))];
|
|
191
235
|
});
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Each site's pages under `root` whose entries are a content kind's (`SitePage.content`), path to
|
|
239
|
+
* kind: what the app's build gives its router (`virtual:sanoma/locales`), so a page lists only the
|
|
240
|
+
* languages its entry is in. Read as `readSites` reads them, never run.
|
|
241
|
+
*/
|
|
242
|
+
export function siteContentPages(root: string): Record<string, string> {
|
|
243
|
+
return Object.fromEntries(
|
|
244
|
+
siteNames(join(root, "sites")).flatMap((name) =>
|
|
245
|
+
[...pagesOf(readSiteFiles(root, name)).values()].flatMap(({ path, content }) =>
|
|
246
|
+
content ? [[path, content]] : [],
|
|
247
|
+
),
|
|
248
|
+
),
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Each site's languages (`defineSite({ locales })`, the first its default) under `root`, by name,
|
|
254
|
+
* for the sites whose `site.ts` gives them without a problem there: what the app's build gives
|
|
255
|
+
* its router (`virtual:sanoma/locales`). Read as `readSites` reads them, never run.
|
|
256
|
+
*/
|
|
257
|
+
export function siteLocales(root: string): Record<string, string[]> {
|
|
258
|
+
const none = new Set<string>();
|
|
259
|
+
return Object.fromEntries(
|
|
260
|
+
siteNames(join(root, "sites")).flatMap((name) => {
|
|
261
|
+
const { locales } = siteOptionsOf(join(root, "sites", name, "site.ts"), { vendors: none, logins: none });
|
|
262
|
+
return locales ? [[name, locales]] : [];
|
|
263
|
+
}),
|
|
264
|
+
);
|
|
192
265
|
}
|
|
193
266
|
|
|
267
|
+
/** The sites in `dir`: each folder with a `routes/` whose name is a URL segment, sorted. */
|
|
268
|
+
const siteNames = (dir: string): string[] =>
|
|
269
|
+
isDirectory(dir)
|
|
270
|
+
? readdirSync(dir, { withFileTypes: true })
|
|
271
|
+
.filter((d) => d.isDirectory() && SITE_NAME.test(d.name) && existsSync(join(dir, d.name, "routes")))
|
|
272
|
+
.map((d) => d.name)
|
|
273
|
+
.toSorted()
|
|
274
|
+
: [];
|
|
275
|
+
|
|
194
276
|
/** A use of `api` or a `RunForm`, as written: the name it gives, before it is resolved. */
|
|
195
277
|
type Written = Omit<SiteCall, "target"> & { name: string };
|
|
196
278
|
|
|
197
|
-
/**
|
|
198
|
-
|
|
279
|
+
/**
|
|
280
|
+
* What one file holds: its uses, in its order, and the page it is, from its route's id, with the
|
|
281
|
+
* content kind whose entry its one parameter names (`SitePage.content`). A file under `routes/` is
|
|
282
|
+
* read whole; any other only when it imports `api` or `RunForm`.
|
|
283
|
+
*/
|
|
284
|
+
function readSiteFile(
|
|
285
|
+
{ program, at }: SourceFile,
|
|
286
|
+
file: string,
|
|
287
|
+
): { uses: Written[]; route?: SitePage; warning?: LintProblem & { file: string } } {
|
|
199
288
|
const api = importedAs(program, SITE_SOURCES, "api");
|
|
200
289
|
const runForm = importedAs(program, SITE_SOURCES, "RunForm");
|
|
201
|
-
|
|
290
|
+
const content = importedAs(program, SITE_SOURCES, "content");
|
|
291
|
+
if (!api.size && !runForm.size && !file.includes("/routes/")) return { uses: [] };
|
|
202
292
|
const found: Omit<Written, "page">[] = [];
|
|
293
|
+
/** Each `content.<kind>.get(arg)`: its kind, its argument and where it is. */
|
|
294
|
+
const gets: { kind: string; arg: Node; start: number }[] = [];
|
|
203
295
|
let page: string | undefined;
|
|
204
296
|
const visit = (node: Node) => {
|
|
205
297
|
if (!node) return;
|
|
@@ -207,12 +299,14 @@ function usesIn({ program, at }: SourceFile, file: string): Written[] {
|
|
|
207
299
|
const named = apiPath(node, api);
|
|
208
300
|
// The outermost member of a path on `api`: what it names, called or not; its inner members are not visited.
|
|
209
301
|
if (named) return void found.push({ ...named, via: "api", file, ...at(node.start) });
|
|
210
|
-
} else if (node.type === "CallExpression"
|
|
302
|
+
} else if (node.type === "CallExpression") {
|
|
211
303
|
const callee = unwrap(node.callee);
|
|
212
|
-
if (callee?.type === "Identifier" && ROUTE_MAKERS.has(callee.name)) {
|
|
304
|
+
if (callee?.type === "Identifier" && ROUTE_MAKERS.has(callee.name) && page === undefined) {
|
|
213
305
|
const id = stringValue(node.arguments[0]);
|
|
214
306
|
if (id !== undefined) page = pageOf(id);
|
|
215
307
|
}
|
|
308
|
+
const kind = contentKind(callee, content);
|
|
309
|
+
if (kind !== undefined) gets.push({ kind, arg: unwrap(node.arguments[0]), start: node.start });
|
|
216
310
|
} else if (node.type === "JSXOpeningElement" && node.name.type === "JSXIdentifier" && runForm.has(node.name.name)) {
|
|
217
311
|
const attribute = node.attributes.find(
|
|
218
312
|
(a: Node) => a.type === "JSXAttribute" && a.name.type === "JSXIdentifier" && a.name.name === "workflow",
|
|
@@ -224,11 +318,46 @@ function usesIn({ program, at }: SourceFile, file: string): Written[] {
|
|
|
224
318
|
for (const child of childrenOf(node)) visit(child);
|
|
225
319
|
};
|
|
226
320
|
visit(program);
|
|
227
|
-
|
|
321
|
+
const uses = found.map((use) => (page === undefined ? use : { ...use, page }));
|
|
322
|
+
if (page === undefined) return { uses };
|
|
323
|
+
// The one parameter's name (not a splat's), and the kinds whose `get` is given it (`params.slug`, or `slug` destructured).
|
|
324
|
+
const params = page.split("/").filter((segment) => segment.startsWith("$"));
|
|
325
|
+
if (params.length !== 1 || params[0] === "$") return { uses, route: { path: page } };
|
|
326
|
+
const param = params[0]!.slice(1);
|
|
327
|
+
const kinds = new Set(
|
|
328
|
+
gets
|
|
329
|
+
.filter(({ arg }) =>
|
|
330
|
+
arg?.type === "Identifier"
|
|
331
|
+
? arg.name === param
|
|
332
|
+
: arg?.type === "MemberExpression" && memberPath(arg, PARAMS)?.join(".") === param,
|
|
333
|
+
)
|
|
334
|
+
.map(({ kind }) => kind),
|
|
335
|
+
);
|
|
336
|
+
if (kinds.size === 1) return { uses, route: { path: page, content: [...kinds][0]! } };
|
|
337
|
+
// A read by the parameter in a form the sitemap does not follow (`params.id.toLowerCase()`, two kinds).
|
|
338
|
+
const unfollowed = gets.find(({ arg }) => mentions(arg, param));
|
|
339
|
+
if (!unfollowed) return { uses, route: { path: page } };
|
|
340
|
+
const message =
|
|
341
|
+
`the sitemap lists none of this page's entries: it reads content by the page's parameter in a way it cannot follow. ` +
|
|
342
|
+
`Read one kind by it as written, \`content.<kind>.get(params.${param})\` (or \`${param}\` destructured)`;
|
|
343
|
+
return { uses, route: { path: page }, warning: { file, ...at(unfollowed.start), message } };
|
|
228
344
|
}
|
|
229
345
|
|
|
230
|
-
/**
|
|
231
|
-
|
|
346
|
+
/** Whether `node` reads the parameter `param` anywhere in it: `params.<param>`, or `param` destructured (not another parameter, nor a property's name, `post.slug` or `{ slug: x }`). */
|
|
347
|
+
const mentions = (node: Node, param: string): boolean => {
|
|
348
|
+
if (!node) return false;
|
|
349
|
+
if (node.type === "Identifier") return node.name === param;
|
|
350
|
+
if (node.type === "Property" && !node.computed) return mentions(node.value, param);
|
|
351
|
+
if (node.type === "MemberExpression") {
|
|
352
|
+
const path = memberPath(node, PARAMS);
|
|
353
|
+
if (path) return path[0] === param;
|
|
354
|
+
if (!node.computed) return mentions(node.object, param);
|
|
355
|
+
}
|
|
356
|
+
return childrenOf(node).some((child) => mentions(child, param));
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/** The names of a member path on one of `roots` (`api.data.leads.list` is `data`, `leads`, `list`); undefined for a path on anything else or a name not written out. */
|
|
360
|
+
function memberPath(member: Node, roots: ReadonlySet<string>): string[] | undefined {
|
|
232
361
|
const path: string[] = [];
|
|
233
362
|
let node = member;
|
|
234
363
|
while (node?.type === "MemberExpression") {
|
|
@@ -237,7 +366,19 @@ function apiPath(member: Node, api: ReadonlySet<string>): Pick<Written, "kind" |
|
|
|
237
366
|
path.unshift(key);
|
|
238
367
|
node = unwrap(node.object);
|
|
239
368
|
}
|
|
240
|
-
|
|
369
|
+
return node?.type === "Identifier" && roots.has(node.name) ? path : undefined;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/** The kind of `content.<kind>.get`, a callee on `content` imported from `sanoma/site`; undefined for any other. */
|
|
373
|
+
function contentKind(callee: Node, content: ReadonlySet<string>): string | undefined {
|
|
374
|
+
const path = callee?.type === "MemberExpression" ? memberPath(callee, content) : undefined;
|
|
375
|
+
return path?.length === 2 && path[1] === "get" ? path[0] : undefined;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
/** What a member path on `api` names; undefined for a path on anything else, a name not written out, or no name. */
|
|
379
|
+
function apiPath(member: Node, api: ReadonlySet<string>): Pick<Written, "kind" | "name" | "method"> | undefined {
|
|
380
|
+
const path = memberPath(member, api);
|
|
381
|
+
if (!path?.length) return undefined;
|
|
241
382
|
const [first, second, third] = path as [string, ...string[]];
|
|
242
383
|
if (first === DATA_VENDOR)
|
|
243
384
|
return path.length === 3 ? { kind: "collection", name: second!, method: third } : undefined;
|
|
@@ -273,13 +414,14 @@ const unread = (what: string, as: string) => `${what} is read without running si
|
|
|
273
414
|
/**
|
|
274
415
|
* What `site.ts` says of its site, read without running it, and what is wrong there: its default
|
|
275
416
|
* export must be `defineSite({ … })` written out, so it can be read at all; then `title` when it is
|
|
276
|
-
* a string, `public` and `
|
|
417
|
+
* a string, `public`, `login` and `locales`, which must be literals. `login` is kept as written; one on a
|
|
277
418
|
* site that is not public, or naming no connector of the config with a login half, is a problem.
|
|
419
|
+
* `locales` is kept only when it has no problem.
|
|
278
420
|
*/
|
|
279
421
|
function siteOptionsOf(
|
|
280
422
|
path: string,
|
|
281
423
|
connectors: SiteConnectors,
|
|
282
|
-
): Pick<SiteEntry, "title" | "public" | "login"> & { problems: LintProblem[] } {
|
|
424
|
+
): Pick<SiteEntry, "title" | "public" | "login" | "locales"> & { problems: LintProblem[] } {
|
|
283
425
|
const file = readSource(path);
|
|
284
426
|
if (typeof file === "string") return { problems: [] };
|
|
285
427
|
const problems: LintProblem[] = [...file.problems];
|
|
@@ -329,10 +471,33 @@ function siteOptionsOf(
|
|
|
329
471
|
};
|
|
330
472
|
const message = loginAt && loginProblem();
|
|
331
473
|
if (message) problem(loginAt, message);
|
|
474
|
+
|
|
475
|
+
const localesAt = property("locales");
|
|
476
|
+
const list = unwrap(localesAt?.value);
|
|
477
|
+
// A hole or a spread is no string.
|
|
478
|
+
const tags: (string | undefined)[] | undefined =
|
|
479
|
+
list?.type === "ArrayExpression" ? list.elements.map((e: Node) => stringValue(e)) : undefined;
|
|
480
|
+
const locales = tags?.every((tag): tag is string => tag !== undefined) ? tags : undefined;
|
|
481
|
+
const localesProblem = (): string | undefined => {
|
|
482
|
+
if (locales === undefined) return unread("`locales`", "an array of strings");
|
|
483
|
+
if (!locales.length) return "`locales` names a site's languages, its default first: give one or more, or remove it";
|
|
484
|
+
const bad = locales.find((locale) => !LOCALE.test(locale));
|
|
485
|
+
if (bad !== undefined) return `"${bad}" is not a language tag such as "en", "fr" or "pt-BR"`;
|
|
486
|
+
const twice = locales.find((locale, i) => locales.indexOf(locale) !== i);
|
|
487
|
+
if (twice !== undefined) return `"${twice}" is in \`locales\` twice`;
|
|
488
|
+
// When `public` is what is wrong, it is said there.
|
|
489
|
+
if ((!isPublic && !publicUnread) || loginAt) {
|
|
490
|
+
return "`locales` are for a public site with no login: add `public: true`, or remove `locales`";
|
|
491
|
+
}
|
|
492
|
+
return undefined;
|
|
493
|
+
};
|
|
494
|
+
const localesMessage = localesAt && localesProblem();
|
|
495
|
+
if (localesMessage) problem(localesAt, localesMessage);
|
|
332
496
|
return {
|
|
333
497
|
...(title !== undefined && { title }),
|
|
334
498
|
...(isPublic && { public: true as const }),
|
|
335
499
|
...(login !== undefined && { login }),
|
|
500
|
+
...(localesAt && !localesMessage && isPublic && !loginAt && { locales }),
|
|
336
501
|
problems,
|
|
337
502
|
};
|
|
338
503
|
}
|