@esposter/azure 4.3.1 → 4.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,13 +1,10 @@
1
1
  import { z } from "zod";
2
2
  import { PropertyNames } from "@esposter/shared";
3
3
  import { TableEntity } from "@azure/data-tables";
4
- //#region src/models/search/SearchOperator.d.ts
5
4
  export declare enum SearchOperator {
6
5
  ArrayAny = "arrayAny",
7
6
  ArrayContains = "arrayContains"
8
7
  }
9
- //#endregion
10
- //#region src/models/shared/BinaryOperator.d.ts
11
8
  export declare enum BinaryOperator {
12
9
  Eq = "eq",
13
10
  Ge = "ge",
@@ -17,12 +14,8 @@ export declare enum BinaryOperator {
17
14
  Ne = "ne"
18
15
  }
19
16
  export declare const BinaryOperators: readonly BinaryOperator[];
20
- //#endregion
21
- //#region src/models/shared/SerializableValue.d.ts
22
17
  export type SerializableValue = boolean | Date | null | number | string;
23
18
  export declare const serializableValueSchema: z.ZodType<SerializableValue, SerializableValue>;
24
- //#endregion
25
- //#region src/models/shared/Clause.d.ts
26
19
  export type Clause<T extends object> = {
27
20
  key: keyof T & string;
28
21
  not?: boolean;
@@ -35,15 +28,11 @@ export type Clause<T extends object> = {
35
28
  operator: SearchOperator.ArrayContains;
36
29
  value: SerializableValue[];
37
30
  });
38
- //#endregion
39
- //#region src/models/shared/UnaryOperator.d.ts
40
31
  export declare enum UnaryOperator {
41
32
  And = "and",
42
33
  Not = "not",
43
34
  Or = "or"
44
35
  }
45
- //#endregion
46
- //#region ../../node_modules/.pnpm/type-fest@5.10.0/node_modules/type-fest/source/omit-index-signature.d.ts
47
36
  /**
48
37
  Omit any index signatures from the given object type, leaving only explicitly defined properties.
49
38
 
@@ -136,74 +125,35 @@ type ExampleWithoutIndexSignatures = OmitIndexSignature<Example>;
136
125
  @category Object
137
126
  */
138
127
  type OmitIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType]; };
139
- //#endregion
140
- //#region src/models/table/CompositeKey.d.ts
141
128
  export declare class CompositeKey implements OmitIndexSignature<TableEntity> {
142
129
  partitionKey: string;
143
130
  rowKey: string;
144
131
  }
145
132
  export declare const CompositeKeyPropertyNames: PropertyNames<CompositeKey>;
146
- //#endregion
147
- //#region src/services/search/getSearchNonNullClause.d.ts
148
133
  export declare const getSearchNonNullClause: <T extends object>(key: keyof T & string) => Clause<T>;
149
- //#endregion
150
- //#region src/services/search/getSearchNullClause.d.ts
151
134
  export declare const getSearchNullClause: <T extends object>(key: keyof T & string) => Clause<T>;
152
- //#endregion
153
- //#region src/services/shared/constants.d.ts
154
135
  export declare const AZURE_MAX_BATCH_SIZE = 100;
155
136
  export declare const AZURE_MAX_PAGE_SIZE = 1e3;
156
137
  export declare const SERIALIZABLE_VALUE_MAX_LENGTH = 100;
157
138
  export declare const AZURE_MAX_QUEUE_VISIBILITY_TIMEOUT_MS: number;
158
139
  export declare const AZURE_MAX_STRING_PROPERTY_LENGTH: number;
159
- //#endregion
160
- //#region src/services/table/constants.d.ts
161
140
  export declare const KEYS_TO_CAPITALIZE: ReadonlySet<string>;
162
141
  export declare const KEYS_TO_UNCAPITALIZE: ReadonlySet<string>;
163
- //#endregion
164
- //#region src/services/table/deserializeKey.d.ts
165
142
  export declare const deserializeKey: (key: string) => string;
166
- //#endregion
167
- //#region src/services/table/getTableNullClause.d.ts
168
143
  export declare const getTableNullClause: <T extends object>(key: keyof T & string) => Clause<T>;
169
- //#endregion
170
- //#region src/services/table/serializeKey.d.ts
171
144
  export declare const serializeKey: (key: string) => string;
172
- //#endregion
173
- //#region src/services/transformer/RangeOperators.d.ts
174
145
  export declare const RangeOperators: (BinaryOperator | SearchOperator)[];
175
- //#endregion
176
- //#region src/services/transformer/constants.d.ts
177
146
  export declare const DATETIME_LITERAL_PREFIX = "datetime'";
178
147
  export declare const CLAUSE_REGEX: RegExp;
