@lorikeetai/node-sdk 0.1.0-alpha.9 → 0.1.0-beta.4

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 (122) hide show
  1. package/CHANGELOG.md +82 -1
  2. package/core.d.ts +3 -3
  3. package/core.d.ts.map +1 -1
  4. package/core.js.map +1 -1
  5. package/core.mjs.map +1 -1
  6. package/error.d.ts.map +1 -1
  7. package/index.d.mts +10 -9
  8. package/index.d.ts +10 -9
  9. package/index.d.ts.map +1 -1
  10. package/index.js +27 -12
  11. package/index.js.map +1 -1
  12. package/index.mjs +14 -12
  13. package/index.mjs.map +1 -1
  14. package/lib/generate-signature.d.ts +3 -1
  15. package/lib/generate-signature.d.ts.map +1 -1
  16. package/lib/generate-signature.js +5 -0
  17. package/lib/generate-signature.js.map +1 -1
  18. package/lib/generate-signature.mjs +5 -0
  19. package/lib/generate-signature.mjs.map +1 -1
  20. package/package.json +1 -1
  21. package/resources/conversation/chat.d.ts +1 -7
  22. package/resources/conversation/chat.d.ts.map +1 -1
  23. package/resources/conversation/chat.js +0 -2
  24. package/resources/conversation/chat.js.map +1 -1
  25. package/resources/conversation/chat.mjs +0 -2
  26. package/resources/conversation/chat.mjs.map +1 -1
  27. package/resources/conversation/conversation.d.ts +6 -7
  28. package/resources/conversation/conversation.d.ts.map +1 -1
  29. package/resources/conversation/conversation.js +6 -3
  30. package/resources/conversation/conversation.js.map +1 -1
  31. package/resources/conversation/conversation.mjs +6 -3
  32. package/resources/conversation/conversation.mjs.map +1 -1
  33. package/resources/conversation/email.d.ts +25 -0
  34. package/resources/conversation/email.d.ts.map +1 -0
  35. package/resources/conversation/email.js +12 -0
  36. package/resources/conversation/email.js.map +1 -0
  37. package/resources/conversation/email.mjs +8 -0
  38. package/resources/conversation/email.mjs.map +1 -0
  39. package/resources/conversation/index.d.ts +2 -1
  40. package/resources/conversation/index.d.ts.map +1 -1
  41. package/resources/conversation/index.js +3 -1
  42. package/resources/conversation/index.js.map +1 -1
  43. package/resources/conversation/index.mjs +1 -0
  44. package/resources/conversation/index.mjs.map +1 -1
  45. package/resources/index.d.ts +2 -2
  46. package/resources/index.d.ts.map +1 -1
  47. package/resources/index.js.map +1 -1
  48. package/resources/index.mjs.map +1 -1
  49. package/resources/ingest.d.ts +14 -0
  50. package/resources/ingest.d.ts.map +1 -1
  51. package/resources/ingest.js +7 -0
  52. package/resources/ingest.js.map +1 -1
  53. package/resources/ingest.mjs +7 -0
  54. package/resources/ingest.mjs.map +1 -1
  55. package/resources/token.d.ts +3 -3
  56. package/resources/token.d.ts.map +1 -1
  57. package/resources/token.js +1 -3
  58. package/resources/token.js.map +1 -1
  59. package/resources/token.mjs +1 -3
  60. package/resources/token.mjs.map +1 -1
  61. package/src/core.ts +5 -5
  62. package/src/error.ts +1 -1
  63. package/src/index.ts +29 -16
  64. package/src/lib/generate-signature.ts +7 -1
  65. package/src/resources/conversation/chat.ts +9 -8
  66. package/src/resources/conversation/conversation.ts +31 -8
  67. package/src/resources/conversation/email.ts +33 -0
  68. package/src/resources/conversation/index.ts +7 -6
  69. package/src/resources/index.ts +2 -2
  70. package/src/resources/ingest.ts +24 -0
  71. package/src/resources/token.ts +6 -5
  72. package/src/version.ts +1 -1
  73. package/version.d.ts +1 -1
  74. package/version.d.ts.map +1 -1
  75. package/version.js +1 -1
  76. package/version.js.map +1 -1
  77. package/version.mjs +1 -1
  78. package/version.mjs.map +1 -1
  79. package/internal/qs/formats.d.ts +0 -6
  80. package/internal/qs/formats.d.ts.map +0 -1
  81. package/internal/qs/formats.js +0 -11
  82. package/internal/qs/formats.js.map +0 -1
  83. package/internal/qs/formats.mjs +0 -8
  84. package/internal/qs/formats.mjs.map +0 -1
  85. package/internal/qs/index.d.ts +0 -10
  86. package/internal/qs/index.d.ts.map +0 -1
  87. package/internal/qs/index.js +0 -14
  88. package/internal/qs/index.js.map +0 -1
  89. package/internal/qs/index.mjs +0 -10
  90. package/internal/qs/index.mjs.map +0 -1
  91. package/internal/qs/stringify.d.ts +0 -3
  92. package/internal/qs/stringify.d.ts.map +0 -1
  93. package/internal/qs/stringify.js +0 -279
  94. package/internal/qs/stringify.js.map +0 -1
  95. package/internal/qs/stringify.mjs +0 -276
  96. package/internal/qs/stringify.mjs.map +0 -1
  97. package/internal/qs/types.d.ts +0 -57
  98. package/internal/qs/types.d.ts.map +0 -1
  99. package/internal/qs/types.js +0 -3
  100. package/internal/qs/types.js.map +0 -1
  101. package/internal/qs/types.mjs +0 -2
  102. package/internal/qs/types.mjs.map +0 -1
  103. package/internal/qs/utils.d.ts +0 -14
  104. package/internal/qs/utils.d.ts.map +0 -1
  105. package/internal/qs/utils.js +0 -229
  106. package/internal/qs/utils.js.map +0 -1
  107. package/internal/qs/utils.mjs +0 -217
  108. package/internal/qs/utils.mjs.map +0 -1
  109. package/resources/conversation.d.ts +0 -4
  110. package/resources/conversation.d.ts.map +0 -1
  111. package/resources/conversation.js +0 -9
  112. package/resources/conversation.js.map +0 -1
  113. package/resources/conversation.mjs +0 -5
  114. package/resources/conversation.mjs.map +0 -1
  115. package/src/internal/qs/LICENSE.md +0 -13
  116. package/src/internal/qs/README.md +0 -3
  117. package/src/internal/qs/formats.ts +0 -9
  118. package/src/internal/qs/index.ts +0 -13
  119. package/src/internal/qs/stringify.ts +0 -388
  120. package/src/internal/qs/types.ts +0 -71
  121. package/src/internal/qs/utils.ts +0 -265
  122. package/src/resources/conversation.ts +0 -5
