@certik/skynet 0.10.42 → 0.10.44

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.44
4
+
5
+ - Fixed modeIndexer delta bug
6
+
7
+ ## 0.10.43
8
+
9
+ - Fixed modeIndexer one and range mode
10
+ - Fixed `dynamodb`.`getRecordsByKey` pagination handling bug
11
+
3
12
  ## 0.10.42
4
13
 
5
14
  - Added "contentType" option for `s3`.`writeFile`
package/dynamodb.js CHANGED
@@ -168,8 +168,23 @@ async function getRecordsByKey(tableName, keys, indexName) {
168
168
 
169
169
  try {
170
170
  data = await docClient.query(params).promise();
171
- return data.Items;
171
+
172
+ let items = data.Items;
173
+
174
+ while (data.LastEvaluatedKey) {
175
+ data = await docClient
176
+ .query({
177
+ ExclusiveStartKey: data.LastEvaluatedKey,
178
+ ...params,
179
+ })
180
+ .promise();
181
+
182
+ items = items.concat(data.Items);
183
+ }
184
+
185
+ return items;
172
186
  } catch (err) {
187
+ console.log(err);
173
188
  if (err.statusCode && err.statusCode === 400) {
174
189
  return null;
175
190
  }
package/indexer.js CHANGED
@@ -103,6 +103,10 @@ function createModeIndexerApp({
103
103
  return fillNumberRange(from, to);
104
104
  }
105
105
 
106
+ function offsetRange(from, to) {
107
+ return fillRange(from, to).length;
108
+ }
109
+
106
110
  async function runMode({ mode, from, to, status, verbose, ...selectorFlags }) {
107
111
  if (status) {
108
112
  const stateItem = await getRecordByKey(STATE_TABLE_NAME, {
@@ -122,13 +126,13 @@ function createModeIndexerApp({
122
126
  process.exit(0);
123
127
  }
124
128
 
125
- if (from === 0) {
129
+ if (!from) {
126
130
  from = await finalState.getMinId(selectorFlags);
127
131
  }
128
132
 
129
133
  inline.log(
130
134
  `[MODE INDEXER] mode=${mode}, from=${from}, to=${
131
- to > 0 ? to : "undefined"
135
+ to ? to : "undefined"
132
136
  }, env=${getEnvironment()}, ${toSelectorString(selectorFlags, ", ")}`
133
137
  );
134
138
 
@@ -136,14 +140,14 @@ function createModeIndexerApp({
136
140
  await runReset(selectorFlags);
137
141
  } else if (mode === "rebuild") {
138
142
  await runReset(selectorFlags);
139
- await runRebuild(selectorFlags, from, to > 0 ? to : await finalState.getMaxId(selectorFlags), verbose);
143
+ await runRebuild(selectorFlags, from, to ? to : await finalState.getMaxId(selectorFlags), verbose);
140
144
  } else if (mode === "resume-rebuild") {
141
145
  const previousRebuildEnds = await getIndexerLatestId(name, selectorFlags);
142
146
 
143
147
  await runRebuild(
144
148
  selectorFlags,
145
149
  previousRebuildEnds ? increaseId(finalState.type, previousRebuildEnds, 1) : from,
146
- to > 0 ? to : await finalState.getMaxId(selectorFlags),
150
+ to ? to : await finalState.getMaxId(selectorFlags),
147
151
  verbose
148
152
  );
149
153
  } else if (mode === "validate" || mode === "validation") {
@@ -151,17 +155,17 @@ function createModeIndexerApp({
151
155
 
152
156
  const previousValidatedTo = await getIndexerValidatedId(name, selectorFlags);
153
157
 
154
- const shouldSaveState = to === 0;
158
+ const shouldSaveState = !to;
155
159
 
156
160
  await runValidate(
157
161
  selectorFlags,
158
- from > 0 ? from : previousValidatedTo,
159
- to > 0 ? to : previousRebuildEnds,
162
+ from ? from : previousValidatedTo,
163
+ to ? to : previousRebuildEnds,
160
164
  shouldSaveState,
161
165
  verbose
162
166
  );
163
167
  } else if (mode === "one") {
164
- if (to > 0) {
168
+ if (to) {
165
169
  inline.log("[MODE INDEXER] one mode ignores --to option. you may want to use range mode instead");
166
170
  }
167
171
  await runRange(selectorFlags, from, from, verbose);
@@ -265,7 +269,7 @@ function createModeIndexerApp({
265
269
  }
266
270
 
267
271
  inline.log(
268
- `[MODE INDEXER] validated ${to - from + 1} ${finalState.type} successfully in ${Date.now() - startTime}ms`
272
+ `[MODE INDEXER] validated ${offsetRange(from, to)} ${finalState.type} successfully in ${Date.now() - startTime}ms`
269
273
  );
270
274
  }
271
275
 
@@ -367,13 +371,15 @@ function createModeIndexerApp({
367
371
 
368
372
  if (failedIds.length > 0) {
369
373
  inline.log(
370
- `[MODE INDEXER] built ${to - from + 1} ${finalState.type} with some failed ${finalState.type}`,
374
+ `[MODE INDEXER] built ${offsetRange(from, to)} ${finalState.type}(s) with some failed ${finalState.type}`,
371
375
  failedIds
372
376
  );
373
377
  process.exit(1);
374
378
  } else {
375
379
  inline.log(
376
- `[MODE INDEXER] built ${to - from + 1} ${finalState.type} successfully in ${Date.now() - startTime}ms`
380
+ `[MODE INDEXER] built ${offsetRange(from, to)} ${finalState.type}(s) successfully in ${
381
+ Date.now() - startTime
382
+ }ms`
377
383
  );
378
384
  process.exit(0);
379
385
  }
@@ -386,7 +392,7 @@ function createModeIndexerApp({
386
392
 
387
393
  // only build when rebuild succeed
388
394
  if (stateItem && stateItem.value === "succeed") {
389
- const from = (await getIndexerLatestId(name, selectorFlags)) + 1;
395
+ const from = increaseId(finalState.type, await getIndexerLatestId(name, selectorFlags), 1);
390
396
 
391
397
  const startTime = Date.now();
392
398
  const to = await state.getMaxId(selectorFlags);
@@ -504,13 +510,11 @@ ${getSelectorDesc(selector)}
504
510
  },
505
511
  from: {
506
512
  alias: "since",
507
- type: "number",
508
- default: 0,
513
+ type: "string",
509
514
  },
510
515
  to: {
511
516
  alias: "until",
512
- type: "number",
513
- default: 0,
517
+ type: "string",
514
518
  },
515
519
  status: {
516
520
  type: "boolean",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@certik/skynet",
3
- "version": "0.10.42",
3
+ "version": "0.10.44",
4
4
  "description": "Skynet Shared JS library",
5
5
  "main": "index.js",
6
6
  "author": "CertiK Engineering",