@simpleapps-com/augur-api 2026.9.2 → 2026.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{client-CRQJDHrq.d.mts → client-1GPdPQn1.d.mts} +675 -498
- package/dist/{client-CRQJDHrq.d.ts → client-1GPdPQn1.d.ts} +675 -498
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2371 -2871
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2371 -2870
- package/dist/index.mjs.map +1 -1
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +1 -2
- package/dist/testing.js.map +1 -1
- package/dist/testing.mjs +1 -2
- package/dist/testing.mjs.map +1 -1
- package/package.json +2 -2
package/dist/testing.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AugurAPI } from './client-
|
|
1
|
+
import { A as AugurAPI } from './client-1GPdPQn1.mjs';
|
|
2
2
|
import 'valibot';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -47,7 +47,7 @@ interface MockFn {
|
|
|
47
47
|
}
|
|
48
48
|
/** Recursively maps AugurAPI to MockFn leaves */
|
|
49
49
|
type DeepMockClient<T> = {
|
|
50
|
-
[K in keyof T]: T[K] extends
|
|
50
|
+
[K in keyof T]: T[K] extends (...args: never[]) => unknown ? MockFn : DeepMockClient<T[K]>;
|
|
51
51
|
};
|
|
52
52
|
/** Return type of createMockClient */
|
|
53
53
|
interface MockClientResult {
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AugurAPI } from './client-
|
|
1
|
+
import { A as AugurAPI } from './client-1GPdPQn1.js';
|
|
2
2
|
import 'valibot';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -47,7 +47,7 @@ interface MockFn {
|
|
|
47
47
|
}
|
|
48
48
|
/** Recursively maps AugurAPI to MockFn leaves */
|
|
49
49
|
type DeepMockClient<T> = {
|
|
50
|
-
[K in keyof T]: T[K] extends
|
|
50
|
+
[K in keyof T]: T[K] extends (...args: never[]) => unknown ? MockFn : DeepMockClient<T[K]>;
|
|
51
51
|
};
|
|
52
52
|
/** Return type of createMockClient */
|
|
53
53
|
interface MockClientResult {
|
package/dist/testing.js
CHANGED
|
@@ -97,8 +97,7 @@ function getOrCreateStub(pathMap, key) {
|
|
|
97
97
|
}
|
|
98
98
|
function createDeepProxy(pathMap, path = []) {
|
|
99
99
|
const cache = /* @__PURE__ */ new Map();
|
|
100
|
-
return new Proxy(
|
|
101
|
-
}, {
|
|
100
|
+
return new Proxy(Function.prototype, {
|
|
102
101
|
get(_target, prop) {
|
|
103
102
|
if (prop === "then") return void 0;
|
|
104
103
|
if (prop === Symbol.toPrimitive) return void 0;
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing.ts"],"sourcesContent":["/**\n * Testing utilities for @simpleapps-com/augur-api\n *\n * Provides a Proxy-based deep mock factory that automatically creates\n * mock functions at any depth, matching the AugurAPI client shape.\n *\n * @example\n * ```typescript\n * import { createMockClient } from '@simpleapps-com/augur-api/testing';\n *\n * const { client, mocks } = createMockClient();\n * mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });\n *\n * const result = await client.commerce.cartHeaders.lookup({ userId: 1 });\n * expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);\n * ```\n */\n\nimport type { AugurAPI } from './client';\n\n/** Recorded call arguments */\nexport interface MockCall {\n args: unknown[];\n timestamp: number;\n}\n\n/** Call tracking state */\nexport interface MockState {\n calls: unknown[][];\n results: Array<{ type: 'return' | 'throw'; value: unknown }>;\n instances: unknown[];\n lastCall: unknown[] | undefined;\n}\n\n/** A mock function with call tracking and return-value control */\nexport interface MockFn {\n (...args: unknown[]): unknown;\n mock: MockState;\n mockReturnValue(value: unknown): MockFn;\n mockResolvedValue(value: unknown): MockFn;\n mockRejectedValue(value: unknown): MockFn;\n mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;\n mockReset(): MockFn;\n mockClear(): MockFn;\n}\n\n/** Recursively maps AugurAPI to MockFn leaves */\nexport type DeepMockClient<T> = {\n
|
|
1
|
+
{"version":3,"sources":["../src/testing.ts"],"sourcesContent":["/**\n * Testing utilities for @simpleapps-com/augur-api\n *\n * Provides a Proxy-based deep mock factory that automatically creates\n * mock functions at any depth, matching the AugurAPI client shape.\n *\n * @example\n * ```typescript\n * import { createMockClient } from '@simpleapps-com/augur-api/testing';\n *\n * const { client, mocks } = createMockClient();\n * mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });\n *\n * const result = await client.commerce.cartHeaders.lookup({ userId: 1 });\n * expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);\n * ```\n */\n\nimport type { AugurAPI } from './client';\n\n/** Recorded call arguments */\nexport interface MockCall {\n args: unknown[];\n timestamp: number;\n}\n\n/** Call tracking state */\nexport interface MockState {\n calls: unknown[][];\n results: Array<{ type: 'return' | 'throw'; value: unknown }>;\n instances: unknown[];\n lastCall: unknown[] | undefined;\n}\n\n/** A mock function with call tracking and return-value control */\nexport interface MockFn {\n (...args: unknown[]): unknown;\n mock: MockState;\n mockReturnValue(value: unknown): MockFn;\n mockResolvedValue(value: unknown): MockFn;\n mockRejectedValue(value: unknown): MockFn;\n mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;\n mockReset(): MockFn;\n mockClear(): MockFn;\n}\n\n/** Recursively maps AugurAPI to MockFn leaves */\nexport type DeepMockClient<T> = {\n [K in keyof T]: T[K] extends (...args: never[]) => unknown ? MockFn : DeepMockClient<T[K]>;\n};\n\n/** Return type of createMockClient */\nexport interface MockClientResult {\n client: AugurAPI;\n mocks: DeepMockClient<AugurAPI>;\n}\n\n/** Create a stub function with full call-tracking */\nfunction createStubFn(): MockFn {\n let implementation: ((...args: unknown[]) => unknown) | null = null;\n\n const state: MockState = {\n calls: [],\n results: [],\n instances: [],\n lastCall: undefined,\n };\n\n const fn = function mockFn(this: unknown, ...args: unknown[]): unknown {\n state.calls.push(args);\n state.lastCall = args;\n state.instances.push(this);\n\n try {\n const result = implementation ? implementation(...args) : undefined;\n state.results.push({ type: 'return', value: result });\n return result;\n } catch (error: unknown) {\n state.results.push({ type: 'throw', value: error });\n throw error;\n }\n } as MockFn;\n\n fn.mock = state;\n\n fn.mockReturnValue = (value: unknown): MockFn => {\n implementation = () => value;\n return fn;\n };\n\n fn.mockResolvedValue = (value: unknown): MockFn => {\n implementation = () => Promise.resolve(value);\n return fn;\n };\n\n fn.mockRejectedValue = (value: unknown): MockFn => {\n implementation = () => Promise.reject(value);\n return fn;\n };\n\n fn.mockImplementation = (implFn: (...args: unknown[]) => unknown): MockFn => {\n implementation = implFn;\n return fn;\n };\n\n fn.mockReset = (): MockFn => {\n state.calls = [];\n state.results = [];\n state.instances = [];\n state.lastCall = undefined;\n implementation = null;\n return fn;\n };\n\n fn.mockClear = (): MockFn => {\n state.calls = [];\n state.results = [];\n state.instances = [];\n state.lastCall = undefined;\n return fn;\n };\n\n return fn;\n}\n\n/** Property names that belong to MockFn — triggers stub creation */\nconst MOCK_FN_PROPS = new Set([\n 'mock',\n 'mockReturnValue',\n 'mockResolvedValue',\n 'mockRejectedValue',\n 'mockImplementation',\n 'mockReset',\n 'mockClear',\n]);\n\n/**\n * Get or create a stub for a given path key.\n */\nfunction getOrCreateStub(pathMap: Map<string, MockFn>, key: string): MockFn {\n let stub = pathMap.get(key);\n if (!stub) {\n stub = createStubFn();\n pathMap.set(key, stub);\n }\n return stub;\n}\n\n/**\n * Create a recursive Proxy that lazily materializes MockFn stubs\n * at any property access depth.\n */\nfunction createDeepProxy(pathMap: Map<string, MockFn>, path: string[] = []): unknown {\n const cache = new Map<string | symbol, unknown>();\n\n // The target only has to be callable so the `apply` trap fires; calls never\n // reach it. Function.prototype is callable and adds no uncovered code.\n return new Proxy(Function.prototype, {\n get(_target: object, prop: string | symbol): unknown {\n // Prevent spurious thenable detection (await/Promise.resolve)\n if (prop === 'then') return undefined;\n\n // Support typeof checks\n if (prop === Symbol.toPrimitive) return undefined;\n if (prop === Symbol.iterator) return undefined;\n if (prop === Symbol.toStringTag) return 'MockProxy';\n\n // MockFn property access — create stub eagerly and delegate\n if (typeof prop === 'string' && MOCK_FN_PROPS.has(prop)) {\n const stub = getOrCreateStub(pathMap, path.join('.'));\n return (stub as unknown as Record<string, unknown>)[prop];\n }\n\n // Return cached child proxy\n if (cache.has(prop)) {\n return cache.get(prop);\n }\n\n // Create child proxy for the next level\n const childPath = [...path, String(prop)];\n const child = createDeepProxy(pathMap, childPath);\n cache.set(prop, child);\n return child;\n },\n\n apply(_target: object, thisArg: unknown, args: unknown[]): unknown {\n const stub = getOrCreateStub(pathMap, path.join('.'));\n return stub.apply(thisArg, args);\n },\n });\n}\n\n/**\n * Create a fully-mocked AugurAPI client.\n *\n * Every property chain resolves to either a nested namespace or a callable\n * MockFn. The same object serves as both `client` (passed to production code)\n * and `mocks` (used in assertions).\n *\n * @returns `{ client, mocks }` — same object, dual-typed for ergonomics\n *\n * @example\n * ```typescript\n * const { client, mocks } = createMockClient();\n *\n * // Stub a return value\n * mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });\n *\n * // Call through the client\n * const result = await client.items.products.get(1);\n *\n * // Assert\n * expect(mocks.items.products.get.mock.calls).toHaveLength(1);\n * expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);\n * ```\n */\nexport function createMockClient(): MockClientResult {\n const pathMap = new Map<string, MockFn>();\n const proxy = createDeepProxy(pathMap);\n\n return {\n client: proxy as unknown as AugurAPI,\n mocks: proxy as unknown as DeepMockClient<AugurAPI>,\n };\n}\n"],"mappings":"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","names":[]}
|
package/dist/testing.mjs
CHANGED
|
@@ -73,8 +73,7 @@ function getOrCreateStub(pathMap, key) {
|
|
|
73
73
|
}
|
|
74
74
|
function createDeepProxy(pathMap, path = []) {
|
|
75
75
|
const cache = /* @__PURE__ */ new Map();
|
|
76
|
-
return new Proxy(
|
|
77
|
-
}, {
|
|
76
|
+
return new Proxy(Function.prototype, {
|
|
78
77
|
get(_target, prop) {
|
|
79
78
|
if (prop === "then") return void 0;
|
|
80
79
|
if (prop === Symbol.toPrimitive) return void 0;
|
package/dist/testing.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing.ts"],"sourcesContent":["/**\n * Testing utilities for @simpleapps-com/augur-api\n *\n * Provides a Proxy-based deep mock factory that automatically creates\n * mock functions at any depth, matching the AugurAPI client shape.\n *\n * @example\n * ```typescript\n * import { createMockClient } from '@simpleapps-com/augur-api/testing';\n *\n * const { client, mocks } = createMockClient();\n * mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });\n *\n * const result = await client.commerce.cartHeaders.lookup({ userId: 1 });\n * expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);\n * ```\n */\n\nimport type { AugurAPI } from './client';\n\n/** Recorded call arguments */\nexport interface MockCall {\n args: unknown[];\n timestamp: number;\n}\n\n/** Call tracking state */\nexport interface MockState {\n calls: unknown[][];\n results: Array<{ type: 'return' | 'throw'; value: unknown }>;\n instances: unknown[];\n lastCall: unknown[] | undefined;\n}\n\n/** A mock function with call tracking and return-value control */\nexport interface MockFn {\n (...args: unknown[]): unknown;\n mock: MockState;\n mockReturnValue(value: unknown): MockFn;\n mockResolvedValue(value: unknown): MockFn;\n mockRejectedValue(value: unknown): MockFn;\n mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;\n mockReset(): MockFn;\n mockClear(): MockFn;\n}\n\n/** Recursively maps AugurAPI to MockFn leaves */\nexport type DeepMockClient<T> = {\n
|
|
1
|
+
{"version":3,"sources":["../src/testing.ts"],"sourcesContent":["/**\n * Testing utilities for @simpleapps-com/augur-api\n *\n * Provides a Proxy-based deep mock factory that automatically creates\n * mock functions at any depth, matching the AugurAPI client shape.\n *\n * @example\n * ```typescript\n * import { createMockClient } from '@simpleapps-com/augur-api/testing';\n *\n * const { client, mocks } = createMockClient();\n * mocks.commerce.cartHeaders.lookup.mockResolvedValue({ data: [] });\n *\n * const result = await client.commerce.cartHeaders.lookup({ userId: 1 });\n * expect(mocks.commerce.cartHeaders.lookup.mock.calls[0]).toEqual([{ userId: 1 }]);\n * ```\n */\n\nimport type { AugurAPI } from './client';\n\n/** Recorded call arguments */\nexport interface MockCall {\n args: unknown[];\n timestamp: number;\n}\n\n/** Call tracking state */\nexport interface MockState {\n calls: unknown[][];\n results: Array<{ type: 'return' | 'throw'; value: unknown }>;\n instances: unknown[];\n lastCall: unknown[] | undefined;\n}\n\n/** A mock function with call tracking and return-value control */\nexport interface MockFn {\n (...args: unknown[]): unknown;\n mock: MockState;\n mockReturnValue(value: unknown): MockFn;\n mockResolvedValue(value: unknown): MockFn;\n mockRejectedValue(value: unknown): MockFn;\n mockImplementation(fn: (...args: unknown[]) => unknown): MockFn;\n mockReset(): MockFn;\n mockClear(): MockFn;\n}\n\n/** Recursively maps AugurAPI to MockFn leaves */\nexport type DeepMockClient<T> = {\n [K in keyof T]: T[K] extends (...args: never[]) => unknown ? MockFn : DeepMockClient<T[K]>;\n};\n\n/** Return type of createMockClient */\nexport interface MockClientResult {\n client: AugurAPI;\n mocks: DeepMockClient<AugurAPI>;\n}\n\n/** Create a stub function with full call-tracking */\nfunction createStubFn(): MockFn {\n let implementation: ((...args: unknown[]) => unknown) | null = null;\n\n const state: MockState = {\n calls: [],\n results: [],\n instances: [],\n lastCall: undefined,\n };\n\n const fn = function mockFn(this: unknown, ...args: unknown[]): unknown {\n state.calls.push(args);\n state.lastCall = args;\n state.instances.push(this);\n\n try {\n const result = implementation ? implementation(...args) : undefined;\n state.results.push({ type: 'return', value: result });\n return result;\n } catch (error: unknown) {\n state.results.push({ type: 'throw', value: error });\n throw error;\n }\n } as MockFn;\n\n fn.mock = state;\n\n fn.mockReturnValue = (value: unknown): MockFn => {\n implementation = () => value;\n return fn;\n };\n\n fn.mockResolvedValue = (value: unknown): MockFn => {\n implementation = () => Promise.resolve(value);\n return fn;\n };\n\n fn.mockRejectedValue = (value: unknown): MockFn => {\n implementation = () => Promise.reject(value);\n return fn;\n };\n\n fn.mockImplementation = (implFn: (...args: unknown[]) => unknown): MockFn => {\n implementation = implFn;\n return fn;\n };\n\n fn.mockReset = (): MockFn => {\n state.calls = [];\n state.results = [];\n state.instances = [];\n state.lastCall = undefined;\n implementation = null;\n return fn;\n };\n\n fn.mockClear = (): MockFn => {\n state.calls = [];\n state.results = [];\n state.instances = [];\n state.lastCall = undefined;\n return fn;\n };\n\n return fn;\n}\n\n/** Property names that belong to MockFn — triggers stub creation */\nconst MOCK_FN_PROPS = new Set([\n 'mock',\n 'mockReturnValue',\n 'mockResolvedValue',\n 'mockRejectedValue',\n 'mockImplementation',\n 'mockReset',\n 'mockClear',\n]);\n\n/**\n * Get or create a stub for a given path key.\n */\nfunction getOrCreateStub(pathMap: Map<string, MockFn>, key: string): MockFn {\n let stub = pathMap.get(key);\n if (!stub) {\n stub = createStubFn();\n pathMap.set(key, stub);\n }\n return stub;\n}\n\n/**\n * Create a recursive Proxy that lazily materializes MockFn stubs\n * at any property access depth.\n */\nfunction createDeepProxy(pathMap: Map<string, MockFn>, path: string[] = []): unknown {\n const cache = new Map<string | symbol, unknown>();\n\n // The target only has to be callable so the `apply` trap fires; calls never\n // reach it. Function.prototype is callable and adds no uncovered code.\n return new Proxy(Function.prototype, {\n get(_target: object, prop: string | symbol): unknown {\n // Prevent spurious thenable detection (await/Promise.resolve)\n if (prop === 'then') return undefined;\n\n // Support typeof checks\n if (prop === Symbol.toPrimitive) return undefined;\n if (prop === Symbol.iterator) return undefined;\n if (prop === Symbol.toStringTag) return 'MockProxy';\n\n // MockFn property access — create stub eagerly and delegate\n if (typeof prop === 'string' && MOCK_FN_PROPS.has(prop)) {\n const stub = getOrCreateStub(pathMap, path.join('.'));\n return (stub as unknown as Record<string, unknown>)[prop];\n }\n\n // Return cached child proxy\n if (cache.has(prop)) {\n return cache.get(prop);\n }\n\n // Create child proxy for the next level\n const childPath = [...path, String(prop)];\n const child = createDeepProxy(pathMap, childPath);\n cache.set(prop, child);\n return child;\n },\n\n apply(_target: object, thisArg: unknown, args: unknown[]): unknown {\n const stub = getOrCreateStub(pathMap, path.join('.'));\n return stub.apply(thisArg, args);\n },\n });\n}\n\n/**\n * Create a fully-mocked AugurAPI client.\n *\n * Every property chain resolves to either a nested namespace or a callable\n * MockFn. The same object serves as both `client` (passed to production code)\n * and `mocks` (used in assertions).\n *\n * @returns `{ client, mocks }` — same object, dual-typed for ergonomics\n *\n * @example\n * ```typescript\n * const { client, mocks } = createMockClient();\n *\n * // Stub a return value\n * mocks.items.products.get.mockResolvedValue({ data: { id: 1 } });\n *\n * // Call through the client\n * const result = await client.items.products.get(1);\n *\n * // Assert\n * expect(mocks.items.products.get.mock.calls).toHaveLength(1);\n * expect(mocks.items.products.get.mock.calls[0]).toEqual([1]);\n * ```\n */\nexport function createMockClient(): MockClientResult {\n const pathMap = new Map<string, MockFn>();\n const proxy = createDeepProxy(pathMap);\n\n return {\n client: proxy as unknown as AugurAPI,\n mocks: proxy as unknown as DeepMockClient<AugurAPI>,\n };\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simpleapps-com/augur-api",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.3",
|
|
4
4
|
"description": "TypeScript client library for Augur microservices API endpoints",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"augur",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"lint:fix": "eslint . --ext .ts --fix",
|
|
54
54
|
"format": "prettier --write .",
|
|
55
55
|
"format:check": "prettier --check .",
|
|
56
|
-
"typecheck": "tsc --noEmit",
|
|
56
|
+
"typecheck": "tsc --noEmit && tsc -p tests",
|
|
57
57
|
"dead-code": "knip",
|
|
58
58
|
"check": "npm run format && npm run lint && npm run typecheck && npm run dead-code",
|
|
59
59
|
"prepublishOnly": "npm run clean && npm run build"
|