@malloydata/malloy 0.0.58-dev230714200721 → 0.0.58

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/malloy.d.ts CHANGED
@@ -521,6 +521,7 @@ export declare class Explore extends Entity {
521
521
  private get fieldMap();
522
522
  get allFields(): Field[];
523
523
  get intrinsicFields(): Field[];
524
+ get dimensions(): Field[];
524
525
  getFieldByName(fieldName: string): Field;
525
526
  getFieldByNameIfExists(fieldName: string): Field | undefined;
526
527
  get primaryKey(): string | undefined;
@@ -1114,55 +1115,67 @@ declare abstract class Data<T> {
1114
1115
  isArray(): this is DataArray;
1115
1116
  get array(): DataArray;
1116
1117
  isArrayOrRecord(): DataArrayOrRecord;
1118
+ isScalar(): this is ScalarData<T>;
1117
1119
  }
1118
- declare class ScalarData<T> extends Data<T> {
1120
+ declare abstract class ScalarData<T> extends Data<T> {
1119
1121
  protected _value: T;
1120
1122
  protected _field: AtomicField;
1121
1123
  constructor(value: T, field: AtomicField);
1122
1124
  get value(): T;
1123
1125
  get field(): AtomicField;
1126
+ abstract get key(): string;
1127
+ isScalar(): this is ScalarData<T>;
1124
1128
  }
1125
1129
  declare class DataString extends ScalarData<string> {
1126
1130
  protected _field: StringField;
1127
1131
  constructor(value: string, field: StringField);
1128
1132
  get field(): StringField;
1133
+ get key(): string;
1129
1134
  }
1130
1135
  declare class DataUnsupported extends ScalarData<unknown> {
1131
1136
  protected _field: UnsupportedField;
1132
1137
  constructor(value: unknown, field: UnsupportedField);
1133
1138
  get field(): UnsupportedField;
1139
+ get key(): string;
1134
1140
  }
1135
1141
  declare class DataBoolean extends ScalarData<boolean> {
1136
1142
  protected _field: BooleanField;
1137
1143
  constructor(value: boolean, field: BooleanField);
1138
1144
  get field(): BooleanField;
1145
+ get key(): string;
1139
1146
  }
1140
1147
  declare class DataJSON extends ScalarData<string> {
1141
1148
  protected _field: JSONField;
1142
1149
  constructor(value: string, field: JSONField);
1143
1150
  get field(): JSONField;
1151
+ get key(): string;
1144
1152
  }
1145
1153
  declare class DataNumber extends ScalarData<number> {
1146
1154
  protected _field: NumberField;
1147
1155
  constructor(value: number, field: NumberField);
1148
1156
  get field(): NumberField;
1157
+ get key(): string;
1149
1158
  }
1150
1159
  declare class DataTimestamp extends ScalarData<Date> {
1151
1160
  protected _field: TimestampField;
1152
1161
  constructor(value: Date, field: TimestampField);
1153
1162
  get value(): Date;
1154
1163
  get field(): TimestampField;
1164
+ get key(): string;
1155
1165
  }
1156
1166
  declare class DataDate extends ScalarData<Date> {
1157
1167
  protected _field: DateField;
1158
1168
  constructor(value: Date, field: DateField);
1159
1169
  get value(): Date;
1160
1170
  get field(): DateField;
1171
+ get key(): string;
1161
1172
  }
1162
1173
  declare class DataBytes extends ScalarData<Buffer> {
1174
+ get key(): string;
1163
1175
  }
1164
1176
  declare class DataNull extends Data<null> {
1165
1177
  get value(): null;
1178
+ get key(): string;
1166
1179
  }
1167
1180
  export declare class DataArray extends Data<QueryData> implements Iterable<DataRecord> {
1168
1181
  readonly parent: DataArrayOrRecord | undefined;
package/dist/malloy.js CHANGED
@@ -983,6 +983,9 @@ class Explore extends Entity {
983
983
  get intrinsicFields() {
984
984
  return [...this.fieldMap.values()].filter(f => f.isIntrinsic());
985
985
  }
986
+ get dimensions() {
987
+ return [...this.fieldMap.values()].filter(f => f.isAtomicField() && f.sourceWasDimension());
988
+ }
986
989
  getFieldByName(fieldName) {
987
990
  const field = this.fieldMap.get(fieldName);
988
991
  if (field === undefined) {
@@ -2214,6 +2217,9 @@ class Data {
2214
2217
  }
2215
2218
  throw new Error('No Array or Record');
2216
2219
  }
2220
+ isScalar() {
2221
+ return true;
2222
+ }
2217
2223
  }
2218
2224
  class ScalarData extends Data {
2219
2225
  constructor(value, field) {
@@ -2227,6 +2233,9 @@ class ScalarData extends Data {
2227
2233
  get field() {
2228
2234
  return this._field;
2229
2235
  }
2236
+ isScalar() {
2237
+ return this instanceof ScalarData;
2238
+ }
2230
2239
  }
2231
2240
  class DataString extends ScalarData {
2232
2241
  constructor(value, field) {
@@ -2236,6 +2245,9 @@ class DataString extends ScalarData {
2236
2245
  get field() {
2237
2246
  return this._field;
2238
2247
  }
2248
+ get key() {
2249
+ return this.value;
2250
+ }
2239
2251
  }
2240
2252
  class DataUnsupported extends ScalarData {
2241
2253
  constructor(value, field) {
@@ -2245,6 +2257,9 @@ class DataUnsupported extends ScalarData {
2245
2257
  get field() {
2246
2258
  return this._field;
2247
2259
  }
2260
+ get key() {
2261
+ return '<unsupported>';
2262
+ }
2248
2263
  }
2249
2264
  class DataBoolean extends ScalarData {
2250
2265
  constructor(value, field) {
@@ -2254,6 +2269,9 @@ class DataBoolean extends ScalarData {
2254
2269
  get field() {
2255
2270
  return this._field;
2256
2271
  }
2272
+ get key() {
2273
+ return `${this.value}`;
2274
+ }
2257
2275
  }
2258
2276
  class DataJSON extends ScalarData {
2259
2277
  constructor(value, field) {
@@ -2263,6 +2281,9 @@ class DataJSON extends ScalarData {
2263
2281
  get field() {
2264
2282
  return this._field;
2265
2283
  }
2284
+ get key() {
2285
+ return this.value;
2286
+ }
2266
2287
  }
2267
2288
  class DataNumber extends ScalarData {
2268
2289
  constructor(value, field) {
@@ -2272,6 +2293,9 @@ class DataNumber extends ScalarData {
2272
2293
  get field() {
2273
2294
  return this._field;
2274
2295
  }
2296
+ get key() {
2297
+ return `${this.value}`;
2298
+ }
2275
2299
  }
2276
2300
  function valueToDate(value) {
2277
2301
  // TODO properly map the data from BQ/Postgres types
@@ -2312,6 +2336,9 @@ class DataTimestamp extends ScalarData {
2312
2336
  get field() {
2313
2337
  return this._field;
2314
2338
  }
2339
+ get key() {
2340
+ return `${this.value.toLocaleString()}`;
2341
+ }
2315
2342
  }
2316
2343
  class DataDate extends ScalarData {
2317
2344
  constructor(value, field) {
@@ -2324,13 +2351,22 @@ class DataDate extends ScalarData {
2324
2351
  get field() {
2325
2352
  return this._field;
2326
2353
  }
2354
+ get key() {
2355
+ return `${this.value.toLocaleString()}`;
2356
+ }
2327
2357
  }
2328
2358
  class DataBytes extends ScalarData {
2359
+ get key() {
2360
+ return this.value.toString();
2361
+ }
2329
2362
  }
2330
2363
  class DataNull extends Data {
2331
2364
  get value() {
2332
2365
  return null;
2333
2366
  }
2367
+ get key() {
2368
+ return '<null>';
2369
+ }
2334
2370
  }
2335
2371
  class DataArray extends Data {
2336
2372
  constructor(queryData, field, parent) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@malloydata/malloy",
3
- "version": "0.0.58-dev230714200721",
3
+ "version": "0.0.58",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",