Milestone 3: NATS wait (gate 9), hash lookup, zappier timestamp, NS1 tunnel

Wait-via-NATS returns completed or pending+jobId (GATE 9). Mock SHA256
idempotent register + GET /hashes/{sha256}. Zappier commercial edge has
POST /v1/timestamp and hash-lookup. GATE 12 smoke (signup + wait) passes.

NS1 NATS is 127.0.0.1:4222 on 70.88.205.138; SSH tunnel :14222. Local
nats-server -js used for isolated tests. Activate app adds Echo Text.

Learned: JetStream on NS1 is loopback-only; do not bind 4222 public.
This commit is contained in:
George Lambert 2026-09-09 02:54:02 -04:00
parent 10c663cc0c
commit 51ae79b75f
75 changed files with 1114 additions and 123 deletions

View file

@ -6,8 +6,8 @@ Source: [workspace-brief.md](../00-sources/workspace-brief.md). Owners after com
|----|------------|-------|-------------------------|--------------------|
| a | Customer gets own API key | zappier `/portal` signup + regen | Built (`x-api-key`) | No |
| b | Billing after usage limit | zappier meter + credit + portal reload + Stripe + admin PO | Built | No |
| c | Register SHA256 or return original timestamp + ref | verae middleware | Partial: `POST /zapier/v1/timestamp``jobId`. No idempotent hash key | `POST /api/timestamp` (`data`, `hashAlg`) → 202 `jobId` |
| d | Lookup by SHA256 | verae mock (later) | Missing | No (verify is certificate; status is jobId) |
| c | Register SHA256 or return original timestamp + ref | verae middleware mock + zappier `/v1/timestamp` | **Mock done** — second create returns original `jobId` + `existing: true` | Live OpenAPI still `data` only |
| d | Lookup by SHA256 | `GET /zapier/v1/hashes/{sha256}` and zappier `/v1/hashes/{sha256}` | **Mock done** | No live Verae route |
| e | Timestamp + public/private metadata | verae mock | Missing | No |
| f | e + encrypted LTS binary | verae mock | Missing. Do not use zappier demo `/v1/storage` | No |
| g | Share file/dir + decryption key | verae mock | Missing | No |

View file

@ -0,0 +1,21 @@
# NATS gateway
JetStream for job watch, events, and webhook delivery lives on **NS1** (`70.88.205.138`, host `NS1.GEORGELAMBERT.ORG`).
The client port is **not public**. `nats-server -js` listens on `127.0.0.1:4222` (monitoring `8222`) with JetStream enabled (NATS 2.11.17).
## Tunnel from this Mac
```bash
ssh -fN -L 14222:127.0.0.1:4222 marchon@70.88.205.138
export NATS_URL=nats://127.0.0.1:14222
export NATS_ENABLED=true
```
Local isolated tests use a laptop `nats-server -js -p 4222`.
## Streams created by middleware
`ZAPIER_JOBS`, `ZAPIER_EVENTS`, `ZAPIER_WEBHOOKS` (optional `ZAPIER_USAGE`).
Do not expose 4222 on `0.0.0.0` without auth; keep SSH tunnel or private network.

View file

@ -103,7 +103,7 @@ If `register` says the name is taken, use `"Verae Time Dev"` or `"VeraeTime"`.
- **API Key** — leave **blank**.
- **API base URL** — leave **blank**.
- Test connection → should succeed (*Verae Time (Add Numbers)* / local mode).
5. Choose action **Add Numbers**.
5. Choose action **Add Numbers** (or **Echo Text**).
6. Set **Number 1** = `2`, **Number 2** = `3`.
7. **Test step**. You want:

View file

@ -11,7 +11,13 @@ Running record of milestones. Ordered by dependency.
| M4 | Sphinx + PDF for every module + 10 models | M3 | done |
| M5 | Git checkin docs + lessons | M4 | this commit |
| M6 | Integration hardening (`/v1/add` on zappier, Add Numbers local) | M2 | done for activate-now |
| M7 | Ready-to-activate final checkin | M5 | this commit |
| M7 | Ready-to-activate final checkin | M5 | done `10c663c` |
| M8 | Phase 9 wait-via-NATS + tests | M7 | done |
| M9 | Phase 12 smoke | M8 | done |
| M10 | Hash idempotent register/lookup mock | M7 | done |
| M11 | Zappier /v1/timestamp + hash-lookup | M10 | done |
| M12 | NS1 NATS 70.88.205.138 via SSH tunnel | — | done |
| M13 | Echo action on activate app | M7 | done |
## Learned (M1)

View file

