@bessemer/cornerstone 0.5.52 → 0.5.53

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 (123) hide show
  1. package/dist/array.d.ts.map +1 -1
  2. package/dist/array.js +16 -13
  3. package/dist/array.js.map +1 -1
  4. package/dist/assertion.d.ts +4 -4
  5. package/dist/assertion.d.ts.map +1 -1
  6. package/dist/assertion.js +14 -13
  7. package/dist/assertion.js.map +1 -1
  8. package/dist/async.d.ts.map +1 -1
  9. package/dist/async.js +4 -3
  10. package/dist/async.js.map +1 -1
  11. package/dist/cache.d.ts.map +1 -1
  12. package/dist/cache.js +22 -17
  13. package/dist/cache.js.map +1 -1
  14. package/dist/combinable.d.ts.map +1 -1
  15. package/dist/combinable.js +5 -4
  16. package/dist/combinable.js.map +1 -1
  17. package/dist/comparator.d.ts.map +1 -1
  18. package/dist/comparator.js +8 -5
  19. package/dist/comparator.js.map +1 -1
  20. package/dist/content.d.ts +9 -9
  21. package/dist/content.d.ts.map +1 -1
  22. package/dist/content.js +18 -13
  23. package/dist/content.js.map +1 -1
  24. package/dist/date.d.ts.map +1 -1
  25. package/dist/date.js +2 -2
  26. package/dist/date.js.map +1 -1
  27. package/dist/either.d.ts +0 -1
  28. package/dist/either.d.ts.map +1 -1
  29. package/dist/either.js +2 -3
  30. package/dist/either.js.map +1 -1
  31. package/dist/error-event.d.ts +10 -6
  32. package/dist/error-event.d.ts.map +1 -1
  33. package/dist/error-event.js +34 -12
  34. package/dist/error-event.js.map +1 -1
  35. package/dist/error.js +2 -2
  36. package/dist/error.js.map +1 -1
  37. package/dist/expression/array-expression.js +3 -3
  38. package/dist/expression/array-expression.js.map +1 -1
  39. package/dist/expression/core-expression.d.ts +6 -6
  40. package/dist/expression/core-expression.d.ts.map +1 -1
  41. package/dist/expression/core-expression.js +9 -6
  42. package/dist/expression/core-expression.js.map +1 -1
  43. package/dist/expression/expression-evaluator.js +3 -3
  44. package/dist/expression/expression-evaluator.js.map +1 -1
  45. package/dist/expression/expression-mapper.js +3 -3
  46. package/dist/expression/expression-mapper.js.map +1 -1
  47. package/dist/expression/expression.d.ts +5 -6
  48. package/dist/expression/expression.d.ts.map +1 -1
  49. package/dist/expression/expression.js +2 -2
  50. package/dist/expression/expression.js.map +1 -1
  51. package/dist/expression/internal.d.ts.map +1 -1
  52. package/dist/expression/internal.js +3 -3
  53. package/dist/expression/internal.js.map +1 -1
  54. package/dist/expression/numeric-expression.d.ts +5 -5
  55. package/dist/expression/numeric-expression.d.ts.map +1 -1
  56. package/dist/expression/numeric-expression.js +11 -10
  57. package/dist/expression/numeric-expression.js.map +1 -1
  58. package/dist/hex-code.d.ts +2 -2
  59. package/dist/hex-code.d.ts.map +1 -1
  60. package/dist/hex-code.js +1 -1
  61. package/dist/hex-code.js.map +1 -1
  62. package/dist/json.d.ts.map +1 -1
  63. package/dist/json.js +3 -3
  64. package/dist/json.js.map +1 -1
  65. package/dist/logger.d.ts.map +1 -1
  66. package/dist/logger.js +10 -9
  67. package/dist/logger.js.map +1 -1
  68. package/dist/misc.d.ts.map +1 -1
  69. package/dist/misc.js +4 -3
  70. package/dist/misc.js.map +1 -1
  71. package/dist/patch.d.ts.map +1 -1
  72. package/dist/patch.js +6 -5
  73. package/dist/patch.js.map +1 -1
  74. package/dist/property.d.ts.map +1 -1
  75. package/dist/property.js +5 -4
  76. package/dist/property.js.map +1 -1
  77. package/dist/range.d.ts.map +1 -1
  78. package/dist/range.js +4 -3
  79. package/dist/range.js.map +1 -1
  80. package/dist/reference.d.ts +1 -2
  81. package/dist/reference.d.ts.map +1 -1
  82. package/dist/reference.js +13 -10
  83. package/dist/reference.js.map +1 -1
  84. package/dist/resource.d.ts.map +1 -1
  85. package/dist/resource.js +3 -2
  86. package/dist/resource.js.map +1 -1
  87. package/dist/result.d.ts.map +1 -1
  88. package/dist/result.js +6 -5
  89. package/dist/result.js.map +1 -1
  90. package/dist/retry.d.ts.map +1 -1
  91. package/dist/retry.js +14 -9
  92. package/dist/retry.js.map +1 -1
  93. package/dist/rich-text.js +2 -2
  94. package/dist/rich-text.js.map +1 -1
  95. package/dist/signature.d.ts.map +1 -1
  96. package/dist/signature.js +6 -4
  97. package/dist/signature.js.map +1 -1
  98. package/dist/sql/sql-expression-parser.d.ts.map +1 -1
  99. package/dist/sql/sql-expression-parser.js +18 -14
  100. package/dist/sql/sql-expression-parser.js.map +1 -1
  101. package/dist/store.d.ts.map +1 -1
  102. package/dist/store.js +9 -7
  103. package/dist/store.js.map +1 -1
  104. package/dist/string.d.ts.map +1 -1
  105. package/dist/string.js +2 -2
  106. package/dist/string.js.map +1 -1
  107. package/dist/tag.d.ts.map +1 -1
  108. package/dist/tag.js +12 -12
  109. package/dist/tag.js.map +1 -1
  110. package/dist/ulid.d.ts.map +1 -1
  111. package/dist/ulid.js +4 -3
  112. package/dist/ulid.js.map +1 -1
  113. package/dist/uri.d.ts.map +1 -1
  114. package/dist/uri.js +52 -50
  115. package/dist/uri.js.map +1 -1
  116. package/dist/url.d.ts +1 -2
  117. package/dist/url.d.ts.map +1 -1
  118. package/dist/url.js +28 -19
  119. package/dist/url.js.map +1 -1
  120. package/dist/uuid.d.ts.map +1 -1
  121. package/dist/uuid.js +7 -5
  122. package/dist/uuid.js.map +1 -1
  123. package/package.json +1 -1
@@ -1,6 +1,5 @@
1
1
  // src/sql/sql-expression-parser.ts
2
2
  import { ExpressionMapper } from "@bessemer/cornerstone/expression/expression-mapper";
