@starlightcms/js-sdk 0.6.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/cjs/client.d.ts.map +1 -1
  2. package/dist/cjs/client.js +8 -0
  3. package/dist/cjs/client.js.map +1 -1
  4. package/dist/cjs/index.js +5 -1
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/cjs/instances/Collection/index.d.ts +2 -2
  7. package/dist/cjs/instances/Collection/index.d.ts.map +1 -1
  8. package/dist/cjs/instances/Collection/index.js.map +1 -1
  9. package/dist/cjs/instances/Collection/types.d.ts +3 -3
  10. package/dist/cjs/instances/Collection/types.d.ts.map +1 -1
  11. package/dist/cjs/instances/Collection/types.js.map +1 -1
  12. package/dist/cjs/instances/Model/index.d.ts.map +1 -1
  13. package/dist/cjs/instances/Model/index.js +4 -0
  14. package/dist/cjs/instances/Model/index.js.map +1 -1
  15. package/dist/cjs/instances/Model/types.d.ts +2 -0
  16. package/dist/cjs/instances/Model/types.d.ts.map +1 -1
  17. package/dist/cjs/instances/Model/types.js.map +1 -1
  18. package/dist/cjs/selectors/Collection/types.d.ts +1 -1
  19. package/dist/cjs/selectors/Collection/types.d.ts.map +1 -1
  20. package/dist/cjs/selectors/Collection/types.js.map +1 -1
  21. package/dist/cjs/selectors/Entry/types.d.ts +1 -0
  22. package/dist/cjs/selectors/Entry/types.d.ts.map +1 -1
  23. package/dist/cjs/selectors/Entry/types.js.map +1 -1
  24. package/dist/cjs/selectors/Search/index.d.ts +5 -0
  25. package/dist/cjs/selectors/Search/index.d.ts.map +1 -0
  26. package/dist/cjs/selectors/Search/index.js +11 -0
  27. package/dist/cjs/selectors/Search/index.js.map +1 -0
  28. package/dist/cjs/selectors/Search/types.d.ts +14 -0
  29. package/dist/cjs/selectors/Search/types.d.ts.map +1 -0
  30. package/dist/cjs/selectors/Search/types.js +3 -0
  31. package/dist/cjs/selectors/Search/types.js.map +1 -0
  32. package/dist/cjs/selectors/Singleton/types.d.ts +2 -2
  33. package/dist/cjs/selectors/Singleton/types.d.ts.map +1 -1
  34. package/dist/cjs/selectors/Singleton/types.js.map +1 -1
  35. package/dist/cjs/types/entities.d.ts +9 -5
  36. package/dist/cjs/types/entities.d.ts.map +1 -1
  37. package/dist/cjs/types/entities.js.map +1 -1
  38. package/dist/cjs/types/fields.d.ts +1 -1
  39. package/dist/cjs/types/fields.d.ts.map +1 -1
  40. package/dist/cjs/types/fields.js.map +1 -1
  41. package/dist/cjs/types/index.d.ts +5 -1
  42. package/dist/cjs/types/index.d.ts.map +1 -1
  43. package/dist/cjs/types/index.js +5 -1
  44. package/dist/cjs/types/index.js.map +1 -1
  45. package/dist/esm/client.d.ts.map +1 -1
  46. package/dist/esm/client.js +8 -0
  47. package/dist/esm/client.js.map +1 -1
  48. package/dist/esm/instances/Collection/index.d.ts +2 -2
  49. package/dist/esm/instances/Collection/index.d.ts.map +1 -1
  50. package/dist/esm/instances/Collection/index.js.map +1 -1
  51. package/dist/esm/instances/Collection/types.d.ts +3 -3
  52. package/dist/esm/instances/Collection/types.d.ts.map +1 -1
  53. package/dist/esm/instances/Collection/types.js.map +1 -1
  54. package/dist/esm/instances/Model/index.d.ts.map +1 -1
  55. package/dist/esm/instances/Model/index.js +4 -0
  56. package/dist/esm/instances/Model/index.js.map +1 -1
  57. package/dist/esm/instances/Model/types.d.ts +2 -0
  58. package/dist/esm/instances/Model/types.d.ts.map +1 -1
  59. package/dist/esm/instances/Model/types.js.map +1 -1
  60. package/dist/esm/selectors/Collection/types.d.ts +1 -1
  61. package/dist/esm/selectors/Collection/types.d.ts.map +1 -1
  62. package/dist/esm/selectors/Collection/types.js.map +1 -1
  63. package/dist/esm/selectors/Entry/types.d.ts +1 -0
  64. package/dist/esm/selectors/Entry/types.d.ts.map +1 -1
  65. package/dist/esm/selectors/Entry/types.js.map +1 -1
  66. package/dist/esm/selectors/Search/index.d.ts +5 -0
  67. package/dist/esm/selectors/Search/index.d.ts.map +1 -0
  68. package/dist/esm/selectors/Search/index.js +8 -0
  69. package/dist/esm/selectors/Search/index.js.map +1 -0
  70. package/dist/esm/selectors/Search/types.d.ts +14 -0
  71. package/dist/esm/selectors/Search/types.d.ts.map +1 -0
  72. package/dist/esm/selectors/Search/types.js +2 -0
  73. package/dist/esm/selectors/Search/types.js.map +1 -0
  74. package/dist/esm/selectors/Singleton/types.d.ts +2 -2
  75. package/dist/esm/selectors/Singleton/types.d.ts.map +1 -1
  76. package/dist/esm/selectors/Singleton/types.js.map +1 -1
  77. package/dist/esm/types/entities.d.ts +9 -5
  78. package/dist/esm/types/entities.d.ts.map +1 -1
  79. package/dist/esm/types/entities.js.map +1 -1
  80. package/dist/esm/types/fields.d.ts +1 -1
  81. package/dist/esm/types/fields.d.ts.map +1 -1
  82. package/dist/esm/types/fields.js.map +1 -1
  83. package/dist/esm/types/index.d.ts +5 -1
  84. package/dist/esm/types/index.d.ts.map +1 -1
  85. package/dist/esm/types/index.js.map +1 -1
  86. package/package.json +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAQhB,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAC3D,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CA0EzD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAUhB,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAC3D,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAkFzD"}
@@ -19,6 +19,8 @@ const Model_2 = __importDefault(require("./instances/Model"));
19
19
  const Singleton_1 = __importDefault(require("./selectors/Singleton"));
20
20
  const Collection_1 = __importDefault(require("./selectors/Collection"));
21
21
  const Media_1 = __importDefault(require("./selectors/Media"));