179
- //#endregion
180
- //#region src/services/transformer/deserializeClause.d.ts
181
148
  export declare const deserializeClause: (serializedClause: string) => Extract<Clause<Record<string, unknown>>, {
182
149
  operator: BinaryOperator;
183
150
  }>;
184
- //#endregion
185
- //#region src/services/transformer/deserializeValue.d.ts
186
151
  export declare const deserializeValue: (serializedValue: string) => SerializableValue;
187
- //#endregion
188
- //#region src/services/transformer/escapeValue.d.ts
189
152
  export declare const escapeValue: (value: string) => string;
190
- //#endregion
191
- //#region src/services/transformer/getPartitionKeyFilter.d.ts
192
153
  export declare const getPartitionKeyFilter: (partitionKey: CompositeKey["partitionKey"]) => string;
193
- //#endregion
194
- //#region src/services/transformer/serializeClause.d.ts
195
154
  export declare const serializeClause: (clause: Clause<Record<string, unknown>>, isTableFilter?: boolean) => string;
196
- //#endregion
197
- //#region src/services/transformer/serializeClauses.d.ts
198
155
  export declare const serializeClauses: (clauses: Clause<Record<string, unknown>>[]) => string;
199
- //#endregion
200
- //#region src/services/transformer/serializeClausesCore.d.ts
201
156
  export declare const serializeClausesCore: (clauses: Clause<Record<string, unknown>>[], isTableFilter: boolean) => string;
202
- //#endregion
203
- //#region src/services/transformer/serializeSearchClauses.d.ts
204
157
  export declare const serializeSearchClauses: (clauses: Clause<Record<string, unknown>>[]) => string;
205
- //#endregion
206
- //#region src/services/transformer/serializeValue.d.ts
207
158
  export declare const serializeValue: (value: SerializableValue, isTableFilter?: boolean) => string;
208
- //#endregion
209
159
  export {};
package/dist/index.js CHANGED
@@ -1,13 +1,12 @@
1
1
  import { z } from "zod";
2
2
  import { InvalidOperationError, NotFoundError, Operation, capitalize, getPropertyNames, getResult, normalizeString, takeOne, uncapitalize } from "@esposter/shared";
3
- //#region src/models/search/SearchOperator.ts
3
+ // src/models/search/SearchOperator.ts
4
4
  let SearchOperator = /* @__PURE__ */ function(SearchOperator) {
5
5
  SearchOperator["ArrayAny"] = "arrayAny";
6
6
  SearchOperator["ArrayContains"] = "arrayContains";
7
7
  return SearchOperator;
8
8
  }({});
