@chanomhub/sdk 1.0.8 → 1.1.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fields.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.test.d.ts","sourceRoot":"","sources":["../../__tests__/fields.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const fields_1 = require("../utils/fields");
5
+ (0, vitest_1.describe)('Field Query Utilities', () => {
6
+ (0, vitest_1.describe)('FIELD_PRESETS', () => {
7
+ (0, vitest_1.it)('should have minimal preset with basic fields', () => {
8
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.minimal).toEqual(['id', 'title', 'slug', 'mainImage']);
9
+ });
10
+ (0, vitest_1.it)('should have standard preset with common fields', () => {
11
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('id');
12
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('title');
13
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('author');
14
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('tags');
15
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('platforms');
16
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('categories');
17
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.standard).toContain('engine');
18
+ });
19
+ (0, vitest_1.it)('should have full preset with all fields including body', () => {
20
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.full).toContain('body');
21
+ (0, vitest_1.expect)(fields_1.FIELD_PRESETS.full).toContain('backgroundImage');
22
+ });
23
+ });
24
+ (0, vitest_1.describe)('FIELD_MAPPINGS', () => {
25
+ (0, vitest_1.it)('should map simple fields correctly', () => {
26
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.id).toBe('id');
27
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.title).toBe('title');
28
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.slug).toBe('slug');
29
+ });
30
+ (0, vitest_1.it)('should map nested fields correctly', () => {
31
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.author).toContain('author {');
32
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.author).toContain('name');
33
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.engine).toContain('engine {');
34
+ (0, vitest_1.expect)(fields_1.FIELD_MAPPINGS.tags).toContain('tags {');
35
+ });
36
+ });
37
+ (0, vitest_1.describe)('buildFieldsQuery', () => {
38
+ (0, vitest_1.it)('should use standard preset by default', () => {
39
+ const query = (0, fields_1.buildFieldsQuery)();
40
+ (0, vitest_1.expect)(query).toContain('id');
41
+ (0, vitest_1.expect)(query).toContain('title');
42
+ (0, vitest_1.expect)(query).toContain('author {');
43
+ });
44
+ (0, vitest_1.it)('should build query with minimal preset', () => {
45
+ const query = (0, fields_1.buildFieldsQuery)({ preset: 'minimal' });
46
+ (0, vitest_1.expect)(query).toContain('id');
47
+ (0, vitest_1.expect)(query).toContain('title');
48
+ (0, vitest_1.expect)(query).toContain('slug');
49
+ (0, vitest_1.expect)(query).toContain('mainImage');
50
+ (0, vitest_1.expect)(query).not.toContain('description');
51
+ });
52
+ (0, vitest_1.it)('should build query with full preset', () => {
53
+ const query = (0, fields_1.buildFieldsQuery)({ preset: 'full' });
54
+ (0, vitest_1.expect)(query).toContain('body');
55
+ (0, vitest_1.expect)(query).toContain('backgroundImage');
56
+ });
57
+ (0, vitest_1.it)('should use custom fields when provided', () => {
58
+ const query = (0, fields_1.buildFieldsQuery)({ fields: ['id', 'title', 'engine'] });
59
+ (0, vitest_1.expect)(query).toContain('id');
60
+ (0, vitest_1.expect)(query).toContain('title');
61
+ (0, vitest_1.expect)(query).toContain('engine {');
62
+ (0, vitest_1.expect)(query).not.toContain('slug');
63
+ });
64
+ (0, vitest_1.it)('should override preset with custom fields', () => {
65
+ const query = (0, fields_1.buildFieldsQuery)({ preset: 'full', fields: ['id', 'title'] });
66
+ (0, vitest_1.expect)(query).toContain('id');
67
+ (0, vitest_1.expect)(query).toContain('title');
68
+ (0, vitest_1.expect)(query).not.toContain('body');
69
+ });
70
+ });
71
+ });
72
+ //# sourceMappingURL=fields.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.test.js","sourceRoot":"","sources":["../../__tests__/fields.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,4CAAkF;AAElF,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,IAAA,iBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;QAC3B,IAAA,WAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;YACpD,IAAA,eAAM,EAAC,sBAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAClD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACvD,IAAA,eAAM,EAAC,sBAAa,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wDAAwD,EAAE,GAAG,EAAE;YAC9D,IAAA,eAAM,EAAC,sBAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAA,eAAM,EAAC,sBAAa,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,gBAAgB,EAAE,GAAG,EAAE;QAC5B,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,IAAA,eAAM,EAAC,uBAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,uBAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,uBAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;YAC1C,IAAA,eAAM,EAAC,uBAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpD,IAAA,eAAM,EAAC,uBAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,IAAA,eAAM,EAAC,uBAAc,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpD,IAAA,eAAM,EAAC,uBAAc,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;YAC7C,MAAM,KAAK,GAAG,IAAA,yBAAgB,GAAE,CAAC;YACjC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACtD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACnD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,wCAAwC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACpC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"articleRepository.d.ts","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EACR,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EAGvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA6IzD,MAAM,WAAW,iBAAiB;IAC9B,2BAA2B;IAC3B,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEjE,sDAAsD;IACtD,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3F,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEhF,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,iCAAiC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEpE,iCAAiC;IACjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAmRlF"}
1
+ {"version":3,"file":"articleRepository.d.ts","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EACR,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,MAAM,WAAW,iBAAiB;IAC9B,2BAA2B;IAC3B,MAAM,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEjE,sDAAsD;IACtD,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;IAE3F,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEhF,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAE1F,iCAAiC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAEpE,iCAAiC;IACjC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAmRlF"}
@@ -4,138 +4,7 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createArticleRepository = createArticleRepository;
7
- // ============================================================================
8
- // Field Presets - Developers can choose the level of detail they need
9
- // ============================================================================
10
- /**
11
- * Field definitions for each preset level
12
- */
13
- const FIELD_PRESETS = {
14
- minimal: ['id', 'title', 'slug', 'mainImage'],
15
- standard: [
16
- 'id',
17
- 'title',
18
- 'slug',
19
- 'description',
20
- 'ver',
21
- 'mainImage',
22
- 'coverImage',
23
- 'author',
24
- 'tags',
25
- 'platforms',
26
- 'categories',
27
- 'creators',
28
- 'engine',
29
- 'favoritesCount',
30
- 'favorited',
31
- 'createdAt',
32
- 'updatedAt',
33
- 'status',
34
- 'sequentialCode',
35
- 'images',
36
- ],
37
- full: [
38
- 'id',
39
- 'title',
40
- 'slug',
41
- 'description',
42
- 'body',
43
- 'ver',
44
- 'mainImage',
45
- 'coverImage',
46
- 'backgroundImage',
47
- 'author',
48
- 'tags',
49
- 'platforms',
50
- 'categories',
51
- 'creators',
52
- 'engine',
53
- 'images',
54
- 'favoritesCount',
55
- 'favorited',
56
- 'createdAt',
57
- 'updatedAt',
58
- 'status',
59
- 'sequentialCode',
60
- ],
61
- };
62
- /**
63
- * GraphQL field mappings - converts field names to GraphQL query fragments
64
- */
65
- const FIELD_MAPPINGS = {
66
- id: 'id',
67
- title: 'title',
68
- slug: 'slug',
69
- description: 'description',
70
- body: 'body',
71
- ver: 'ver',
72
- mainImage: 'mainImage',
73
- coverImage: 'coverImage',
74
- backgroundImage: 'backgroundImage',
75
- createdAt: 'createdAt',
76
- updatedAt: 'updatedAt',
77
- status: 'status',
78
- sequentialCode: 'sequentialCode',
79
- favoritesCount: 'favoritesCount',
80
- favorited: 'favorited',
81
- engine: `engine {
82
- id
83
- name
84
- }`,
85
- author: `author {
86
- id
87
- name
88
- image
89
- }`,
90
- creators: `creators {
91
- id
92
- name
93
- }`,
94
- tags: `tags {
95
- id
96
- name
97
- }`,
98
- platforms: `platforms {
99
- id
100
- name
101
- }`,
102
- categories: `categories {
103
- id
104
- name
105
- }`,
106
- images: `images {
107
- id
108
- url
109
- }`,
110
- mods: `mods {
111
- id
112
- name
113
- description
114
- creditTo
115
- downloadLink
116
- version
117
- status
118
- categories {
119
- id
120
- name
121
- }
122
- images {
123
- id
124
- url
125
- }
126
- }`,
127
- };
128
- /**
129
- * Builds GraphQL fields query from preset or custom fields
130
- */
131
- function buildFieldsQuery(options = {}) {
132
- const { preset = 'standard', fields } = options;
133
- const selectedFields = fields !== null && fields !== void 0 ? fields : FIELD_PRESETS[preset];
134
- return selectedFields
135
- .map((field) => FIELD_MAPPINGS[field])
136
- .filter(Boolean)
137
- .join('\n ');
138
- }
7
+ const fields_1 = require("../utils/fields");
139
8
  /**
140
9
  * Creates an article repository with the given GraphQL client
141
10
  */
