@brytdesigns/shopify-ajax-predictive-search-api 1.0.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,162 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import * as Schema from 'effect/Schema';
4
+
5
+ export type Input = Schema.Schema.Encoded<typeof Input>;
6
+ declare const Input: Schema.extend<Schema.Struct<{
7
+ sections: Schema.optional<Schema.transform<Schema.Array$<typeof Schema.String>, typeof Schema.String>>;
8
+ sections_url: Schema.optional<typeof Schema.String>;
9
+ }>, Schema.Struct<{
10
+ q: typeof Schema.String;
11
+ resources: Schema.optional<Schema.Struct<{
12
+ limit: Schema.optionalWith<Schema.filter<typeof Schema.Number>, {
13
+ default: () => number;
14
+ }>;
15
+ limit_scope: Schema.optionalWith<Schema.Literal<[
16
+ "all",
17
+ "each"
18
+ ]>, {
19
+ default: () => "all";
20
+ }>;
21
+ options: Schema.optional<Schema.Struct<{
22
+ unavailable_products: Schema.optionalWith<Schema.Literal<[
23
+ "show",
24
+ "hide",
25
+ "last"
26
+ ]>, {
27
+ default: () => "last";
28
+ }>;
29
+ fields: Schema.optional<Schema.transform<Schema.Array$<Schema.Literal<[
30
+ "author",
31
+ "body",
32
+ "product_type",
33
+ "tag",
34
+ "title",
35
+ "variants.barcode",
36
+ "variants.sku",
37
+ "variants.title",
38
+ "vendor"
39
+ ]>>, typeof Schema.String>>;
40
+ }>>;
41
+ }>>;
42
+ }>>;
43
+ export declare namespace get {
44
+ type Input = Input;
45
+ }
46
+ export declare const get: (input?: ({
47
+ readonly sections?: readonly string[] | undefined;
48
+ readonly sections_url?: string | undefined;
49
+ } & {
50
+ readonly q: string;
51
+ readonly resources?: {
52
+ readonly limit?: number | undefined;
53
+ readonly limit_scope?: "all" | "each" | undefined;
54
+ readonly options?: {
55
+ readonly unavailable_products?: "show" | "hide" | "last" | undefined;
56
+ readonly fields?: readonly ("author" | "body" | "product_type" | "tag" | "title" | "variants.barcode" | "variants.sku" | "variants.title" | "vendor")[] | undefined;
57
+ } | undefined;
58
+ } | undefined;
59
+ }) | undefined, options?: {
60
+ headers?: Record<string, string>;
61
+ }) => import("effect/Effect").Effect<{
62
+ readonly data?: undefined;
63
+ readonly error?: {
64
+ status: number;
65
+ message: string;
66
+ description?: string;
67
+ } | undefined;
68
+ } | {
69
+ readonly data?: {
70
+ readonly resources: {
71
+ readonly results: {
72
+ readonly queries: readonly {
73
+ readonly url: string;
74
+ readonly text: string;
75
+ readonly styled_text: string;
76
+ }[];
77
+ readonly products: readonly {
78
+ readonly body: string;
79
+ readonly title: string;
80
+ readonly vendor: string | null;
81
+ readonly url: string;
82
+ readonly available: boolean;
83
+ readonly id: string | number;
84
+ readonly image: string | null;
85
+ readonly price: number;
86
+ readonly featured_image: {
87
+ readonly aspect_ratio: number | null;
88
+ readonly alt: string | null;
89
+ readonly height: number | null;
90
+ readonly url: string | null;
91
+ readonly width: number | null;
92
+ };
93
+ readonly compare_at_price_max: number;
94
+ readonly compare_at_price_min: number;
95
+ readonly handle: string;
96
+ readonly price_max: number;
97
+ readonly price_min: number;
98
+ readonly tags: readonly string[];
99
+ readonly type: string;
100
+ readonly variants: readonly {
101
+ readonly title: string;
102
+ readonly url: string;
103
+ readonly available: boolean;
104
+ readonly compare_at_price: number | null;
105
+ readonly id: string | number;
106
+ readonly image: string | null;
107
+ readonly price: number;
108
+ readonly featured_image: {
109
+ readonly aspect_ratio: number | null;
110
+ readonly alt: string | null;
111
+ readonly height: number | null;
112
+ readonly url: string | null;
113
+ readonly width: number | null;
114
+ };
115
+ }[];
116
+ }[];
117
+ readonly collections: readonly {
118
+ readonly body: string;
119
+ readonly title: string;
120
+ readonly url: string;
121
+ readonly id: string | number;
122
+ readonly featured_image: {
123
+ readonly aspect_ratio: number | null;
124
+ readonly alt: string | null;
125
+ readonly height: number | null;
126
+ readonly url: string | null;
127
+ readonly width: number | null;
128
+ };
129
+ readonly handle: string;
130
+ readonly published_at: Date;
131
+ }[];
132
+ readonly pages: readonly {
133
+ readonly author: string;
134
+ readonly body: string;
135
+ readonly title: string;
136
+ readonly url: string;
137
+ readonly id: string | number;
138
+ readonly handle: string;
139
+ readonly published_at: Date;
140
+ }[];
141
+ readonly articles: readonly {
142
+ readonly author: string;
143
+ readonly body: string;
144
+ readonly title: string;
145
+ readonly url: string;
146
+ readonly id: string | number;
147
+ readonly handle: string;
148
+ readonly tags: readonly string[];
149
+ readonly published_at: Date;
150
+ readonly summary_html: string;
151
+ }[];
152
+ };
153
+ };
154
+ } | undefined;
155
+ readonly error?: {
156
+ status: number;
157
+ message: string;
158
+ description?: string;
159
+ } | undefined;
160
+ }, Error, import("@effect/platform/HttpClient").HttpClient>;
161
+
162
+ export {};
@@ -0,0 +1,12 @@
1
+ import * as AjaxClient from '@brytdesigns/shopify-ajax-client';
2
+ import { Output, Input } from './schema';
3
+
4
+ const get = AjaxClient.makeFactory({
5
+ routeName: "predictive_search_url",
6
+ inputSchema: Input,
7
+ outputSchema: Output
8
+ });
9
+
10
+ export { get };
11
+ //# sourceMappingURL=index.js.map
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/effect/index.ts"],"names":[],"mappings":";;;AAMa,MAAA,GAAA,GAAM,WAAW,WAAY,CAAA;AAAA,EACxC,SAAW,EAAA,uBAAA;AAAA,EACX,WAAa,EAAA,KAAA;AAAA,EACb,YAAc,EAAA;AAChB,CAAC","file":"index.js","sourcesContent":["import * as AjaxClient from \"@brytdesigns/shopify-ajax-client\";\nimport { type Input as _Input, Input, Output } from \"./schema\";\n\nexport namespace get {\n export type Input = _Input;\n}\nexport const get = AjaxClient.makeFactory({\n routeName: \"predictive_search_url\",\n inputSchema: Input,\n outputSchema: Output,\n});\n"]}
@@ -0,0 +1,144 @@
1
+ import * as Schema from 'effect/Schema';
2
+ import { Ajax, Resource } from '@brytdesigns/shopify-utils/effect';
3
+
4
+ const Input = Schema.extend(
5
+ Ajax.Sections.Input,
6
+ Schema.Struct({
7
+ q: Schema.String,
8
+ resources: Schema.optional(
9
+ Schema.Struct({
10
+ limit: Schema.optionalWith(Schema.Number.pipe(Schema.between(1, 10)), {
11
+ default: () => 10
12
+ }),
13
+ limit_scope: Schema.optionalWith(Schema.Literal("all", "each"), {
14
+ default: () => "all"
15
+ }),
16
+ options: Schema.optional(
17
+ Schema.Struct({
18
+ unavailable_products: Schema.optionalWith(
19
+ Schema.Literal("show", "hide", "last"),
20
+ { default: () => "last" }
21
+ ),
22
+ fields: Schema.optional(
23
+ Schema.transform(
24
+ Schema.Array(
25
+ Schema.Literal(
26
+ "author",
27
+ "body",
28
+ "product_type",
29
+ "tag",
30
+ "title",
31
+ "variants.barcode",
32
+ "variants.sku",
33
+ "variants.title",
34
+ "vendor"
35
+ )
36
+ ),
37
+ Schema.String,
38
+ {
39
+ decode(fields) {
40
+ return fields.join(",");
41
+ },
42
+ encode(fields) {
43
+ return fields.split(",");
44
+ }
45
+ }
46
+ )
47
+ )
48
+ })
49
+ )
50
+ })
51
+ )
52
+ })
53
+ );
54
+ const Image = Schema.Struct({
55
+ aspect_ratio: Schema.NullOr(Schema.Number),
56
+ alt: Schema.NullOr(Schema.String),
57
+ height: Schema.NullOr(Schema.Number),
58
+ url: Schema.NullOr(Schema.String),
59
+ width: Schema.NullOr(Schema.Number)
60
+ });
61
+ const Variant = Schema.Struct({
62
+ available: Schema.Boolean,
63
+ compare_at_price: Schema.NullOr(Schema.NumberFromString),
64
+ id: Resource.ID,
65
+ image: Schema.NullOr(Schema.String),
66
+ price: Schema.NumberFromString,
67
+ title: Schema.String,
68
+ url: Schema.String,
69
+ featured_image: Image
70
+ });
71
+ const Product = Schema.Struct({
72
+ available: Schema.Boolean,
73
+ body: Schema.String,
74
+ compare_at_price_max: Schema.NumberFromString,
75
+ compare_at_price_min: Schema.NumberFromString,
76
+ handle: Schema.String,
77
+ id: Resource.ID,
78
+ image: Schema.NullOr(Schema.String),
79
+ price: Schema.NumberFromString,
80
+ price_max: Schema.NumberFromString,
81
+ price_min: Schema.NumberFromString,
82
+ tags: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),
83
+ title: Schema.String,
84
+ type: Schema.String,
85
+ url: Schema.String,
86
+ variants: Schema.Array(Variant),
87
+ vendor: Schema.NullOr(Schema.String),
88
+ featured_image: Image
89
+ });
90
+ const Collection = Schema.Struct({
91
+ body: Schema.String,
92
+ handle: Schema.String,
93
+ id: Resource.ID,
94
+ featured_image: Image,
95
+ published_at: Schema.DateFromString,
96
+ title: Schema.String,
97
+ url: Schema.String
98
+ });
99
+ const Query = Schema.Struct({
100
+ url: Schema.String,
101
+ text: Schema.String,
102
+ styled_text: Schema.String
103
+ });
104
+ const Page = Schema.Struct({
105
+ author: Schema.String,
106
+ body: Schema.String,
107
+ handle: Schema.String,
108
+ id: Resource.ID,
109
+ published_at: Schema.DateFromString,
110
+ title: Schema.String,
111
+ url: Schema.String
112
+ });
113
+ const Article = Schema.Struct({
114
+ author: Schema.String,
115
+ body: Schema.String,
116
+ handle: Schema.String,
117
+ id: Resource.ID,
118
+ published_at: Schema.DateFromString,
119
+ summary_html: Schema.String,
120
+ tags: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),
121
+ title: Schema.String,
122
+ url: Schema.String
123
+ });
124
+ const Output = Schema.Struct({
125
+ resources: Schema.Struct({
126
+ results: Schema.Struct({
127
+ queries: Schema.optionalWith(Schema.Array(Query), { default: () => [] }),
128
+ products: Schema.optionalWith(Schema.Array(Product), {
129
+ default: () => []
130
+ }),
131
+ collections: Schema.optionalWith(Schema.Array(Collection), {
132
+ default: () => []
133
+ }),
134
+ pages: Schema.optionalWith(Schema.Array(Page), { default: () => [] }),
135
+ articles: Schema.optionalWith(Schema.Array(Article), {
136
+ default: () => []
137
+ })
138
+ })
139
+ })
140
+ });
141
+
142
+ export { Image, Input, Output };
143
+ //# sourceMappingURL=schema.js.map
144
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/effect/schema.ts"],"names":[],"mappings":"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","file":"schema.js","sourcesContent":["import * as Schema from \"effect/Schema\";\nimport { Ajax, Resource } from \"@brytdesigns/shopify-utils/effect\";\n\nexport type Input = Schema.Schema.Encoded<typeof Input>;\nexport const Input = Schema.extend(\n Ajax.Sections.Input,\n Schema.Struct({\n q: Schema.String,\n resources: Schema.optional(\n Schema.Struct({\n limit: Schema.optionalWith(Schema.Number.pipe(Schema.between(1, 10)), {\n default: () => 10,\n }),\n limit_scope: Schema.optionalWith(Schema.Literal(\"all\", \"each\"), {\n default: () => \"all\",\n }),\n options: Schema.optional(\n Schema.Struct({\n unavailable_products: Schema.optionalWith(\n Schema.Literal(\"show\", \"hide\", \"last\"),\n { default: () => \"last\" },\n ),\n fields: Schema.optional(\n Schema.transform(\n Schema.Array(\n Schema.Literal(\n \"author\",\n \"body\",\n \"product_type\",\n \"tag\",\n \"title\",\n \"variants.barcode\",\n \"variants.sku\",\n \"variants.title\",\n \"vendor\",\n ),\n ),\n Schema.String,\n {\n decode(fields) {\n return fields.join(\",\");\n },\n encode(fields) {\n return fields.split(\",\") as any;\n },\n },\n ),\n ),\n }),\n ),\n }),\n ),\n }),\n);\n\nexport const Image = Schema.Struct({\n aspect_ratio: Schema.NullOr(Schema.Number),\n alt: Schema.NullOr(Schema.String),\n height: Schema.NullOr(Schema.Number),\n url: Schema.NullOr(Schema.String),\n width: Schema.NullOr(Schema.Number),\n});\n\nconst Variant = Schema.Struct({\n available: Schema.Boolean,\n compare_at_price: Schema.NullOr(Schema.NumberFromString),\n id: Resource.ID,\n image: Schema.NullOr(Schema.String),\n price: Schema.NumberFromString,\n title: Schema.String,\n url: Schema.String,\n featured_image: Image,\n});\n\nconst Product = Schema.Struct({\n available: Schema.Boolean,\n body: Schema.String,\n compare_at_price_max: Schema.NumberFromString,\n compare_at_price_min: Schema.NumberFromString,\n handle: Schema.String,\n id: Resource.ID,\n image: Schema.NullOr(Schema.String),\n price: Schema.NumberFromString,\n price_max: Schema.NumberFromString,\n price_min: Schema.NumberFromString,\n tags: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),\n title: Schema.String,\n type: Schema.String,\n url: Schema.String,\n variants: Schema.Array(Variant),\n vendor: Schema.NullOr(Schema.String),\n featured_image: Image,\n});\n\nconst Collection = Schema.Struct({\n body: Schema.String,\n handle: Schema.String,\n id: Resource.ID,\n featured_image: Image,\n published_at: Schema.DateFromString,\n title: Schema.String,\n url: Schema.String,\n});\n\nconst Query = Schema.Struct({\n url: Schema.String,\n text: Schema.String,\n styled_text: Schema.String,\n});\n\nconst Page = Schema.Struct({\n author: Schema.String,\n body: Schema.String,\n handle: Schema.String,\n id: Resource.ID,\n published_at: Schema.DateFromString,\n title: Schema.String,\n url: Schema.String,\n});\n\nconst Article = Schema.Struct({\n author: Schema.String,\n body: Schema.String,\n handle: Schema.String,\n id: Resource.ID,\n published_at: Schema.DateFromString,\n summary_html: Schema.String,\n tags: Schema.optionalWith(Schema.Array(Schema.String), { default: () => [] }),\n title: Schema.String,\n url: Schema.String,\n});\n\nexport const Output = Schema.Struct({\n resources: Schema.Struct({\n results: Schema.Struct({\n queries: Schema.optionalWith(Schema.Array(Query), { default: () => [] }),\n products: Schema.optionalWith(Schema.Array(Product), {\n default: () => [],\n }),\n collections: Schema.optionalWith(Schema.Array(Collection), {\n default: () => [],\n }),\n pages: Schema.optionalWith(Schema.Array(Page), { default: () => [] }),\n articles: Schema.optionalWith(Schema.Array(Article), {\n default: () => [],\n }),\n }),\n }),\n});\n"]}