@@ -1,388 +0,0 @@
1
- import { encode, is_buffer, maybe_map } from './utils'
2
- import { default_format, formatters } from './formats'
3
- import type { NonNullableProperties, StringifyOptions } from './types'
4
-
5
- const has = Object.prototype.hasOwnProperty
6
-
7
- const array_prefix_generators = {
8
- brackets(prefix: PropertyKey) {
9
- return String(prefix) + '[]'
10
- },
11
- comma: 'comma',
12
- indices(prefix: PropertyKey, key: string) {
13
- return String(prefix) + '[' + key + ']'
14
- },
15
- repeat(prefix: PropertyKey) {
16
- return String(prefix)
17
- },
18
- }
19
-
20
- const is_array = Array.isArray
21
- const push = Array.prototype.push
22
- const push_to_array = function (arr: any[], value_or_array: any) {
23
- push.apply(arr, is_array(value_or_array) ? value_or_array : [value_or_array])
24
- }
25
-
26
- const to_ISO = Date.prototype.toISOString
27
-
28
- const defaults = {
29
- addQueryPrefix: false,
30
- allowDots: false,
31
- allowEmptyArrays: false,
32
- arrayFormat: 'indices',
33
- charset: 'utf-8',
34
- charsetSentinel: false,
35
- delimiter: '&',
36
- encode: true,
37
- encodeDotInKeys: false,
38
- encoder: encode,
39
- encodeValuesOnly: false,
40
- format: default_format,
41
- formatter: formatters[default_format],
42
- /** @deprecated */
43
- indices: false,
44
- serializeDate(date) {
45
- return to_ISO.call(date)
46
- },
47
- skipNulls: false,
48
- strictNullHandling: false,
49
- } as NonNullableProperties<StringifyOptions & { formatter: (typeof formatters)['RFC1738'] }>
50
-
51
- function is_non_nullish_primitive(v: unknown): v is string | number | boolean | symbol | bigint {
52
- return (
53
- typeof v === 'string' ||
54
- typeof v === 'number' ||
55
- typeof v === 'boolean' ||
56
- typeof v === 'symbol' ||
57
- typeof v === 'bigint'
58
- )
59
- }
60
-
61
- const sentinel = {}
62
-
63
- function inner_stringify(
64
- object: any,
65
- prefix: PropertyKey,
66
- generateArrayPrefix: StringifyOptions['arrayFormat'] | ((prefix: string, key: string) => string),
67
- commaRoundTrip: boolean,
68
- allowEmptyArrays: boolean,
69
- strictNullHandling: boolean,
70
- skipNulls: boolean,
71
- encodeDotInKeys: boolean,
72
- encoder: StringifyOptions['encoder'],
73
- filter: StringifyOptions['filter'],
74
- sort: StringifyOptions['sort'],
75
- allowDots: StringifyOptions['allowDots'],
76
- serializeDate: StringifyOptions['serializeDate'],
77
- format: StringifyOptions['format'],
78
- formatter: StringifyOptions['formatter'],
79
- encodeValuesOnly: boolean,
80
- charset: StringifyOptions['charset'],
81
- sideChannel: WeakMap<any, any>,
82
- ) {
83
- let obj = object
84
-
85
- let tmp_sc = sideChannel
86
- let step = 0
87
- let find_flag = false
88
- while ((tmp_sc = tmp_sc.get(sentinel)) !== void undefined && !find_flag) {
89
- // Where object last appeared in the ref tree
90
- const pos = tmp_sc.get(object)
91
- step += 1
92
- if (typeof pos !== 'undefined') {
93
- if (pos === step) {
94
- throw new RangeError('Cyclic object value')
95
- } else {
96
- find_flag = true // Break while
97
- }
98
- }
99
- if (typeof tmp_sc.get(sentinel) === 'undefined') {
100
- step = 0
101
- }
102
- }
103
-
104
- if (typeof filter === 'function') {
105
- obj = filter(prefix, obj)
106
- } else if (obj instanceof Date) {
107
- obj = serializeDate?.(obj)
108
- } else if (generateArrayPrefix === 'comma' && is_array(obj)) {
109
- obj = maybe_map(obj, function (value) {
110
- if (value instanceof Date) {
111
- return serializeDate?.(value)
112
- }
113
- return value
114
- })
115
- }
116
-
117
- if (obj === null) {
118
- if (strictNullHandling) {
119
- return encoder && !encodeValuesOnly ?
120
- // @ts-expect-error
121
- encoder(prefix, defaults.encoder, charset, 'key', format)
122
- : prefix
123
- }
124
-
125
- obj = ''
126
- }
127
-
128
- if (is_non_nullish_primitive(obj) || is_buffer(obj)) {
129
- if (encoder) {
130
- const key_value =
131
- encodeValuesOnly ? prefix
132
- // @ts-expect-error
133
- : encoder(prefix, defaults.encoder, charset, 'key', format)
134
- return [
135
- formatter?.(key_value) +
136
- '=' +
137
- // @ts-expect-error
138
- formatter?.(encoder(obj, defaults.encoder, charset, 'value', format)),
139
- ]
140
- }
141
- return [formatter?.(prefix) + '=' + formatter?.(String(obj))]
142
- }
143
-
144
- const values: string[] = []
145
-
146
- if (typeof obj === 'undefined') {
147
- return values
148
- }
149
-
150
- let obj_keys
151
- if (generateArrayPrefix === 'comma' && is_array(obj)) {
152
- // we need to join elements in
153
- if (encodeValuesOnly && encoder) {
154
- // @ts-expect-error values only
155
- obj = maybe_map(obj, encoder)
156
- }
157
- obj_keys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]
158
- } else if (is_array(filter)) {
159
- obj_keys = filter
160
- } else {
161
- const keys = Object.keys(obj)
162
- obj_keys = sort ? keys.sort(sort) : keys
163
- }
164
-
165
- const encoded_prefix = encodeDotInKeys ? String(prefix).replace(/\./g, '%2E') : String(prefix)
166
-
167
- const adjusted_prefix =
168
- commaRoundTrip && is_array(obj) && obj.length === 1 ? encoded_prefix + '[]' : encoded_prefix
169
-
170
- if (allowEmptyArrays && is_array(obj) && obj.length === 0) {
171
- return adjusted_prefix + '[]'
172
- }
173
-
174
- for (let j = 0; j < obj_keys.length; ++j) {
175
- const key = obj_keys[j]
176
- const value =
177
- // @ts-ignore
178
- typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key as any]
179
-
180
- if (skipNulls && value === null) {
181
- continue
182
- }
183
-
184
- // @ts-ignore
185
- const encoded_key = allowDots && encodeDotInKeys ? (key as any).replace(/\./g, '%2E') : key
186
- const key_prefix =
187
- is_array(obj) ?
188
- typeof generateArrayPrefix === 'function' ?
189
- generateArrayPrefix(adjusted_prefix, encoded_key)
190
- : adjusted_prefix
191
- : adjusted_prefix + (allowDots ? '.' + encoded_key : '[' + encoded_key + ']')
192
-
193
- sideChannel.set(object, step)
194
- const valueSideChannel = new WeakMap()
195
- valueSideChannel.set(sentinel, sideChannel)
196
- push_to_array(
197
- values,
198
- inner_stringify(
199
- value,
200
- key_prefix,
201
- generateArrayPrefix,
202
- commaRoundTrip,
203
- allowEmptyArrays,
204
- strictNullHandling,
205
- skipNulls,
206
- encodeDotInKeys,
207
- // @ts-ignore
208
- generateArrayPrefix === 'comma' && encodeValuesOnly && is_array(obj) ? null : encoder,
209
- filter,
210
- sort,
211
- allowDots,
212
- serializeDate,
213
- format,
214
- formatter,
215
- encodeValuesOnly,
216
- charset,
217
- valueSideChannel,
218
- ),
219
- )
220
- }
221
-
222
- return values
223
- }
224
-
225
- function normalize_stringify_options(
226
- opts: StringifyOptions = defaults,
227
- ): NonNullableProperties<Omit<StringifyOptions, 'indices'>> & { indices?: boolean } {
228
- if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {
229
- throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided')
230
- }
231
-
232
- if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {
233
- throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided')
234
- }
235
-
236
- if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {
237
- throw new TypeError('Encoder has to be a function.')
238
- }
239
-
240
- const charset = opts.charset || defaults.charset
241
- if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {
242
- throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')
243
- }
244
-
245
- let format = default_format
246
- if (typeof opts.format !== 'undefined') {
247
- if (!has.call(formatters, opts.format)) {
248
- throw new TypeError('Unknown format option provided.')
249
- }
250
- format = opts.format
251
- }
252
- const formatter = formatters[format]
253
-
254
- let filter = defaults.filter
255
- if (typeof opts.filter === 'function' || is_array(opts.filter)) {
256
- filter = opts.filter
257
- }
258
-
259
- let arrayFormat: StringifyOptions['arrayFormat']
260
- if (opts.arrayFormat && opts.arrayFormat in array_prefix_generators) {
261
- arrayFormat = opts.arrayFormat
262
- } else if ('indices' in opts) {
263
- arrayFormat = opts.indices ? 'indices' : 'repeat'
264
- } else {
265
- arrayFormat = defaults.arrayFormat
266
- }
267
-
268
- if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {
269
- throw new TypeError('`commaRoundTrip` must be a boolean, or absent')
270
- }
271
-
272
- const allowDots =
273
- typeof opts.allowDots === 'undefined' ?
274
- !!opts.encodeDotInKeys === true ?
275
- true
276
- : defaults.allowDots
277
- : !!opts.allowDots
278
-
279
- return {
280
- addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
281
- // @ts-ignore
282
- allowDots: allowDots,
283
- allowEmptyArrays:
284
- typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
285
- arrayFormat: arrayFormat,
286
- charset: charset,
287
- charsetSentinel:
288
- typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
289
- commaRoundTrip: !!opts.commaRoundTrip,
290
- delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
291
- encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
292
- encodeDotInKeys:
293
- typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
294
- encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
295
- encodeValuesOnly:
296
- typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
297
- filter: filter,
298
- format: format,
299
- formatter: formatter,
300
- serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
301
- skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
302
- // @ts-ignore
303
- sort: typeof opts.sort === 'function' ? opts.sort : null,
304
- strictNullHandling:
305
- typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,
306
- }
307
- }
308
-
309
- export function stringify(object: any, opts: StringifyOptions = {}) {
310
- let obj = object
311
- const options = normalize_stringify_options(opts)
312
-
313
- let obj_keys: PropertyKey[] | undefined
314
- let filter
315
-
316
- if (typeof options.filter === 'function') {
317
- filter = options.filter
318
- obj = filter('', obj)
319
- } else if (is_array(options.filter)) {
320
- filter = options.filter
321
- obj_keys = filter
322
- }
323
-
324
- const keys: string[] = []
325
-
326
- if (typeof obj !== 'object' || obj === null) {
327
- return ''
328
- }
329
-
330
- const generateArrayPrefix = array_prefix_generators[options.arrayFormat]
331
- const commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip
332
-
333
- if (!obj_keys) {
334
- obj_keys = Object.keys(obj)
335
- }
336
-
337
- if (options.sort) {
338
- obj_keys.sort(options.sort)
339
- }
340
-
341
- const sideChannel = new WeakMap()
342
- for (let i = 0; i < obj_keys.length; ++i) {
343
- const key = obj_keys[i]!
344
-
345
- if (options.skipNulls && obj[key] === null) {
346
- continue
347
- }
348
- push_to_array(
349
- keys,
350
- inner_stringify(
351
- obj[key],
352
- key,
353
- // @ts-expect-error
354
- generateArrayPrefix,
355
- commaRoundTrip,
356
- options.allowEmptyArrays,
357
- options.strictNullHandling,
358
- options.skipNulls,
359
- options.encodeDotInKeys,
360
- options.encode ? options.encoder : null,
361
- options.filter,
362
- options.sort,
363
- options.allowDots,
364
- options.serializeDate,
365
- options.format,
366
- options.formatter,
367
- options.encodeValuesOnly,
368
- options.charset,
369
- sideChannel,
370
- ),
371
- )
372
- }
373
-
374
- const joined = keys.join(options.delimiter)
375
- let prefix = options.addQueryPrefix === true ? '?' : ''
376
-
377
- if (options.charsetSentinel) {
378
- if (options.charset === 'iso-8859-1') {
379
- // encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
380
- prefix += 'utf8=%26%2310003%3B&'
381
- } else {
382
- // encodeURIComponent('✓')
383
- prefix += 'utf8=%E2%9C%93&'
384
- }
385
- }
386
-
387
- return joined.length > 0 ? prefix + joined : ''
388
- }
@@ -1,71 +0,0 @@
1
- export type Format = 'RFC1738' | 'RFC3986'
2
-
3
- export type DefaultEncoder = (str: any, defaultEncoder?: any, charset?: string) => string
4
- export type DefaultDecoder = (str: string, decoder?: any, charset?: string) => string
5
-
6
- export type BooleanOptional = boolean | undefined
7
-
8
- export type StringifyBaseOptions = {
9
- delimiter?: string
10
- allowDots?: boolean
11
- encodeDotInKeys?: boolean
12
- strictNullHandling?: boolean
13
- skipNulls?: boolean
14
- encode?: boolean
15
- encoder?: (
16
- str: any,
17
- defaultEncoder: DefaultEncoder,
18
- charset: string,
19
- type: 'key' | 'value',
20
- format?: Format,
21
- ) => string
22
- filter?: Array<PropertyKey> | ((prefix: PropertyKey, value: any) => any)
23
- arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma'
24
- indices?: boolean
25
- sort?: ((a: PropertyKey, b: PropertyKey) => number) | null
26
- serializeDate?: (d: Date) => string
27
- format?: 'RFC1738' | 'RFC3986'
28
- formatter?: (str: PropertyKey) => string
29
- encodeValuesOnly?: boolean
30
- addQueryPrefix?: boolean
31
- charset?: 'utf-8' | 'iso-8859-1'
32
- charsetSentinel?: boolean
33
- allowEmptyArrays?: boolean
34
- commaRoundTrip?: boolean
35
- }
36
-
37
- export type StringifyOptions = StringifyBaseOptions
38
-
39
- export type ParseBaseOptions = {
40
- comma?: boolean
41
- delimiter?: string | RegExp
42
- depth?: number | false
43
- decoder?: (str: string, defaultDecoder: DefaultDecoder, charset: string, type: 'key' | 'value') => any
44
- arrayLimit?: number
45
- parseArrays?: boolean
46
- plainObjects?: boolean
47
- allowPrototypes?: boolean
48
- allowSparse?: boolean
49
- parameterLimit?: number
50
- strictDepth?: boolean
51
- strictNullHandling?: boolean
52
- ignoreQueryPrefix?: boolean
53
- charset?: 'utf-8' | 'iso-8859-1'
54
- charsetSentinel?: boolean
55
- interpretNumericEntities?: boolean
56
- allowEmptyArrays?: boolean
57
- duplicates?: 'combine' | 'first' | 'last'
58
- allowDots?: boolean
59
- decodeDotInKeys?: boolean
60
- }
61
-
62
- export type ParseOptions = ParseBaseOptions
63
-
64
- export type ParsedQs = {
65
- [key: string]: undefined | string | string[] | ParsedQs | ParsedQs[]
66
- }
67
-
68
- // Type to remove null or undefined union from each property
69
- export type NonNullableProperties<T> = {
70
- [K in keyof T]-?: Exclude<T[K], undefined | null>
71
- }