9
- //#endregion
10
- //#region src/models/shared/BinaryOperator.ts
9
+ // src/models/shared/BinaryOperator.ts
11
10
  let BinaryOperator = /* @__PURE__ */ function(BinaryOperator) {
12
11
  BinaryOperator["Eq"] = "eq";
13
12
  BinaryOperator["Ge"] = "ge";
@@ -18,15 +17,13 @@ let BinaryOperator = /* @__PURE__ */ function(BinaryOperator) {
18
17
  return BinaryOperator;
19
18
  }({});
20
19
  const BinaryOperators = Object.values(BinaryOperator);
21
- //#endregion
22
- //#region src/services/shared/constants.ts
20
+ // src/services/shared/constants.ts
23
21
  const AZURE_MAX_BATCH_SIZE = 100;
24
22
  const AZURE_MAX_PAGE_SIZE = 1e3;
25
23
  const SERIALIZABLE_VALUE_MAX_LENGTH = 100;
26
24
  const AZURE_MAX_QUEUE_VISIBILITY_TIMEOUT_MS = Temporal.Duration.from({ days: 7 }).total("milliseconds");
27
25
  const AZURE_MAX_STRING_PROPERTY_LENGTH = 32768;
28
- //#endregion
29
- //#region src/models/shared/SerializableValue.ts
26
+ // src/models/shared/SerializableValue.ts
30
27
  const serializableValueSchema = z.union([
31
28
  z.boolean(),
32
29
  z.date(),
@@ -34,60 +31,50 @@ const serializableValueSchema = z.union([
34
31
  z.number(),
35
32
  z.string().min(1).max(100)
36
33
  ]);
37
- //#endregion
38
- //#region src/models/shared/UnaryOperator.ts
34
+ // src/models/shared/UnaryOperator.ts
39
35
  let UnaryOperator = /* @__PURE__ */ function(UnaryOperator) {
40
36
  UnaryOperator["And"] = "and";
41
37
  UnaryOperator["Not"] = "not";
42
38
  UnaryOperator["Or"] = "or";
43
39
  return UnaryOperator;
44
40
  }({});
45
- //#endregion
46
- //#region src/models/table/CompositeKey.ts
41
+ // src/models/table/CompositeKey.ts
47
42
  var CompositeKey = class {};
48
43
  const CompositeKeyPropertyNames = getPropertyNames();
49
- //#endregion
50
- //#region src/services/search/getSearchNonNullClause.ts
44
+ // src/services/search/getSearchNonNullClause.ts
51
45
  const getSearchNonNullClause = (key) => ({
52
46
  key,
53
47
  operator: "ne",
54
48
  value: null
55
49
  });
56
- //#endregion
57
- //#region src/services/search/getSearchNullClause.ts
50
+ // src/services/search/getSearchNullClause.ts
58
51
  const getSearchNullClause = (key) => ({
59
52
  key,
60
53
  operator: "eq",
61
54
  value: null
62
55
  });
63
- //#endregion
64
- //#region src/services/table/constants.ts
56
+ // src/services/table/constants.ts
65
57
  const KEYS_TO_CAPITALIZE = /* @__PURE__ */ new Set([CompositeKeyPropertyNames.partitionKey, CompositeKeyPropertyNames.rowKey]);
66
58
  const KEYS_TO_UNCAPITALIZE = /* @__PURE__ */ new Set([capitalize(CompositeKeyPropertyNames.partitionKey), capitalize(CompositeKeyPropertyNames.rowKey)]);
67
- //#endregion
68
- //#region src/services/table/deserializeKey.ts
59
+ // src/services/table/deserializeKey.ts
69
60
  const deserializeKey = (key) => KEYS_TO_UNCAPITALIZE.has(key) ? uncapitalize(key) : key;
70
- //#endregion
71
- //#region src/services/table/getTableNullClause.ts
61
+ // src/services/table/getTableNullClause.ts
72
62
  const getTableNullClause = (key) => ({
73
63
  key,
74
64
  not: true,
75
65
  operator: "ne",
76
66
  value: NaN
77
67
  });
78
- //#endregion
79
- //#region src/services/table/serializeKey.ts
68
+ // src/services/table/serializeKey.ts
80
69
  const serializeKey = (key) => KEYS_TO_CAPITALIZE.has(key) ? capitalize(key) : key;
81
- //#endregion
82
- //#region src/services/transformer/RangeOperators.ts
70
+ // src/services/transformer/RangeOperators.ts
83
71
  const RangeOperators = [
84
72
  "ge",
85
73
  "gt",
86
74
  "le",
87
75
  "lt"
88
76
  ];
89
- //#endregion
90
- //#region src/services/transformer/constants.ts
77
+ // src/services/transformer/constants.ts
91
78
  const DATETIME_LITERAL_PREFIX = "datetime'";
92
79
  const VALUE_REGEX = [
93
80
  true,
@@ -100,8 +87,7 @@ const VALUE_REGEX = [
100
87
  "'(?:[^']|'')*'"
101
88
  ].join("|");
102
89
  const CLAUSE_REGEX = new RegExp(String.raw`^(?<not>not\s+)?(?<key>[A-Za-z0-9_]*)\s*(?<operator>${BinaryOperators.join("|")})\s+(?<value>${VALUE_REGEX})$`, "iu");
103
- //#endregion
104
- //#region src/services/transformer/deserializeValue.ts
90
+ // src/services/transformer/deserializeValue.ts
105
91
  const parseIsoDate = (isoValue) => getResult(() => new Date(Temporal.Instant.from(isoValue).epochMilliseconds)).unwrapOr(void 0);
106
92
  const deserializeValue = (serializedValue) => {
107
93
  if (serializedValue === String(true)) return true;
@@ -113,8 +99,7 @@ const deserializeValue = (serializedValue) => {
113
99
  else if (serializedValue.startsWith("'") && serializedValue.endsWith("'")) return serializedValue.slice(1, -1).replaceAll("''", "'");
114
100
  else return parseIsoDate(serializedValue) ?? serializedValue;
115
101
  };
116
- //#endregion
117
- //#region src/services/transformer/deserializeClause.ts
102
+ // src/services/transformer/deserializeClause.ts
118
103
  const deserializeClause = (serializedClause) => {
119
104
  const normalizedClause = normalizeString(serializedClause);
120
105
  const match = CLAUSE_REGEX.exec(normalizedClause);
@@ -128,18 +113,15 @@ const deserializeClause = (serializedClause) => {
128
113
  value: deserializeValue(groups.value)
129
114
  };
130
115
  };
131
- //#endregion
132
- //#region src/services/transformer/escapeValue.ts
116
+ // src/services/transformer/escapeValue.ts
133
117
  const escapeValue = (value) => `'${value.replaceAll("'", "''")}'`;
134
- //#endregion
135
- //#region src/services/transformer/serializeValue.ts
118
+ // src/services/transformer/serializeValue.ts
136
119
  const serializeValue = (value, isTableFilter = false) => {
137
120
  if (value instanceof Date) return isTableFilter ? `${DATETIME_LITERAL_PREFIX}${value.toISOString()}'` : value.toISOString();
138
121
  else if (typeof value === "string") return escapeValue(value);
139
122
  else return String(value);
140
123
  };
141
- //#endregion
142
- //#region src/services/transformer/serializeClause.ts
124
+ // src/services/transformer/serializeClause.ts
143
125
  const serializeClause = (clause, isTableFilter = false) => {
144
126
  const keys = clause.key.split("/").map((key) => serializeKey(key));
145
127
  const clauseKey = keys.join("/");
@@ -156,8 +138,7 @@ const serializeClause = (clause, isTableFilter = false) => {
156
138
  const baseClause = `${clauseKey} ${operator} ${serializeValue(value, isTableFilter)}`;
157
139
  return not ? `not(${baseClause})` : baseClause;
158
140
  };
159
- //#endregion
160
- //#region src/services/transformer/serializeClausesCore.ts
141
+ // src/services/transformer/serializeClausesCore.ts
161
142
  const serializeClausesCore = (clauses, isTableFilter) => {
162
143
  if (clauses.length === 0) return "";
163
144
  else if (clauses.length === 1) return serializeClause(takeOne(clauses), isTableFilter);
@@ -173,18 +154,14 @@ const serializeClausesCore = (clauses, isTableFilter) => {
173
154
  return groupedStrings.join(` and `);
174
155
  }
175
156
  };
176
- //#endregion
177
- //#region src/services/transformer/serializeClauses.ts
157
+ // src/services/transformer/serializeClauses.ts
178
158
  const serializeClauses = (clauses) => serializeClausesCore(clauses, true);
179
- //#endregion
180
- //#region src/services/transformer/getPartitionKeyFilter.ts
159
+ // src/services/transformer/getPartitionKeyFilter.ts
181
160
  const getPartitionKeyFilter = (partitionKey) => serializeClauses([{
182
161
  key: CompositeKeyPropertyNames.partitionKey,
183
162
  operator: "eq",
184
163
  value: partitionKey
185
164
  }]);
186
- //#endregion
187
- //#region src/services/transformer/serializeSearchClauses.ts
165
+ // src/services/transformer/serializeSearchClauses.ts
188
166
  const serializeSearchClauses = (clauses) => serializeClausesCore(clauses, false);
189
- //#endregion
190
167
  export { AZURE_MAX_BATCH_SIZE, AZURE_MAX_PAGE_SIZE, AZURE_MAX_QUEUE_VISIBILITY_TIMEOUT_MS, AZURE_MAX_STRING_PROPERTY_LENGTH, BinaryOperator, BinaryOperators, CLAUSE_REGEX, CompositeKey, CompositeKeyPropertyNames, DATETIME_LITERAL_PREFIX, KEYS_TO_CAPITALIZE, KEYS_TO_UNCAPITALIZE, RangeOperators, SERIALIZABLE_VALUE_MAX_LENGTH, SearchOperator, UnaryOperator, deserializeClause, deserializeKey, deserializeValue, escapeValue, getPartitionKeyFilter, getSearchNonNullClause, getSearchNullClause, getTableNullClause, serializableValueSchema, serializeClause, serializeClauses, serializeClausesCore, serializeKey, serializeSearchClauses, serializeValue };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esposter/azure",
3
- "version": "4.3.1",
3
+ "version": "4.3.3",
4
4
  "description": "The Azure wire conventions Esposter's clients and its mocks both speak — OData filter clauses, entity key casing, and service limits.",
5
5
  "keywords": [
6
6
  "azure",
@@ -44,10 +44,10 @@
44
44
  "typecheck": "tsc"
45
45
  },
46
46
  "dependencies": {
47
- "@esposter/shared": "4.3.1"
47
+ "@esposter/shared": "4.3.3"
48
48
  },
49
49
  "devDependencies": {
50
- "@esposter/configuration": "4.3.1",
50
+ "@esposter/configuration": "4.3.3",
51
51
  "tsdown": "^0.23.1",
52
52
  "type-fest": "^5.10.0"
53
53
  },
@@ -58,5 +58,5 @@
58
58
  "inlinedDependencies": {
59
59
  "type-fest": "5.10.0"
60
60
  },
61
- "gitHead": "777a39636b789c13af33ed13370246ccf6dbaf31"
61
+ "gitHead": "955bbc130ad9b28877fd4ae8efc73a045141ce01"
62
62
  }