pinejs-client-supertest 2.1.2 → 2.1.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/build/index.d.ts CHANGED
@@ -3,12 +3,31 @@ import { PinejsClientCore } from 'pinejs-client-core';
3
3
  import type * as express from 'express';
4
4
  import type { CallbackHandler, Response, Test } from 'supertest';
5
5
  import type { UserParam, Overwrite } from './common';
6
- import type { PickDeferred, PickExpanded } from '@balena/abstract-sql-to-typescript';
6
+ import type { PickDeferred } from '@balena/abstract-sql-to-typescript';
7
+ type Expanded<T> = Extract<T, Array<Resource['Read']>>;
7
8
  type StringKeyOf<T> = keyof T & string;
8
- type SelectPropsOf<T extends Resource['Read'], U extends ODataOptions<T>> = U['$select'] extends ReadonlyArray<StringKeyOf<T>> ? U['$select'][number] : U['$select'] extends StringKeyOf<T> ? U['$select'] : StringKeyOf<T>;
9
- type ExpandPropsOf<T extends Resource['Read'], U extends ODataOptions<T>> = U['$expand'] extends ReadonlyArray<StringKeyOf<T>> ? U['$expand'][number] : U['$expand'] extends {
9
+ type SelectPropsOf<T extends Resource['Read'], U extends ODataOptions<T>> = U['$select'] extends ReadonlyArray<StringKeyOf<T>> ? U['$select'][number] : U['$select'] extends StringKeyOf<T> ? U['$select'] : Exclude<StringKeyOf<T>, ExpandPropsOf<T, U>>;
10
+ type ExpandPropsOf<T extends Resource['Read'], U extends ODataOptions<T>> = U['$expand'] extends {
10
11
  [key in StringKeyOf<T>]?: any;
11
- } ? StringKeyOf<U['$expand']> : never;
12
+ } ? StringKeyOf<U['$expand']> : U['$expand'] extends ReadonlyArray<StringKeyOf<T>> ? U['$expand'][number] : never;
13
+ type ExpandToResponse<T extends Resource['Read'], U extends ODataOptions<T>> = U['$expand'] extends {
14
+ [key in StringKeyOf<T>]?: any;
15
+ } ? {
16
+ [P in keyof U['$expand']]-?: OptionsToResponse<Expanded<T[P & string]>[number], U['$expand'][P], undefined>;
17
+ } : U['$expand'] extends ReadonlyArray<StringKeyOf<T>> ? {
18
+ [P in U['$expand'][number]]-?: Array<PickDeferred<Expanded<T[P]>[number]>>;
19
+ } : {};
20
+ type Equals<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? true : false;
21
+ type BaseResourceId = string | number | Date | {
22
+ '@': string;
23
+ };
24
+ type ResourceAlternateKey<T extends Resource['Read']> = {
25
+ [key in StringKeyOf<T>]?: BaseResourceId;
26
+ };
27
+ type ResourceId<T extends Resource['Read']> = BaseResourceId | ResourceAlternateKey<T>;
28
+ export type OptionsToResponse<T extends Resource['Read'], U extends ODataOptions<T>, ID extends ResourceId<T> | undefined> = U extends {
29
+ $count: ODataOptions<T>['$count'];
30
+ } ? number : Equals<ID, any> extends true ? (PickDeferred<T, SelectPropsOf<T, U>> & ExpandToResponse<T, U>) | undefined : ID extends ResourceId<T> ? (PickDeferred<T, SelectPropsOf<T, U>> & ExpandToResponse<T, U>) | undefined : Array<PickDeferred<T, SelectPropsOf<T, U>> & ExpandToResponse<T, U>>;
12
31
  type supportedMethod = 'get' | 'put' | 'patch' | 'post' | 'delete';