@@ -155,7 +24,7 @@ function createArticleRepository(fetcher) {
155
24
  if (filter.favorited !== undefined)
156
25
  filterParts.push(`favorited: ${filter.favorited}`);
157
26
  const filterArg = filterParts.length > 0 ? `filter: { ${filterParts.join(', ')} }, ` : '';
158
- const fieldsQuery = buildFieldsQuery({ preset, fields });
27
+ const fieldsQuery = (0, fields_1.buildFieldsQuery)({ preset, fields });
159
28
  const query = `query GetArticles {
160
29
  articles(${filterArg}limit: ${limit}, offset: ${offset}, status: ${status}) {
161
30
  ${fieldsQuery}
@@ -186,7 +55,7 @@ function createArticleRepository(fetcher) {
186
55
  filterParts.push(`favorited: ${filter.favorited}`);
187
56
  const filterArg = filterParts.length > 0 ? `filter: { ${filterParts.join(', ')} }, ` : '';
188
57
  const countFilterArg = filterParts.length > 0 ? `(filter: { ${filterParts.join(', ')} })` : '';
189
- const fieldsQuery = buildFieldsQuery({ preset, fields });
58
+ const fieldsQuery = (0, fields_1.buildFieldsQuery)({ preset, fields });
190
59
  // Query articles and count in a single request
191
60
  const query = `query GetArticlesPaginated {
192
61
  articles(${filterArg}limit: ${limit}, offset: ${offset}, status: ${status}) {
@@ -213,7 +82,7 @@ function createArticleRepository(fetcher) {
213
82
  const { limit = 50 } = options;
214
83
  const query = `query GetArticlesByTag($tag: String!) {
215
84
  articles(filter: { tag: $tag }, status: PUBLISHED, limit: ${limit}) {
216
- ${buildFieldsQuery()}
85
+ ${(0, fields_1.buildFieldsQuery)()}
217
86
  }
218
87
  }`;
219
88
  const { data, errors } = await fetcher(query, { tag }, {
@@ -229,7 +98,7 @@ function createArticleRepository(fetcher) {
229
98
  const { limit = 50 } = options;
230
99
  const query = `query GetArticlesByPlatform($platform: String!) {
231
100
  articles(filter: { platform: $platform }, status: PUBLISHED, limit: ${limit}) {
232
- ${buildFieldsQuery()}
101
+ ${(0, fields_1.buildFieldsQuery)()}
233
102
  }
234
103
  }`;
235
104
  const { data, errors } = await fetcher(query, { platform }, {
@@ -245,7 +114,7 @@ function createArticleRepository(fetcher) {
245
114
  const { limit = 50 } = options;
246
115
  const query = `query GetArticlesByCategory($category: String!) {
247
116
  articles(filter: { category: $category }, status: PUBLISHED, limit: ${limit}) {
248
- ${buildFieldsQuery()}
117
+ ${(0, fields_1.buildFieldsQuery)()}
249
118
  }
250
119
  }`;
251
120
  const { data, errors } = await fetcher(query, { category }, {
@@ -260,7 +129,7 @@ function createArticleRepository(fetcher) {
260
129
  async function getBySlug(slug, language) {
261
130
  const query = `query GetArticleBySlug($slug: String!, $language: String) {
262
131
  article(slug: $slug, language: $language) {
263
- ${buildFieldsQuery({ preset: 'full' })}
132
+ ${(0, fields_1.buildFieldsQuery)({ preset: 'full' })}
264
133
  }
265
134
  }`;
266
135
  const { data, errors } = await fetcher(query, { slug, language }, {
@@ -275,7 +144,7 @@ function createArticleRepository(fetcher) {
275
144
  async function getWithDownloads(slug, language) {
276
145
  const query = `query GetArticleWithDownloads($slug: String!, $language: String, $downloadsArticleId: Int!) {
277
146
  article(slug: $slug, language: $language) {
278
- ${buildFieldsQuery({ preset: 'full' })}
147
+ ${(0, fields_1.buildFieldsQuery)({ preset: 'full' })}
279
148
  }
280
149
  downloads(articleId: $downloadsArticleId) {
281
150
  id
@@ -1 +1 @@
1
- {"version":3,"file":"articleRepository.js","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"articleRepository.js","sourceRoot":"","sources":["../../repositories/articleRepository.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Chanomhub SDK - Search Repository
3
3
  */
4
4
  import type { GraphQLFetcher } from '../client';
5
- import type { ArticleListItem } from '../types/article';
5
+ import type { ArticleListItem, ArticlePreset, ArticleField } from '../types/article';
6
6
  import type { PaginatedResponse } from '../types/common';
7
7
  /** Search options */
8
8
  export interface SearchOptions {
@@ -22,6 +22,10 @@ export interface SearchOptions {
22
22
  limit?: number;
23
23
  /** Page offset */
24
24
  offset?: number;
25
+ /** Field preset level (default: 'standard') */
26
+ preset?: ArticlePreset;
27
+ /** Custom field selection (overrides preset) */
28
+ fields?: ArticleField[];
25
29
  }
26
30
  export interface SearchRepository {
27
31
  /** Search articles by query string */
@@ -1 +1 @@
1
- {"version":3,"file":"searchRepository.d.ts","sourceRoot":"","sources":["../../repositories/searchRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC1B,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;CACjG;AA+BD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,CAiDhF"}
1
+ {"version":3,"file":"searchRepository.d.ts","sourceRoot":"","sources":["../../repositories/searchRepository.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,qBAAqB;AACrB,MAAM,WAAW,aAAa;IAC1B,oBAAoB;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC;CACjG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,gBAAgB,CA+DhF"}
@@ -4,43 +4,18 @@
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createSearchRepository = createSearchRepository;
7
- /**
8
- * Field query for search results (minimal for performance)
9
- */
10
- const SEARCH_FIELDS = `
11
- id
12
- title
13
- slug
14
- description
15
- ver
16
- mainImage
17
- coverImage
18
- createdAt
19
- updatedAt
20
- favoritesCount
21
- sequentialCode
22
- author {
23
- name
24
- image
25
- }
26
- tags {
27
- id
28
- name
29
- }
30
- engine {
31
- id
32
- name
33
- }
34
- `;
7
+ const fields_1 = require("../utils/fields");
35
8
  /**
36
9
  * Creates a search repository with the given GraphQL client
37
10
  */
38
11
  function createSearchRepository(fetcher) {
39
12
  async function articles(query, options = {}) {
40
- const { limit = 12, offset = 0, tag, platform, category, engine, sequentialCode, author } = options;
13
+ const { limit = 12, offset = 0, tag, platform, category, engine, sequentialCode, author, preset = 'standard', fields, } = options;
14
+ // Build field query using shared utility
15
+ const fieldsQuery = (0, fields_1.buildFieldsQuery)({ preset, fields });
41
16
  // Build filter parts
42
17
  const filterParts = [];
43
- filterParts.push(`search: "${query.replace(/"/g, '\\"')}"`);
18
+ filterParts.push(`q: "${query.replace(/"/g, '\\"')}"`);
44
19
  if (tag)
45
20
  filterParts.push(`tag: "${tag}"`);
46
21
  if (platform)
@@ -56,7 +31,7 @@ function createSearchRepository(fetcher) {
56
31
  const filterArg = `filter: { ${filterParts.join(', ')} }`;
57
32
  const graphqlQuery = `query SearchArticles {
58
33
  articles(${filterArg}, limit: ${limit}, offset: ${offset}, status: PUBLISHED) {
59
- ${SEARCH_FIELDS}
34
+ ${fieldsQuery}
60
35
  }
61
36
  articlesCount(${filterArg})
62
37
  }`;
@@ -1 +1 @@
1
- {"version":3,"file":"searchRepository.js","sourceRoot":"","sources":["../../repositories/searchRepository.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA+DH,wDAiDC;AAjFD;;GAEG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC;AAEF;;GAEG;AACH,SAAgB,sBAAsB,CAAC,OAAuB;IAC1D,KAAK,UAAU,QAAQ,CACnB,KAAa,EACb,UAAyB,EAAE;QAE3B,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpG,qBAAqB;QACrB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,GAAG;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC;QACpD,IAAI,cAAc;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,cAAc,GAAG,CAAC,CAAC;QAC5E,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE1D,MAAM,YAAY,GAAG;uBACN,SAAS,YAAY,KAAK,aAAa,MAAM;kBAClD,aAAa;;4BAEH,SAAS;UAC3B,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAGnC,YAAY,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC1B,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YAC9B,IAAI;YACJ,QAAQ,EAAE,KAAK;SAClB,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;KACX,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"searchRepository.js","sourceRoot":"","sources":["../../repositories/searchRepository.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAuCH,wDA+DC;AAjGD,4CAAmD;AA+BnD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,OAAuB;IAC1D,KAAK,UAAU,QAAQ,CACnB,KAAa,EACb,UAAyB,EAAE;QAE3B,MAAM,EACF,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,CAAC,EACV,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,cAAc,EACd,MAAM,EACN,MAAM,GAAG,UAAU,EACnB,MAAM,GACT,GAAG,OAAO,CAAC;QAEZ,yCAAyC;QACzC,MAAM,WAAW,GAAG,IAAA,yBAAgB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAEzD,qBAAqB;QACrB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,GAAG;YAAE,WAAW,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ;YAAE,WAAW,CAAC,IAAI,CAAC,cAAc,QAAQ,GAAG,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC;QACpD,IAAI,cAAc;YAAE,WAAW,CAAC,IAAI,CAAC,oBAAoB,cAAc,GAAG,CAAC,CAAC;QAC5E,IAAI,MAAM;YAAE,WAAW,CAAC,IAAI,CAAC,YAAY,MAAM,GAAG,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,aAAa,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAE1D,MAAM,YAAY,GAAG;uBACN,SAAS,YAAY,KAAK,aAAa,MAAM;kBAClD,WAAW;;4BAED,SAAS;UAC3B,CAAC;QAEH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAGnC,YAAY,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAE1D,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,OAAO;YACH,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC1B,KAAK,EAAE,IAAI,CAAC,aAAa,IAAI,CAAC;YAC9B,IAAI;YACJ,QAAQ,EAAE,KAAK;SAClB,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;KACX,CAAC;AACN,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Chanomhub SDK - Shared Field Query Utilities
3
+ * Used by articleRepository and searchRepository
4
+ */
5
+ import type { ArticlePreset, ArticleField } from '../types/article';
6
+ /**
7
+ * Field definitions for each preset level
8
+ */
9
+ export declare const FIELD_PRESETS: Record<ArticlePreset, ArticleField[]>;
10
+ /**
11
+ * GraphQL field mappings - converts field names to GraphQL query fragments
12
+ */
13
+ export declare const FIELD_MAPPINGS: Record<ArticleField, string>;
14
+ export interface FieldQueryOptions {
15
+ /** Field preset level (default: 'standard') */
16
+ preset?: ArticlePreset;
17
+ /** Custom field selection (overrides preset) */
18
+ fields?: ArticleField[];
19
+ }
20
+ /**
21
+ * Builds GraphQL fields query from preset or custom fields
22
+ */
23
+ export declare function buildFieldsQuery(options?: FieldQueryOptions): string;
24
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../utils/fields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,EAAE,CAgD/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CA8DvD,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAC9B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gDAAgD;IAChD,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAQxE"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * Chanomhub SDK - Shared Field Query Utilities
4
+ * Used by articleRepository and searchRepository
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FIELD_MAPPINGS = exports.FIELD_PRESETS = void 0;
8
+ exports.buildFieldsQuery = buildFieldsQuery;
9
+ /**
10
+ * Field definitions for each preset level
11
+ */
12
+ exports.FIELD_PRESETS = {
13
+ minimal: ['id', 'title', 'slug', 'mainImage'],
14
+ standard: [
15
+ 'id',
16
+ 'title',
17
+ 'slug',
18
+ 'description',
19
+ 'ver',
20
+ 'mainImage',
21
+ 'coverImage',
22
+ 'author',
23
+ 'tags',
24
+ 'platforms',
25
+ 'categories',
26
+ 'creators',
27
+ 'engine',
28
+ 'favoritesCount',
29
+ 'favorited',
30
+ 'createdAt',
31
+ 'updatedAt',
32
+ 'status',
33
+ 'sequentialCode',
34
+ 'images',
35
+ ],
36
+ full: [
37
+ 'id',
38
+ 'title',
39
+ 'slug',
40
+ 'description',
41
+ 'body',
42
+ 'ver',
43
+ 'mainImage',
44
+ 'coverImage',
45
+ 'backgroundImage',
46
+ 'author',
47
+ 'tags',
48
+ 'platforms',
49
+ 'categories',
50
+ 'creators',
51
+ 'engine',
52
+ 'images',
53
+ 'favoritesCount',
54
+ 'favorited',
55
+ 'createdAt',
56
+ 'updatedAt',
57
+ 'status',
58
+ 'sequentialCode',
59
+ ],
60
+ };
61
+ /**
62
+ * GraphQL field mappings - converts field names to GraphQL query fragments
63
+ */
64
+ exports.FIELD_MAPPINGS = {
65
+ id: 'id',
66
+ title: 'title',
67
+ slug: 'slug',
68
+ description: 'description',
69
+ body: 'body',
70
+ ver: 'ver',
71
+ mainImage: 'mainImage',
72
+ coverImage: 'coverImage',
73
+ backgroundImage: 'backgroundImage',
74
+ createdAt: 'createdAt',
75
+ updatedAt: 'updatedAt',
76
+ status: 'status',
77
+ sequentialCode: 'sequentialCode',
78
+ favoritesCount: 'favoritesCount',
79
+ favorited: 'favorited',
80
+ engine: `engine {
81
+ id
82
+ name
83
+ }`,
84
+ author: `author {
85
+ id
86
+ name
87
+ image
88
+ }`,
89
+ creators: `creators {
90
+ id
91
+ name
92
+ }`,
93
+ tags: `tags {
94
+ id
95
+ name
96
+ }`,
97
+ platforms: `platforms {
98
+ id
99
+ name
100
+ }`,
101
+ categories: `categories {
102
+ id
103
+ name
104
+ }`,
105
+ images: `images {
106
+ id
107
+ url
108
+ }`,
109
+ mods: `mods {
110
+ id
111
+ name
112
+ description
113
+ creditTo
114
+ downloadLink
115
+ version
116
+ status
117
+ categories {
118
+ id
119
+ name
120
+ }
121
+ images {
122
+ id
123
+ url
124
+ }
125
+ }`,
126
+ };
127
+ /**
128
+ * Builds GraphQL fields query from preset or custom fields
129
+ */
130
+ function buildFieldsQuery(options = {}) {
131
+ const { preset = 'standard', fields } = options;
132
+ const selectedFields = fields !== null && fields !== void 0 ? fields : exports.FIELD_PRESETS[preset];
133
+ return selectedFields
134
+ .map((field) => exports.FIELD_MAPPINGS[field])
135
+ .filter(Boolean)
136
+ .join('\n ');
137
+ }
138
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../utils/fields.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAsIH,4CAQC;AA1ID;;GAEG;AACU,QAAA,aAAa,GAA0C;IAChE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC;IAC7C,QAAQ,EAAE;QACN,IAAI;QACJ,OAAO;QACP,MAAM;QACN,aAAa;QACb,KAAK;QACL,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,MAAM;QACN,WAAW;QACX,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,gBAAgB;QAChB,WAAW;QACX,WAAW;QACX,WAAW;QACX,QAAQ;QACR,gBAAgB;QAChB,QAAQ;KACX;IACD,IAAI,EAAE;QACF,IAAI;QACJ,OAAO;QACP,MAAM;QACN,aAAa;QACb,MAAM;QACN,KAAK;QACL,WAAW;QACX,YAAY;QACZ,iBAAiB;QACjB,QAAQ;QACR,MAAM;QACN,WAAW;QACX,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,gBAAgB;QAChB,WAAW;QACX,WAAW;QACX,WAAW;QACX,QAAQ;QACR,gBAAgB;KACnB;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAiC;IACxD,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE;;;IAGR;IACA,MAAM,EAAE;;;;IAIR;IACA,QAAQ,EAAE;;;IAGV;IACA,IAAI,EAAE;;;IAGN;IACA,SAAS,EAAE;;;IAGX;IACA,UAAU,EAAE;;;IAGZ;IACA,MAAM,EAAE;;;IAGR;IACA,IAAI,EAAE;;;;;;;;;;;;;;;;IAgBN;CACH,CAAC;AASF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,UAA6B,EAAE;IAC5D,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,cAAc,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,qBAAa,CAAC,MAAM,CAAC,CAAC;IAEvD,OAAO,cAAc;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAc,CAAC,KAAK,CAAC,CAAC;SACrC,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Chanomhub SDK - Utilities
3
+ */
4
+ export { FIELD_PRESETS, FIELD_MAPPINGS, buildFieldsQuery } from './fields';
5
+ export type { FieldQueryOptions } from './fields';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * Chanomhub SDK - Utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildFieldsQuery = exports.FIELD_MAPPINGS = exports.FIELD_PRESETS = void 0;
7
+ var fields_1 = require("./fields");
8
+ Object.defineProperty(exports, "FIELD_PRESETS", { enumerable: true, get: function () { return fields_1.FIELD_PRESETS; } });
9
+ Object.defineProperty(exports, "FIELD_MAPPINGS", { enumerable: true, get: function () { return fields_1.FIELD_MAPPINGS; } });
10
+ Object.defineProperty(exports, "buildFieldsQuery", { enumerable: true, get: function () { return fields_1.buildFieldsQuery; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mCAA2E;AAAlE,uGAAA,aAAa,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,0GAAA,gBAAgB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chanomhub/sdk",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "ChanomHub SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",