@ -37,7 +37,7 @@ endobj
endobj
7 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -68,7 +68,7 @@ xref
trailer
<<
/ID
[<e38cd4e3b12db9314a8a6cdfd05bcc34><e38cd4e3b12db9314a8a6cdfd05bcc34>]
[<2f955ee0641a9f5c09cc35b2e18cf0bf><2f955ee0641a9f5c09cc35b2e18cf0bf>]
% ReportLab generated PDF document -- digest (opensource)
/Info 7 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<eb33f0ae6981c12449e5508c1221d03d><eb33f0ae6981c12449e5508c1221d03d>]
[<9cae5edd3d4e0bcf06baee891a5999ff><9cae5edd3d4e0bcf06baee891a5999ff>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<e356e73e01b5bea5f656fc16dfd0b270><e356e73e01b5bea5f656fc16dfd0b270>]
[<e59336adb7766dc7e628986470cb6a9f><e59336adb7766dc7e628986470cb6a9f>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<08dab07d9f5bd9cd434cb151f6b84b52><08dab07d9f5bd9cd434cb151f6b84b52>]
[<19922f9449900f729a32c70fe4a164c4><19922f9449900f729a32c70fe4a164c4>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -37,7 +37,7 @@ endobj
endobj
7 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -68,7 +68,7 @@ xref
trailer
<<
/ID
[<73bc4dd8168535f5f72a61a3ae8226cb><73bc4dd8168535f5f72a61a3ae8226cb>]
[<1be202b4fec6e54a0454781367cd42da><1be202b4fec6e54a0454781367cd42da>]
% ReportLab generated PDF document -- digest (opensource)
/Info 7 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<fab0642124fc4550c20555ce3f6892e5><fab0642124fc4550c20555ce3f6892e5>]
[<d4a492432643ad2a4084a0f340f7142d><d4a492432643ad2a4084a0f340f7142d>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<8ee03c12859ca5bbdda2373d43becfb5><8ee03c12859ca5bbdda2373d43becfb5>]
[<30f5c8829cce51759bfaf173130abd2c><30f5c8829cce51759bfaf173130abd2c>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<7bcbdd69c5f87d3b17d28804fb2d17ec><7bcbdd69c5f87d3b17d28804fb2d17ec>]
[<c181c74e37ebeffdb7bb103101eba033><c181c74e37ebeffdb7bb103101eba033>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<15b24e6977023f8f031ff632a7b75f3a><15b24e6977023f8f031ff632a7b75f3a>]
[<b55af8c14874e3eb9c9101a8dd7fc1d9><b55af8c14874e3eb9c9101a8dd7fc1d9>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -32,7 +32,7 @@ endobj
endobj
6 0 obj
<<
/Author (\(anonymous\)) /CreationDate (D:20260909024418-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909024418-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Author (\(anonymous\)) /CreationDate (D:20260909025402-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260909025402-04'00') /Producer (ReportLab PDF Library - \(opensource\))
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
>>
endobj
@ -62,7 +62,7 @@ xref
trailer
<<
/ID
[<6238e19d13481b62a4a5fa415f64c0ba><6238e19d13481b62a4a5fa415f64c0ba>]
[<14925b40184e6843f15b1b917d7c0c9c><14925b40184e6843f15b1b917d7c0c9c>]
% ReportLab generated PDF document -- digest (opensource)
/Info 6 0 R

View file

@ -43,7 +43,9 @@ One MD file per source module.
- [verae-zapier-middleware/nats/connection](verae-zapier-middleware/nats/connection.md)
- [verae-zapier-middleware/nats/publishers](verae-zapier-middleware/nats/publishers.md)
- [verae-zapier-middleware/nats/subjects](verae-zapier-middleware/nats/subjects.md)
- [verae-zapier-middleware/nats/wait](verae-zapier-middleware/nats/wait.md)
- [verae-zapier-middleware/routes/authRoutes](verae-zapier-middleware/routes/authRoutes.md)
- [verae-zapier-middleware/routes/hashRoutes](verae-zapier-middleware/routes/hashRoutes.md)
- [verae-zapier-middleware/routes/index](verae-zapier-middleware/routes/index.md)
- [verae-zapier-middleware/routes/statusRoutes](verae-zapier-middleware/routes/statusRoutes.md)
- [verae-zapier-middleware/routes/tenantRoutes](verae-zapier-middleware/routes/tenantRoutes.md)
@ -66,6 +68,7 @@ One MD file per source module.
- [verae-zapier-middleware/workers/webhookWorker](verae-zapier-middleware/workers/webhookWorker.md)
- [verae-activate/authentication](verae-activate/authentication.md)
- [verae-activate/creates/add_numbers](verae-activate/creates/add_numbers.md)
- [verae-activate/creates/echo](verae-activate/creates/echo.md)
- [verae-activate/index](verae-activate/index.md)
- [verae-zapier/authentication](verae-zapier/authentication.md)
- [verae-zapier/creates/add_numbers](verae-zapier/creates/add_numbers.md)
@ -74,5 +77,6 @@ One MD file per source module.
- [verae-zapier/creates/timestamp_and_wait](verae-zapier/creates/timestamp_and_wait.md)
- [verae-zapier/creates/verify_timestamp](verae-zapier/creates/verify_timestamp.md)
- [verae-zapier/index](verae-zapier/index.md)
- [verae-zapier/searches/hash_lookup](verae-zapier/searches/hash_lookup.md)
- [verae-zapier/searches/job_status](verae-zapier/searches/job_status.md)
- [verae-zapier/triggers/timestamp_completed](verae-zapier/triggers/timestamp_completed.md)

View file

@ -0,0 +1,40 @@
# `verae-activate/creates/echo`
**Package:** `verae-activate`
**Source:** `packages/verae-activate/creates/echo.js`
**Lines:** 30
## What this module is
Implementation module in `verae-activate`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`key`, `noun`, `display`, `label`, `description`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `perform` | `_z, bundle` | — | `unknown` | see Call graph |
## What it imports / requires
_No imports detected._
## Call graph (identifiers invoked)
`action`, `async`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -2,7 +2,7 @@
**Package:** `verae-activate`
**Source:** `packages/verae-activate/index.js`
**Lines:** 21
**Lines:** 23
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-activate`. The tables below are extracted from t
## Exports
`version`, `platformVersion`, `authentication`, `creates`, `addNumbers`
`version`, `platformVersion`, `authentication`, `creates`, `addNumbers`, `echo`
## Types / interfaces / classes
@ -24,6 +24,7 @@ _No top-level functions extracted._
- `./authentication`
- `./creates/add_numbers`
- `./creates/echo`
- `./package.json`
- `zapier-platform-core`

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/clients/veraeClient.js`
**Lines:** 288
**Lines:** 351
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`veraeClient`, `clearMockJobs`
`sha256Hex`, `veraeClient`, `clearMockJobs`
## Types / interfaces / classes
@ -20,11 +20,13 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `sha256Hex` | `data` | data: `string` | `string` | see Call graph |
| `delay` | `ms` | ms: `number` | `Promise<void>` | see Call graph |
| `mockLogin` | `{ username, password }` | ms: `number` | `Promise<void>` | see Call graph |
| `mockValidate` | `token` | — | `unknown` | see Call graph |
| `mockCreateTimestamp` | `{ data, hashAlg }` | — | `unknown` | see Call graph |
| `mockCreateTimestamp` | `{ data, hashAlg, sha256, publicMetadata, privateMetadata }` | — | `unknown` | see Call graph |
| `mockGetStatus` | `jobId` | — | `unknown` | see Call graph |
| `mockLookupHash` | `sha256` | — | `unknown` | see Call graph |
| `mockVerify` | `{ certificate }` | — | `unknown` | see Call graph |
| `request` | `path, { method = 'GET', token, body } = {}` | path: `string` | `Promise<any>` | see Call graph |
| `clearMockJobs` | `(none)` | — | `void` | see Call graph |
@ -37,6 +39,7 @@ _None extracted._
| `login` | `credentials` |
| `validate` | `token` |
| `createTimestamp` | `token, body` |
| `lookupHash` | `token, sha256` |
| `createBatchTimestamp` | `token, body` |
| `getStatus` | `token, jobId` |
| `getBatchStatus` | `token, body` |
@ -54,7 +57,7 @@ _None extracted._
## Call graph (identifiers invoked)
`net`, `createDebugger`, `delay`, `setTimeout`, `mockLogin`, `now`, `toISOString`, `randomUUID`, `includes`, `mockValidate`, `startsWith`, `replace`, `mockCreateTimestamp`, `set`, `get`, `mockGetStatus`, `mockVerify`, `request`, `debug`, `fetch`, `stringify`, `text`, `parse`, `error`, `client`, `login`, `validate`, `createTimestamp`, `createBatchTimestamp`, `push`, `getStatus`, `encodeURIComponent`, `getBatchStatus`, `verify`, `verifyBatch`, `getJobVerification`, `waitForJob`, `jobs`, `clearMockJobs`, `clear`
`net`, `createDebugger`, `sha256Hex`, `createHash`, `update`, `digest`, `delay`, `setTimeout`, `mockLogin`, `now`, `toISOString`, `randomUUID`, `includes`, `mockValidate`, `startsWith`, `replace`, `mockCreateTimestamp`, `toLowerCase`, `get`, `set`, `mockGetStatus`, `mockLookupHash`, `mockVerify`, `request`, `debug`, `fetch`, `stringify`, `text`, `parse`, `error`, `client`, `login`, `validate`, `createTimestamp`, `lookupHash`, `createBatchTimestamp`, `push`, `getStatus`, `encodeURIComponent`, `getBatchStatus`, `verify`, `verifyBatch`, `getJobVerification`, `waitForJob`, `jobs`, `clearMockJobs`, `clear`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/config.js`
**Lines:** 143
**Lines:** 145
## What this module is

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/nats/connection.js`
**Lines:** 112
**Lines:** 117
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`connectNats`, `ensureStreams`, `closeNats`, `getJetStream`, `isNatsConnected`
`connectNats`, `getNatsConnection`, `ensureStreams`, `closeNats`, `getJetStream`, `isNatsConnected`
## Types / interfaces / classes
@ -21,6 +21,7 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `connectNats` | `url = config.natsUrl` | url: `string` | `Promise<{ nc: import('nats').NatsConnection, js: import('nats').JetStreamClient, jsm: import('nats').JetStreamManager ` — >} | see Call graph |
| `getNatsConnection` | `(none)` | — | `import('nats').NatsConnection|null` | see Call graph |
| `ensureStreams` | `manager` | manager: `import('nats').JetStreamManager` | `Promise<void>` | see Call graph |
| `closeNats` | `(none)` | — | `Promise<void>` | see Call graph |
| `getJetStream` | `(none)` | — | `import('nats').JetStreamClient|null` | see Call graph |
@ -34,7 +35,7 @@ _None extracted._
## Call graph (identifiers invoked)
`createDebugger`, `import`, `connectNats`, `debug`, `disabled`, `info`, `connect`, `jetstream`, `jetstreamManager`, `ensureStreams`, `add`, `closeNats`, `drain`, `getJetStream`, `isNatsConnected`, `isClosed`
`createDebugger`, `import`, `connectNats`, `debug`, `disabled`, `info`, `connect`, `jetstream`, `jetstreamManager`, `getNatsConnection`, `ensureStreams`, `add`, `closeNats`, `drain`, `getJetStream`, `isNatsConnected`, `isClosed`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -0,0 +1,44 @@
# `verae-zapier-middleware/nats/wait`
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/nats/wait.js`
**Lines:** 60
## What this module is
Implementation module in `verae-zapier-middleware`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`waitForJobEvent`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `waitForJobEvent` | `jobId, timeoutMs` | jobId: `string`, timeoutMs: `number` | `Promise<object|null>` — event payload or null on timeout | see Call graph |
| `firstMatch` | `async (` | — | `unknown` | see Call graph |
## What it imports / requires
- `../debug/logger.js`
- `../debug/trace-context.js`
- `./subjects.js`
- `./connection.js`
## Call graph (identifiers invoked)
`createDebugger`, `waitForJobEvent`, `getNatsConnection`, `connectNats`, `subscribe`, `getTraceId`, `debug`, `setTimeout`, `resolve`, `async`, `parse`, `string`, `race`, `unsubscribe`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -0,0 +1,46 @@
# `verae-zapier-middleware/routes/hashRoutes`
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/hashRoutes.js`
**Lines:** 22
## What this module is
Implementation module in `verae-zapier-middleware`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`hashRoutes`
## Types / interfaces / classes
_None extracted._
## Functions
_No top-level functions extracted._
## Methods (class / object)
| Name | Parameters |
|------|------------|
| `asyncHandler` | `async (req, res` |
## What it imports / requires
- `express`
- `../errors.js`
- `../services/timestampService.js`
## Call graph (identifiers invoked)
`get`, `asyncHandler`, `async`, `test`, `lookupHash`, `json`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/index.js`
**Lines:** 34
**Lines:** 36
## What this module is
@ -29,6 +29,7 @@ _No top-level functions extracted._
- `./statusRoutes.js`
- `./webhookRoutes.js`
- `./tenantRoutes.js`
- `./hashRoutes.js`
- `../middleware/authenticate.js`
- `../middleware/rateLimit.js`

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/timestampRoutes.js`
**Lines:** 50
**Lines:** 62
## What this module is

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/services/timestampService.js`
**Lines:** 123
**Lines:** 160
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`createTimestamp`, `createTimestampAndWait`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getJobVerification`
`createTimestamp`, `createTimestampAndWait`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getJobVerification`, `lookupHash`
## Types / interfaces / classes
@ -21,12 +21,13 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `enqueueWatchForJob` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `createTimestamp` | `ctx, body` | ctx: `object` | `Promise<{ jobId: string ` — >} | see Call graph |
| `createTimestamp` | `ctx, body` | ctx: `object` | `Promise<{ jobId: string, sha256?: string, existing?: boolean ` — >} | see Call graph |
| `createTimestampAndWait` | `ctx, body` | ctx: `object` | `Promise<object>` — StatusResponse | see Call graph |
| `createBatchTimestamp` | `ctx, body` | ctx: `object` | `unknown` | see Call graph |
| `getJobStatus` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `getBatchJobStatus` | `ctx, body` | ctx: `object` | `unknown` | see Call graph |
| `getJobVerification` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `lookupHash` | `ctx, sha256` | ctx: `object`, sha256: `string` | `unknown` | see Call graph |
## Methods (class / object)
@ -40,12 +41,12 @@ _None extracted._
}` |
| `checkEntitlement` | `ctx.tenantId, 'timestamp'` |
| `recordUsage` | `ctx.tenantId, 'timestamp'` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `checkEntitlement` | `ctx.tenantId, 'batch_timestamp', { amount: itemCount }` |
| `recordUsage` | `ctx.tenantId, 'batch_timestamp', { amount: itemCount }` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `recordUsage` | `ctx.tenantId, 'status', { amount: body.jobIds?.length ?? 1 }` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `recordUsage` | `ctx.tenantId, 'status'` |
## What it imports / requires
@ -58,7 +59,7 @@ _None extracted._
## Call graph (identifiers invoked)
`createDebugger`, `enqueueWatchForJob`, `getTraceId`, `import`, `enqueueWatch`, `debug`, `enqueueJob`, `createTimestamp`, `checkEntitlement`, `recordUsage`, `createTimestampAndWait`, `waitForJob`, `createBatchTimestamp`, `getJobStatus`, `getStatus`, `getBatchJobStatus`, `getBatchStatus`, `getJobVerification`
`createDebugger`, `enqueueWatchForJob`, `getTraceId`, `import`, `enqueueWatch`, `debug`, `enqueueJob`, `createTimestamp`, `checkEntitlement`, `recordUsage`, `createTimestampAndWait`, `waitForJobEvent`, `getStatus`, `waitForJob`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getBatchStatus`, `getJobVerification`, `lookupHash`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier`
**Source:** `packages/verae-zapier/index.js`
**Lines:** 79
**Lines:** 81
## What this module is
@ -32,6 +32,7 @@ _None extracted._
- `./creates/batch_timestamp`
- `./creates/add_numbers`
- `./searches/job_status`
- `./searches/hash_lookup`
- `./triggers/timestamp_completed`
- `zapier-platform-core`
- `./package.json`

View file

@ -0,0 +1,41 @@
# `verae-zapier/searches/hash_lookup`
**Package:** `verae-zapier`
**Source:** `packages/verae-zapier/searches/hash_lookup.js`
**Lines:** 35
## What this module is
Implementation module in `verae-zapier`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`key`, `noun`, `display`, `label`, `description`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `base` | `(none)` | — | `unknown` | see Call graph |
| `perform` | `z, bundle` | — | `unknown` | see Call graph |
## What it imports / requires
_No imports detected._
## Call graph (identifiers invoked)
`async`, `request`, `base`, `encodeURIComponent`, `digest`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -2,7 +2,7 @@
**Package:** `zappier`
**Source:** `packages/zappier/src/app.ts`
**Lines:** 203
**Lines:** 237
## What this module is
@ -47,7 +47,7 @@ Implementation module in `zappier`. The tables below are extracted from the sour
## Call graph (identifiers invoked)
`join`, `next`, `parse`, `status`, `json`, `buildApp`, `seeded`, `seedAdminUsersFromEnv`, `rateCard`, `getRateCard`, `tiers`, `getTiers`, `express`, `use`, `load`, `setup`, `adminLoginRouter`, `adminAuth`, `adminRouter`, `static`, `async`, `import`, `toDataURL`, `portalRouter`, `apiKeyAuth`, `middleware`, `get`, `meter`, `post`, `toUpperCase`, `isFinite`, `randomUUID`, `map`, `toISOString`, `unshift`, `filter`, `setUTCDate`, `setUTCHours`, `summaryFor`, `find`, `applyMonthlyCredit`
`join`, `next`, `parse`, `status`, `json`, `buildApp`, `seeded`, `seedAdminUsersFromEnv`, `rateCard`, `getRateCard`, `tiers`, `getTiers`, `express`, `use`, `load`, `setup`, `adminLoginRouter`, `adminAuth`, `adminRouter`, `static`, `async`, `import`, `toDataURL`, `portalRouter`, `apiKeyAuth`, `middleware`, `get`, `meter`, `post`, `toUpperCase`, `toLowerCase`, `createHash`, `update`, `digest`, `randomUUID`, `toISOString`, `set`, `isFinite`, `map`, `unshift`, `filter`, `setUTCDate`, `setUTCHours`, `summaryFor`, `find`, `applyMonthlyCredit`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `zappier`
**Source:** `packages/zappier/src/pricing.ts`
**Lines:** 171
**Lines:** 173
## What this module is

View file

@ -1,21 +1,6 @@
Verae × Zapier module reference
=================================
.. toctree::
:maxdepth: 1
:caption: Models
models/PriceRule
models/TierConfig
models/RateCard
models/Quote
models/CallUsage
models/Customer
models/AddNumbersResult
models/TimestampRequest
models/TimestampResponse
models/StatusResponse
.. toctree::
:maxdepth: 2
:caption: Modules
@ -61,7 +46,9 @@ Verae × Zapier module reference
modules/verae-zapier-middleware/nats/connection
modules/verae-zapier-middleware/nats/publishers
modules/verae-zapier-middleware/nats/subjects
modules/verae-zapier-middleware/nats/wait
modules/verae-zapier-middleware/routes/authRoutes
modules/verae-zapier-middleware/routes/hashRoutes
modules/verae-zapier-middleware/routes/index
modules/verae-zapier-middleware/routes/statusRoutes
modules/verae-zapier-middleware/routes/tenantRoutes
@ -84,6 +71,7 @@ Verae × Zapier module reference
modules/verae-zapier-middleware/workers/webhookWorker
modules/verae-activate/authentication
modules/verae-activate/creates/add_numbers
modules/verae-activate/creates/echo
modules/verae-activate/index
modules/verae-zapier/authentication
modules/verae-zapier/creates/add_numbers
@ -92,5 +80,6 @@ Verae × Zapier module reference
modules/verae-zapier/creates/timestamp_and_wait
modules/verae-zapier/creates/verify_timestamp
modules/verae-zapier/index
modules/verae-zapier/searches/hash_lookup
modules/verae-zapier/searches/job_status
modules/verae-zapier/triggers/timestamp_completed

View file

@ -0,0 +1,40 @@
# `verae-activate/creates/echo`
**Package:** `verae-activate`
**Source:** `packages/verae-activate/creates/echo.js`
**Lines:** 30
## What this module is
Implementation module in `verae-activate`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`key`, `noun`, `display`, `label`, `description`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `perform` | `_z, bundle` | — | `unknown` | see Call graph |
## What it imports / requires
_No imports detected._
## Call graph (identifiers invoked)
`action`, `async`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -0,0 +1,7 @@
verae-activate.creates.echo
===========================
Generated API sheet for ``verae-activate/creates/echo``.
.. include:: echo.md
:literal:

View file

@ -2,7 +2,7 @@
**Package:** `verae-activate`
**Source:** `packages/verae-activate/index.js`
**Lines:** 21
**Lines:** 23
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-activate`. The tables below are extracted from t
## Exports
`version`, `platformVersion`, `authentication`, `creates`, `addNumbers`
`version`, `platformVersion`, `authentication`, `creates`, `addNumbers`, `echo`
## Types / interfaces / classes
@ -24,6 +24,7 @@ _No top-level functions extracted._
- `./authentication`
- `./creates/add_numbers`
- `./creates/echo`
- `./package.json`
- `zapier-platform-core`

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/clients/veraeClient.js`
**Lines:** 288
**Lines:** 351
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`veraeClient`, `clearMockJobs`
`sha256Hex`, `veraeClient`, `clearMockJobs`
## Types / interfaces / classes
@ -20,11 +20,13 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `sha256Hex` | `data` | data: `string` | `string` | see Call graph |
| `delay` | `ms` | ms: `number` | `Promise<void>` | see Call graph |
| `mockLogin` | `{ username, password }` | ms: `number` | `Promise<void>` | see Call graph |
| `mockValidate` | `token` | — | `unknown` | see Call graph |
| `mockCreateTimestamp` | `{ data, hashAlg }` | — | `unknown` | see Call graph |
| `mockCreateTimestamp` | `{ data, hashAlg, sha256, publicMetadata, privateMetadata }` | — | `unknown` | see Call graph |
| `mockGetStatus` | `jobId` | — | `unknown` | see Call graph |
| `mockLookupHash` | `sha256` | — | `unknown` | see Call graph |
| `mockVerify` | `{ certificate }` | — | `unknown` | see Call graph |
| `request` | `path, { method = 'GET', token, body } = {}` | path: `string` | `Promise<any>` | see Call graph |
| `clearMockJobs` | `(none)` | — | `void` | see Call graph |
@ -37,6 +39,7 @@ _None extracted._
| `login` | `credentials` |
| `validate` | `token` |
| `createTimestamp` | `token, body` |
| `lookupHash` | `token, sha256` |
| `createBatchTimestamp` | `token, body` |
| `getStatus` | `token, jobId` |
| `getBatchStatus` | `token, body` |
@ -54,7 +57,7 @@ _None extracted._
## Call graph (identifiers invoked)
`net`, `createDebugger`, `delay`, `setTimeout`, `mockLogin`, `now`, `toISOString`, `randomUUID`, `includes`, `mockValidate`, `startsWith`, `replace`, `mockCreateTimestamp`, `set`, `get`, `mockGetStatus`, `mockVerify`, `request`, `debug`, `fetch`, `stringify`, `text`, `parse`, `error`, `client`, `login`, `validate`, `createTimestamp`, `createBatchTimestamp`, `push`, `getStatus`, `encodeURIComponent`, `getBatchStatus`, `verify`, `verifyBatch`, `getJobVerification`, `waitForJob`, `jobs`, `clearMockJobs`, `clear`
`net`, `createDebugger`, `sha256Hex`, `createHash`, `update`, `digest`, `delay`, `setTimeout`, `mockLogin`, `now`, `toISOString`, `randomUUID`, `includes`, `mockValidate`, `startsWith`, `replace`, `mockCreateTimestamp`, `toLowerCase`, `get`, `set`, `mockGetStatus`, `mockLookupHash`, `mockVerify`, `request`, `debug`, `fetch`, `stringify`, `text`, `parse`, `error`, `client`, `login`, `validate`, `createTimestamp`, `lookupHash`, `createBatchTimestamp`, `push`, `getStatus`, `encodeURIComponent`, `getBatchStatus`, `verify`, `verifyBatch`, `getJobVerification`, `waitForJob`, `jobs`, `clearMockJobs`, `clear`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/config.js`
**Lines:** 143
**Lines:** 145
## What this module is

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/nats/connection.js`
**Lines:** 112
**Lines:** 117
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`connectNats`, `ensureStreams`, `closeNats`, `getJetStream`, `isNatsConnected`
`connectNats`, `getNatsConnection`, `ensureStreams`, `closeNats`, `getJetStream`, `isNatsConnected`
## Types / interfaces / classes
@ -21,6 +21,7 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `connectNats` | `url = config.natsUrl` | url: `string` | `Promise<{ nc: import('nats').NatsConnection, js: import('nats').JetStreamClient, jsm: import('nats').JetStreamManager ` — >} | see Call graph |
| `getNatsConnection` | `(none)` | — | `import('nats').NatsConnection|null` | see Call graph |
| `ensureStreams` | `manager` | manager: `import('nats').JetStreamManager` | `Promise<void>` | see Call graph |
| `closeNats` | `(none)` | — | `Promise<void>` | see Call graph |
| `getJetStream` | `(none)` | — | `import('nats').JetStreamClient|null` | see Call graph |
@ -34,7 +35,7 @@ _None extracted._
## Call graph (identifiers invoked)
`createDebugger`, `import`, `connectNats`, `debug`, `disabled`, `info`, `connect`, `jetstream`, `jetstreamManager`, `ensureStreams`, `add`, `closeNats`, `drain`, `getJetStream`, `isNatsConnected`, `isClosed`
`createDebugger`, `import`, `connectNats`, `debug`, `disabled`, `info`, `connect`, `jetstream`, `jetstreamManager`, `getNatsConnection`, `ensureStreams`, `add`, `closeNats`, `drain`, `getJetStream`, `isNatsConnected`, `isClosed`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -0,0 +1,44 @@
# `verae-zapier-middleware/nats/wait`
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/nats/wait.js`
**Lines:** 60
## What this module is
Implementation module in `verae-zapier-middleware`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`waitForJobEvent`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `waitForJobEvent` | `jobId, timeoutMs` | jobId: `string`, timeoutMs: `number` | `Promise<object|null>` — event payload or null on timeout | see Call graph |
| `firstMatch` | `async (` | — | `unknown` | see Call graph |
## What it imports / requires
- `../debug/logger.js`
- `../debug/trace-context.js`
- `./subjects.js`
- `./connection.js`
## Call graph (identifiers invoked)
`createDebugger`, `waitForJobEvent`, `getNatsConnection`, `connectNats`, `subscribe`, `getTraceId`, `debug`, `setTimeout`, `resolve`, `async`, `parse`, `string`, `race`, `unsubscribe`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -0,0 +1,7 @@
verae-zapier-middleware.nats.wait
=================================
Generated API sheet for ``verae-zapier-middleware/nats/wait``.
.. include:: wait.md
:literal:

View file

@ -0,0 +1,46 @@
# `verae-zapier-middleware/routes/hashRoutes`
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/hashRoutes.js`
**Lines:** 22
## What this module is
Implementation module in `verae-zapier-middleware`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`hashRoutes`
## Types / interfaces / classes
_None extracted._
## Functions
_No top-level functions extracted._
## Methods (class / object)
| Name | Parameters |
|------|------------|
| `asyncHandler` | `async (req, res` |
## What it imports / requires
- `express`
- `../errors.js`
- `../services/timestampService.js`
## Call graph (identifiers invoked)
`get`, `asyncHandler`, `async`, `test`, `lookupHash`, `json`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -0,0 +1,7 @@
verae-zapier-middleware.routes.hashRoutes
=========================================
Generated API sheet for ``verae-zapier-middleware/routes/hashRoutes``.
.. include:: hashRoutes.md
:literal:

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/index.js`
**Lines:** 34
**Lines:** 36
## What this module is
@ -29,6 +29,7 @@ _No top-level functions extracted._
- `./statusRoutes.js`
- `./webhookRoutes.js`
- `./tenantRoutes.js`
- `./hashRoutes.js`
- `../middleware/authenticate.js`
- `../middleware/rateLimit.js`

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/routes/timestampRoutes.js`
**Lines:** 50
**Lines:** 62
## What this module is

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier-middleware`
**Source:** `packages/verae-zapier-middleware/src/services/timestampService.js`
**Lines:** 123
**Lines:** 160
## What this module is
@ -10,7 +10,7 @@ Implementation module in `verae-zapier-middleware`. The tables below are extract
## Exports
`createTimestamp`, `createTimestampAndWait`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getJobVerification`
`createTimestamp`, `createTimestampAndWait`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getJobVerification`, `lookupHash`
## Types / interfaces / classes
@ -21,12 +21,13 @@ _None extracted._
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `enqueueWatchForJob` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `createTimestamp` | `ctx, body` | ctx: `object` | `Promise<{ jobId: string ` — >} | see Call graph |
| `createTimestamp` | `ctx, body` | ctx: `object` | `Promise<{ jobId: string, sha256?: string, existing?: boolean ` — >} | see Call graph |
| `createTimestampAndWait` | `ctx, body` | ctx: `object` | `Promise<object>` — StatusResponse | see Call graph |
| `createBatchTimestamp` | `ctx, body` | ctx: `object` | `unknown` | see Call graph |
| `getJobStatus` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `getBatchJobStatus` | `ctx, body` | ctx: `object` | `unknown` | see Call graph |
| `getJobVerification` | `ctx, jobId` | ctx: `object`, jobId: `string` | `unknown` | see Call graph |
| `lookupHash` | `ctx, sha256` | ctx: `object`, sha256: `string` | `unknown` | see Call graph |
## Methods (class / object)
@ -40,12 +41,12 @@ _None extracted._
}` |
| `checkEntitlement` | `ctx.tenantId, 'timestamp'` |
| `recordUsage` | `ctx.tenantId, 'timestamp'` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `checkEntitlement` | `ctx.tenantId, 'batch_timestamp', { amount: itemCount }` |
| `recordUsage` | `ctx.tenantId, 'batch_timestamp', { amount: itemCount }` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `recordUsage` | `ctx.tenantId, 'status', { amount: body.jobIds?.length ?? 1 }` |
| `recordUsage` | `ctx.tenantId, 'status'` |
| `recordUsage` | `ctx.tenantId, 'status'` |
## What it imports / requires
@ -58,7 +59,7 @@ _None extracted._
## Call graph (identifiers invoked)
`createDebugger`, `enqueueWatchForJob`, `getTraceId`, `import`, `enqueueWatch`, `debug`, `enqueueJob`, `createTimestamp`, `checkEntitlement`, `recordUsage`, `createTimestampAndWait`, `waitForJob`, `createBatchTimestamp`, `getJobStatus`, `getStatus`, `getBatchJobStatus`, `getBatchStatus`, `getJobVerification`
`createDebugger`, `enqueueWatchForJob`, `getTraceId`, `import`, `enqueueWatch`, `debug`, `enqueueJob`, `createTimestamp`, `checkEntitlement`, `recordUsage`, `createTimestampAndWait`, `waitForJobEvent`, `getStatus`, `waitForJob`, `createBatchTimestamp`, `getJobStatus`, `getBatchJobStatus`, `getBatchStatus`, `getJobVerification`, `lookupHash`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `verae-zapier`
**Source:** `packages/verae-zapier/index.js`
**Lines:** 79
**Lines:** 81
## What this module is
@ -32,6 +32,7 @@ _None extracted._
- `./creates/batch_timestamp`
- `./creates/add_numbers`
- `./searches/job_status`
- `./searches/hash_lookup`
- `./triggers/timestamp_completed`
- `zapier-platform-core`
- `./package.json`

View file

@ -0,0 +1,41 @@
# `verae-zapier/searches/hash_lookup`
**Package:** `verae-zapier`
**Source:** `packages/verae-zapier/searches/hash_lookup.js`
**Lines:** 35
## What this module is
Implementation module in `verae-zapier`. The tables below are extracted from the source (signatures + JSDoc).
## Exports
`key`, `noun`, `display`, `label`, `description`
## Types / interfaces / classes
_None extracted._
## Functions
| Name | Parameters | Param types (JSDoc) | Returns | Calls (same file / helpers) |
|------|------------|---------------------|---------|-----------------------------|
| `base` | `(none)` | — | `unknown` | see Call graph |
| `perform` | `z, bundle` | — | `unknown` | see Call graph |
## What it imports / requires
_No imports detected._
## Call graph (identifiers invoked)
`async`, `request`, `base`, `encodeURIComponent`, `digest`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.
## Return values (how to read this)
- HTTP route handlers return Express `res.json(...)` bodies (see route docs).
- Zapier `perform` functions return a **single object** (creates) or an **array** (triggers/searches).
- Pricing functions return integer **cents** on `Quote.totalCents`.

View file

@ -0,0 +1,7 @@
verae-zapier.searches.hash_lookup
=================================
Generated API sheet for ``verae-zapier/searches/hash_lookup``.
.. include:: hash_lookup.md
:literal:

View file

@ -2,7 +2,7 @@
**Package:** `zappier`
**Source:** `packages/zappier/src/app.ts`
**Lines:** 203
**Lines:** 237
## What this module is
@ -47,7 +47,7 @@ Implementation module in `zappier`. The tables below are extracted from the sour
## Call graph (identifiers invoked)
`join`, `next`, `parse`, `status`, `json`, `buildApp`, `seeded`, `seedAdminUsersFromEnv`, `rateCard`, `getRateCard`, `tiers`, `getTiers`, `express`, `use`, `load`, `setup`, `adminLoginRouter`, `adminAuth`, `adminRouter`, `static`, `async`, `import`, `toDataURL`, `portalRouter`, `apiKeyAuth`, `middleware`, `get`, `meter`, `post`, `toUpperCase`, `isFinite`, `randomUUID`, `map`, `toISOString`, `unshift`, `filter`, `setUTCDate`, `setUTCHours`, `summaryFor`, `find`, `applyMonthlyCredit`
`join`, `next`, `parse`, `status`, `json`, `buildApp`, `seeded`, `seedAdminUsersFromEnv`, `rateCard`, `getRateCard`, `tiers`, `getTiers`, `express`, `use`, `load`, `setup`, `adminLoginRouter`, `adminAuth`, `adminRouter`, `static`, `async`, `import`, `toDataURL`, `portalRouter`, `apiKeyAuth`, `middleware`, `get`, `meter`, `post`, `toUpperCase`, `toLowerCase`, `createHash`, `update`, `digest`, `randomUUID`, `toISOString`, `set`, `isFinite`, `map`, `unshift`, `filter`, `setUTCDate`, `setUTCHours`, `summaryFor`, `find`, `applyMonthlyCredit`
Each identifier is a call site in this file. Follow the import list to see the defining module; open that modules MD for parameter and return types.

View file

@ -2,7 +2,7 @@
**Package:** `zappier`
**Source:** `packages/zappier/src/pricing.ts`
**Lines:** 171
**Lines:** 173
## What this module is