22
+ const Search_1 = __importDefault(require("./selectors/Search"));
23
+ const Collection_2 = __importDefault(require("./instances/Collection"));
22
24
  function makeClient(config = {}) {
23
25
  var _a, _b, _c;
24
26
  let baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : 'https://query.starlight.sh/v2';
@@ -71,9 +73,15 @@ function makeClient(config = {}) {
71
73
  get collections() {
72
74
  return (0, Collection_1.default)(this);
73
75
  },
76
+ collection(slug) {
77
+ return (0, Collection_2.default)(this, slug);
78
+ },
74
79
  get media() {
75
80
  return (0, Media_1.default)(this);
76
81
  },
82
+ get search() {
83
+ return (0, Search_1.default)(this);
84
+ },
77
85
  };
78
86
  return new Proxy(client, {
79
87
  get(target, prop) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DefaultModelDefinition,\n ProxiedStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport { StarlightError } from './errors'\nimport makeModelSelector from './selectors/Model'\nimport makeModelInstance from './instances/Model'\nimport makeSingletonSelector from './selectors/Singleton'\nimport makeCollectionSelector from './selectors/Collection'\nimport makeMediaSelector from './selectors/Media'\n\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n>(config: StarlightConfig = {}): ProxiedStarlightClient<D> {\n let baseUrl = config.baseUrl ?? 'https://query.starlight.sh/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n\n getBaseUrl() {\n return `${baseUrl}/workspaces/${workspace}`\n },\n\n async get(path, params = {}, options) {\n const filteredParams = Object.keys(params).reduce((accumulator, key) => {\n const param = params[key]\n\n if (param || param === false) accumulator[key] = String(param)\n\n return accumulator\n }, {} as Record<string, string>)\n\n const searchParams = new URLSearchParams(filteredParams).toString()\n const finalPath = searchParams ? `${path}?${searchParams}` : path\n\n this.log(`Starlight - GET ${finalPath}`)\n\n const response = await fetch(`${this.getBaseUrl()}${finalPath}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n throw new StarlightError(message, response)\n }\n },\n\n get models() {\n return makeModelSelector(this)\n },\n\n model(slug) {\n return makeModelInstance(this, slug as string)\n },\n\n get singletons() {\n return makeSingletonSelector(this)\n },\n\n get collections() {\n return makeCollectionSelector(this)\n },\n\n get media() {\n return makeMediaSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelInstance(target, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as ProxiedStarlightClient<D>\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DefaultModelDefinition,\n ProxiedStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport { StarlightError } from './errors'\nimport makeModelSelector from './selectors/Model'\nimport makeModelInstance from './instances/Model'\nimport makeSingletonSelector from './selectors/Singleton'\nimport makeCollectionSelector from './selectors/Collection'\nimport makeMediaSelector from './selectors/Media'\nimport makeSearchSelector from './selectors/Search'\nimport makeCollectionInstance from './instances/Collection'\n\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n>(config: StarlightConfig = {}): ProxiedStarlightClient<D> {\n let baseUrl = config.baseUrl ?? 'https://query.starlight.sh/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n\n getBaseUrl() {\n return `${baseUrl}/workspaces/${workspace}`\n },\n\n async get(path, params = {}, options) {\n const filteredParams = Object.keys(params).reduce((accumulator, key) => {\n const param = params[key]\n\n if (param || param === false) accumulator[key] = String(param)\n\n return accumulator\n }, {} as Record<string, string>)\n\n const searchParams = new URLSearchParams(filteredParams).toString()\n const finalPath = searchParams ? `${path}?${searchParams}` : path\n\n this.log(`Starlight - GET ${finalPath}`)\n\n const response = await fetch(`${this.getBaseUrl()}${finalPath}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n throw new StarlightError(message, response)\n }\n },\n\n get models() {\n return makeModelSelector(this)\n },\n\n model(slug) {\n return makeModelInstance(this, slug as string)\n },\n\n get singletons() {\n return makeSingletonSelector(this)\n },\n\n get collections() {\n return makeCollectionSelector(this)\n },\n\n collection(slug: string | number) {\n return makeCollectionInstance(this, slug)\n },\n\n get media() {\n return makeMediaSelector(this)\n },\n\n get search() {\n return makeSearchSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelInstance(target, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as ProxiedStarlightClient<D>\n}\n"]}
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAAqC;AAMd,oGANd,mBAAU,OAMuB;AAL1C,mCAAyC;AAAhC,wGAAA,cAAc,OAAA;AACvB,0CAAuB;AAEvB,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAA;AAI9B,kBAAe,SAAS,CAAA","sourcesContent":["import { makeClient } from './client'\nexport { StarlightError } from './errors'\nexport * from './types'\n\nconst Starlight = makeClient()\n\nexport { makeClient as makeStarlightClient }\n\nexport default Starlight\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qCAAqC;AAMd,oGANd,mBAAU,OAMuB;AAL1C,mCAAyC;AAAhC,wGAAA,cAAc,OAAA;AACvB,0CAAuB;AAEvB,MAAM,SAAS,GAAG,IAAA,mBAAU,GAAE,CAAA;AAI9B,kBAAe,SAAS,CAAA","sourcesContent":["import { makeClient } from './client'\nexport { StarlightError } from './errors'\nexport * from './types'\n\nconst Starlight = makeClient()\n\nexport { makeClient as makeStarlightClient }\n\nexport default Starlight\n"]}
@@ -1,5 +1,5 @@
1
- import { StarlightClient } from '../../types';
1
+ import { CollectionTypes, StarlightClient } from '../../types';
2
2
  import { CollectionInstance } from './types';
3
- export default function makeCollectionInstance(client: StarlightClient, collection: string): CollectionInstance;
3
+ export default function makeCollectionInstance<T extends CollectionTypes = string>(client: StarlightClient, collection: string | number): CollectionInstance<T>;
4
4
  export { CollectionInstance };
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAUpB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,CAAC,SAAS,eAAe,GAAG,MAAM,EAClC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAU7E;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":";;AAGA,SAAwB,sBAAsB,CAC5C,MAAuB,EACvB,UAAkB;IAElB,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,KAAK,CAAC,OAAO;YACX,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC;AAbD,yCAaC","sourcesContent":["import { StarlightClient } from '../../types'\nimport { CollectionInstance } from './types'\n\nexport default function makeCollectionInstance(\n client: StarlightClient,\n collection: string\n): CollectionInstance {\n return {\n get() {\n return client.get(`/collections/${collection}`)\n },\n\n items(options) {\n return client.get(`/collections/${collection}/items`, options)\n },\n }\n}\n\nexport { CollectionInstance }\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":";;AAGA,SAAwB,sBAAsB,CAE5C,MAAuB,EAAE,UAA2B;IACpD,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,KAAK,CAAC,OAAO;YACX,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC;AAZD,yCAYC","sourcesContent":["import { CollectionTypes, StarlightClient } from '../../types'\nimport { CollectionInstance } from './types'\n\nexport default function makeCollectionInstance<\n T extends CollectionTypes = string\n>(client: StarlightClient, collection: string | number): CollectionInstance<T> {\n return {\n get() {\n return client.get(`/collections/${collection}`)\n },\n\n items(options) {\n return client.get(`/collections/${collection}/items`, options)\n },\n }\n}\n\nexport { CollectionInstance }\n"]}
@@ -1,4 +1,4 @@
1
- import { Collection, ModelFieldOptions, SerializedData, StarlightItemResponse, StarlightListResponse } from '../../types';
1
+ import { Collection, CollectionTypes, ModelFieldOptions, SerializedData, StarlightItemResponse, StarlightListResponse } from '../../types';
2
2
  export declare type ListCollectionItemsOptions<T> = {
3
3
  page?: number;
4
4
  limit?: number;
@@ -8,8 +8,8 @@ export declare type ListCollectionItemsOptions<T> = {
8
8
  order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'views:asc' | 'views:desc';
9
9
  except?: number;
10
10
  } & (T extends SerializedData ? ModelFieldOptions<T> : unknown);
11
- export interface CollectionInstance {
12
- get(): Promise<StarlightItemResponse<Collection>>;
11
+ export interface CollectionInstance<C extends CollectionTypes = string> {
12
+ get(): Promise<StarlightItemResponse<Collection<C>>>;
13
13
  items<T>(options?: ListCollectionItemsOptions<T>): Promise<StarlightListResponse<T>>;
14
14
  }
15
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,0BAA0B,CAAC,CAAC,IAAI;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AAE/D,MAAM,WAAW,kBAAkB;IACjC,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,CAAC,CAAC,EACL,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,0BAA0B,CAAC,CAAC,IAAI;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AAE/D,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACpE,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,KAAK,CAAC,CAAC,EACL,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListCollectionItemsOptions<T> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & (T extends SerializedData ? ModelFieldOptions<T> : unknown)\n\nexport interface CollectionInstance {\n get(): Promise<StarlightItemResponse<Collection>>\n items<T>(\n options?: ListCollectionItemsOptions<T>\n ): Promise<StarlightListResponse<T>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n CollectionTypes,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListCollectionItemsOptions<T> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & (T extends SerializedData ? ModelFieldOptions<T> : unknown)\n\nexport interface CollectionInstance<C extends CollectionTypes = string> {\n get(): Promise<StarlightItemResponse<Collection<C>>>\n items<T>(\n options?: ListCollectionItemsOptions<T>\n ): Promise<StarlightListResponse<T>>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAMvC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,CAAC,CAAC,CAclB;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AASvC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,CAAC,CAAC,CAkBlB;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -5,11 +5,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const Entry_1 = __importDefault(require("../../selectors/Entry"));
7
7
  const ModelCategory_1 = __importDefault(require("../../selectors/ModelCategory"));
8
+ const ModelCategory_2 = __importDefault(require("../ModelCategory"));
8
9
  function makeModelInstance(client, model) {
9
10
  return {
10
11
  get() {
11
12
  return client.get(`/models/${model}`);
12
13
  },
14
+ category(slug) {
15
+ return (0, ModelCategory_2.default)(client, model, slug);
16
+ },
13
17
  get entries() {
14
18
  return (0, Entry_1.default)(client, model);
15
19
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":";;;;;AAOA,kEAAwE;AACxE,kFAEsC;AAEtC,SAAwB,iBAAiB,CACvC,MAAuB,EACvB,KAAa;IAEb,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAA,eAAiB,EAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,IAAA,uBAAyB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC;AAjBD,oCAiBC","sourcesContent":["import {\n Model,\n SerializedData,\n StarlightClient,\n StarlightItemResponse,\n} from '../../types'\nimport { ModelInstance } from './types'\nimport makeEntrySelector, { EntrySelector } from '../../selectors/Entry'\nimport makeModelCategorySelector, {\n ProxiedModelCategorySelector,\n} from '../../selectors/ModelCategory'\n\nexport default function makeModelInstance<D extends SerializedData>(\n client: StarlightClient,\n model: string\n): ModelInstance<D> {\n return {\n get(): Promise<StarlightItemResponse<Model>> {\n return client.get(`/models/${model}`)\n },\n\n get entries(): EntrySelector<D> {\n return makeEntrySelector<D>(client, model)\n },\n\n get categories(): ProxiedModelCategorySelector<D> {\n return makeModelCategorySelector(client, model)\n },\n }\n}\n\nexport { ModelInstance }\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":";;;;;AAOA,kEAAwE;AACxE,kFAEsC;AACtC,qEAEyB;AAEzB,SAAwB,iBAAiB,CACvC,MAAuB,EACvB,KAAa;IAEb,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,IAAA,uBAAyB,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,OAAO;YACT,OAAO,IAAA,eAAiB,EAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,IAAA,uBAAyB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC;AArBD,oCAqBC","sourcesContent":["import {\n Model,\n SerializedData,\n StarlightClient,\n StarlightItemResponse,\n} from '../../types'\nimport { ModelInstance } from './types'\nimport makeEntrySelector, { EntrySelector } from '../../selectors/Entry'\nimport makeModelCategorySelector, {\n ProxiedModelCategorySelector,\n} from '../../selectors/ModelCategory'\nimport makeModelCategoryInstance, {\n ModelCategoryInstance,\n} from '../ModelCategory'\n\nexport default function makeModelInstance<D extends SerializedData>(\n client: StarlightClient,\n model: string\n): ModelInstance<D> {\n return {\n get(): Promise<StarlightItemResponse<Model>> {\n return client.get(`/models/${model}`)\n },\n\n category(slug: string): ModelCategoryInstance<D> {\n return makeModelCategoryInstance(client, model, slug)\n },\n\n get entries(): EntrySelector<D> {\n return makeEntrySelector<D>(client, model)\n },\n\n get categories(): ProxiedModelCategorySelector<D> {\n return makeModelCategorySelector(client, model)\n },\n }\n}\n\nexport { ModelInstance }\n"]}
@@ -1,8 +1,10 @@
1
1
  import { Model, SerializedData, StarlightItemResponse } from '../../types';
2
2
  import { EntrySelector } from '../../selectors/Entry';
3
3
  import { ProxiedModelCategorySelector } from '../../selectors/ModelCategory';
4
+ import { ModelCategoryInstance } from '../ModelCategory';
4
5
  export interface ModelInstance<D extends SerializedData> {
5
6
  get(): Promise<StarlightItemResponse<Model>>;
7
+ category(slug: string): ModelCategoryInstance<D>;
6
8
  get entries(): EntrySelector<D>;
7
9
  get categories(): ProxiedModelCategorySelector<D>;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAE5E,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,UAAU,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAChD,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,UAAU,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAA;CAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model, SerializedData, StarlightItemResponse } from '../../types'\nimport { EntrySelector } from '../../selectors/Entry'\nimport { ProxiedModelCategorySelector } from '../../selectors/ModelCategory'\n\nexport interface ModelInstance<D extends SerializedData> {\n get(): Promise<StarlightItemResponse<Model>>\n get entries(): EntrySelector<D>\n get categories(): ProxiedModelCategorySelector<D>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model, SerializedData, StarlightItemResponse } from '../../types'\nimport { EntrySelector } from '../../selectors/Entry'\nimport { ProxiedModelCategorySelector } from '../../selectors/ModelCategory'\nimport { ModelCategoryInstance } from '../ModelCategory'\n\nexport interface ModelInstance<D extends SerializedData> {\n get(): Promise<StarlightItemResponse<Model>>\n category(slug: string): ModelCategoryInstance<D>\n get entries(): EntrySelector<D>\n get categories(): ProxiedModelCategorySelector<D>\n}\n"]}
@@ -8,7 +8,7 @@ export declare type ListCollectionsOptions = {
8
8
  };
9
9
  export interface CollectionSelector {
10
10
  list(options?: ListCollectionsOptions): Promise<StarlightListResponse<Collection>>;
11
- get(slug: string): Promise<StarlightItemResponse<Collection>>;
11
+ get(slug: string | number): Promise<StarlightItemResponse<Collection>>;
12
12
  }
13
13
  export declare type ProxiedCollectionSelector = CollectionSelector & {
14
14
  [key: string]: CollectionInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,oBAAY,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;CAC1E,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CACF,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC9D;AAED,oBAAY,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,oBAAY,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;CAC1E,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CACF,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;CACvE;AAED,oBAAY,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\nimport { CollectionInstance } from '../../instances/Collection'\n\nexport type ListCollectionsOptions = {\n query?: string\n page?: number\n limit?: number\n order?: 'title:asc' | 'title:desc' | 'item_count:asc' | 'item_count:desc'\n}\n\nexport interface CollectionSelector {\n list(\n options?: ListCollectionsOptions\n ): Promise<StarlightListResponse<Collection>>\n get(slug: string): Promise<StarlightItemResponse<Collection>>\n}\n\nexport type ProxiedCollectionSelector = CollectionSelector & {\n [key: string]: CollectionInstance\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\nimport { CollectionInstance } from '../../instances/Collection'\n\nexport type ListCollectionsOptions = {\n query?: string\n page?: number\n limit?: number\n order?: 'title:asc' | 'title:desc' | 'item_count:asc' | 'item_count:desc'\n}\n\nexport interface CollectionSelector {\n list(\n options?: ListCollectionsOptions\n ): Promise<StarlightListResponse<Collection>>\n get(slug: string | number): Promise<StarlightItemResponse<Collection>>\n}\n\nexport type ProxiedCollectionSelector = CollectionSelector & {\n [key: string]: CollectionInstance\n}\n"]}
@@ -5,6 +5,7 @@ export declare type ListEntriesOptions<D extends SerializedData> = {
5
5
  query?: string;
6
6
  'query:word'?: string;
7
7
  fields?: string;
8
+ categories?: string;
8
9
  order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'views:asc' | 'views:desc';
9
10
  except?: number;
10
11
  } & ModelFieldOptions<D>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAExB,oBAAY,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAExB,oBAAY,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Entry,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListEntriesOptions<D extends SerializedData> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & ModelFieldOptions<D>\n\nexport type GetEntryParams = {\n preview?: string\n}\n\nexport interface EntrySelector<D extends SerializedData> {\n get(\n slug: string,\n params?: GetEntryParams,\n options?: RequestInit\n ): Promise<StarlightItemResponse<Entry<D>>>\n list(\n options?: ListEntriesOptions<D>\n ): Promise<StarlightListResponse<Entry<D>>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Entry,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListEntriesOptions<D extends SerializedData> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n categories?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & ModelFieldOptions<D>\n\nexport type GetEntryParams = {\n preview?: string\n}\n\nexport interface EntrySelector<D extends SerializedData> {\n get(\n slug: string,\n params?: GetEntryParams,\n options?: RequestInit\n ): Promise<StarlightItemResponse<Entry<D>>>\n list(\n options?: ListEntriesOptions<D>\n ): Promise<StarlightListResponse<Entry<D>>>\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { StarlightClient } from '../../types';
2
+ import { SearchSelector } from './types';
3
+ export default function makeSearchSelector(client: StarlightClient): SearchSelector;
4
+ export { SearchSelector };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,MAAM,EAAE,eAAe,GACtB,cAAc,CAQhB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function makeSearchSelector(client) {
4
+ return {
5
+ entries(options) {
6
+ return client.get('/search/entries', options);
7
+ },
8
+ };
9
+ }
10
+ exports.default = makeSearchSelector;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/selectors/Search/index.ts"],"names":[],"mappings":";;AAQA,SAAwB,kBAAkB,CACxC,MAAuB;IAEvB,OAAO;QACL,OAAO,CACL,OAA6B;YAE7B,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC;AAVD,qCAUC","sourcesContent":["import {\n Entry,\n SerializedData,\n StarlightClient,\n StarlightListResponse,\n} from '../../types'\nimport { SearchEntriesOptions, SearchSelector } from './types'\n\nexport default function makeSearchSelector(\n client: StarlightClient\n): SearchSelector {\n return {\n entries<T extends SerializedData = Record<string, unknown>>(\n options: SearchEntriesOptions\n ): Promise<StarlightListResponse<Entry<T>>> {\n return client.get('/search/entries', options)\n },\n }\n}\n\nexport { SearchSelector }\n"]}
@@ -0,0 +1,14 @@
1
+ import { Entry, SerializedData, StarlightListResponse } from '../../types';
2
+ export declare type SearchEntriesOptions = {
3
+ page?: number;
4
+ limit?: number;
5
+ query?: string;
6
+ models?: string;
7
+ categories?: string;
8
+ order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'updated_at:asc' | 'updated_at:desc';
9
+ except?: number;
10
+ };
11
+ export interface SearchSelector {
12
+ entries<T extends SerializedData = Record<string, unknown>>(options?: SearchEntriesOptions): Promise<StarlightListResponse<Entry<T>>>;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE1E,oBAAY,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Search/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Entry, SerializedData, StarlightListResponse } from '../../types'\n\nexport type SearchEntriesOptions = {\n page?: number\n limit?: number\n query?: string\n models?: string\n categories?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'updated_at:asc'\n | 'updated_at:desc'\n except?: number\n}\n\nexport interface SearchSelector {\n entries<T extends SerializedData = Record<string, unknown>>(\n options?: SearchEntriesOptions\n ): Promise<StarlightListResponse<Entry<T>>>\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { Singleton, StarlightItemResponse, StarlightListResponse } from '../../types';
1
+ import { SerializedData, Singleton, StarlightItemResponse, StarlightListResponse } from '../../types';
2
2
  export interface SingletonSelector {
3
- get(slug: string): Promise<StarlightItemResponse<Singleton<Record<string, unknown>>>>;
3
+ get<D extends SerializedData>(slug: string): Promise<StarlightItemResponse<Singleton<D>>>;
4
4
  list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>;
5
5
  }
6
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC,GAAG,CACD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,CAAC,SAAS,cAAc,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Singleton,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport interface SingletonSelector {\n get(\n slug: string\n ): Promise<StarlightItemResponse<Singleton<Record<string, unknown>>>>\n list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n SerializedData,\n Singleton,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport interface SingletonSelector {\n get<D extends SerializedData>(\n slug: string\n ): Promise<StarlightItemResponse<Singleton<D>>>\n list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>\n}\n"]}
@@ -21,6 +21,8 @@ export interface MediaObject extends StarlightEntity {
21
21
  extension: string;
22
22
  mime: string;
23
23
  files: MediaFile[];
24
+ alt?: string;
25
+ description?: string;
24
26
  }
25
27
  export interface Author {
26
28
  id: number;
@@ -50,16 +52,18 @@ export interface Singleton<D extends SerializedData> extends Omit<StarlightEntit
50
52
  data: D;
51
53
  published_at: string | null;
52
54
  }
53
- export interface Collection extends StarlightEntity {
55
+ export declare type CollectionTypes = 'entry' | 'singleton' | 'media' | string;
56
+ export interface Collection<T extends CollectionTypes = string> extends StarlightEntity {
54
57
  title: string;
55
58
  slug: string;
56
- type: 'entry' | 'singleton' | 'media' | string;
59
+ type: T;
57
60
  item_count?: number;
58
61
  }
59
- export interface Relation<D extends SerializedData = Record<string, unknown>> {
60
- type: 'entry' | 'media' | 'singleton' | 'collection' | string;
62
+ declare type RelationTypes = Entry<never> | Singleton<never> | MediaObject | Collection | unknown;
63
+ export interface Relation<T extends RelationTypes> {
64
+ type: T extends Entry<never> ? 'entry' : T extends Singleton<never> ? 'singleton' : T extends MediaObject ? 'media' : T extends Collection ? 'collection' : string;
61
65
  id: number;
62
- object: Entry<D> | Singleton<D> | MediaObject | Collection;
66
+ object: T;
63
67
  }
64
68
  export {};
65
69
  //# sourceMappingURL=entities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,KAAM,SAAQ,eAAe;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEhE,oBAAY,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM;CACjD,CAAA;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,cAAc,CAC7C,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,cAAc,CACjD,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAA;IACP,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1E,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAA;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,UAAU,CAAA;CAC3D"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"","sourcesContent":["interface StarlightEntity {\n id: number\n created_at: string\n updated_at?: string\n}\n\nexport interface ModelCategory extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport interface MediaFile extends StarlightEntity {\n variation: string\n path: string\n mime: string\n background_color?: string\n filesize: number\n meta?: Record<string, unknown>\n}\n\nexport interface MediaObject extends StarlightEntity {\n name: string\n extension: string\n mime: string\n files: MediaFile[]\n}\n\nexport interface Author {\n id: number\n name: string\n}\n\nexport interface Model extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport type SerializedData = Record<string, unknown> | undefined\n\nexport type ModelFieldOptions<D extends SerializedData> = {\n [K in keyof D as `field:${string & K}`]?: string\n}\n\nexport interface Entry<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n author: Author\n model?: Model\n category: ModelCategory | null\n published_at: string | null\n}\n\nexport interface Singleton<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n published_at: string | null\n}\n\nexport interface Collection extends StarlightEntity {\n title: string\n slug: string\n type: 'entry' | 'singleton' | 'media' | string\n item_count?: number\n}\n\nexport interface Relation<D extends SerializedData = Record<string, unknown>> {\n type: 'entry' | 'media' | 'singleton' | 'collection' | string\n id: number\n object: Entry<D> | Singleton<D> | MediaObject | Collection\n}\n"]}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"","sourcesContent":["interface StarlightEntity {\n id: number\n created_at: string\n updated_at?: string\n}\n\nexport interface ModelCategory extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport interface MediaFile extends StarlightEntity {\n variation: string\n path: string\n mime: string\n background_color?: string\n filesize: number\n meta?: Record<string, unknown>\n}\n\nexport interface MediaObject extends StarlightEntity {\n name: string\n extension: string\n mime: string\n files: MediaFile[]\n alt?: string\n description?: string\n}\n\nexport interface Author {\n id: number\n name: string\n}\n\nexport interface Model extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport type SerializedData = Record<string, unknown> | undefined\n\nexport type ModelFieldOptions<D extends SerializedData> = {\n [K in keyof D as `field:${string & K}`]?: string\n}\n\nexport interface Entry<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n author: Author\n model?: Model\n category: ModelCategory | null\n published_at: string | null\n}\n\nexport interface Singleton<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n published_at: string | null\n}\n\nexport type CollectionTypes = 'entry' | 'singleton' | 'media' | string\n\nexport interface Collection<T extends CollectionTypes = string>\n extends StarlightEntity {\n title: string\n slug: string\n type: T\n item_count?: number\n}\n\ntype RelationTypes =\n | Entry<never>\n | Singleton<never>\n | MediaObject\n | Collection\n | unknown\n\nexport interface Relation<T extends RelationTypes> {\n type: T extends Entry<never>\n ? 'entry'\n : T extends Singleton<never>\n ? 'singleton'\n : T extends MediaObject\n ? 'media'\n : T extends Collection\n ? 'collection'\n : string\n id: number\n object: T\n}\n"]}
@@ -3,7 +3,7 @@ import { VisualData } from './visual';
3
3
  export declare type BooleanField = boolean;
4
4
  export declare type HtmlField = string;
5
5
  export declare type MediaField = MediaObject;
6
- export declare type RelationField = Relation;
6
+ export declare type RelationField<T> = Relation<T>;
7
7
  export declare type StringField = string;
8
8
  export declare type TextField = string;
9
9
  export declare type VisualField = VisualData;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,UAAU,GAAG,WAAW,CAAA;AAEpC,oBAAY,aAAa,GAAG,QAAQ,CAAA;AAEpC,oBAAY,WAAW,GAAG,MAAM,CAAA;AAEhC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,WAAW,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,UAAU,GAAG,WAAW,CAAA;AAEpC,oBAAY,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE1C,oBAAY,WAAW,GAAG,MAAM,CAAA;AAEhC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,WAAW,GAAG,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"","sourcesContent":["import { MediaObject, Relation } from './entities'\nimport { VisualData } from './visual'\n\nexport type BooleanField = boolean\n\nexport type HtmlField = string\n\nexport type MediaField = MediaObject\n\nexport type RelationField = Relation\n\nexport type StringField = string\n\nexport type TextField = string\n\nexport type VisualField = VisualData\n"]}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"","sourcesContent":["import { MediaObject, Relation } from './entities'\nimport { VisualData } from './visual'\n\nexport type BooleanField = boolean\n\nexport type HtmlField = string\n\nexport type MediaField = MediaObject\n\nexport type RelationField<T> = Relation<T>\n\nexport type StringField = string\n\nexport type TextField = string\n\nexport type VisualField = VisualData\n"]}
@@ -1,9 +1,11 @@
1
- import { SerializedData } from './entities';
1
+ import { CollectionTypes, SerializedData } from './entities';
2
2
  import { ProxiedModelSelector } from '../selectors/Model';
3
3
  import { ModelInstance } from '../instances/Model';
4
4
  import { SingletonSelector } from '../selectors/Singleton';
5
5
  import { ProxiedCollectionSelector } from '../selectors/Collection';
6
6
  import { MediaSelector } from '../selectors/Media';
7
+ import { SearchSelector } from '../selectors/Search';
8
+ import { CollectionInstance } from '../instances/Collection';
7
9
  export * from './fields';
8
10
  export * from './entities';
9
11
  export * from './visual';
@@ -22,7 +24,9 @@ export interface StarlightClient<D extends WorkspaceModelDefinition = DefaultMod
22
24
  model<S extends keyof D>(slug: S): ModelInstance<D[S]>;
23
25
  get singletons(): SingletonSelector;
24
26
  get collections(): ProxiedCollectionSelector;
27
+ collection<T extends CollectionTypes = string>(slug: string | number): CollectionInstance<T>;
25
28
  get media(): MediaSelector;
29
+ get search(): SearchSelector;
26
30
  }
27
31
  export declare type ProxiedStarlightClient<T extends WorkspaceModelDefinition> = StarlightClient<T> & {
28
32
  [K in keyof T]: ModelInstance<T[K]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AAExB,aAAK,OAAO,GAAG,+BAA+B,GAAG,MAAM,CAAA;AAEvD,oBAAY,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,wBAAwB,GAAG,sBAAsB;IAE3D,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAExC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAE1D,UAAU,IAAI,MAAM,CAAA;IAEpB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAC9D,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,CAAC,CAAC,CAAA;IAEb,IAAI,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAErC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtD,IAAI,UAAU,IAAI,iBAAiB,CAAA;IAEnC,IAAI,WAAW,IAAI,yBAAyB,CAAA;IAE5C,IAAI,KAAK,IAAI,aAAa,CAAA;CAC3B;AAED,oBAAY,sBAAsB,CAAC,CAAC,SAAS,wBAAwB,IACnE,eAAe,CAAC,CAAC,CAAC,GAAG;KAClB,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAA;AAEH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAA;CACR;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,IAAI,EAAE;QACJ,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAGD,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;CAAG;AAE3E,MAAM,WAAW,wBAAwB;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAC/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAOA,2CAAwB;AACxB,6CAA0B;AAC1B,2CAAwB","sourcesContent":["import { SerializedData } from './entities'\nimport { ProxiedModelSelector } from '../selectors/Model'\nimport { ModelInstance } from '../instances/Model'\nimport { SingletonSelector } from '../selectors/Singleton'\nimport { ProxiedCollectionSelector } from '../selectors/Collection'\nimport { MediaSelector } from '../selectors/Media'\n\nexport * from './fields'\nexport * from './entities'\nexport * from './visual'\n\ntype BaseUrl = 'https://query.starlight.sh/v2' | string\n\nexport type StarlightConfig = {\n workspace?: string\n baseUrl?: BaseUrl\n debug?: boolean\n}\n\nexport interface StarlightClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n> {\n configure(config: StarlightConfig): void\n\n log(message?: unknown, ...optionalParams: unknown[]): void\n\n getBaseUrl(): string\n\n get<T = Record<string, unknown>>(\n path: string,\n params?: Record<string, string | number | boolean | undefined>,\n options?: RequestInit\n ): Promise<T>\n\n get models(): ProxiedModelSelector<D>\n\n model<S extends keyof D>(slug: S): ModelInstance<D[S]>\n\n get singletons(): SingletonSelector\n\n get collections(): ProxiedCollectionSelector\n\n get media(): MediaSelector\n}\n\nexport type ProxiedStarlightClient<T extends WorkspaceModelDefinition> =\n StarlightClient<T> & {\n [K in keyof T]: ModelInstance<T[K]>\n }\n\nexport interface StarlightItemResponse<T> {\n data: T\n}\n\nexport interface StarlightListResponse<T> {\n data: T[]\n links: {\n first: string\n last: string\n prev?: string\n next?: string\n }\n meta: {\n current_page: number\n last_page: number\n from: number\n to: number\n per_page: number\n total: number\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DefaultModelDefinition extends WorkspaceModelDefinition {}\n\nexport interface WorkspaceModelDefinition {\n [slug: string]: SerializedData\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AASA,2CAAwB;AACxB,6CAA0B;AAC1B,2CAAwB","sourcesContent":["import { CollectionTypes, SerializedData } from './entities'\nimport { ProxiedModelSelector } from '../selectors/Model'\nimport { ModelInstance } from '../instances/Model'\nimport { SingletonSelector } from '../selectors/Singleton'\nimport { ProxiedCollectionSelector } from '../selectors/Collection'\nimport { MediaSelector } from '../selectors/Media'\nimport { SearchSelector } from '../selectors/Search'\nimport { CollectionInstance } from '../instances/Collection'\n\nexport * from './fields'\nexport * from './entities'\nexport * from './visual'\n\ntype BaseUrl = 'https://query.starlight.sh/v2' | string\n\nexport type StarlightConfig = {\n workspace?: string\n baseUrl?: BaseUrl\n debug?: boolean\n}\n\nexport interface StarlightClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n> {\n configure(config: StarlightConfig): void\n\n log(message?: unknown, ...optionalParams: unknown[]): void\n\n getBaseUrl(): string\n\n get<T = Record<string, unknown>>(\n path: string,\n params?: Record<string, string | number | boolean | undefined>,\n options?: RequestInit\n ): Promise<T>\n\n get models(): ProxiedModelSelector<D>\n\n model<S extends keyof D>(slug: S): ModelInstance<D[S]>\n\n get singletons(): SingletonSelector\n\n get collections(): ProxiedCollectionSelector\n\n collection<T extends CollectionTypes = string>(\n slug: string | number\n ): CollectionInstance<T>\n\n get media(): MediaSelector\n\n get search(): SearchSelector\n}\n\nexport type ProxiedStarlightClient<T extends WorkspaceModelDefinition> =\n StarlightClient<T> & {\n [K in keyof T]: ModelInstance<T[K]>\n }\n\nexport interface StarlightItemResponse<T> {\n data: T\n}\n\nexport interface StarlightListResponse<T> {\n data: T[]\n links: {\n first: string\n last: string\n prev?: string\n next?: string\n }\n meta: {\n current_page: number\n last_page: number\n from: number\n to: number\n per_page: number\n total: number\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DefaultModelDefinition extends WorkspaceModelDefinition {}\n\nexport interface WorkspaceModelDefinition {\n [slug: string]: SerializedData\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAQhB,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAC3D,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CA0EzD"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EAEtB,eAAe,EACf,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAUhB,wBAAgB,UAAU,CACxB,CAAC,SAAS,wBAAwB,GAAG,sBAAsB,EAC3D,MAAM,GAAE,eAAoB,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAkFzD"}
@@ -13,6 +13,8 @@ import makeModelInstance from './instances/Model';
13
13
  import makeSingletonSelector from './selectors/Singleton';
14
14
  import makeCollectionSelector from './selectors/Collection';
15
15
  import makeMediaSelector from './selectors/Media';
16
+ import makeSearchSelector from './selectors/Search';
17
+ import makeCollectionInstance from './instances/Collection';
16
18
  export function makeClient(config = {}) {
17
19
  var _a, _b, _c;
18
20
  let baseUrl = (_a = config.baseUrl) !== null && _a !== void 0 ? _a : 'https://query.starlight.sh/v2';
@@ -65,9 +67,15 @@ export function makeClient(config = {}) {
65
67
  get collections() {
66
68
  return makeCollectionSelector(this);
67
69
  },
70
+ collection(slug) {
71
+ return makeCollectionInstance(this, slug);
72
+ },
68
73
  get media() {
69
74
  return makeMediaSelector(this);
70
75
  },
76
+ get search() {
77
+ return makeSearchSelector(this);
78
+ },
71
79
  };
72
80
  return new Proxy(client, {
73
81
  get(target, prop) {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DefaultModelDefinition,\n ProxiedStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport { StarlightError } from './errors'\nimport makeModelSelector from './selectors/Model'\nimport makeModelInstance from './instances/Model'\nimport makeSingletonSelector from './selectors/Singleton'\nimport makeCollectionSelector from './selectors/Collection'\nimport makeMediaSelector from './selectors/Media'\n\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n>(config: StarlightConfig = {}): ProxiedStarlightClient<D> {\n let baseUrl = config.baseUrl ?? 'https://query.starlight.sh/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n\n getBaseUrl() {\n return `${baseUrl}/workspaces/${workspace}`\n },\n\n async get(path, params = {}, options) {\n const filteredParams = Object.keys(params).reduce((accumulator, key) => {\n const param = params[key]\n\n if (param || param === false) accumulator[key] = String(param)\n\n return accumulator\n }, {} as Record<string, string>)\n\n const searchParams = new URLSearchParams(filteredParams).toString()\n const finalPath = searchParams ? `${path}?${searchParams}` : path\n\n this.log(`Starlight - GET ${finalPath}`)\n\n const response = await fetch(`${this.getBaseUrl()}${finalPath}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n throw new StarlightError(message, response)\n }\n },\n\n get models() {\n return makeModelSelector(this)\n },\n\n model(slug) {\n return makeModelInstance(this, slug as string)\n },\n\n get singletons() {\n return makeSingletonSelector(this)\n },\n\n get collections() {\n return makeCollectionSelector(this)\n },\n\n get media() {\n return makeMediaSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelInstance(target, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as ProxiedStarlightClient<D>\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DefaultModelDefinition,\n ProxiedStarlightClient,\n StarlightClient,\n StarlightConfig,\n WorkspaceModelDefinition,\n} from './types'\nimport { StarlightError } from './errors'\nimport makeModelSelector from './selectors/Model'\nimport makeModelInstance from './instances/Model'\nimport makeSingletonSelector from './selectors/Singleton'\nimport makeCollectionSelector from './selectors/Collection'\nimport makeMediaSelector from './selectors/Media'\nimport makeSearchSelector from './selectors/Search'\nimport makeCollectionInstance from './instances/Collection'\n\nexport function makeClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n>(config: StarlightConfig = {}): ProxiedStarlightClient<D> {\n let baseUrl = config.baseUrl ?? 'https://query.starlight.sh/v2'\n let workspace = config.workspace ?? ''\n let debug = config.debug ?? false\n\n const client: StarlightClient = {\n configure(config) {\n baseUrl = config.baseUrl ?? baseUrl\n workspace = config.workspace ?? workspace\n debug = config.debug ?? debug\n },\n\n log(message, ...optionalParams) {\n if (debug) console.log(message, ...optionalParams)\n },\n\n getBaseUrl() {\n return `${baseUrl}/workspaces/${workspace}`\n },\n\n async get(path, params = {}, options) {\n const filteredParams = Object.keys(params).reduce((accumulator, key) => {\n const param = params[key]\n\n if (param || param === false) accumulator[key] = String(param)\n\n return accumulator\n }, {} as Record<string, string>)\n\n const searchParams = new URLSearchParams(filteredParams).toString()\n const finalPath = searchParams ? `${path}?${searchParams}` : path\n\n this.log(`Starlight - GET ${finalPath}`)\n\n const response = await fetch(`${this.getBaseUrl()}${finalPath}`, options)\n\n if (response.status >= 200 && response.status < 300) {\n return await response.json()\n } else {\n const message = `Starlight - GET ${path} returned ${response.status}: ${response.statusText}`\n throw new StarlightError(message, response)\n }\n },\n\n get models() {\n return makeModelSelector(this)\n },\n\n model(slug) {\n return makeModelInstance(this, slug as string)\n },\n\n get singletons() {\n return makeSingletonSelector(this)\n },\n\n get collections() {\n return makeCollectionSelector(this)\n },\n\n collection(slug: string | number) {\n return makeCollectionInstance(this, slug)\n },\n\n get media() {\n return makeMediaSelector(this)\n },\n\n get search() {\n return makeSearchSelector(this)\n },\n }\n\n return new Proxy(client, {\n get(target, prop) {\n if (typeof prop === 'string' && !Reflect.has(target, prop)) {\n return makeModelInstance(target, prop)\n }\n\n return Reflect.get(target, prop)\n },\n }) as ProxiedStarlightClient<D>\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { StarlightClient } from '../../types';
1
+ import { CollectionTypes, StarlightClient } from '../../types';
2
2
  import { CollectionInstance } from './types';
3
- export default function makeCollectionInstance(client: StarlightClient, collection: string): CollectionInstance;
3
+ export default function makeCollectionInstance<T extends CollectionTypes = string>(client: StarlightClient, collection: string | number): CollectionInstance<T>;
4
4
  export { CollectionInstance };
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,MAAM,EAAE,eAAe,EACvB,UAAU,EAAE,MAAM,GACjB,kBAAkB,CAUpB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,CAAC,SAAS,eAAe,GAAG,MAAM,EAClC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAU7E;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,MAAuB,EACvB,UAAkB;IAElB,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,KAAK,CAAC,OAAO;YACX,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { StarlightClient } from '../../types'\nimport { CollectionInstance } from './types'\n\nexport default function makeCollectionInstance(\n client: StarlightClient,\n collection: string\n): CollectionInstance {\n return {\n get() {\n return client.get(`/collections/${collection}`)\n },\n\n items(options) {\n return client.get(`/collections/${collection}/items`, options)\n },\n }\n}\n\nexport { CollectionInstance }\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Collection/index.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAE5C,MAAuB,EAAE,UAA2B;IACpD,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAED,KAAK,CAAC,OAAO;YACX,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,UAAU,QAAQ,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { CollectionTypes, StarlightClient } from '../../types'\nimport { CollectionInstance } from './types'\n\nexport default function makeCollectionInstance<\n T extends CollectionTypes = string\n>(client: StarlightClient, collection: string | number): CollectionInstance<T> {\n return {\n get() {\n return client.get(`/collections/${collection}`)\n },\n\n items(options) {\n return client.get(`/collections/${collection}/items`, options)\n },\n }\n}\n\nexport { CollectionInstance }\n"]}
@@ -1,4 +1,4 @@
1
- import { Collection, ModelFieldOptions, SerializedData, StarlightItemResponse, StarlightListResponse } from '../../types';
1
+ import { Collection, CollectionTypes, ModelFieldOptions, SerializedData, StarlightItemResponse, StarlightListResponse } from '../../types';
2
2
  export declare type ListCollectionItemsOptions<T> = {
3
3
  page?: number;
4
4
  limit?: number;
@@ -8,8 +8,8 @@ export declare type ListCollectionItemsOptions<T> = {
8
8
  order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'views:asc' | 'views:desc';
9
9
  except?: number;
10
10
  } & (T extends SerializedData ? ModelFieldOptions<T> : unknown);
11
- export interface CollectionInstance {
12
- get(): Promise<StarlightItemResponse<Collection>>;
11
+ export interface CollectionInstance<C extends CollectionTypes = string> {
12
+ get(): Promise<StarlightItemResponse<Collection<C>>>;
13
13
  items<T>(options?: ListCollectionItemsOptions<T>): Promise<StarlightListResponse<T>>;
14
14
  }
15
15
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,0BAA0B,CAAC,CAAC,IAAI;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AAE/D,MAAM,WAAW,kBAAkB;IACjC,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,CAAC,CAAC,EACL,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;CACrC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,0BAA0B,CAAC,CAAC,IAAI;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;AAE/D,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,eAAe,GAAG,MAAM;IACpE,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,KAAK,CAAC,CAAC,EACL,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAA;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListCollectionItemsOptions<T> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & (T extends SerializedData ? ModelFieldOptions<T> : unknown)\n\nexport interface CollectionInstance {\n get(): Promise<StarlightItemResponse<Collection>>\n items<T>(\n options?: ListCollectionItemsOptions<T>\n ): Promise<StarlightListResponse<T>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n CollectionTypes,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListCollectionItemsOptions<T> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & (T extends SerializedData ? ModelFieldOptions<T> : unknown)\n\nexport interface CollectionInstance<C extends CollectionTypes = string> {\n get(): Promise<StarlightItemResponse<Collection<C>>>\n items<T>(\n options?: ListCollectionItemsOptions<T>\n ): Promise<StarlightListResponse<T>>\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAMvC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,CAAC,CAAC,CAclB;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AASvC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAChE,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,GACZ,aAAa,CAAC,CAAC,CAAC,CAkBlB;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -1,10 +1,14 @@
1
1
  import makeEntrySelector from '../../selectors/Entry';
2
2
  import makeModelCategorySelector from '../../selectors/ModelCategory';
3
+ import makeModelCategoryInstance from '../ModelCategory';
3
4
  export default function makeModelInstance(client, model) {
4
5
  return {
5
6
  get() {
6
7
  return client.get(`/models/${model}`);
7
8
  },
9
+ category(slug) {
10
+ return makeModelCategoryInstance(client, model, slug);
11
+ },
8
12
  get entries() {
9
13
  return makeEntrySelector(client, model);
10
14
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAOA,OAAO,iBAAoC,MAAM,uBAAuB,CAAA;AACxE,OAAO,yBAEN,MAAM,+BAA+B,CAAA;AAEtC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAuB,EACvB,KAAa;IAEb,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,IAAI,OAAO;YACT,OAAO,iBAAiB,CAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import {\n Model,\n SerializedData,\n StarlightClient,\n StarlightItemResponse,\n} from '../../types'\nimport { ModelInstance } from './types'\nimport makeEntrySelector, { EntrySelector } from '../../selectors/Entry'\nimport makeModelCategorySelector, {\n ProxiedModelCategorySelector,\n} from '../../selectors/ModelCategory'\n\nexport default function makeModelInstance<D extends SerializedData>(\n client: StarlightClient,\n model: string\n): ModelInstance<D> {\n return {\n get(): Promise<StarlightItemResponse<Model>> {\n return client.get(`/models/${model}`)\n },\n\n get entries(): EntrySelector<D> {\n return makeEntrySelector<D>(client, model)\n },\n\n get categories(): ProxiedModelCategorySelector<D> {\n return makeModelCategorySelector(client, model)\n },\n }\n}\n\nexport { ModelInstance }\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/instances/Model/index.ts"],"names":[],"mappings":"AAOA,OAAO,iBAAoC,MAAM,uBAAuB,CAAA;AACxE,OAAO,yBAEN,MAAM,+BAA+B,CAAA;AACtC,OAAO,yBAEN,MAAM,kBAAkB,CAAA;AAEzB,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,MAAuB,EACvB,KAAa;IAEb,OAAO;QACL,GAAG;YACD,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;QACvC,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,yBAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,OAAO;YACT,OAAO,iBAAiB,CAAI,MAAM,EAAE,KAAK,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,yBAAyB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import {\n Model,\n SerializedData,\n StarlightClient,\n StarlightItemResponse,\n} from '../../types'\nimport { ModelInstance } from './types'\nimport makeEntrySelector, { EntrySelector } from '../../selectors/Entry'\nimport makeModelCategorySelector, {\n ProxiedModelCategorySelector,\n} from '../../selectors/ModelCategory'\nimport makeModelCategoryInstance, {\n ModelCategoryInstance,\n} from '../ModelCategory'\n\nexport default function makeModelInstance<D extends SerializedData>(\n client: StarlightClient,\n model: string\n): ModelInstance<D> {\n return {\n get(): Promise<StarlightItemResponse<Model>> {\n return client.get(`/models/${model}`)\n },\n\n category(slug: string): ModelCategoryInstance<D> {\n return makeModelCategoryInstance(client, model, slug)\n },\n\n get entries(): EntrySelector<D> {\n return makeEntrySelector<D>(client, model)\n },\n\n get categories(): ProxiedModelCategorySelector<D> {\n return makeModelCategorySelector(client, model)\n },\n }\n}\n\nexport { ModelInstance }\n"]}
@@ -1,8 +1,10 @@
1
1
  import { Model, SerializedData, StarlightItemResponse } from '../../types';
2
2
  import { EntrySelector } from '../../selectors/Entry';
3
3
  import { ProxiedModelCategorySelector } from '../../selectors/ModelCategory';
4
+ import { ModelCategoryInstance } from '../ModelCategory';
4
5
  export interface ModelInstance<D extends SerializedData> {
5
6
  get(): Promise<StarlightItemResponse<Model>>;
7
+ category(slug: string): ModelCategoryInstance<D>;
6
8
  get entries(): EntrySelector<D>;
7
9
  get categories(): ProxiedModelCategorySelector<D>;
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAE5E,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,UAAU,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAExD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAChD,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAI,UAAU,IAAI,4BAA4B,CAAC,CAAC,CAAC,CAAA;CAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model, SerializedData, StarlightItemResponse } from '../../types'\nimport { EntrySelector } from '../../selectors/Entry'\nimport { ProxiedModelCategorySelector } from '../../selectors/ModelCategory'\n\nexport interface ModelInstance<D extends SerializedData> {\n get(): Promise<StarlightItemResponse<Model>>\n get entries(): EntrySelector<D>\n get categories(): ProxiedModelCategorySelector<D>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/instances/Model/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Model, SerializedData, StarlightItemResponse } from '../../types'\nimport { EntrySelector } from '../../selectors/Entry'\nimport { ProxiedModelCategorySelector } from '../../selectors/ModelCategory'\nimport { ModelCategoryInstance } from '../ModelCategory'\n\nexport interface ModelInstance<D extends SerializedData> {\n get(): Promise<StarlightItemResponse<Model>>\n category(slug: string): ModelCategoryInstance<D>\n get entries(): EntrySelector<D>\n get categories(): ProxiedModelCategorySelector<D>\n}\n"]}
@@ -8,7 +8,7 @@ export declare type ListCollectionsOptions = {
8
8
  };
9
9
  export interface CollectionSelector {
10
10
  list(options?: ListCollectionsOptions): Promise<StarlightListResponse<Collection>>;
11
- get(slug: string): Promise<StarlightItemResponse<Collection>>;
11
+ get(slug: string | number): Promise<StarlightItemResponse<Collection>>;
12
12
  }
13
13
  export declare type ProxiedCollectionSelector = CollectionSelector & {
14
14
  [key: string]: CollectionInstance;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,oBAAY,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;CAC1E,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CACF,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;CAC9D;AAED,oBAAY,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,oBAAY,sBAAsB,GAAG;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;CAC1E,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CACF,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAA;CACvE;AAED,oBAAY,yBAAyB,GAAG,kBAAkB,GAAG;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\nimport { CollectionInstance } from '../../instances/Collection'\n\nexport type ListCollectionsOptions = {\n query?: string\n page?: number\n limit?: number\n order?: 'title:asc' | 'title:desc' | 'item_count:asc' | 'item_count:desc'\n}\n\nexport interface CollectionSelector {\n list(\n options?: ListCollectionsOptions\n ): Promise<StarlightListResponse<Collection>>\n get(slug: string): Promise<StarlightItemResponse<Collection>>\n}\n\nexport type ProxiedCollectionSelector = CollectionSelector & {\n [key: string]: CollectionInstance\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Collection/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Collection,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\nimport { CollectionInstance } from '../../instances/Collection'\n\nexport type ListCollectionsOptions = {\n query?: string\n page?: number\n limit?: number\n order?: 'title:asc' | 'title:desc' | 'item_count:asc' | 'item_count:desc'\n}\n\nexport interface CollectionSelector {\n list(\n options?: ListCollectionsOptions\n ): Promise<StarlightListResponse<Collection>>\n get(slug: string | number): Promise<StarlightItemResponse<Collection>>\n}\n\nexport type ProxiedCollectionSelector = CollectionSelector & {\n [key: string]: CollectionInstance\n}\n"]}
@@ -5,6 +5,7 @@ export declare type ListEntriesOptions<D extends SerializedData> = {
5
5
  query?: string;
6
6
  'query:word'?: string;
7
7
  fields?: string;
8
+ categories?: string;
8
9
  order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'views:asc' | 'views:desc';
9
10
  except?: number;
10
11
  } & ModelFieldOptions<D>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAExB,oBAAY,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,oBAAY,kBAAkB,CAAC,CAAC,SAAS,cAAc,IAAI;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,WAAW,GACX,YAAY,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAExB,oBAAY,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,cAAc;IACrD,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,cAAc,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,IAAI,CACF,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Entry,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListEntriesOptions<D extends SerializedData> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & ModelFieldOptions<D>\n\nexport type GetEntryParams = {\n preview?: string\n}\n\nexport interface EntrySelector<D extends SerializedData> {\n get(\n slug: string,\n params?: GetEntryParams,\n options?: RequestInit\n ): Promise<StarlightItemResponse<Entry<D>>>\n list(\n options?: ListEntriesOptions<D>\n ): Promise<StarlightListResponse<Entry<D>>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Entry/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Entry,\n ModelFieldOptions,\n SerializedData,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport type ListEntriesOptions<D extends SerializedData> = {\n page?: number\n limit?: number\n query?: string\n 'query:word'?: string\n fields?: string\n categories?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'views:asc'\n | 'views:desc'\n except?: number\n} & ModelFieldOptions<D>\n\nexport type GetEntryParams = {\n preview?: string\n}\n\nexport interface EntrySelector<D extends SerializedData> {\n get(\n slug: string,\n params?: GetEntryParams,\n options?: RequestInit\n ): Promise<StarlightItemResponse<Entry<D>>>\n list(\n options?: ListEntriesOptions<D>\n ): Promise<StarlightListResponse<Entry<D>>>\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { StarlightClient } from '../../types';
2
+ import { SearchSelector } from './types';
3
+ export default function makeSearchSelector(client: StarlightClient): SearchSelector;
4
+ export { SearchSelector };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAEhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAwB,cAAc,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,MAAM,EAAE,eAAe,GACtB,cAAc,CAQhB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ export default function makeSearchSelector(client) {
2
+ return {
3
+ entries(options) {
4
+ return client.get('/search/entries', options);
5
+ },
6
+ };
7
+ }
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/selectors/Search/index.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,MAAuB;IAEvB,OAAO;QACL,OAAO,CACL,OAA6B;YAE7B,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import {\n Entry,\n SerializedData,\n StarlightClient,\n StarlightListResponse,\n} from '../../types'\nimport { SearchEntriesOptions, SearchSelector } from './types'\n\nexport default function makeSearchSelector(\n client: StarlightClient\n): SearchSelector {\n return {\n entries<T extends SerializedData = Record<string, unknown>>(\n options: SearchEntriesOptions\n ): Promise<StarlightListResponse<Entry<T>>> {\n return client.get('/search/entries', options)\n },\n }\n}\n\nexport { SearchSelector }\n"]}
@@ -0,0 +1,14 @@
1
+ import { Entry, SerializedData, StarlightListResponse } from '../../types';
2
+ export declare type SearchEntriesOptions = {
3
+ page?: number;
4
+ limit?: number;
5
+ query?: string;
6
+ models?: string;
7
+ categories?: string;
8
+ order?: 'title:asc' | 'title:desc' | 'published_at:asc' | 'published_at:desc' | 'updated_at:asc' | 'updated_at:desc';
9
+ except?: number;
10
+ };
11
+ export interface SearchSelector {
12
+ entries<T extends SerializedData = Record<string, unknown>>(options?: SearchEntriesOptions): Promise<StarlightListResponse<Entry<T>>>;
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Search/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE1E,oBAAY,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EACF,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxD,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAC5C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Search/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Entry, SerializedData, StarlightListResponse } from '../../types'\n\nexport type SearchEntriesOptions = {\n page?: number\n limit?: number\n query?: string\n models?: string\n categories?: string\n order?:\n | 'title:asc'\n | 'title:desc'\n | 'published_at:asc'\n | 'published_at:desc'\n | 'updated_at:asc'\n | 'updated_at:desc'\n except?: number\n}\n\nexport interface SearchSelector {\n entries<T extends SerializedData = Record<string, unknown>>(\n options?: SearchEntriesOptions\n ): Promise<StarlightListResponse<Entry<T>>>\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { Singleton, StarlightItemResponse, StarlightListResponse } from '../../types';
1
+ import { SerializedData, Singleton, StarlightItemResponse, StarlightListResponse } from '../../types';
2
2
  export interface SingletonSelector {
3
- get(slug: string): Promise<StarlightItemResponse<Singleton<Record<string, unknown>>>>;
3
+ get<D extends SerializedData>(slug: string): Promise<StarlightItemResponse<Singleton<D>>>;
4
4
  list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>;
5
5
  }
6
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC,GAAG,CACD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,CAAC,SAAS,cAAc,EAC1B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;CAC3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n Singleton,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport interface SingletonSelector {\n get(\n slug: string\n ): Promise<StarlightItemResponse<Singleton<Record<string, unknown>>>>\n list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/selectors/Singleton/types.ts"],"names":[],"mappings":"","sourcesContent":["import {\n SerializedData,\n Singleton,\n StarlightItemResponse,\n StarlightListResponse,\n} from '../../types'\n\nexport interface SingletonSelector {\n get<D extends SerializedData>(\n slug: string\n ): Promise<StarlightItemResponse<Singleton<D>>>\n list(): Promise<StarlightListResponse<Singleton<Record<string, unknown>>>>\n}\n"]}
@@ -21,6 +21,8 @@ export interface MediaObject extends StarlightEntity {
21
21
  extension: string;
22
22
  mime: string;
23
23
  files: MediaFile[];
24
+ alt?: string;
25
+ description?: string;
24
26
  }
25
27
  export interface Author {
26
28
  id: number;
@@ -50,16 +52,18 @@ export interface Singleton<D extends SerializedData> extends Omit<StarlightEntit
50
52
  data: D;
51
53
  published_at: string | null;
52
54
  }
53
- export interface Collection extends StarlightEntity {
55
+ export declare type CollectionTypes = 'entry' | 'singleton' | 'media' | string;
56
+ export interface Collection<T extends CollectionTypes = string> extends StarlightEntity {
54
57
  title: string;
55
58
  slug: string;
56
- type: 'entry' | 'singleton' | 'media' | string;
59
+ type: T;
57
60
  item_count?: number;
58
61
  }
59
- export interface Relation<D extends SerializedData = Record<string, unknown>> {
60
- type: 'entry' | 'media' | 'singleton' | 'collection' | string;
62
+ declare type RelationTypes = Entry<never> | Singleton<never> | MediaObject | Collection | unknown;
63
+ export interface Relation<T extends RelationTypes> {
64
+ type: T extends Entry<never> ? 'entry' : T extends Singleton<never> ? 'singleton' : T extends MediaObject ? 'media' : T extends Collection ? 'collection' : string;
61
65
  id: number;
62
- object: Entry<D> | Singleton<D> | MediaObject | Collection;
66
+ object: T;
63
67
  }
64
68
  export {};
65
69
  //# sourceMappingURL=entities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,KAAM,SAAQ,eAAe;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;AAEhE,oBAAY,iBAAiB,CAAC,CAAC,SAAS,cAAc,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,IAAI,SAAS,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM;CACjD,CAAA;AAED,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,cAAc,CAC7C,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,cAAc,CACjD,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,CAAC,CAAA;IACP,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,eAAe;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAA;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1E,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAA;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,UAAU,CAAA;CAC3D"}
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"","sourcesContent":["interface StarlightEntity {\n id: number\n created_at: string\n updated_at?: string\n}\n\nexport interface ModelCategory extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport interface MediaFile extends StarlightEntity {\n variation: string\n path: string\n mime: string\n background_color?: string\n filesize: number\n meta?: Record<string, unknown>\n}\n\nexport interface MediaObject extends StarlightEntity {\n name: string\n extension: string\n mime: string\n files: MediaFile[]\n}\n\nexport interface Author {\n id: number\n name: string\n}\n\nexport interface Model extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport type SerializedData = Record<string, unknown> | undefined\n\nexport type ModelFieldOptions<D extends SerializedData> = {\n [K in keyof D as `field:${string & K}`]?: string\n}\n\nexport interface Entry<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n author: Author\n model?: Model\n category: ModelCategory | null\n published_at: string | null\n}\n\nexport interface Singleton<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n published_at: string | null\n}\n\nexport interface Collection extends StarlightEntity {\n title: string\n slug: string\n type: 'entry' | 'singleton' | 'media' | string\n item_count?: number\n}\n\nexport interface Relation<D extends SerializedData = Record<string, unknown>> {\n type: 'entry' | 'media' | 'singleton' | 'collection' | string\n id: number\n object: Entry<D> | Singleton<D> | MediaObject | Collection\n}\n"]}
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../../src/types/entities.ts"],"names":[],"mappings":"","sourcesContent":["interface StarlightEntity {\n id: number\n created_at: string\n updated_at?: string\n}\n\nexport interface ModelCategory extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport interface MediaFile extends StarlightEntity {\n variation: string\n path: string\n mime: string\n background_color?: string\n filesize: number\n meta?: Record<string, unknown>\n}\n\nexport interface MediaObject extends StarlightEntity {\n name: string\n extension: string\n mime: string\n files: MediaFile[]\n alt?: string\n description?: string\n}\n\nexport interface Author {\n id: number\n name: string\n}\n\nexport interface Model extends StarlightEntity {\n title: string\n slug: string\n entry_count?: number\n}\n\nexport type SerializedData = Record<string, unknown> | undefined\n\nexport type ModelFieldOptions<D extends SerializedData> = {\n [K in keyof D as `field:${string & K}`]?: string\n}\n\nexport interface Entry<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n author: Author\n model?: Model\n category: ModelCategory | null\n published_at: string | null\n}\n\nexport interface Singleton<D extends SerializedData>\n extends Omit<StarlightEntity, 'created_at'> {\n title: string\n slug: string\n data: D\n published_at: string | null\n}\n\nexport type CollectionTypes = 'entry' | 'singleton' | 'media' | string\n\nexport interface Collection<T extends CollectionTypes = string>\n extends StarlightEntity {\n title: string\n slug: string\n type: T\n item_count?: number\n}\n\ntype RelationTypes =\n | Entry<never>\n | Singleton<never>\n | MediaObject\n | Collection\n | unknown\n\nexport interface Relation<T extends RelationTypes> {\n type: T extends Entry<never>\n ? 'entry'\n : T extends Singleton<never>\n ? 'singleton'\n : T extends MediaObject\n ? 'media'\n : T extends Collection\n ? 'collection'\n : string\n id: number\n object: T\n}\n"]}
@@ -3,7 +3,7 @@ import { VisualData } from './visual';
3
3
  export declare type BooleanField = boolean;
4
4
  export declare type HtmlField = string;
5
5
  export declare type MediaField = MediaObject;
6
- export declare type RelationField = Relation;
6
+ export declare type RelationField<T> = Relation<T>;
7
7
  export declare type StringField = string;
8
8
  export declare type TextField = string;
9
9
  export declare type VisualField = VisualData;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,UAAU,GAAG,WAAW,CAAA;AAEpC,oBAAY,aAAa,GAAG,QAAQ,CAAA;AAEpC,oBAAY,WAAW,GAAG,MAAM,CAAA;AAEhC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,WAAW,GAAG,UAAU,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,oBAAY,YAAY,GAAG,OAAO,CAAA;AAElC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,UAAU,GAAG,WAAW,CAAA;AAEpC,oBAAY,aAAa,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE1C,oBAAY,WAAW,GAAG,MAAM,CAAA;AAEhC,oBAAY,SAAS,GAAG,MAAM,CAAA;AAE9B,oBAAY,WAAW,GAAG,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"","sourcesContent":["import { MediaObject, Relation } from './entities'\nimport { VisualData } from './visual'\n\nexport type BooleanField = boolean\n\nexport type HtmlField = string\n\nexport type MediaField = MediaObject\n\nexport type RelationField = Relation\n\nexport type StringField = string\n\nexport type TextField = string\n\nexport type VisualField = VisualData\n"]}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/types/fields.ts"],"names":[],"mappings":"","sourcesContent":["import { MediaObject, Relation } from './entities'\nimport { VisualData } from './visual'\n\nexport type BooleanField = boolean\n\nexport type HtmlField = string\n\nexport type MediaField = MediaObject\n\nexport type RelationField<T> = Relation<T>\n\nexport type StringField = string\n\nexport type TextField = string\n\nexport type VisualField = VisualData\n"]}
@@ -1,9 +1,11 @@
1
- import { SerializedData } from './entities';
1
+ import { CollectionTypes, SerializedData } from './entities';
2
2
  import { ProxiedModelSelector } from '../selectors/Model';
3
3
  import { ModelInstance } from '../instances/Model';
4
4
  import { SingletonSelector } from '../selectors/Singleton';
5
5
  import { ProxiedCollectionSelector } from '../selectors/Collection';
6
6
  import { MediaSelector } from '../selectors/Media';
7
+ import { SearchSelector } from '../selectors/Search';
8
+ import { CollectionInstance } from '../instances/Collection';
7
9
  export * from './fields';
8
10
  export * from './entities';
9
11
  export * from './visual';
@@ -22,7 +24,9 @@ export interface StarlightClient<D extends WorkspaceModelDefinition = DefaultMod
22
24
  model<S extends keyof D>(slug: S): ModelInstance<D[S]>;
23
25
  get singletons(): SingletonSelector;
24
26
  get collections(): ProxiedCollectionSelector;
27
+ collection<T extends CollectionTypes = string>(slug: string | number): CollectionInstance<T>;
25
28
  get media(): MediaSelector;
29
+ get search(): SearchSelector;
26
30
  }
27
31
  export declare type ProxiedStarlightClient<T extends WorkspaceModelDefinition> = StarlightClient<T> & {
28
32
  [K in keyof T]: ModelInstance<T[K]>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AAExB,aAAK,OAAO,GAAG,+BAA+B,GAAG,MAAM,CAAA;AAEvD,oBAAY,eAAe,GAAG;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,wBAAwB,GAAG,sBAAsB;IAE3D,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAExC,GAAG,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAE1D,UAAU,IAAI,MAAM,CAAA;IAEpB,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAC9D,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,CAAC,CAAC,CAAA;IAEb,IAAI,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAErC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtD,IAAI,UAAU,IAAI,iBAAiB,CAAA;IAEnC,IAAI,WAAW,IAAI,yBAAyB,CAAA;IAE5C,IAAI,KAAK,IAAI,aAAa,CAAA;CAC3B;AAED,oBAAY,sBAAsB,CAAC,CAAC,SAAS,wBAAwB,IACnE,eAAe,CAAC,CAAC,CAAC,GAAG;KAClB,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,CAAA;AAEH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,CAAA;CACR;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IACD,IAAI,EAAE;QACJ,YAAY,EAAE,MAAM,CAAA;QACpB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF;AAGD,MAAM,WAAW,sBAAuB,SAAQ,wBAAwB;CAAG;AAE3E,MAAM,WAAW,wBAAwB;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAC/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA","sourcesContent":["import { SerializedData } from './entities'\nimport { ProxiedModelSelector } from '../selectors/Model'\nimport { ModelInstance } from '../instances/Model'\nimport { SingletonSelector } from '../selectors/Singleton'\nimport { ProxiedCollectionSelector } from '../selectors/Collection'\nimport { MediaSelector } from '../selectors/Media'\n\nexport * from './fields'\nexport * from './entities'\nexport * from './visual'\n\ntype BaseUrl = 'https://query.starlight.sh/v2' | string\n\nexport type StarlightConfig = {\n workspace?: string\n baseUrl?: BaseUrl\n debug?: boolean\n}\n\nexport interface StarlightClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n> {\n configure(config: StarlightConfig): void\n\n log(message?: unknown, ...optionalParams: unknown[]): void\n\n getBaseUrl(): string\n\n get<T = Record<string, unknown>>(\n path: string,\n params?: Record<string, string | number | boolean | undefined>,\n options?: RequestInit\n ): Promise<T>\n\n get models(): ProxiedModelSelector<D>\n\n model<S extends keyof D>(slug: S): ModelInstance<D[S]>\n\n get singletons(): SingletonSelector\n\n get collections(): ProxiedCollectionSelector\n\n get media(): MediaSelector\n}\n\nexport type ProxiedStarlightClient<T extends WorkspaceModelDefinition> =\n StarlightClient<T> & {\n [K in keyof T]: ModelInstance<T[K]>\n }\n\nexport interface StarlightItemResponse<T> {\n data: T\n}\n\nexport interface StarlightListResponse<T> {\n data: T[]\n links: {\n first: string\n last: string\n prev?: string\n next?: string\n }\n meta: {\n current_page: number\n last_page: number\n from: number\n to: number\n per_page: number\n total: number\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DefaultModelDefinition extends WorkspaceModelDefinition {}\n\nexport interface WorkspaceModelDefinition {\n [slug: string]: SerializedData\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AASA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA","sourcesContent":["import { CollectionTypes, SerializedData } from './entities'\nimport { ProxiedModelSelector } from '../selectors/Model'\nimport { ModelInstance } from '../instances/Model'\nimport { SingletonSelector } from '../selectors/Singleton'\nimport { ProxiedCollectionSelector } from '../selectors/Collection'\nimport { MediaSelector } from '../selectors/Media'\nimport { SearchSelector } from '../selectors/Search'\nimport { CollectionInstance } from '../instances/Collection'\n\nexport * from './fields'\nexport * from './entities'\nexport * from './visual'\n\ntype BaseUrl = 'https://query.starlight.sh/v2' | string\n\nexport type StarlightConfig = {\n workspace?: string\n baseUrl?: BaseUrl\n debug?: boolean\n}\n\nexport interface StarlightClient<\n D extends WorkspaceModelDefinition = DefaultModelDefinition\n> {\n configure(config: StarlightConfig): void\n\n log(message?: unknown, ...optionalParams: unknown[]): void\n\n getBaseUrl(): string\n\n get<T = Record<string, unknown>>(\n path: string,\n params?: Record<string, string | number | boolean | undefined>,\n options?: RequestInit\n ): Promise<T>\n\n get models(): ProxiedModelSelector<D>\n\n model<S extends keyof D>(slug: S): ModelInstance<D[S]>\n\n get singletons(): SingletonSelector\n\n get collections(): ProxiedCollectionSelector\n\n collection<T extends CollectionTypes = string>(\n slug: string | number\n ): CollectionInstance<T>\n\n get media(): MediaSelector\n\n get search(): SearchSelector\n}\n\nexport type ProxiedStarlightClient<T extends WorkspaceModelDefinition> =\n StarlightClient<T> & {\n [K in keyof T]: ModelInstance<T[K]>\n }\n\nexport interface StarlightItemResponse<T> {\n data: T\n}\n\nexport interface StarlightListResponse<T> {\n data: T[]\n links: {\n first: string\n last: string\n prev?: string\n next?: string\n }\n meta: {\n current_page: number\n last_page: number\n from: number\n to: number\n per_page: number\n total: number\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DefaultModelDefinition extends WorkspaceModelDefinition {}\n\nexport interface WorkspaceModelDefinition {\n [slug: string]: SerializedData\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "@starlightcms/js-sdk",
3
- "version": "0.6.2",
3
+ "version": "0.8.0",
4
4
  "description": "The Starlight SDK for JavaScript",
5
+ "workspaces": [
6
+ "website"
7
+ ],
5
8
  "main": "dist/cjs/index.js",
6
9
  "exports": {
7
10
  "require": "./dist/cjs/index.js",
@@ -14,6 +17,9 @@
14
17
  "build:cjs": "tsc --module commonjs --outDir dist/cjs",
15
18
  "dev": "tsc --watch --module esnext --outDir dist/esm",
16
19
  "dev:cjs": "tsc --watch --module commonjs --outDir dist/cjs",
20
+ "docs": "npm start -w website",
21
+ "docs:build": "npm run build -w website",
22
+ "docs:serve": "npm run serve -w website",
17
23
  "prepare": "husky install",
18
24
  "prepublishOnly": "npm run build",
19
25
  "test": "echo \"Error: no test specified\" && exit 1"