3
- import { Arrays, Assertions, Entries, Objects, Ulids } from "@bessemer/cornerstone";
4
3
  import {
5
4
  AndExpression,
6
5
  ContainsExpression,
@@ -15,13 +14,18 @@ import {
15
14
  VariableExpression
16
15
  } from "@bessemer/cornerstone/expression/core-expression";
17
16
  import { isType, isValue } from "@bessemer/cornerstone/expression/internal";
17
+ import { generate } from "@bessemer/cornerstone/ulid";
18
+ import { isBasic } from "@bessemer/cornerstone/object";
19
+ import { assertPresent } from "@bessemer/cornerstone/assertion";
20
+ import { keys, of } from "@bessemer/cornerstone/entry";
21
+ import { first, rest } from "@bessemer/cornerstone/array";
18
22
  var SqlExpressionParser = class extends ExpressionMapper {
19
23
  };
20
24
  var DefaultSqlExpressionParser = new SqlExpressionParser();
21
25
  DefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {
22
26
  const value = expression.value;
23
- const parameterName = `_${Ulids.generate()}`;
24
- if (!Objects.isBasic(value)) {
27
+ const parameterName = `_${generate()}`;
28
+ if (!isBasic(value)) {
25
29
  throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`);
26
30
  }
27
31
  context.parameters[parameterName] = value;
@@ -29,7 +33,7 @@ DefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) =>
29
33
  });
30
34
  DefaultSqlExpressionParser.register(VariableExpression, (expression, _, context) => {
31
35
  const variableName = context.variables[expression.name];
32
- Assertions.assertPresent(variableName, () => `SqlExpressionParser - Unable to resolve VariableExpression with name: ${expression.name}`);
36
+ assertPresent(variableName, () => `SqlExpressionParser - Unable to resolve VariableExpression with name: ${expression.name}`);
33
37
  return variableName;
34
38
  });
35
39
  DefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {
@@ -44,16 +48,16 @@ DefaultSqlExpressionParser.register(NotExpression, (expression, map, context) =>
44
48
  throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`);
45
49
  }
46
50
  value.forEach((it) => {
47
- if (!Objects.isBasic(it)) {
51
+ if (!isBasic(it)) {
48
52
  throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`);
49
53
  }
50
54
  });
51
- const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it));
55
+ const parameters = value.map((it) => of(`_${generate()}`, it));
52
56
  parameters.forEach(([key, value2]) => {
53
57
  context.parameters[key] = value2;
54
58
  });
55
59
  const containsExpression = expression.value.operands.map(map).map(
56
- (sql) => `(${sql} NOT IN (${Entries.keys(parameters).map((it) => `:${it}`).join(",")}))`
60
+ (sql) => `(${sql} NOT IN (${keys(parameters).map((it) => `:${it}`).join(",")}))`
57
61
  ).join(" AND ");
58
62
  return `(${containsExpression})`;
59
63
  } else {
@@ -67,10 +71,10 @@ DefaultSqlExpressionParser.register(OrExpression, (expression, map) => {
67
71
  return `(${expression.operands.map(map).join(" OR ")})`;
68
72
  });
69
73
  DefaultSqlExpressionParser.register(EqualsExpression, (expression, map) => {
70
- const first = Arrays.first(expression.operands);
71
- const rest = Arrays.rest(expression.operands);
72
- const mappedFirst = map(first);
73
- const equalsExpressions = rest.map((it) => `(${mappedFirst} = ${map(it)})`).join(" AND ");
74
+ const firstElement = first(expression.operands);
75
+ const restElements = rest(expression.operands);
76
+ const mappedFirst = map(firstElement);
77
+ const equalsExpressions = restElements.map((it) => `(${mappedFirst} = ${map(it)})`).join(" AND ");
74
78
  return `(${equalsExpressions})`;
75
79
  });
76
80
  DefaultSqlExpressionParser.register(ContainsExpression, (expression, map, context) => {
@@ -84,16 +88,16 @@ DefaultSqlExpressionParser.register(ContainsExpression, (expression, map, contex
84
88
  throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`);
85
89
  }
86
90
  value.forEach((it) => {
87
- if (!Objects.isBasic(it)) {
91
+ if (!isBasic(it)) {
88
92
  throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`);
89
93
  }
90
94
  });
91
- const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it));
95
+ const parameters = value.map((it) => of(`_${generate()}`, it));
92
96
  parameters.forEach(([key, value2]) => {
93
97
  context.parameters[key] = value2;
94
98
  });
95
99
  const containsExpression = expression.operands.map(map).map(
96
- (sql) => `(${sql} IN (${Entries.keys(parameters).map((it) => `:${it}`).join(",")}))`
100
+ (sql) => `(${sql} IN (${keys(parameters).map((it) => `:${it}`).join(",")}))`
97
101
  ).join(" AND ");
98
102
  return `(${containsExpression})`;
99
103
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sql/sql-expression-parser.ts"],"sourcesContent":["import { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper'\nimport { Arrays, Assertions, Entries, Objects, Ulids } from '@bessemer/cornerstone'\nimport { BasicType, Dictionary } from '@bessemer/cornerstone/types'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { isType, isValue } from '@bessemer/cornerstone/expression/internal'\nimport { SqlFragment, SqlParameterMap } from '@bessemer/cornerstone/sql'\n\nexport type SqlExpressionParserContext = {\n variables: Dictionary<string>\n parameters: SqlParameterMap\n}\nexport class SqlExpressionParser extends ExpressionMapper<SqlFragment, SqlExpressionParserContext> {}\n\nexport const DefaultSqlExpressionParser = new SqlExpressionParser()\nDefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {\n const value = expression.value\n const parameterName = `_${Ulids.generate()}`\n if (!Objects.isBasic(value)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`)\n }\n\n context.parameters[parameterName] = value\n return `:${parameterName}`\n})\nDefaultSqlExpressionParser.register(VariableExpression, (expression, _, context) => {\n const variableName = context.variables[expression.name]\n Assertions.assertPresent(variableName, () => `SqlExpressionParser - Unable to resolve VariableExpression with name: ${expression.name}`)\n return variableName\n})\nDefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {\n if (isType(expression.value, ContainsExpression)) {\n // JOHN tons of gross duplicated code that is duped across the contains resolver\n const collection = expression.value.collection\n\n // JOHN parsing expressions like this should be easier...\n let value: Array<BasicType> = []\n if (isType(collection, ValueExpression)) {\n value = collection.value as Array<BasicType>\n } else if (isValue(collection)) {\n value = collection as Array<BasicType>\n } else {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n\n value.forEach((it) => {\n if (!Objects.isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.value.operands\n .map(map)\n .map(\n (sql) =>\n `(${sql} NOT IN (${Entries.keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n .join(' AND ')\n\n return `(${containsExpression})`\n } else {\n return `(NOT ${map(expression.value)})`\n }\n})\nDefaultSqlExpressionParser.register(AndExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' AND ')})`\n})\nDefaultSqlExpressionParser.register(OrExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' OR ')})`\n})\nDefaultSqlExpressionParser.register(EqualsExpression, (expression, map) => {\n const first = Arrays.first(expression.operands)!\n const rest = Arrays.rest(expression.operands)\n\n const mappedFirst = map(first)\n const equalsExpressions = rest.map((it) => `(${mappedFirst} = ${map(it)})`).join(' AND ')\n return `(${equalsExpressions})`\n})\nDefaultSqlExpressionParser.register(ContainsExpression, (expression, map, context) => {\n const collection = expression.collection\n\n // JOHN parsing expressions like this should be easier...\n let value: Array<BasicType> = []\n if (isType(collection, ValueExpression)) {\n value = collection.value as Array<BasicType>\n } else if (isValue(collection)) {\n value = collection as Array<BasicType>\n } else {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n\n value.forEach((it) => {\n if (!Objects.isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const parameters = value.map((it) => Entries.of(`_${Ulids.generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.operands\n .map(map)\n .map(\n (sql) =>\n `(${sql} IN (${Entries.keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n .join(' AND ')\n\n return `(${containsExpression})`\n})\nDefaultSqlExpressionParser.register(LessThanExpression, (expression, map) => {\n return `(${map(expression.left)} < ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(LessThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} <= ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanExpression, (expression, map) => {\n return `(${map(expression.left)} > ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} >= ${map(expression.right)})`\n})\n"],"mappings":";AAAA,SAAS,wBAAwB;AACjC,SAAS,QAAQ,YAAY,SAAS,SAAS,aAAa;AAE5D;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,QAAQ,eAAe;AAOzB,IAAM,sBAAN,cAAkC,iBAA0D;AAAC;AAE7F,IAAM,6BAA6B,IAAI,oBAAoB;AAClE,2BAA2B,SAAS,iBAAiB,CAAC,YAAY,GAAG,YAAY;AAC/E,QAAM,QAAQ,WAAW;AACzB,QAAM,gBAAgB,IAAI,MAAM,SAAS,CAAC;AAC1C,MAAI,CAAC,QAAQ,QAAQ,KAAK,GAAG;AAC3B,UAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,KAAK,CAAC,EAAE;AAAA,EACpH;AAEA,UAAQ,WAAW,aAAa,IAAI;AACpC,SAAO,IAAI,aAAa;AAC1B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,GAAG,YAAY;AAClF,QAAM,eAAe,QAAQ,UAAU,WAAW,IAAI;AACtD,aAAW,cAAc,cAAc,MAAM,yEAAyE,WAAW,IAAI,EAAE;AACvI,SAAO;AACT,CAAC;AACD,2BAA2B,SAAS,eAAe,CAAC,YAAY,KAAK,YAAY;AAC/E,MAAI,OAAO,WAAW,OAAO,kBAAkB,GAAG;AAEhD,UAAM,aAAa,WAAW,MAAM;AAGpC,QAAI,QAA0B,CAAC;AAC/B,QAAI,OAAO,YAAY,eAAe,GAAG;AACvC,cAAQ,WAAW;AAAA,IACrB,WAAW,QAAQ,UAAU,GAAG;AAC9B,cAAQ;AAAA,IACV,OAAO;AACL,YAAM,IAAI,MAAM,yFAAyF,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,IACvI;AAEA,UAAM,QAAQ,CAAC,OAAO;AACpB,UAAI,CAAC,QAAQ,QAAQ,EAAE,GAAG;AACxB,cAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,EAAE,CAAC,EAAE;AAAA,MACjH;AAAA,IACF,CAAC;AAED,UAAM,aAAa,MAAM,IAAI,CAAC,OAAO,QAAQ,GAAG,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3E,eAAW,QAAQ,CAAC,CAAC,KAAKA,MAAK,MAAM;AACnC,cAAQ,WAAW,GAAG,IAAIA;AAAA,IAC5B,CAAC;AAED,UAAM,qBAAqB,WAAW,MAAM,SACzC,IAAI,GAAG,EACP;AAAA,MACC,CAAC,QACC,IAAI,GAAG,YAAY,QAAQ,KAAK,UAAU,EACvC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EACpB,KAAK,GAAG,CAAC;AAAA,IAChB,EACC,KAAK,OAAO;AAEf,WAAO,IAAI,kBAAkB;AAAA,EAC/B,OAAO;AACL,WAAO,QAAQ,IAAI,WAAW,KAAK,CAAC;AAAA,EACtC;AACF,CAAC;AACD,2BAA2B,SAAS,eAAe,CAAC,YAAY,QAAQ;AACtE,SAAO,IAAI,WAAW,SAAS,IAAI,GAAG,EAAE,KAAK,OAAO,CAAC;AACvD,CAAC;AACD,2BAA2B,SAAS,cAAc,CAAC,YAAY,QAAQ;AACrE,SAAO,IAAI,WAAW,SAAS,IAAI,GAAG,EAAE,KAAK,MAAM,CAAC;AACtD,CAAC;AACD,2BAA2B,SAAS,kBAAkB,CAAC,YAAY,QAAQ;AACzE,QAAM,QAAQ,OAAO,MAAM,WAAW,QAAQ;AAC9C,QAAM,OAAO,OAAO,KAAK,WAAW,QAAQ;AAE5C,QAAM,cAAc,IAAI,KAAK;AAC7B,QAAM,oBAAoB,KAAK,IAAI,CAAC,OAAO,IAAI,WAAW,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,OAAO;AACxF,SAAO,IAAI,iBAAiB;AAC9B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,KAAK,YAAY;AACpF,QAAM,aAAa,WAAW;AAG9B,MAAI,QAA0B,CAAC;AAC/B,MAAI,OAAO,YAAY,eAAe,GAAG;AACvC,YAAQ,WAAW;AAAA,EACrB,WAAW,QAAQ,UAAU,GAAG;AAC9B,YAAQ;AAAA,EACV,OAAO;AACL,UAAM,IAAI,MAAM,yFAAyF,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,EACvI;AAEA,QAAM,QAAQ,CAAC,OAAO;AACpB,QAAI,CAAC,QAAQ,QAAQ,EAAE,GAAG;AACxB,YAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,EAAE,CAAC,EAAE;AAAA,IACjH;AAAA,EACF,CAAC;AAED,QAAM,aAAa,MAAM,IAAI,CAAC,OAAO,QAAQ,GAAG,IAAI,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;AAC3E,aAAW,QAAQ,CAAC,CAAC,KAAKA,MAAK,MAAM;AACnC,YAAQ,WAAW,GAAG,IAAIA;AAAA,EAC5B,CAAC;AAED,QAAM,qBAAqB,WAAW,SACnC,IAAI,GAAG,EACP;AAAA,IACC,CAAC,QACC,IAAI,GAAG,QAAQ,QAAQ,KAAK,UAAU,EACnC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EACpB,KAAK,GAAG,CAAC;AAAA,EAChB,EACC,KAAK,OAAO;AAEf,SAAO,IAAI,kBAAkB;AAC/B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,QAAQ;AAC3E,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,MAAM,IAAI,WAAW,KAAK,CAAC;AAC5D,CAAC;AACD,2BAA2B,SAAS,2BAA2B,CAAC,YAAY,QAAQ;AAClF,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC;AAC7D,CAAC;AACD,2BAA2B,SAAS,uBAAuB,CAAC,YAAY,QAAQ;AAC9E,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,MAAM,IAAI,WAAW,KAAK,CAAC;AAC5D,CAAC;AACD,2BAA2B,SAAS,8BAA8B,CAAC,YAAY,QAAQ;AACrF,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC;AAC7D,CAAC;","names":["value"]}
1
+ {"version":3,"sources":["../../src/sql/sql-expression-parser.ts"],"sourcesContent":["import { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper'\nimport { BasicType, Dictionary } from '@bessemer/cornerstone/types'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { isType, isValue } from '@bessemer/cornerstone/expression/internal'\nimport { SqlFragment, SqlParameterMap } from '@bessemer/cornerstone/sql'\nimport { generate } from '@bessemer/cornerstone/ulid'\nimport { isBasic } from '@bessemer/cornerstone/object'\nimport { assertPresent } from '@bessemer/cornerstone/assertion'\nimport { keys, of } from '@bessemer/cornerstone/entry'\nimport { first, rest } from '@bessemer/cornerstone/array'\n\nexport type SqlExpressionParserContext = {\n variables: Dictionary<string>\n parameters: SqlParameterMap\n}\nexport class SqlExpressionParser extends ExpressionMapper<SqlFragment, SqlExpressionParserContext> {}\n\nexport const DefaultSqlExpressionParser = new SqlExpressionParser()\nDefaultSqlExpressionParser.register(ValueExpression, (expression, _, context) => {\n const value = expression.value\n const parameterName = `_${generate()}`\n if (!isBasic(value)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(value)}`)\n }\n\n context.parameters[parameterName] = value\n return `:${parameterName}`\n})\nDefaultSqlExpressionParser.register(VariableExpression, (expression, _, context) => {\n const variableName = context.variables[expression.name]\n assertPresent(variableName, () => `SqlExpressionParser - Unable to resolve VariableExpression with name: ${expression.name}`)\n return variableName\n})\nDefaultSqlExpressionParser.register(NotExpression, (expression, map, context) => {\n if (isType(expression.value, ContainsExpression)) {\n // JOHN tons of gross duplicated code that is duped across the contains resolver\n const collection = expression.value.collection\n\n // JOHN parsing expressions like this should be easier...\n let value: Array<BasicType> = []\n if (isType(collection, ValueExpression)) {\n value = collection.value as Array<BasicType>\n } else if (isValue(collection)) {\n value = collection as Array<BasicType>\n } else {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n\n value.forEach((it) => {\n if (!isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const parameters = value.map((it) => of(`_${generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.value.operands\n .map(map)\n .map(\n (sql) =>\n `(${sql} NOT IN (${keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n .join(' AND ')\n\n return `(${containsExpression})`\n } else {\n return `(NOT ${map(expression.value)})`\n }\n})\nDefaultSqlExpressionParser.register(AndExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' AND ')})`\n})\nDefaultSqlExpressionParser.register(OrExpression, (expression, map) => {\n return `(${expression.operands.map(map).join(' OR ')})`\n})\nDefaultSqlExpressionParser.register(EqualsExpression, (expression, map) => {\n const firstElement = first(expression.operands)!\n const restElements = rest(expression.operands)\n\n const mappedFirst = map(firstElement)\n const equalsExpressions = restElements.map((it) => `(${mappedFirst} = ${map(it)})`).join(' AND ')\n return `(${equalsExpressions})`\n})\nDefaultSqlExpressionParser.register(ContainsExpression, (expression, map, context) => {\n const collection = expression.collection\n\n // JOHN parsing expressions like this should be easier...\n let value: Array<BasicType> = []\n if (isType(collection, ValueExpression)) {\n value = collection.value as Array<BasicType>\n } else if (isValue(collection)) {\n value = collection as Array<BasicType>\n } else {\n throw new Error(`SqlExpressionParser - Unable to resolve ContainsExpression with non-value collection: ${JSON.stringify(collection)}`)\n }\n\n value.forEach((it) => {\n if (!isBasic(it)) {\n throw new Error(`SqlExpressionParser - Unable to resolve complex ValueExpression as Sql: ${JSON.stringify(it)}`)\n }\n })\n\n const parameters = value.map((it) => of(`_${generate()}`, it))\n parameters.forEach(([key, value]) => {\n context.parameters[key] = value\n })\n\n const containsExpression = expression.operands\n .map(map)\n .map(\n (sql) =>\n `(${sql} IN (${keys(parameters)\n .map((it) => `:${it}`)\n .join(',')}))`\n )\n .join(' AND ')\n\n return `(${containsExpression})`\n})\nDefaultSqlExpressionParser.register(LessThanExpression, (expression, map) => {\n return `(${map(expression.left)} < ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(LessThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} <= ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanExpression, (expression, map) => {\n return `(${map(expression.left)} > ${map(expression.right)})`\n})\nDefaultSqlExpressionParser.register(GreaterThanOrEqualExpression, (expression, map) => {\n return `(${map(expression.left)} >= ${map(expression.right)})`\n})\n"],"mappings":";AAAA,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,QAAQ,eAAe;AAEhC,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAC9B,SAAS,MAAM,UAAU;AACzB,SAAS,OAAO,YAAY;AAMrB,IAAM,sBAAN,cAAkC,iBAA0D;AAAC;AAE7F,IAAM,6BAA6B,IAAI,oBAAoB;AAClE,2BAA2B,SAAS,iBAAiB,CAAC,YAAY,GAAG,YAAY;AAC/E,QAAM,QAAQ,WAAW;AACzB,QAAM,gBAAgB,IAAI,SAAS,CAAC;AACpC,MAAI,CAAC,QAAQ,KAAK,GAAG;AACnB,UAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,KAAK,CAAC,EAAE;AAAA,EACpH;AAEA,UAAQ,WAAW,aAAa,IAAI;AACpC,SAAO,IAAI,aAAa;AAC1B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,GAAG,YAAY;AAClF,QAAM,eAAe,QAAQ,UAAU,WAAW,IAAI;AACtD,gBAAc,cAAc,MAAM,yEAAyE,WAAW,IAAI,EAAE;AAC5H,SAAO;AACT,CAAC;AACD,2BAA2B,SAAS,eAAe,CAAC,YAAY,KAAK,YAAY;AAC/E,MAAI,OAAO,WAAW,OAAO,kBAAkB,GAAG;AAEhD,UAAM,aAAa,WAAW,MAAM;AAGpC,QAAI,QAA0B,CAAC;AAC/B,QAAI,OAAO,YAAY,eAAe,GAAG;AACvC,cAAQ,WAAW;AAAA,IACrB,WAAW,QAAQ,UAAU,GAAG;AAC9B,cAAQ;AAAA,IACV,OAAO;AACL,YAAM,IAAI,MAAM,yFAAyF,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,IACvI;AAEA,UAAM,QAAQ,CAAC,OAAO;AACpB,UAAI,CAAC,QAAQ,EAAE,GAAG;AAChB,cAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,EAAE,CAAC,EAAE;AAAA,MACjH;AAAA,IACF,CAAC;AAED,UAAM,aAAa,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;AAC7D,eAAW,QAAQ,CAAC,CAAC,KAAKA,MAAK,MAAM;AACnC,cAAQ,WAAW,GAAG,IAAIA;AAAA,IAC5B,CAAC;AAED,UAAM,qBAAqB,WAAW,MAAM,SACzC,IAAI,GAAG,EACP;AAAA,MACC,CAAC,QACC,IAAI,GAAG,YAAY,KAAK,UAAU,EAC/B,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EACpB,KAAK,GAAG,CAAC;AAAA,IAChB,EACC,KAAK,OAAO;AAEf,WAAO,IAAI,kBAAkB;AAAA,EAC/B,OAAO;AACL,WAAO,QAAQ,IAAI,WAAW,KAAK,CAAC;AAAA,EACtC;AACF,CAAC;AACD,2BAA2B,SAAS,eAAe,CAAC,YAAY,QAAQ;AACtE,SAAO,IAAI,WAAW,SAAS,IAAI,GAAG,EAAE,KAAK,OAAO,CAAC;AACvD,CAAC;AACD,2BAA2B,SAAS,cAAc,CAAC,YAAY,QAAQ;AACrE,SAAO,IAAI,WAAW,SAAS,IAAI,GAAG,EAAE,KAAK,MAAM,CAAC;AACtD,CAAC;AACD,2BAA2B,SAAS,kBAAkB,CAAC,YAAY,QAAQ;AACzE,QAAM,eAAe,MAAM,WAAW,QAAQ;AAC9C,QAAM,eAAe,KAAK,WAAW,QAAQ;AAE7C,QAAM,cAAc,IAAI,YAAY;AACpC,QAAM,oBAAoB,aAAa,IAAI,CAAC,OAAO,IAAI,WAAW,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,OAAO;AAChG,SAAO,IAAI,iBAAiB;AAC9B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,KAAK,YAAY;AACpF,QAAM,aAAa,WAAW;AAG9B,MAAI,QAA0B,CAAC;AAC/B,MAAI,OAAO,YAAY,eAAe,GAAG;AACvC,YAAQ,WAAW;AAAA,EACrB,WAAW,QAAQ,UAAU,GAAG;AAC9B,YAAQ;AAAA,EACV,OAAO;AACL,UAAM,IAAI,MAAM,yFAAyF,KAAK,UAAU,UAAU,CAAC,EAAE;AAAA,EACvI;AAEA,QAAM,QAAQ,CAAC,OAAO;AACpB,QAAI,CAAC,QAAQ,EAAE,GAAG;AAChB,YAAM,IAAI,MAAM,2EAA2E,KAAK,UAAU,EAAE,CAAC,EAAE;AAAA,IACjH;AAAA,EACF,CAAC;AAED,QAAM,aAAa,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;AAC7D,aAAW,QAAQ,CAAC,CAAC,KAAKA,MAAK,MAAM;AACnC,YAAQ,WAAW,GAAG,IAAIA;AAAA,EAC5B,CAAC;AAED,QAAM,qBAAqB,WAAW,SACnC,IAAI,GAAG,EACP;AAAA,IACC,CAAC,QACC,IAAI,GAAG,QAAQ,KAAK,UAAU,EAC3B,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EACpB,KAAK,GAAG,CAAC;AAAA,EAChB,EACC,KAAK,OAAO;AAEf,SAAO,IAAI,kBAAkB;AAC/B,CAAC;AACD,2BAA2B,SAAS,oBAAoB,CAAC,YAAY,QAAQ;AAC3E,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,MAAM,IAAI,WAAW,KAAK,CAAC;AAC5D,CAAC;AACD,2BAA2B,SAAS,2BAA2B,CAAC,YAAY,QAAQ;AAClF,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC;AAC7D,CAAC;AACD,2BAA2B,SAAS,uBAAuB,CAAC,YAAY,QAAQ;AAC9E,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,MAAM,IAAI,WAAW,KAAK,CAAC;AAC5D,CAAC;AACD,2BAA2B,SAAS,8BAA8B,CAAC,YAAY,QAAQ;AACrF,SAAO,IAAI,IAAI,WAAW,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC;AAC7D,CAAC;","names":["value"]}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/store.js CHANGED
@@ -1,19 +1,21 @@
1
1
  // src/store.ts
2
- import { Arrays, Entries, Objects } from "@bessemer/cornerstone";
2
+ import { of } from "@bessemer/cornerstone/entry";
3
+ import { first } from "@bessemer/cornerstone/array";
4
+ import { isNil, isPresent } from "@bessemer/cornerstone/object";
3
5
  var AbstractRemoteKeyValueStore = class {
4
6
  writeValue = async (key, value) => {
5
- await this.writeValues([Entries.of(key, value)]);
7
+ await this.writeValues([of(key, value)]);
6
8
  };
7
9
  fetchValue = async (key) => {
8
- return Arrays.first(await this.fetchValues([key]))?.[1];
10
+ return first(await this.fetchValues([key]))?.[1];
9
11
  };
10
12
  };
11
13
  var AbstractLocalKeyValueStore = class extends AbstractRemoteKeyValueStore {
12
14
  setValue = (key, value) => {
13
- this.setValues([Entries.of(key, value)]);
15
+ this.setValues([of(key, value)]);
14
16
  };
15
17
  getValue = (key) => {
16
- return Arrays.first(this.getValues([key]))?.[1];
18
+ return first(this.getValues([key]))?.[1];
17
19
  };
18
20
  fetchValues = async (keys) => {
19
21
  return this.getValues(keys);
@@ -30,7 +32,7 @@ var fromMap = () => {
30
32
  };
31
33
  setValues = (entries) => {
32
34
  entries.forEach(([key, value]) => {
33
- if (Objects.isNil(value)) {
35
+ if (isNil(value)) {
34
36
  map.delete(key);
35
37
  } else {
36
38
  map.set(key, value);
@@ -38,7 +40,7 @@ var fromMap = () => {
38
40
  });
39
41
  };
40
42
  getValues = (keys) => {
41
- return keys.map((key) => Entries.of(key, map.get(key))).filter((it) => Objects.isPresent(it[1]));
43
+ return keys.map((key) => of(key, map.get(key))).filter((it) => isPresent(it[1]));
42
44
  };
43
45
  }();
44
46
  };
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/store.ts"],"sourcesContent":["import { ResourceKey } from '@bessemer/cornerstone/resource'\nimport { Entry } from '@bessemer/cornerstone/entry'\nimport { Arrays, Entries, Objects } from '@bessemer/cornerstone'\n\nexport interface LocalStore<T> {\n setValue: (value: T | undefined) => void\n getValue: () => T | undefined\n}\n\nexport interface LocalKeyValueStore<T> {\n setValues: (entries: Array<Entry<T | undefined>>) => void\n setValue: (key: ResourceKey, value: T | undefined) => void\n\n getEntries: () => Array<Entry<T>>\n getValues: (keys: Array<ResourceKey>) => Array<Entry<T>>\n getValue: (key: ResourceKey) => T | undefined\n}\n\nexport interface RemoteStore<T> {\n writeValue: (value: T | undefined) => Promise<void>\n fetchValue: () => Promise<T | undefined>\n}\n\nexport interface RemoteKeyValueStore<T> {\n writeValues: (entries: Array<Entry<T | undefined>>) => Promise<void>\n writeValue: (key: ResourceKey, value: T | undefined) => Promise<void>\n\n fetchValues: (keys: Array<ResourceKey>) => Promise<Array<Entry<T>>>\n fetchValue: (key: ResourceKey) => Promise<T | undefined>\n}\n\nexport abstract class AbstractRemoteKeyValueStore<T> implements RemoteKeyValueStore<T> {\n abstract writeValues: (entries: Array<Entry<T | undefined>>) => Promise<void>\n\n writeValue = async (key: ResourceKey, value: T | undefined): Promise<void> => {\n await this.writeValues([Entries.of(key, value)])\n }\n\n abstract fetchValues: (keys: Array<ResourceKey>) => Promise<Array<Entry<T>>>\n\n fetchValue = async (key: ResourceKey): Promise<T | undefined> => {\n return Arrays.first(await this.fetchValues([key]))?.[1]\n }\n}\n\nexport abstract class AbstractLocalKeyValueStore<T> extends AbstractRemoteKeyValueStore<T> implements LocalKeyValueStore<T> {\n abstract setValues: (entries: Array<Entry<T | undefined>>) => void\n\n setValue = (key: ResourceKey, value: T | undefined): void => {\n this.setValues([Entries.of(key, value)])\n }\n\n abstract getEntries: () => Array<Entry<T>>\n abstract getValues: (keys: Array<ResourceKey>) => Array<Entry<T>>\n\n getValue = (key: ResourceKey): T | undefined => {\n return Arrays.first(this.getValues([key]))?.[1]\n }\n\n fetchValues = async (keys: Array<ResourceKey>): Promise<Array<Entry<T>>> => {\n return this.getValues(keys)\n }\n\n writeValues = async (entries: Array<Entry<T | undefined>>): Promise<void> => {\n this.setValues(entries)\n }\n}\n\nexport const fromMap = <T>(): LocalKeyValueStore<T> => {\n const map = new Map<string, T>()\n\n return new (class extends AbstractLocalKeyValueStore<T> {\n override getEntries = (): Array<Entry<T>> => {\n return Array.from(map.entries())\n }\n\n override setValues = (entries: Entry<T | undefined>[]): void => {\n entries.forEach(([key, value]) => {\n if (Objects.isNil(value)) {\n map.delete(key)\n } else {\n map.set(key, value)\n }\n })\n }\n\n override getValues = (keys: Array<ResourceKey>): Array<Entry<T>> => {\n return keys.map((key) => Entries.of(key, map.get(key)!)).filter((it) => Objects.isPresent(it[1]))\n }\n })()\n}\n"],"mappings":";AAEA,SAAS,QAAQ,SAAS,eAAe;AA6BlC,IAAe,8BAAf,MAAgF;AAAA,EAGrF,aAAa,OAAO,KAAkB,UAAwC;AAC5E,UAAM,KAAK,YAAY,CAAC,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,EACjD;AAAA,EAIA,aAAa,OAAO,QAA6C;AAC/D,WAAO,OAAO,MAAM,MAAM,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EACxD;AACF;AAEO,IAAe,6BAAf,cAAqD,4BAAgE;AAAA,EAG1H,WAAW,CAAC,KAAkB,UAA+B;AAC3D,SAAK,UAAU,CAAC,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,EACzC;AAAA,EAKA,WAAW,CAAC,QAAoC;AAC9C,WAAO,OAAO,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EAChD;AAAA,EAEA,cAAc,OAAO,SAAuD;AAC1E,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B;AAAA,EAEA,cAAc,OAAO,YAAwD;AAC3E,SAAK,UAAU,OAAO;AAAA,EACxB;AACF;AAEO,IAAM,UAAU,MAAgC;AACrD,QAAM,MAAM,oBAAI,IAAe;AAE/B,SAAO,IAAK,cAAc,2BAA8B;AAAA,IAC7C,aAAa,MAAuB;AAC3C,aAAO,MAAM,KAAK,IAAI,QAAQ,CAAC;AAAA,IACjC;AAAA,IAES,YAAY,CAAC,YAA0C;AAC9D,cAAQ,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChC,YAAI,QAAQ,MAAM,KAAK,GAAG;AACxB,cAAI,OAAO,GAAG;AAAA,QAChB,OAAO;AACL,cAAI,IAAI,KAAK,KAAK;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAES,YAAY,CAAC,SAA8C;AAClE,aAAO,KAAK,IAAI,CAAC,QAAQ,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,CAAE,CAAC,EAAE,OAAO,CAAC,OAAO,QAAQ,UAAU,GAAG,CAAC,CAAC,CAAC;AAAA,IAClG;AAAA,EACF,EAAG;AACL;","names":[]}
1
+ {"version":3,"sources":["../src/store.ts"],"sourcesContent":["import { ResourceKey } from '@bessemer/cornerstone/resource'\nimport { Entry, of } from '@bessemer/cornerstone/entry'\nimport { first } from '@bessemer/cornerstone/array'\nimport { isNil, isPresent } from '@bessemer/cornerstone/object'\n\nexport interface LocalStore<T> {\n setValue: (value: T | undefined) => void\n getValue: () => T | undefined\n}\n\nexport interface LocalKeyValueStore<T> {\n setValues: (entries: Array<Entry<T | undefined>>) => void\n setValue: (key: ResourceKey, value: T | undefined) => void\n\n getEntries: () => Array<Entry<T>>\n getValues: (keys: Array<ResourceKey>) => Array<Entry<T>>\n getValue: (key: ResourceKey) => T | undefined\n}\n\nexport interface RemoteStore<T> {\n writeValue: (value: T | undefined) => Promise<void>\n fetchValue: () => Promise<T | undefined>\n}\n\nexport interface RemoteKeyValueStore<T> {\n writeValues: (entries: Array<Entry<T | undefined>>) => Promise<void>\n writeValue: (key: ResourceKey, value: T | undefined) => Promise<void>\n\n fetchValues: (keys: Array<ResourceKey>) => Promise<Array<Entry<T>>>\n fetchValue: (key: ResourceKey) => Promise<T | undefined>\n}\n\nexport abstract class AbstractRemoteKeyValueStore<T> implements RemoteKeyValueStore<T> {\n abstract writeValues: (entries: Array<Entry<T | undefined>>) => Promise<void>\n\n writeValue = async (key: ResourceKey, value: T | undefined): Promise<void> => {\n await this.writeValues([of(key, value)])\n }\n\n abstract fetchValues: (keys: Array<ResourceKey>) => Promise<Array<Entry<T>>>\n\n fetchValue = async (key: ResourceKey): Promise<T | undefined> => {\n return first(await this.fetchValues([key]))?.[1]\n }\n}\n\nexport abstract class AbstractLocalKeyValueStore<T> extends AbstractRemoteKeyValueStore<T> implements LocalKeyValueStore<T> {\n abstract setValues: (entries: Array<Entry<T | undefined>>) => void\n\n setValue = (key: ResourceKey, value: T | undefined): void => {\n this.setValues([of(key, value)])\n }\n\n abstract getEntries: () => Array<Entry<T>>\n abstract getValues: (keys: Array<ResourceKey>) => Array<Entry<T>>\n\n getValue = (key: ResourceKey): T | undefined => {\n return first(this.getValues([key]))?.[1]\n }\n\n fetchValues = async (keys: Array<ResourceKey>): Promise<Array<Entry<T>>> => {\n return this.getValues(keys)\n }\n\n writeValues = async (entries: Array<Entry<T | undefined>>): Promise<void> => {\n this.setValues(entries)\n }\n}\n\nexport const fromMap = <T>(): LocalKeyValueStore<T> => {\n const map = new Map<string, T>()\n\n return new (class extends AbstractLocalKeyValueStore<T> {\n override getEntries = (): Array<Entry<T>> => {\n return Array.from(map.entries())\n }\n\n override setValues = (entries: Entry<T | undefined>[]): void => {\n entries.forEach(([key, value]) => {\n if (isNil(value)) {\n map.delete(key)\n } else {\n map.set(key, value)\n }\n })\n }\n\n override getValues = (keys: Array<ResourceKey>): Array<Entry<T>> => {\n return keys.map((key) => of(key, map.get(key)!)).filter((it) => isPresent(it[1]))\n }\n })()\n}\n"],"mappings":";AACA,SAAgB,UAAU;AAC1B,SAAS,aAAa;AACtB,SAAS,OAAO,iBAAiB;AA6B1B,IAAe,8BAAf,MAAgF;AAAA,EAGrF,aAAa,OAAO,KAAkB,UAAwC;AAC5E,UAAM,KAAK,YAAY,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,EACzC;AAAA,EAIA,aAAa,OAAO,QAA6C;AAC/D,WAAO,MAAM,MAAM,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EACjD;AACF;AAEO,IAAe,6BAAf,cAAqD,4BAAgE;AAAA,EAG1H,WAAW,CAAC,KAAkB,UAA+B;AAC3D,SAAK,UAAU,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AAAA,EACjC;AAAA,EAKA,WAAW,CAAC,QAAoC;AAC9C,WAAO,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AAAA,EACzC;AAAA,EAEA,cAAc,OAAO,SAAuD;AAC1E,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B;AAAA,EAEA,cAAc,OAAO,YAAwD;AAC3E,SAAK,UAAU,OAAO;AAAA,EACxB;AACF;AAEO,IAAM,UAAU,MAAgC;AACrD,QAAM,MAAM,oBAAI,IAAe;AAE/B,SAAO,IAAK,cAAc,2BAA8B;AAAA,IAC7C,aAAa,MAAuB;AAC3C,aAAO,MAAM,KAAK,IAAI,QAAQ,CAAC;AAAA,IACjC;AAAA,IAES,YAAY,CAAC,YAA0C;AAC9D,cAAQ,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChC,YAAI,MAAM,KAAK,GAAG;AAChB,cAAI,OAAO,GAAG;AAAA,QAChB,OAAO;AACL,cAAI,IAAI,KAAK,KAAK;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IAES,YAAY,CAAC,SAA8C;AAClE,aAAO,KAAK,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,IAAI,GAAG,CAAE,CAAC,EAAE,OAAO,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC;AAAA,IAClF;AAAA,EACF,EAAG;AACL;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,eAAO,MAAM,QAAQ,GAAI,QAAQ,GAAG,KAAG,KAAK,IAAI,MAE/C,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;CAAW,CAAA;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3I,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,MAAM,KAAG,iBAqBnE,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,MAAM,KAAG,iBAgClE,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,iBAuB3D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAEnE,CAAA;AAED,eAAO,MAAM,UAAU,kEAAc,CAAA;AACrC,eAAO,MAAM,QAAQ,kEAAY,CAAA;AAEjC,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAM/D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAM7D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,OAG7C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IA2B5E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,YAAY,aAAa,EAAE,uBAAuB,WAAW,MAAM,WAAuB,WAK7I,CAAA;AAED,eAAO,MAAM,QAAQ,8DAAY,CAAA;AACjC,eAAO,MAAM,MAAM,8DAAU,CAAA;AAE7B,eAAO,MAAM,QAAQ,sJAAY,CAAA;AAEjC,eAAO,MAAM,OAAO;;;CAAW,CAAA"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,eAAO,MAAM,QAAQ,GAAI,QAAQ,GAAG,KAAG,KAAK,IAAI,MAE/C,CAAA;AAED,eAAO,MAAM,OAAO;;;;;;;;;CAAW,CAAA;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3I,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,MAAM,KAAG,iBAqBnE,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,GAAG,MAAM,KAAG,iBAgClE,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,iBAuB3D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAO,MAAM,KAAG,CAAC,MAAM,EAAE,MAAM,CAEnE,CAAA;AAED,eAAO,MAAM,UAAU,kEAAc,CAAA;AACrC,eAAO,MAAM,QAAQ,kEAAY,CAAA;AAEjC,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAM/D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,MAAM,EAAE,WAAW,MAAM,KAAG,MAM7D,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,GAAG,IAAI,KAAG,OAG7C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,QAAQ,MAAM,KAAG,MAAM,GAAG,IA2B5E,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,EAAE,YAAY,aAAa,EAAE,uBAAuB,WAAW,MAAM,WAAuB,WAK7I,CAAA;AAED,eAAO,MAAM,QAAQ,8DAAY,CAAA;AACjC,eAAO,MAAM,MAAM,8DAAU,CAAA;AAE7B,eAAO,MAAM,QAAQ,sJAAY,CAAA;AAEjC,eAAO,MAAM,OAAO;;;CAAW,CAAA"}
package/dist/string.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  replace as _replace,
10
10
  startsWith as _startsWith
11
11
  } from "lodash-es";
12
- import { Arrays } from "@bessemer/cornerstone";
12
+ import { rest } from "@bessemer/cornerstone/array";
13
13
  var isString = (value) => {
14
14
  return _isString(value);
15
15
  };
@@ -20,7 +20,7 @@ var splitFirst = (str, splitter) => {
20
20
  if (results.length === 1) {
21
21
  return { selection: null, separator: null, rest: str };
22
22
  }
23
- return { selection: results[0], separator: splitter, rest: Arrays.rest(results).join(splitter) };
23
+ return { selection: results[0], separator: splitter, rest: rest(results).join(splitter) };
24
24
  } else {
25
25
  const match = splitter.exec(str);
26
26
  if (!match) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/string.ts"],"sourcesContent":["import {\n endsWith as _endsWith,\n includes as _includes,\n isEmpty as _isEmpty,\n isString as _isString,\n padEnd as _padEnd,\n padStart as _padStart,\n replace as _replace,\n startsWith as _startsWith,\n} from 'lodash-es'\nimport { Arrays } from '@bessemer/cornerstone'\nimport { UnknownRecord } from 'type-fest'\n\nexport const isString = (value?: any): value is string => {\n return _isString(value)\n}\n\nexport const isEmpty = _isEmpty\n\nexport type StringSplitResult = { selection: string; separator: string; rest: string } | { selection: null; separator: null; rest: string }\n\nexport const splitFirst = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[0]!, separator: splitter, rest: Arrays.rest(results).join(splitter) }\n } else {\n const match = splitter.exec(str)\n\n if (!match) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = match.index\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + match[0].length)\n const separator = match[0]\n return { selection: beforeMatch, separator, rest: afterMatch }\n }\n}\n\nexport const splitLast = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[results.length - 1]!, separator: splitter, rest: results.slice(0, results.length - 1).join(splitter) }\n } else {\n if (!splitter.global) {\n splitter = new RegExp(splitter.source, splitter.flags + 'g')\n }\n\n const matches = Array.from(str.matchAll(splitter))\n\n if (matches.length === 0) {\n return { selection: null, separator: null, rest: str }\n }\n\n // Use the last match\n const lastMatch = matches[matches.length - 1]!\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]!\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator: separator,\n rest: beforeMatch,\n }\n }\n}\n\nexport const splitLastRegex = (str: string, regex: RegExp): StringSplitResult => {\n // Find the last match using regex lastIndex\n let lastMatch: RegExpExecArray | null = null\n let match\n\n while ((match = regex.exec(str)) !== null) {\n lastMatch = match\n }\n\n if (!lastMatch) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator,\n rest: beforeMatch,\n }\n}\n\nexport const splitAt = (str: string, index: number): [string, string] => {\n return [str.slice(0, index), str.slice(index)] as const\n}\n\nexport const startsWith = _startsWith\nexport const endsWith = _endsWith\n\nexport const removeStart = (string: string, substring: string): string => {\n if (!string.startsWith(substring)) {\n return string\n }\n\n return string.slice(substring.length)\n}\n\nexport const removeEnd = (string: string, substring: string): string => {\n if (!string.endsWith(substring)) {\n return string\n }\n\n return string.slice(0, -substring.length)\n}\n\nexport const isBlank = (str?: string | null): boolean => {\n const testStr = str ?? ''\n return /^\\s*$/.test(testStr)\n}\n\nexport const mostCentralOccurrence = (str: string, substr: string): number | null => {\n const occurrences: number[] = []\n let index = str.indexOf(substr)\n\n while (index !== -1) {\n occurrences.push(index)\n index = str.indexOf(substr, index + 1)\n }\n\n if (occurrences.length === 0) {\n return null\n }\n\n const center = str.length / 2\n\n let closestIndex = occurrences[0]!\n let minDistance = Math.abs(center - closestIndex)\n\n for (let i = 1; i < occurrences.length; i++) {\n const distance = Math.abs(center - occurrences[i]!)\n if (distance < minDistance) {\n minDistance = distance\n closestIndex = occurrences[i]!\n }\n }\n\n return closestIndex\n}\n\nexport const replacePlaceholders = (string: string, parameters: UnknownRecord, getParamPlaceholder = (paramName: string) => `{{${paramName}}}`) => {\n return Object.entries(parameters).reduce(\n (intermediateString, [paramName, paramValue]) => intermediateString.replaceAll(getParamPlaceholder(paramName), `${paramValue}`),\n string\n )\n}\n\nexport const padStart = _padStart\nexport const padEnd = _padEnd\n\nexport const contains = _includes\n\nexport const replace = _replace\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/string.ts"],"sourcesContent":["import {\n endsWith as _endsWith,\n includes as _includes,\n isEmpty as _isEmpty,\n isString as _isString,\n padEnd as _padEnd,\n padStart as _padStart,\n replace as _replace,\n startsWith as _startsWith,\n} from 'lodash-es'\nimport { UnknownRecord } from 'type-fest'\nimport { rest } from '@bessemer/cornerstone/array'\n\nexport const isString = (value?: any): value is string => {\n return _isString(value)\n}\n\nexport const isEmpty = _isEmpty\n\nexport type StringSplitResult = { selection: string; separator: string; rest: string } | { selection: null; separator: null; rest: string }\n\nexport const splitFirst = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[0]!, separator: splitter, rest: rest(results).join(splitter) }\n } else {\n const match = splitter.exec(str)\n\n if (!match) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = match.index\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + match[0].length)\n const separator = match[0]\n return { selection: beforeMatch, separator, rest: afterMatch }\n }\n}\n\nexport const splitLast = (str: string, splitter: string | RegExp): StringSplitResult => {\n if (isString(splitter)) {\n const results = str.split(splitter)\n if (results.length === 1) {\n return { selection: null, separator: null, rest: str }\n }\n\n return { selection: results[results.length - 1]!, separator: splitter, rest: results.slice(0, results.length - 1).join(splitter) }\n } else {\n if (!splitter.global) {\n splitter = new RegExp(splitter.source, splitter.flags + 'g')\n }\n\n const matches = Array.from(str.matchAll(splitter))\n\n if (matches.length === 0) {\n return { selection: null, separator: null, rest: str }\n }\n\n // Use the last match\n const lastMatch = matches[matches.length - 1]!\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]!\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator: separator,\n rest: beforeMatch,\n }\n }\n}\n\nexport const splitLastRegex = (str: string, regex: RegExp): StringSplitResult => {\n // Find the last match using regex lastIndex\n let lastMatch: RegExpExecArray | null = null\n let match\n\n while ((match = regex.exec(str)) !== null) {\n lastMatch = match\n }\n\n if (!lastMatch) {\n return { selection: null, separator: null, rest: str }\n }\n\n const matchIndex = lastMatch.index!\n const separator = lastMatch[0]\n const beforeMatch = str.slice(0, matchIndex)\n const afterMatch = str.slice(matchIndex + separator.length)\n\n return {\n selection: afterMatch,\n separator,\n rest: beforeMatch,\n }\n}\n\nexport const splitAt = (str: string, index: number): [string, string] => {\n return [str.slice(0, index), str.slice(index)] as const\n}\n\nexport const startsWith = _startsWith\nexport const endsWith = _endsWith\n\nexport const removeStart = (string: string, substring: string): string => {\n if (!string.startsWith(substring)) {\n return string\n }\n\n return string.slice(substring.length)\n}\n\nexport const removeEnd = (string: string, substring: string): string => {\n if (!string.endsWith(substring)) {\n return string\n }\n\n return string.slice(0, -substring.length)\n}\n\nexport const isBlank = (str?: string | null): boolean => {\n const testStr = str ?? ''\n return /^\\s*$/.test(testStr)\n}\n\nexport const mostCentralOccurrence = (str: string, substr: string): number | null => {\n const occurrences: number[] = []\n let index = str.indexOf(substr)\n\n while (index !== -1) {\n occurrences.push(index)\n index = str.indexOf(substr, index + 1)\n }\n\n if (occurrences.length === 0) {\n return null\n }\n\n const center = str.length / 2\n\n let closestIndex = occurrences[0]!\n let minDistance = Math.abs(center - closestIndex)\n\n for (let i = 1; i < occurrences.length; i++) {\n const distance = Math.abs(center - occurrences[i]!)\n if (distance < minDistance) {\n minDistance = distance\n closestIndex = occurrences[i]!\n }\n }\n\n return closestIndex\n}\n\nexport const replacePlaceholders = (string: string, parameters: UnknownRecord, getParamPlaceholder = (paramName: string) => `{{${paramName}}}`) => {\n return Object.entries(parameters).reduce(\n (intermediateString, [paramName, paramValue]) => intermediateString.replaceAll(getParamPlaceholder(paramName), `${paramValue}`),\n string\n )\n}\n\nexport const padStart = _padStart\nexport const padEnd = _padEnd\n\nexport const contains = _includes\n\nexport const replace = _replace\n"],"mappings":"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","names":[]}
package/dist/tag.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../src/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE3D,MAAM,MAAM,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE1E,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,KAAK,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAKxD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC;;;CAKlD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,OAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAKpD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,OAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAElD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAElE,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,cAMtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAEhG,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,CAAC,CAW1G,CAAA"}
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../src/tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAa,UAAU,EAAsB,MAAM,kCAAkC,CAAA;AAC5F,OAAO,EAAE,SAAS,EAAkB,MAAM,iCAAiC,CAAA;AAI3E,MAAM,MAAM,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE1E,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvB,KAAK,EAAE,QAAQ,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,KAAK,EAAE,CAAC,CAAA;IACR,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,GAAG,CAAC,CAAC,CAKxD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC;;;CAKlD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,OAAK,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAEpD,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,OAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAElD,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;AAElE,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAG,cAMtD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAEhG,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,KAAG,KAAK,CAAC,CAAC,CAW1G,CAAA"}
package/dist/tag.js CHANGED
@@ -1,5 +1,8 @@
1
1
  // src/tag.ts
2
- import { Arrays, Comparators, Equalitors, Sets } from "@bessemer/cornerstone";
2
+ import { aggregate, compareBy, natural } from "@bessemer/cornerstone/comparator";
3
+ import { fromComparator } from "@bessemer/cornerstone/equalitor";
4
+ import { equalWith, isEmpty, sortWith } from "@bessemer/cornerstone/array";
5
+ import { properPowerSet } from "@bessemer/cornerstone/set";
3
6
  var tag = (type, value2) => {
4
7
  return {
5
8
  type,
@@ -9,31 +12,28 @@ var tag = (type, value2) => {
9
12
  var value = (value2, tags) => {
10
13
  return {
11
14
  value: value2,
12
- tags: Arrays.sortWith(tags, tagComparator())
15
+ tags: sortWith(tags, tagComparator())
13
16
  };
14
17
  };
15
18
  var tagComparator = () => {
16
- return Comparators.aggregate([
17
- Comparators.compareBy((it) => it.type, Comparators.natural()),
18
- Comparators.compareBy((it) => JSON.stringify(it.value), Comparators.natural())
19
- ]);
19
+ return aggregate([compareBy((it) => it.type, natural()), compareBy((it) => JSON.stringify(it.value), natural())]);
20
20
  };
21
21
  var tagEqualitor = () => {
22
- return Equalitors.fromComparator(tagComparator());
22
+ return fromComparator(tagComparator());
23
23
  };
24
24
  var serializeTags = (tags) => {
25
- const serializedTags = Arrays.sortWith(tags, tagComparator()).map(({ type, value: value2 }) => `${type}:${JSON.stringify(value2)}`).join(".");
25
+ const serializedTags = sortWith(tags, tagComparator()).map(({ type, value: value2 }) => `${type}:${JSON.stringify(value2)}`).join(".");
26
26
  return serializedTags;
27
27
  };
28
28
  var resolve = (values, tags) => {
29
29
  return resolveBy(values, (it) => it.tags, tags);
30
30
  };
31
31
  var resolveBy = (values, mapper, tags) => {
32
- const resolvedValues = Sets.properPowerSet(tags).flatMap((tags2) => {
33
- return values.filter((it) => Arrays.equalWith(mapper(it), tags2, tagEqualitor()));
32
+ const resolvedValues = properPowerSet(tags).flatMap((tags2) => {
33
+ return values.filter((it) => equalWith(mapper(it), tags2, tagEqualitor()));
34
34
  });
35
- if (Arrays.isEmpty(resolvedValues)) {
36
- const defaultValues = values.filter((it) => Arrays.isEmpty(mapper(it)));
35
+ if (isEmpty(resolvedValues)) {
36
+ const defaultValues = values.filter((it) => isEmpty(mapper(it)));
37
37
  return defaultValues;
38
38
  }
39
39
  return resolvedValues.reverse();
package/dist/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tag.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport { Comparator } from '@bessemer/cornerstone/comparator'\nimport { Arrays, Comparators, Equalitors, Sets } from '@bessemer/cornerstone'\nimport { Equalitor } from '@bessemer/cornerstone/equalitor'\n\nexport type TagType<DataType> = NominalType<string, ['TagType', DataType]>\n\nexport type Tag<DataType = unknown> = {\n type: TagType<DataType>\n value: DataType\n}\n\nexport type TaggedValue<T> = {\n value: T\n tags: Array<Tag>\n}\n\nexport const tag = <T>(type: TagType<T>, value: T): Tag<T> => {\n return {\n type,\n value,\n }\n}\n\nexport const value = <T>(value: T, tags: Array<Tag>) => {\n return {\n value,\n tags: Arrays.sortWith(tags, tagComparator()),\n }\n}\n\nexport const tagComparator = <T>(): Comparator<Tag<T>> => {\n return Comparators.aggregate([\n Comparators.compareBy((it) => it.type, Comparators.natural()),\n Comparators.compareBy((it) => JSON.stringify(it.value), Comparators.natural()),\n ])\n}\n\nexport const tagEqualitor = <T>(): Equalitor<Tag<T>> => {\n return Equalitors.fromComparator(tagComparator())\n}\n\nexport type SerializedTags = NominalType<string, 'SerializedTags'>\n\nexport const serializeTags = <T>(tags: Array<Tag<T>>): SerializedTags => {\n const serializedTags: SerializedTags = Arrays.sortWith(tags, tagComparator())\n .map(({ type, value }) => `${type}:${JSON.stringify(value)}`)\n .join('.')\n\n return serializedTags\n}\n\nexport const resolve = <T>(values: Array<TaggedValue<T>>, tags: Array<Tag>): Array<TaggedValue<T>> => {\n return resolveBy(values, (it) => it.tags, tags)\n}\n\nexport const resolveBy = <T>(values: Array<T>, mapper: (value: T) => Array<Tag>, tags: Array<Tag>): Array<T> => {\n const resolvedValues = Sets.properPowerSet(tags).flatMap((tags) => {\n return values.filter((it) => Arrays.equalWith(mapper(it), tags, tagEqualitor()))\n })\n\n if (Arrays.isEmpty(resolvedValues)) {\n const defaultValues = values.filter((it) => Arrays.isEmpty(mapper(it)))\n return defaultValues\n }\n\n return resolvedValues.reverse()\n}\n"],"mappings":";AAEA,SAAS,QAAQ,aAAa,YAAY,YAAY;AAe/C,IAAM,MAAM,CAAI,MAAkBA,WAAqB;AAC5D,SAAO;AAAA,IACL;AAAA,IACA,OAAAA;AAAA,EACF;AACF;AAEO,IAAM,QAAQ,CAAIA,QAAU,SAAqB;AACtD,SAAO;AAAA,IACL,OAAAA;AAAA,IACA,MAAM,OAAO,SAAS,MAAM,cAAc,CAAC;AAAA,EAC7C;AACF;AAEO,IAAM,gBAAgB,MAA6B;AACxD,SAAO,YAAY,UAAU;AAAA,IAC3B,YAAY,UAAU,CAAC,OAAO,GAAG,MAAM,YAAY,QAAQ,CAAC;AAAA,IAC5D,YAAY,UAAU,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,GAAG,YAAY,QAAQ,CAAC;AAAA,EAC/E,CAAC;AACH;AAEO,IAAM,eAAe,MAA4B;AACtD,SAAO,WAAW,eAAe,cAAc,CAAC;AAClD;AAIO,IAAM,gBAAgB,CAAI,SAAwC;AACvE,QAAM,iBAAiC,OAAO,SAAS,MAAM,cAAc,CAAC,EACzE,IAAI,CAAC,EAAE,MAAM,OAAAA,OAAM,MAAM,GAAG,IAAI,IAAI,KAAK,UAAUA,MAAK,CAAC,EAAE,EAC3D,KAAK,GAAG;AAEX,SAAO;AACT;AAEO,IAAM,UAAU,CAAI,QAA+B,SAA4C;AACpG,SAAO,UAAU,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI;AAChD;AAEO,IAAM,YAAY,CAAI,QAAkB,QAAkC,SAA+B;AAC9G,QAAM,iBAAiB,KAAK,eAAe,IAAI,EAAE,QAAQ,CAACC,UAAS;AACjE,WAAO,OAAO,OAAO,CAAC,OAAO,OAAO,UAAU,OAAO,EAAE,GAAGA,OAAM,aAAa,CAAC,CAAC;AAAA,EACjF,CAAC;AAED,MAAI,OAAO,QAAQ,cAAc,GAAG;AAClC,UAAM,gBAAgB,OAAO,OAAO,CAAC,OAAO,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;AACtE,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,QAAQ;AAChC;","names":["value","tags"]}
1
+ {"version":3,"sources":["../src/tag.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport { aggregate, Comparator, compareBy, natural } from '@bessemer/cornerstone/comparator'\nimport { Equalitor, fromComparator } from '@bessemer/cornerstone/equalitor'\nimport { equalWith, isEmpty, sortWith } from '@bessemer/cornerstone/array'\nimport { properPowerSet } from '@bessemer/cornerstone/set'\n\nexport type TagType<DataType> = NominalType<string, ['TagType', DataType]>\n\nexport type Tag<DataType = unknown> = {\n type: TagType<DataType>\n value: DataType\n}\n\nexport type TaggedValue<T> = {\n value: T\n tags: Array<Tag>\n}\n\nexport const tag = <T>(type: TagType<T>, value: T): Tag<T> => {\n return {\n type,\n value,\n }\n}\n\nexport const value = <T>(value: T, tags: Array<Tag>) => {\n return {\n value,\n tags: sortWith(tags, tagComparator()),\n }\n}\n\nexport const tagComparator = <T>(): Comparator<Tag<T>> => {\n return aggregate([compareBy((it) => it.type, natural()), compareBy((it) => JSON.stringify(it.value), natural())])\n}\n\nexport const tagEqualitor = <T>(): Equalitor<Tag<T>> => {\n return fromComparator(tagComparator())\n}\n\nexport type SerializedTags = NominalType<string, 'SerializedTags'>\n\nexport const serializeTags = <T>(tags: Array<Tag<T>>): SerializedTags => {\n const serializedTags: SerializedTags = sortWith(tags, tagComparator())\n .map(({ type, value }) => `${type}:${JSON.stringify(value)}`)\n .join('.')\n\n return serializedTags\n}\n\nexport const resolve = <T>(values: Array<TaggedValue<T>>, tags: Array<Tag>): Array<TaggedValue<T>> => {\n return resolveBy(values, (it) => it.tags, tags)\n}\n\nexport const resolveBy = <T>(values: Array<T>, mapper: (value: T) => Array<Tag>, tags: Array<Tag>): Array<T> => {\n const resolvedValues = properPowerSet(tags).flatMap((tags) => {\n return values.filter((it) => equalWith(mapper(it), tags, tagEqualitor()))\n })\n\n if (isEmpty(resolvedValues)) {\n const defaultValues = values.filter((it) => isEmpty(mapper(it)))\n return defaultValues\n }\n\n return resolvedValues.reverse()\n}\n"],"mappings":";AACA,SAAS,WAAuB,WAAW,eAAe;AAC1D,SAAoB,sBAAsB;AAC1C,SAAS,WAAW,SAAS,gBAAgB;AAC7C,SAAS,sBAAsB;AAcxB,IAAM,MAAM,CAAI,MAAkBA,WAAqB;AAC5D,SAAO;AAAA,IACL;AAAA,IACA,OAAAA;AAAA,EACF;AACF;AAEO,IAAM,QAAQ,CAAIA,QAAU,SAAqB;AACtD,SAAO;AAAA,IACL,OAAAA;AAAA,IACA,MAAM,SAAS,MAAM,cAAc,CAAC;AAAA,EACtC;AACF;AAEO,IAAM,gBAAgB,MAA6B;AACxD,SAAO,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,GAAG,UAAU,CAAC,OAAO,KAAK,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC;AAClH;AAEO,IAAM,eAAe,MAA4B;AACtD,SAAO,eAAe,cAAc,CAAC;AACvC;AAIO,IAAM,gBAAgB,CAAI,SAAwC;AACvE,QAAM,iBAAiC,SAAS,MAAM,cAAc,CAAC,EAClE,IAAI,CAAC,EAAE,MAAM,OAAAA,OAAM,MAAM,GAAG,IAAI,IAAI,KAAK,UAAUA,MAAK,CAAC,EAAE,EAC3D,KAAK,GAAG;AAEX,SAAO;AACT;AAEO,IAAM,UAAU,CAAI,QAA+B,SAA4C;AACpG,SAAO,UAAU,QAAQ,CAAC,OAAO,GAAG,MAAM,IAAI;AAChD;AAEO,IAAM,YAAY,CAAI,QAAkB,QAAkC,SAA+B;AAC9G,QAAM,iBAAiB,eAAe,IAAI,EAAE,QAAQ,CAACC,UAAS;AAC5D,WAAO,OAAO,OAAO,CAAC,OAAO,UAAU,OAAO,EAAE,GAAGA,OAAM,aAAa,CAAC,CAAC;AAAA,EAC1E,CAAC;AAED,MAAI,QAAQ,cAAc,GAAG;AAC3B,UAAM,gBAAgB,OAAO,OAAO,CAAC,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;AAC/D,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,QAAQ;AAChC;","names":["value","tags"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../src/ulid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7C,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,IAAI,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,MAEjC,CAAA;AAED,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,KAAG,IAGlC,CAAA;AAID,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,IAEjD,CAAA"}
1
+ {"version":3,"file":"ulid.d.ts","sourceRoot":"","sources":["../src/ulid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAIxD,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7C,eAAO,MAAM,QAAQ,QAAO,IAE3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,IAAI,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,MAEjC,CAAA;AAED,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,KAAG,IAGlC,CAAA;AAID,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,IAEjD,CAAA"}
package/dist/ulid.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // src/ulid.ts
2
2
  import { ulid } from "ulid";
3
- import { Assertions, Strings } from "@bessemer/cornerstone";
3
+ import { assertTrue } from "@bessemer/cornerstone/assertion";
4
+ import { isString } from "@bessemer/cornerstone/string";
4
5
  var generate = () => {
5
6
  return ulid();
6
7
  };
@@ -11,12 +12,12 @@ var generateString = () => {
11
12
  return asString(generate());
12
13
  };
13
14
  var of = (value) => {
14
- Assertions.assertTrue(isValid(value), () => `Attempted to coerce invalid value to Ulid: ${value}`);
15
+ assertTrue(isValid(value), () => `Attempted to coerce invalid value to Ulid: ${value}`);
15
16
  return value;
16
17
  };
17
18
  var pattern = /^[0-9A-HJKMNP-TV-Z]{26}$/;
18
19
  var isValid = (value) => {
19
- return Strings.isString(value) && pattern.test(value);
20
+ return isString(value) && pattern.test(value);
20
21
  };
21
22
  export {
22
23
  asString,
package/dist/ulid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ulid.ts"],"sourcesContent":["import { ulid } from 'ulid'\nimport { TaggedType } from '@bessemer/cornerstone/types'\nimport { Assertions, Strings } from '@bessemer/cornerstone'\n\nexport type Ulid = TaggedType<string, 'Ulid'>\n\nexport const generate = (): Ulid => {\n return ulid() as Ulid\n}\n\nexport const asString = (value: Ulid): string => {\n return value\n}\n\nexport const generateString = (): string => {\n return asString(generate())\n}\n\nexport const of = (value: string): Ulid => {\n Assertions.assertTrue(isValid(value), () => `Attempted to coerce invalid value to Ulid: ${value}`)\n return value as Ulid\n}\n\nconst pattern = /^[0-9A-HJKMNP-TV-Z]{26}$/\n\nexport const isValid = (value: unknown): value is Ulid => {\n return Strings.isString(value) && pattern.test(value)\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAErB,SAAS,YAAY,eAAe;AAI7B,IAAM,WAAW,MAAY;AAClC,SAAO,KAAK;AACd;AAEO,IAAM,WAAW,CAAC,UAAwB;AAC/C,SAAO;AACT;AAEO,IAAM,iBAAiB,MAAc;AAC1C,SAAO,SAAS,SAAS,CAAC;AAC5B;AAEO,IAAM,KAAK,CAAC,UAAwB;AACzC,aAAW,WAAW,QAAQ,KAAK,GAAG,MAAM,8CAA8C,KAAK,EAAE;AACjG,SAAO;AACT;AAEA,IAAM,UAAU;AAET,IAAM,UAAU,CAAC,UAAkC;AACxD,SAAO,QAAQ,SAAS,KAAK,KAAK,QAAQ,KAAK,KAAK;AACtD;","names":[]}
1
+ {"version":3,"sources":["../src/ulid.ts"],"sourcesContent":["import { ulid } from 'ulid'\nimport { TaggedType } from '@bessemer/cornerstone/types'\nimport { assertTrue } from '@bessemer/cornerstone/assertion'\nimport { isString } from '@bessemer/cornerstone/string'\n\nexport type Ulid = TaggedType<string, 'Ulid'>\n\nexport const generate = (): Ulid => {\n return ulid() as Ulid\n}\n\nexport const asString = (value: Ulid): string => {\n return value\n}\n\nexport const generateString = (): string => {\n return asString(generate())\n}\n\nexport const of = (value: string): Ulid => {\n assertTrue(isValid(value), () => `Attempted to coerce invalid value to Ulid: ${value}`)\n return value as Ulid\n}\n\nconst pattern = /^[0-9A-HJKMNP-TV-Z]{26}$/\n\nexport const isValid = (value: unknown): value is Ulid => {\n return isString(value) && pattern.test(value)\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAErB,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAIlB,IAAM,WAAW,MAAY;AAClC,SAAO,KAAK;AACd;AAEO,IAAM,WAAW,CAAC,UAAwB;AAC/C,SAAO;AACT;AAEO,IAAM,iBAAiB,MAAc;AAC1C,SAAO,SAAS,SAAS,CAAC;AAC5B;AAEO,IAAM,KAAK,CAAC,UAAwB;AACzC,aAAW,QAAQ,KAAK,GAAG,MAAM,8CAA8C,KAAK,EAAE;AACtF,SAAO;AACT;AAEA,IAAM,UAAU;AAET,IAAM,UAAU,CAAC,UAAkC;AACxD,SAAO,SAAS,KAAK,KAAK,QAAQ,KAAK,KAAK;AAC9C;","names":[]}
package/dist/uri.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAGzD,eAAO,MAAM,MAAM,GAAI,cAAc,YAAY,WAEhD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,cAAc,YAAY,WAEhD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACxC,QAAQ,EAAE,WAAW,CAAA;CACtB;AA8ID,eAAO,MAAM,KAAK,GAAI,WAAW,SAAS,KAAG,GAO5C,CAAA;AAED,eAAO,MAAM,aAAa,QAAO,WAMhC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EACD;QACE,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,GACD,MAAM,CAAA;IACV,cAAc,CAAC,EACX;QACE,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,MAAM,CAAA;IACV,QAAQ,CAAC,EACL;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,MAAM,CAAA;CACX,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,UAAU,KAAG,GA8C3C,CAAA;AAED,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,GAAG,EAAE,SAAQ,KAAK,CAAC,gBAAgB,CAAmC,KAAG,SAgCpG,CAAA;AAoBD,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,KAAG,SAEjD,CAAA"}
1
+ {"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../src/uri.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAKzD,eAAO,MAAM,MAAM,GAAI,cAAc,YAAY,WAEhD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,cAAc,YAAY,WAEhD,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AACxD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACxC,QAAQ,EAAE,WAAW,CAAA;CACtB;AA8ID,eAAO,MAAM,KAAK,GAAI,WAAW,SAAS,KAAG,GAO5C,CAAA;AAED,eAAO,MAAM,aAAa,QAAO,WAMhC,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EACD;QACE,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,GACD,MAAM,CAAA;IACV,cAAc,CAAC,EACX;QACE,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,MAAM,CAAA;IACV,QAAQ,CAAC,EACL;QACE,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,GACD,MAAM,CAAA;CACX,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,SAAS,UAAU,KAAG,GA8C3C,CAAA;AAED,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,GAAG,EAAE,SAAQ,KAAK,CAAC,gBAAgB,CAAmC,KAAG,SAgCpG,CAAA;AAoBD,eAAO,MAAM,WAAW,GAAI,SAAS,UAAU,KAAG,SAEjD,CAAA"}