From 04c9a8ba48b9131c9106d94e5154069523134fed Mon Sep 17 00:00:00 2001 From: Matt Gros <3311227+mpge@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:13:59 -0400 Subject: [PATCH] chore: track build/ in git for git-ref installs Until this package is published to npm, downstream packages (notably escalated-adonis) must consume it via a git URL pinned to a tag: "@escalated-dev/plugin-sdk": "github:escalated-dev/escalated-plugin-sdk#v0.1.1" The previous setup added a `prepare` hook so npm would build the SDK right after cloning the git dep. That works on npm 10 but breaks on npm 11 (the cli ships with mutually exclusive --prefer-offline and --prefer-online flags during git-prepare child installs - see https://github.com/npm/cli for the open issue tracking this regression). Track build/ in git so the consumer install path is "clone the ref, read package.json's main/exports/types, done" with no on-install build step. Run-tests CI now fails when the committed build/ drifts from src/, so a stale build can never silently ship. --- .github/workflows/run-tests.yml | 14 ++ .gitignore | 11 +- build/define-plugin.d.ts | 9 ++ build/define-plugin.d.ts.map | 1 + build/define-plugin.js | 69 +++++++++ build/define-plugin.js.map | 1 + build/index.d.ts | 4 + build/index.d.ts.map | 1 + build/index.js | 3 + build/index.js.map | 1 + build/types.d.ts | 248 ++++++++++++++++++++++++++++++++ build/types.d.ts.map | 1 + build/types.js | 5 + build/types.js.map | 1 + 14 files changed, 368 insertions(+), 1 deletion(-) create mode 100644 build/define-plugin.d.ts create mode 100644 build/define-plugin.d.ts.map create mode 100644 build/define-plugin.js create mode 100644 build/define-plugin.js.map create mode 100644 build/index.d.ts create mode 100644 build/index.d.ts.map create mode 100644 build/index.js create mode 100644 build/index.js.map create mode 100644 build/types.d.ts create mode 100644 build/types.d.ts.map create mode 100644 build/types.js create mode 100644 build/types.js.map diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index d290a6d..c11a32b 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -25,3 +25,17 @@ jobs: - run: npm ci - run: npm run build - run: npx tsx --test $(find tests -name '*.test.ts') + + # Build artifacts in build/ are committed because consumers install + # this package via git ref (see .gitignore for context). Fail the + # build if the committed output is out of date with src/, so a stale + # build/ can never silently ship. + - name: Verify committed build/ matches src/ + if: matrix.node-version == 22 + run: | + if ! git diff --quiet -- build; then + echo "::error::build/ is out of date with src/. Run 'npm run build' and commit the result." + git status --short -- build + git diff --stat -- build + exit 1 + fi diff --git a/.gitignore b/.gitignore index b38db2f..86f0640 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,11 @@ node_modules/ -build/ +# build/ is intentionally tracked: this package is consumed via git ref +# (e.g. `npm i github:escalated-dev/escalated-plugin-sdk#vX.Y.Z` from +# escalated-adonis) until it is published to npm. npm 11's git-prepare +# script has a known bug that passes mutually exclusive --prefer-offline +# and --prefer-online flags to the child install, breaking prepare-driven +# on-install builds. Committing pre-built artifacts is the reliable +# production path until publish lands. +# +# Any change to src/ MUST be accompanied by a re-run of `npm run build` +# and a fresh commit of build/. CI enforces freshness in run-tests.yml. diff --git a/build/define-plugin.d.ts b/build/define-plugin.d.ts new file mode 100644 index 0000000..5f4489b --- /dev/null +++ b/build/define-plugin.d.ts @@ -0,0 +1,9 @@ +import type { PluginDefinition, PluginManifest, FilterDefinition, EndpointHandler } from './types.js'; +export interface ResolvedPlugin extends PluginDefinition { + __escalated: true; + _normalizedFilters?: Record; + _normalizedEndpoints?: Record; + toManifest(): PluginManifest; +} +export declare function definePlugin(definition: PluginDefinition): ResolvedPlugin; +//# sourceMappingURL=define-plugin.d.ts.map \ No newline at end of file diff --git a/build/define-plugin.d.ts.map b/build/define-plugin.d.ts.map new file mode 100644 index 0000000..2278d64 --- /dev/null +++ b/build/define-plugin.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtG,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,WAAW,EAAE,IAAI,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvD,UAAU,IAAI,cAAc,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAwEzE"} \ No newline at end of file diff --git a/build/define-plugin.js b/build/define-plugin.js new file mode 100644 index 0000000..5e21d5c --- /dev/null +++ b/build/define-plugin.js @@ -0,0 +1,69 @@ +export function definePlugin(definition) { + // Normalize filters: shorthand function → { priority: 10, handler } + const normalizedFilters = {}; + if (definition.filters) { + for (const [hook, registration] of Object.entries(definition.filters)) { + if (typeof registration === 'function') { + normalizedFilters[hook] = { priority: 10, handler: registration }; + } + else { + normalizedFilters[hook] = { + priority: registration.priority ?? 10, + handler: registration.handler, + }; + } + } + } + // Normalize endpoints: shorthand function → { handler } + const normalizedEndpoints = {}; + if (definition.endpoints) { + for (const [key, ep] of Object.entries(definition.endpoints)) { + if (typeof ep === 'function') { + normalizedEndpoints[key] = { handler: ep }; + } + else { + normalizedEndpoints[key] = ep; + } + } + } + function toManifest() { + const endpoints = Object.entries(normalizedEndpoints).map(([key, ep]) => { + const [method, path] = key.split(' ', 2); + return { method: method, path: path, capability: ep.capability }; + }); + const webhooks = Object.keys(definition.webhooks ?? {}).map((key) => { + const [method, path] = key.split(' ', 2); + return { method: method, path: path }; + }); + const filterHooks = Object.entries(normalizedFilters).map(([hook, def]) => ({ + hook, + priority: def.priority ?? 10, + })); + const widgets = (definition.widgets ?? []).map(({ badge, ...rest }) => ({ + ...rest, + hasBadge: typeof badge === 'function', + })); + return { + name: definition.name, + version: definition.version, + description: definition.description, + config: definition.config ?? [], + pages: definition.pages ?? [], + components: definition.components ?? [], + widgets, + actionHooks: Object.keys(definition.actions ?? {}), + filterHooks, + endpoints, + webhooks, + cronSchedules: Object.keys(definition.cron ?? {}), + }; + } + return { + ...definition, + __escalated: true, + _normalizedFilters: normalizedFilters, + _normalizedEndpoints: normalizedEndpoints, + toManifest, + }; +} +//# sourceMappingURL=define-plugin.js.map \ No newline at end of file diff --git a/build/define-plugin.js.map b/build/define-plugin.js.map new file mode 100644 index 0000000..996a318 --- /dev/null +++ b/build/define-plugin.js.map @@ -0,0 +1 @@ +{"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../src/define-plugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/index.d.ts b/build/index.d.ts new file mode 100644 index 0000000..ce40eb1 --- /dev/null +++ b/build/index.d.ts @@ -0,0 +1,4 @@ +export { definePlugin } from './define-plugin.js'; +export type { ResolvedPlugin } from './define-plugin.js'; +export * from './types.js'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/build/index.d.ts.map b/build/index.d.ts.map new file mode 100644 index 0000000..f1c421d --- /dev/null +++ b/build/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,cAAc,YAAY,CAAC"} \ No newline at end of file diff --git a/build/index.js b/build/index.js new file mode 100644 index 0000000..6e90b4e --- /dev/null +++ b/build/index.js @@ -0,0 +1,3 @@ +export { definePlugin } from './define-plugin.js'; +export * from './types.js'; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/index.js.map b/build/index.js.map new file mode 100644 index 0000000..77c84a4 --- /dev/null +++ b/build/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,cAAc,YAAY,CAAC"} \ No newline at end of file diff --git a/build/types.d.ts b/build/types.d.ts new file mode 100644 index 0000000..b425817 --- /dev/null +++ b/build/types.d.ts @@ -0,0 +1,248 @@ +/** + * Core type definitions for the Escalated Plugin SDK. + */ +export interface ConfigField { + name: string; + label: string; + type: 'text' | 'password' | 'number' | 'boolean' | 'select' | 'multiselect' | 'textarea' | 'json' | 'url'; + required?: boolean; + help?: string; + options?: Array<{ + value: string; + label: string; + }>; + default?: unknown; +} +export interface PageDeclaration { + route: string; + component: string; + layout?: 'admin' | 'agent' | 'public'; + capability?: string; + menu?: MenuDeclaration; +} +export interface MenuDeclaration { + label: string; + section: 'admin' | 'agent'; + position: number; + icon?: string; +} +export interface ComponentDeclaration { + page: string; + slot: string; + component: string; + props?: Record; + order?: number; + capability?: string; +} +export interface WidgetDeclaration { + component: string; + label: string; + size: 'full' | 'half' | 'quarter'; + order?: number; + capability?: string; + badge?: (ctx: PluginContext) => Promise; +} +export interface EndpointHandler { + capability?: string; + handler: (ctx: PluginContext, req: EndpointRequest) => Promise; +} +export interface EndpointRequest { + body: unknown; + params: Record; + query: Record; + headers: Record; +} +export type EndpointDefinition = ((ctx: PluginContext, req: EndpointRequest) => Promise) | EndpointHandler; +export type WebhookHandler = (ctx: PluginContext, req: EndpointRequest) => Promise; +export type ActionHandler = (event: unknown, ctx: PluginContext) => Promise | void; +export type FilterHandler = (value: T, ctx: PluginContext) => T | Promise; +export interface FilterDefinition { + priority?: number; + handler: FilterHandler; +} +export type FilterRegistration = FilterHandler | FilterDefinition; +export type CronHandler = (ctx: PluginContext) => Promise; +export interface PluginContext { + config: ConfigStore; + store: DataStore; + http: HttpClient; + broadcast: BroadcastClient; + log: Logger; + tickets: TicketRepository; + replies: ReplyRepository; + contacts: ContactRepository; + tags: TagRepository; + departments: DepartmentRepository; + agents: AgentRepository; + emit(hook: string, data: unknown): Promise; + currentUser(): Promise; +} +export interface ConfigStore { + get(key: string): Promise; + set(data: Record): Promise; + all(): Promise>; +} +export interface DataStore { + get(collection: string, key: string): Promise; + set(collection: string, key: string, value: unknown): Promise; + query(collection: string, filter: Record, options?: QueryOptions): Promise; + insert(collection: string, data: Record): Promise; + update(collection: string, key: string, data: Record): Promise; + delete(collection: string, key: string): Promise; +} +export interface QueryOptions { + limit?: number; + orderBy?: string; + order?: 'asc' | 'desc'; +} +export interface HttpClient { + get(url: string, options?: HttpRequestOptions): Promise; + post(url: string, options?: HttpRequestOptions): Promise; + put(url: string, options?: HttpRequestOptions): Promise; + delete(url: string, options?: HttpRequestOptions): Promise; +} +export interface HttpRequestOptions { + headers?: Record; + json?: unknown; + body?: string; + timeout?: number; +} +export interface HttpResponse { + status: number; + headers: Record; + json(): Promise; + text(): Promise; +} +export interface BroadcastClient { + toChannel(channel: string, event: string, data: unknown): Promise; + toUser(userId: string | number, event: string, data: unknown): Promise; + toTicket(ticketId: string | number, event: string, data: unknown): Promise; +} +export interface Logger { + info(message: string, data?: unknown): void; + warn(message: string, data?: unknown): void; + error(message: string, data?: unknown): void; + debug(message: string, data?: unknown): void; +} +export interface Ticket { + id: string | number; + title: string; + status: string; + priority: string; + assigned_to?: string | number | null; + department_id?: string | number | null; + requester_id?: string | number | null; + requester_type?: string | null; + metadata?: Record | null; + created_at: string; + updated_at: string; +} +export interface Reply { + id: string | number; + ticket_id: string | number; + body: string; + is_internal_note: boolean; + author_id?: string | number | null; + author_type?: string | null; + created_at: string; + updated_at: string; +} +export interface Contact { + id: string | number; + name: string; + email: string; +} +export interface Tag { + id: string | number; + name: string; + slug: string; +} +export interface Department { + id: string | number; + name: string; + slug: string; + is_active: boolean; +} +export interface Agent { + id: string | number; + name: string; + email: string; +} +export interface User { + id: string | number; + name: string; + email: string; +} +export interface TicketRepository { + find(id: string | number): Promise; + query(filter: Record): Promise; + create(data: Partial): Promise; + update(id: string | number, data: Partial): Promise; +} +export interface ReplyRepository { + find(id: string | number): Promise; + query(filter: Record): Promise; + create(data: Partial): Promise; +} +export interface ContactRepository { + find(id: string | number): Promise; + findByEmail(email: string): Promise; + create(data: Partial): Promise; +} +export interface TagRepository { + all(): Promise; + create(data: { + name: string; + }): Promise; +} +export interface DepartmentRepository { + all(): Promise; + find(id: string | number): Promise; +} +export interface AgentRepository { + all(): Promise; + find(id: string | number): Promise; +} +export interface PluginDefinition { + name: string; + version: string; + description?: string; + config?: ConfigField[]; + onActivate?: (ctx: PluginContext) => Promise; + onDeactivate?: (ctx: PluginContext) => Promise; + actions?: Record; + filters?: Record; + pages?: PageDeclaration[]; + components?: ComponentDeclaration[]; + widgets?: WidgetDeclaration[]; + endpoints?: Record; + webhooks?: Record; + cron?: Record; +} +export interface PluginManifest { + name: string; + version: string; + description?: string; + config: ConfigField[]; + pages: PageDeclaration[]; + components: ComponentDeclaration[]; + widgets: Array & { + hasBadge: boolean; + }>; + actionHooks: string[]; + filterHooks: Array<{ + hook: string; + priority: number; + }>; + endpoints: Array<{ + method: string; + path: string; + capability?: string; + }>; + webhooks: Array<{ + method: string; + path: string; + }>; + cronSchedules: string[]; +} +//# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/build/types.d.ts.map b/build/types.d.ts.map new file mode 100644 index 0000000..16684e7 --- /dev/null +++ b/build/types.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/build/types.js b/build/types.js new file mode 100644 index 0000000..eea462e --- /dev/null +++ b/build/types.js @@ -0,0 +1,5 @@ +/** + * Core type definitions for the Escalated Plugin SDK. + */ +export {}; +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/build/types.js.map b/build/types.js.map new file mode 100644 index 0000000..095d11e --- /dev/null +++ b/build/types.js.map @@ -0,0 +1 @@ +{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"} \ No newline at end of file