13
32
  export type PromiseResult<T = any> = Promise<T> & Omit<Test, 'expect' | 'then'> & Promise<Overwrite<Response, {
14
33
  body: T;
@@ -28,41 +47,10 @@ export declare class PineTest<Model extends {
28
47
  backendParams: BackendParams;
29
48
  constructor(params: ConstructorParams, backendParams: BackendParams);
30
49
  get<TResource extends StringKeyOf<Model>, TParams extends Params<Model[TResource]> & {
31
- options: {
32
- $count: NonNullable<ODataOptions<Model[TResource]['Read']>['$count']>;
33
- };
34
- }>(params: {
35
50
  resource: TResource;
36
- } & TParams): PromiseResult<number>;
37
- get<TResource extends StringKeyOf<Model>, TParams extends Params<Model[TResource]> & {
38
- id: NonNullable<Params<Model[TResource]>['id']>;
39
- options: NonNullable<Params<Model[TResource]>['options'] & ({
40
- $select: NonNullable<NonNullable<Params<Model[TResource]>['options']>['$select']>;
41
- } | {
42
- $expand: NonNullable<NonNullable<Params<Model[TResource]>['options']>['$expand']>;
43
- })>;
44
51
  }>(params: {
45
52
  resource: TResource;
46
- } & TParams): PromiseResult<NoInfer<PickDeferred<Model[TResource]['Read'], SelectPropsOf<Model[TResource]['Read'], NonNullable<TParams['options']>>> & PickExpanded<Model[TResource]['Read'], ExpandPropsOf<Model[TResource]['Read'], NonNullable<TParams['options']>>>> | undefined>;
47
- get<TResource extends StringKeyOf<Model>, TParams extends Params<Model[TResource]> & {
48
- id: NonNullable<Params<Model[TResource]>['id']>;
49
- resource: TResource;
50
- }>(params: {
51
- resource: TResource;
52
- } & TParams): PromiseResult<NoInfer<Model[TResource]['Read']> | undefined>;
53
- get<TResource extends StringKeyOf<Model>, TParams extends Omit<Params<Model[TResource]>, 'id'> & {
54
- resource: TResource;
55
- options: NonNullable<Params<Model[TResource]>['options'] & ({
56
- $select: NonNullable<NonNullable<Params<Model[TResource]>['options']>['$select']>;
57
- } | {
58
- $expand: NonNullable<NonNullable<Params<Model[TResource]>['options']>['$expand']>;
59
- })>;
60
- }>(params: {
61
- resource: TResource;
62
- } & TParams): PromiseResult<NoInfer<Array<PickDeferred<Model[TResource]['Read'], SelectPropsOf<Model[TResource]['Read'], NonNullable<TParams['options']>>> & PickExpanded<Model[TResource]['Read'], ExpandPropsOf<Model[TResource]['Read'], NonNullable<TParams['options']>>>>>>;
63
- get<TResource extends StringKeyOf<Model>>(params: {
64
- resource: TResource;
65
- } & Omit<Params<Model[TResource]>, 'id'>): PromiseResult<NoInfer<Array<Model[TResource]['Read']>>>;
53
+ } & TParams): PromiseResult<NoInfer<OptionsToResponse<Model[TResource]['Read'], NonNullable<TParams['options']>, TParams['id']>>>;
66
54
  get<T extends Resource = AnyResource>(params: {
67
55
  resource?: undefined;
68
56
  url: NonNullable<Params<T>['url']>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAUA,2DAAsD;AAGtD,2CAAoC;AACpC,iCAAgC;AA+DhC,MAAa,QAMX,SAAQ,qCAAgC;IACzC,YACC,MAAyB,EAClB,aAA4B;QAEnC,KAAK,CAAC,MAAM,CAAC,CAAC;QAFP,kBAAa,GAAb,aAAa,CAAe;IAGpC,CAAC;IAyHM,GAAG,CAAU,MAAc;QAIjC,MAAM,gBAAgB,GACrB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO;YACR,CAAC;YAED,IAAA,aAAM,EAAC,GAAG,EAAE;gBACX,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAKnE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACvC,KAAK,EAAE,UAAU;iBACjB,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,CAAqB,CAAC;IACxB,CAAC;IAcM,GAAG,CAAC,MAA2B;QACrC,OAAO,KAAK,CAAC,GAAG,CACf,MAAgE,CAGhE,CAAC;IACH,CAAC;IAcM,KAAK,CAAC,MAA2B;QACvC,OAAO,KAAK,CAAC,KAAK,CACjB,MAAkE,CAGlE,CAAC;IACH,CAAC;IAcM,IAAI,CAAC,MAA2B;QACtC,OAAO,KAAK,CAAC,IAAI,CAChB,MAAiE,CAGjE,CAAC;IACH,CAAC;IAcM,MAAM,CAAC,MAA2B;QACxC,OAAO,KAAK,CAAC,MAAM,CAClB,MAAmE,CAGnE,CAAC;IACH,CAAC;IAEM,MAAM;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAEM,WAAW;QACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAEM,OAAO,CACb,GAAG,IAA6D;QAEhE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAuB,CAAC;IACrD,CAAC;IAES,aAAa,CACtB,MAAwB,EACxB,KAAuB;QAEvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,EACR,MAAM,EACN,GAAG,EACH,IAAI,EACJ,IAAI,GAMJ;QACA,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,MAAM,eAAe,GAAG,IAAA,mBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAqB,CAAC;QAC3D,IAAI,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AA7RD,4BA6RC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAUA,2DAAsD;AAGtD,2CAAoC;AACpC,iCAAgC;AAyHhC,MAAa,QAMX,SAAQ,qCAAgC;IACzC,YACC,MAAyB,EAClB,aAA4B;QAEnC,KAAK,CAAC,MAAM,CAAC,CAAC;QAFP,kBAAa,GAAb,aAAa,CAAe;IAGpC,CAAC;IA4BM,GAAG,CAAU,MAAc;QAIjC,MAAM,gBAAgB,GACrB,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACvD,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC;QAEhC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YACjC,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO;YACR,CAAC;YAED,IAAA,aAAM,EAAC,GAAG,EAAE;gBACX,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAKnE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;oBACvC,KAAK,EAAE,UAAU;iBACjB,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,CAAqB,CAAC;IACxB,CAAC;IAcM,GAAG,CAAC,MAA2B;QACrC,OAAO,KAAK,CAAC,GAAG,CACf,MAAgE,CAGhE,CAAC;IACH,CAAC;IAcM,KAAK,CAAC,MAA2B;QACvC,OAAO,KAAK,CAAC,KAAK,CACjB,MAAkE,CAGlE,CAAC;IACH,CAAC;IAcM,IAAI,CAAC,MAA2B;QACtC,OAAO,KAAK,CAAC,IAAI,CAChB,MAAiE,CAGjE,CAAC;IACH,CAAC;IAcM,MAAM,CAAC,MAA2B;QACxC,OAAO,KAAK,CAAC,MAAM,CAClB,MAAmE,CAGnE,CAAC;IACH,CAAC;IAEM,MAAM;QACZ,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACvE,CAAC;IAEM,WAAW;QACjB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;IAEM,OAAO,CACb,GAAG,IAA6D;QAEhE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAuB,CAAC;IACrD,CAAC;IAES,aAAa,CACtB,MAAwB,EACxB,KAAuB;QAEvB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;YACrC,OAAO,MAAM,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpD,CAAC;IAED,QAAQ,CAAC,EACR,MAAM,EACN,GAAG,EACH,IAAI,EACJ,IAAI,GAMJ;QACA,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,MAAM,eAAe,GAAG,IAAA,mBAAS,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAqB,CAAC;QAC3D,IAAI,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAhMD,4BAgMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pinejs-client-supertest",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "description": "This module provides the nodejs interface for the pinejs API using request.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -52,6 +52,6 @@
52
52
  "supertest": "^7.0.0"
53
53
  },
54
54
  "versionist": {
55
- "publishedAt": "2024-08-30T16:56:42.158Z"
55
+ "publishedAt": "2024-09-13T12:00:29.503Z"
56
56
  }
57
57
  }