@usebruno/filestore 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/workers/worker-script.js +1 -1
  4. package/dist/cjs/workers/worker-script.js.map +1 -1
  5. package/dist/constants.d.ts +2 -0
  6. package/dist/constants.d.ts.map +1 -1
  7. package/dist/esm/index.js +1 -1
  8. package/dist/esm/index.js.map +1 -1
  9. package/dist/esm/workers/worker-script.js +1 -1
  10. package/dist/esm/workers/worker-script.js.map +1 -1
  11. package/dist/formats/bru/index.d.ts.map +1 -1
  12. package/dist/formats/bru/utils/redact-large-text-blocks.d.ts +11 -0
  13. package/dist/formats/bru/utils/redact-large-text-blocks.d.ts.map +1 -0
  14. package/dist/formats/yml/common/app.d.ts +8 -0
  15. package/dist/formats/yml/common/app.d.ts.map +1 -0
  16. package/dist/formats/yml/common/auth.d.ts.map +1 -1
  17. package/dist/formats/yml/common/body.d.ts.map +1 -1
  18. package/dist/formats/yml/common/datatype.d.ts +14 -0
  19. package/dist/formats/yml/common/datatype.d.ts.map +1 -0
  20. package/dist/formats/yml/common/headers.d.ts.map +1 -1
  21. package/dist/formats/yml/common/variables.d.ts.map +1 -1
  22. package/dist/formats/yml/items/parseApp.d.ts +13 -0
  23. package/dist/formats/yml/items/parseApp.d.ts.map +1 -0
  24. package/dist/formats/yml/items/parseGraphQLRequest.d.ts.map +1 -1
  25. package/dist/formats/yml/items/parseGrpcRequest.d.ts.map +1 -1
  26. package/dist/formats/yml/items/parseHttpRequest.d.ts.map +1 -1
  27. package/dist/formats/yml/items/parseWebsocketRequest.d.ts.map +1 -1
  28. package/dist/formats/yml/items/stringifyApp.d.ts +4 -0
  29. package/dist/formats/yml/items/stringifyApp.d.ts.map +1 -0
  30. package/dist/formats/yml/items/stringifyGraphQLRequest.d.ts.map +1 -1
  31. package/dist/formats/yml/items/stringifyGrpcRequest.d.ts.map +1 -1
  32. package/dist/formats/yml/items/stringifyHttpRequest.d.ts.map +1 -1
  33. package/dist/formats/yml/items/stringifyWebsocketRequest.d.ts.map +1 -1
  34. package/dist/formats/yml/parseCollection.d.ts.map +1 -1
  35. package/dist/formats/yml/parseEnvironment.d.ts +3 -1
  36. package/dist/formats/yml/parseEnvironment.d.ts.map +1 -1
  37. package/dist/formats/yml/parseFolder.d.ts.map +1 -1
  38. package/dist/formats/yml/parseItem.d.ts.map +1 -1
  39. package/dist/formats/yml/stringifyCollection.d.ts.map +1 -1
  40. package/dist/formats/yml/stringifyEnvironment.d.ts +3 -1
  41. package/dist/formats/yml/stringifyEnvironment.d.ts.map +1 -1
  42. package/dist/formats/yml/stringifyItem.d.ts.map +1 -1
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/types.d.ts +6 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/utils/secretsJsonToEnvironments.d.ts +38 -0
  48. package/dist/utils/secretsJsonToEnvironments.d.ts.map +1 -0
  49. package/package.json +7 -5
  50. package/src/constants.ts +9 -0
  51. package/src/formats/bru/index.ts +52 -0
  52. package/src/formats/bru/tests/parseBruEnvironment.spec.js +63 -0
  53. package/src/formats/bru/tests/redact-large-text-blocks.spec.js +313 -0
  54. package/src/formats/bru/utils/redact-large-text-blocks.ts +102 -0
  55. package/src/formats/yml/common/actions.ts +1 -1
  56. package/src/formats/yml/common/app.ts +27 -0
  57. package/src/formats/yml/common/auth.ts +53 -1
  58. package/src/formats/yml/common/body.spec.ts +62 -0
  59. package/src/formats/yml/common/body.ts +27 -9
  60. package/src/formats/yml/common/datatype.spec.ts +110 -0
  61. package/src/formats/yml/common/datatype.ts +57 -0
  62. package/src/formats/yml/common/headers.ts +4 -0
  63. package/src/formats/yml/common/variables.spec.ts +127 -0
  64. package/src/formats/yml/common/variables.ts +20 -6
  65. package/src/formats/yml/items/parseApp.ts +37 -0
  66. package/src/formats/yml/items/parseGraphQLRequest.ts +8 -0
  67. package/src/formats/yml/items/parseGrpcRequest.ts +24 -3
  68. package/src/formats/yml/items/parseHttpRequest.ts +13 -0
  69. package/src/formats/yml/items/parseWebsocketRequest.ts +29 -9
  70. package/src/formats/yml/items/stringifyApp.ts +45 -0
  71. package/src/formats/yml/items/stringifyGraphQLRequest.ts +3 -0
  72. package/src/formats/yml/items/stringifyGrpcRequest.ts +9 -11
  73. package/src/formats/yml/items/stringifyHttpRequest.ts +10 -0
  74. package/src/formats/yml/items/stringifyWebsocketRequest.ts +22 -9
  75. package/src/formats/yml/parseCollection.spec.ts +70 -0
  76. package/src/formats/yml/parseCollection.ts +8 -3
  77. package/src/formats/yml/parseEnvironment.spec.ts +99 -0
  78. package/src/formats/yml/parseEnvironment.ts +69 -5
  79. package/src/formats/yml/parseFolder.spec.ts +52 -0
  80. package/src/formats/yml/parseFolder.ts +14 -21
  81. package/src/formats/yml/parseItem.spec.ts +147 -0
  82. package/src/formats/yml/parseItem.ts +4 -0
  83. package/src/formats/yml/stringifyCollection.spec.ts +77 -0
  84. package/src/formats/yml/stringifyCollection.ts +4 -0
  85. package/src/formats/yml/stringifyEnvironment.spec.ts +91 -0
  86. package/src/formats/yml/stringifyEnvironment.ts +59 -10
  87. package/src/formats/yml/stringifyFolder.spec.ts +47 -0
  88. package/src/formats/yml/stringifyItem.spec.ts +53 -0
  89. package/src/formats/yml/stringifyItem.ts +4 -0
  90. package/src/formats/yml/tests/fixtures/presets/empty-request.yml +7 -0
  91. package/src/formats/yml/tests/fixtures/presets/no-presets.yml +3 -0
  92. package/src/formats/yml/tests/fixtures/presets/no-request-key.yml +6 -0
  93. package/src/formats/yml/tests/fixtures/presets/type-only-realistic.yml +24 -0
  94. package/src/formats/yml/tests/fixtures/presets/url-only-realistic.yml +25 -0
  95. package/src/formats/yml/tests/fixtures/presets/with-type-and-url.yml +9 -0
  96. package/src/formats/yml/tests/parseCollection.spec.js +63 -0
  97. package/src/formats/yml/tests/parseEnvironment.spec.js +122 -0
  98. package/src/formats/yml/tests/parseEnvironment.spec.ts +160 -0
  99. package/src/formats/yml/tests/stringifyEnvironment.spec.ts +204 -0
  100. package/src/formats/yml/tests/variables.spec.js +34 -0
  101. package/src/index.ts +5 -0
  102. package/src/types/bruno-lang.d.ts +1 -0
  103. package/src/types.ts +7 -0
  104. package/src/utils/secretsJsonToEnvironments.spec.ts +211 -0
  105. package/src/utils/secretsJsonToEnvironments.ts +129 -0
  106. package/dist/formats/bru/tests/example-status-swap.spec.d.ts +0 -2
  107. package/dist/formats/bru/tests/example-status-swap.spec.d.ts.map +0 -1
  108. package/dist/formats/bru/tests/fixtures/oauth2-additional-params.d.ts +0 -57
  109. package/dist/formats/bru/tests/fixtures/oauth2-additional-params.d.ts.map +0 -1
  110. package/dist/formats/bru/tests/oauth2-additional-params.spec.d.ts +0 -2
  111. package/dist/formats/bru/tests/oauth2-additional-params.spec.d.ts.map +0 -1
  112. package/dist/formats/bru/tests/request-parse-and-redact-body-data.spec.d.ts +0 -2
  113. package/dist/formats/bru/tests/request-parse-and-redact-body-data.spec.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formats/bru/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,KAAW,GAwG7E,CAAC;AAEF,eAAO,MAAM,mBAAmB,SAAU,GAAG,KAAG,MA+G/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,KAAW,GA4ChF,CAAC;AAEF,eAAO,MAAM,sBAAsB,SAAU,GAAG,aAAa,OAAO,KAAG,MAuCtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,GAejD,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,GAAG,KAAG,MAOnD,CAAC;AAGF,eAAO,MAAM,gBAAgB,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,eAAuB,MAAM,iBAAiB,MAAM,KAAG,GAwE1H,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,GAAG;;;;;;;;;;;CAsBzC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/formats/bru/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,KAAW,GA6H7E,CAAC;AAEF,eAAO,MAAM,mBAAmB,SAAU,GAAG,KAAG,MAoI/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,KAAW,GA4ChF,CAAC;AAEF,eAAO,MAAM,sBAAsB,SAAU,GAAG,aAAa,OAAO,KAAG,MAuCtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAS,MAAM,KAAG,GAwBjD,CAAC;AAEF,eAAO,MAAM,uBAAuB,SAAU,GAAG,KAAG,MAOnD,CAAC;AAGF,eAAO,MAAM,gBAAgB,SAAU,MAAM,GAAG,GAAG,WAAU,OAAO,eAAuB,MAAM,iBAAiB,MAAM,KAAG,GAwE1H,CAAC;AAEF,eAAO,MAAM,gBAAgB,SAAU,GAAG;;;;;;;;;;;CAsBzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface RedactedBlock {
2
+ token: string;
3
+ value: string;
4
+ }
5
+ export interface RedactionResult {
6
+ skeleton: string;
7
+ blocks: RedactedBlock[];
8
+ }
9
+ export declare const redactLargeBruTextBlocks: (content: string) => RedactionResult;
10
+ export declare const restoreRedactedBlocks: <T>(parsed: T, blocks: RedactedBlock[]) => T;
11
+ //# sourceMappingURL=redact-large-text-blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-large-text-blocks.d.ts","sourceRoot":"","sources":["../../../../src/formats/bru/utils/redact-large-text-blocks.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAgCD,eAAO,MAAM,wBAAwB,YAAa,MAAM,KAAG,eAoC1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAA0B,aAAa,EAAE,MAoB1E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { App as BrunoApp } from '@usebruno/schema-types/collection/item';
2
+ export interface OpenCollectionApp {
3
+ enabled?: boolean;
4
+ code?: string;
5
+ }
6
+ export declare const toOpenCollectionApp: (app: BrunoApp | null | undefined) => OpenCollectionApp | undefined;
7
+ export declare const toBrunoApp: (app: OpenCollectionApp | null | undefined) => BrunoApp | null;
8
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,IAAI,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,mBAAmB,QAAS,QAAQ,GAAG,IAAI,GAAG,SAAS,KAAG,iBAAiB,GAAG,SAW1F,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,iBAAiB,GAAG,IAAI,GAAG,SAAS,KAAG,QAAQ,GAAG,IAMjF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EASL,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAiC,MAAM,oCAAoC,CAAC;AAwI3G,eAAO,MAAM,oBAAoB,UAAW,SAAS,GAAG,IAAI,KAAG,IAAI,GAAG,SAgCrE,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,IAAI,GAAG,IAAI,GAAG,SAAS,KAAG,SAAS,GAAG,IAoHvE,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EASL,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAiC,MAAM,oCAAoC,CAAC;AAyK3G,eAAO,MAAM,oBAAoB,UAAW,SAAS,GAAG,IAAI,KAAG,IAAI,GAAG,SAkCrE,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,IAAI,GAAG,IAAI,GAAG,SAAS,KAAG,SAAS,GAAG,IAqIvE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACpG,OAAO,KAAK,EACV,eAAe,EAQhB,MAAM,qCAAqC,CAAC;AAI7C,eAAO,MAAM,oBAAoB,SAAU,oBAAoB,GAAG,IAAI,GAAG,SAAS,KAAG,eAAe,GAAG,SAgHtG,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,eAAe,GAAG,IAAI,GAAG,SAAS,KAAG,oBAAoB,GAAG,SA6G7F,CAAC"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/body.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACpG,OAAO,KAAK,EACV,eAAe,EAQhB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,oBAAoB,SAAU,oBAAoB,GAAG,IAAI,GAAG,SAAS,KAAG,eAAe,GAAG,SAsHtG,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,eAAe,GAAG,IAAI,GAAG,SAAS,KAAG,oBAAoB,GAAG,SAuH7F,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { VariableTypedValue } from '@opencollection/types/common/variables';
2
+ import { BrunoVariableDataType, isBrunoVariableDataType } from '@usebruno/common/utils';
3
+ export { BrunoVariableDataType, isBrunoVariableDataType };
4
+ export declare const serializeVariableValue: (value: unknown) => string;
5
+ export declare const isTypedValue: (value: unknown) => value is VariableTypedValue;
6
+ export interface TypedVariableFields {
7
+ dataType?: BrunoVariableDataType;
8
+ }
9
+ export declare const hasTypedMetadata: (v: TypedVariableFields) => boolean;
10
+ export declare const toOpenCollectionTypedValue: (v: TypedVariableFields, dataStr: string) => VariableTypedValue;
11
+ export declare const fromOpenCollectionTypedValue: (typed: VariableTypedValue) => {
12
+ value: any;
13
+ } & TypedVariableFields;
14
+ //# sourceMappingURL=datatype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datatype.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/datatype.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAEL,qBAAqB,EACrB,uBAAuB,EAExB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,CAAC;AAE1D,eAAO,MAAM,sBAAsB,UAAW,OAAO,KAAG,MAKvD,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,OAAO,gCAM1C,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED,eAAO,MAAM,gBAAgB,MAAO,mBAAmB,KAAG,OAEzD,CAAC;AAEF,eAAO,MAAM,0BAA0B,MAClC,mBAAmB,WACb,MAAM,KACd,kBAKF,CAAC;AAGF,eAAO,MAAM,4BAA4B,UAChC,kBAAkB,KACxB;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,GAAG,mBAUnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/headers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGjG,eAAO,MAAM,2BAA2B,YAAa,kBAAkB,CAAC,SAAS,CAAC,KAAG,iBAAiB,EAAE,GAAG,SAoB1G,CAAC;AAEF,eAAO,MAAM,+BAA+B,YAAa,kBAAkB,CAAC,SAAS,CAAC,KAAG,kBAAkB,EAAE,GAAG,SAW/G,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,iBAAiB,EAAE,GAAG,kBAAkB,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG,aAAa,EAAE,GAAG,SAiB7H,CAAC"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/headers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGjG,eAAO,MAAM,2BAA2B,YAAa,kBAAkB,CAAC,SAAS,CAAC,KAAG,iBAAiB,EAAE,GAAG,SAoB1G,CAAC;AAEF,eAAO,MAAM,+BAA+B,YAAa,kBAAkB,CAAC,SAAS,CAAC,KAAG,kBAAkB,EAAE,GAAG,SAW/G,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,iBAAiB,EAAE,GAAG,kBAAkB,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG,aAAa,EAAE,GAAG,SAqB7H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAA6B,SAAS,IAAI,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGjH;;;GAGG;AACH,eAAO,MAAM,yBAAyB,cAAe,kBAAkB,CAAC,MAAM,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,KAAG,QAAQ,EAAE,GAAG,SA4BlI,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,cAAe,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CAwBrH,CAAC"}
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/common/variables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAA6B,SAAS,IAAI,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAUjH;;;GAGG;AACH,eAAO,MAAM,yBAAyB,cAAe,kBAAkB,CAAC,MAAM,CAAC,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,KAAG,QAAQ,EAAE,GAAG,SA6BlI,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,cAAe,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,GAAG,EAAE,cAAc,CAAA;CA8BrH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Item as BrunoItem } from '@usebruno/schema-types/collection/item';
2
+ export interface AppFile {
3
+ info: {
4
+ name?: string;
5
+ type: 'app';
6
+ seq?: number;
7
+ tags?: string[];
8
+ };
9
+ code?: string;
10
+ }
11
+ declare const parseApp: (ocApp: AppFile) => BrunoItem;
12
+ export default parseApp;
13
+ //# sourceMappingURL=parseApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseApp.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAGhF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,KAAK,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,QAAA,MAAM,QAAQ,UAAW,OAAO,KAAG,SAqBlC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseGraphQLRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseGraphQLRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAE3H,OAAO,KAAK,EAAE,cAAc,EAAuC,MAAM,wCAAwC,CAAC;AAUlH,QAAA,MAAM,mBAAmB,cAAe,cAAc,KAAG,SA0HxD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"parseGraphQLRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseGraphQLRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAE3H,OAAO,KAAK,EAAE,cAAc,EAAuC,MAAM,wCAAwC,CAAC;AAUlH,QAAA,MAAM,mBAAmB,cAAe,cAAc,KAAG,SAkIxD,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseGrpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseGrpcRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,qCAAqC,CAAC;AA2BrF,QAAA,MAAM,gBAAgB,cAAe,WAAW,KAAG,SAoFlD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"parseGrpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseGrpcRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAoC,MAAM,qCAAqC,CAAC;AAkCzG,QAAA,MAAM,gBAAgB,cAAe,WAAW,KAAG,SAkGlD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseHttpRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseHttpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAE3H,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,qCAAqC,CAAC;AAWxF,QAAA,MAAM,gBAAgB,cAAe,WAAW,KAAG,SAoLlD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"parseHttpRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseHttpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAE3H,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,qCAAqC,CAAC;AAYxF,QAAA,MAAM,gBAAgB,cAAe,WAAW,KAAG,SAgMlD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseWebsocketRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseWebsocketRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,0CAA0C,CAAC;AAOnG,QAAA,MAAM,qBAAqB,cAAe,gBAAgB,KAAG,SA+F5D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"parseWebsocketRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/parseWebsocketRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAA6C,MAAM,0CAA0C,CAAC;AAO5H,QAAA,MAAM,qBAAqB,cAAe,gBAAgB,KAAG,SAmH5D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Item as BrunoItem } from '@usebruno/schema-types/collection/item';
2
+ declare const stringifyApp: (item: BrunoItem) => string;
3
+ export default stringifyApp;
4
+ //# sourceMappingURL=stringifyApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringifyApp.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAiBhF,QAAA,MAAM,YAAY,SAAU,SAAS,KAAG,MAyBvC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyGraphQLRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyGraphQLRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAmB3H,QAAA,MAAM,uBAAuB,SAAU,SAAS,KAAG,MAkJlD,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"stringifyGraphQLRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyGraphQLRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAmB3H,QAAA,MAAM,uBAAuB,SAAU,SAAS,KAAG,MAqJlD,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyGrpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyGrpcRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAehF,QAAA,MAAM,oBAAoB,SAAU,SAAS,KAAG,MAuH/C,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"stringifyGrpcRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyGrpcRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAehF,QAAA,MAAM,oBAAoB,SAAU,SAAS,KAAG,MAqH/C,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyHttpRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyHttpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAoB3H,QAAA,MAAM,oBAAoB,SAAU,SAAS,KAAG,MAuM/C,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"stringifyHttpRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyHttpRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAA6C,MAAM,wCAAwC,CAAC;AAqB3H,QAAA,MAAM,oBAAoB,SAAU,SAAS,KAAG,MAgN/C,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyWebsocketRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyWebsocketRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAchF,QAAA,MAAM,yBAAyB,SAAU,SAAS,KAAG,MAiGpD,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"stringifyWebsocketRequest.d.ts","sourceRoot":"","sources":["../../../../src/formats/yml/items/stringifyWebsocketRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAchF,QAAA,MAAM,yBAAyB,SAAU,SAAS,KAAG,MA8GpD,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseCollection.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseCollection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAS3E,UAAU,gBAAgB;IACxB,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,QAAA,MAAM,eAAe,cAAe,MAAM,KAAG,gBAoN5C,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"parseCollection.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseCollection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAU3E,UAAU,gBAAgB;IACxB,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,QAAA,MAAM,eAAe,cAAe,MAAM,KAAG,gBAwN5C,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { Environment as BrunoEnvironment } from '@usebruno/schema-types/collection/environment';
1
+ import type { Environment as BrunoEnvironment, EnvironmentVariable as BrunoEnvironmentVariable, SecretEnvironmentVariable as BrunoSecretEnvironmentVariable } from '@usebruno/schema-types/collection/environment';
2
+ import type { Variable, SecretVariable } from '@opencollection/types/common/variables';
3
+ export declare const toBrunoEnvironmentVariables: (variables: (Variable | SecretVariable)[] | null | undefined) => (BrunoEnvironmentVariable | BrunoSecretEnvironmentVariable)[];
2
4
  declare const parseEnvironment: (ymlString: string) => BrunoEnvironment;
3
5
  export default parseEnvironment;
4
6
  //# sourceMappingURL=parseEnvironment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseEnvironment.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAmD,MAAM,+CAA+C,CAAC;AAsCtJ,QAAA,MAAM,gBAAgB,cAAe,MAAM,KAAG,gBAgB7C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"parseEnvironment.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,IAAI,gBAAgB,EAC/B,mBAAmB,IAAI,wBAAwB,EAC/C,yBAAyB,IAAI,8BAA8B,EAE5D,MAAM,+CAA+C,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAUvF,eAAO,MAAM,2BAA2B,cAAe,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,IAAI,GAAG,SAAS,KAAG,CAAC,wBAAwB,GAAG,8BAA8B,CAAC,EAgDpK,CAAC;AAgCF,QAAA,MAAM,gBAAgB,cAAe,MAAM,KAAG,gBAqB7C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseFolder.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAU3E,QAAA,MAAM,WAAW,cAAe,MAAM,KAAG,UAgFxC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"parseFolder.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseFolder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAU3E,QAAA,MAAM,WAAW,cAAe,MAAM,KAAG,UAyExC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parseItem.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AA8DhF,QAAA,MAAM,SAAS,cAAe,MAAM,KAAG,SAqCtC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"parseItem.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/parseItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AA+DhF,QAAA,MAAM,SAAS,cAAe,MAAM,KAAG,SAwCtC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyCollection.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyCollection.ts"],"names":[],"mappings":"AAkEA,QAAA,MAAM,mBAAmB,mBAAoB,GAAG,eAAe,GAAG,KAAG,MA0NpE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"stringifyCollection.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyCollection.ts"],"names":[],"mappings":"AAkEA,QAAA,MAAM,mBAAmB,mBAAoB,GAAG,eAAe,GAAG,KAAG,MA8NpE,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { Environment as BrunoEnvironment } from '@usebruno/schema-types/collection/environment';
1
+ import type { Environment as BrunoEnvironment, EnvironmentVariable as BrunoEnvironmentVariable, SecretEnvironmentVariable as BrunoSecretEnvironmentVariable } from '@usebruno/schema-types/collection/environment';
2
+ import type { Variable, SecretVariable } from '@opencollection/types/common/variables';
3
+ export declare const toOpenCollectionEnvironmentVariables: (variables: (BrunoEnvironmentVariable | BrunoSecretEnvironmentVariable)[]) => (Variable | SecretVariable)[] | undefined;
2
4
  declare const stringifyEnvironment: (environment: BrunoEnvironment) => string;
3
5
  export default stringifyEnvironment;
4
6
  //# sourceMappingURL=stringifyEnvironment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyEnvironment.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,gBAAgB,EAAmD,MAAM,+CAA+C,CAAC;AA2CtJ,QAAA,MAAM,oBAAoB,gBAAiB,gBAAgB,KAAG,MAsB7D,CAAC;AACF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"stringifyEnvironment.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyEnvironment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,IAAI,gBAAgB,EAC/B,mBAAmB,IAAI,wBAAwB,EAC/C,yBAAyB,IAAI,8BAA8B,EAE5D,MAAM,+CAA+C,CAAC;AAEvD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAMvF,eAAO,MAAM,oCAAoC,cAAe,CAAC,wBAAwB,GAAG,8BAA8B,CAAC,EAAE,KAAG,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,SA2C/J,CAAC;AA8BF,QAAA,MAAM,oBAAoB,gBAAiB,gBAAgB,KAAG,MA2B7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"stringifyItem.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAOhF,QAAA,MAAM,aAAa,SAAU,SAAS,KAAG,MA4BxC,CAAC;AACF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"stringifyItem.d.ts","sourceRoot":"","sources":["../../../src/formats/yml/stringifyItem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAQhF,QAAA,MAAM,aAAa,SAAU,SAAS,KAAG,MA+BxC,CAAC;AACF,eAAe,aAAa,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { BrunoCollection, BrunoItem, BrunoEnvironment } from '@usebruno/schema-types';
2
2
  import BruParserWorker from './workers';
3
3
  import { ParseOptions, StringifyOptions, CollectionFormat } from './types';
4
+ import { redactLargeBruTextBlocks, restoreRedactedBlocks } from './formats/bru/utils/redact-large-text-blocks';
4
5
  export declare const parseRequest: (content: string, options?: ParseOptions) => any;
5
6
  export declare const parseRequestAndRedactBody: (content: string, options?: ParseOptions) => any;
6
7
  export declare const stringifyRequest: (requestObj: BrunoItem, options?: StringifyOptions) => string;
@@ -18,6 +19,9 @@ export declare const stringifyFolder: (folderObj: any, options?: StringifyOption
18
19
  export declare const parseEnvironment: (content: string, options?: ParseOptions) => any;
19
20
  export declare const stringifyEnvironment: (envObj: BrunoEnvironment, options?: StringifyOptions) => string;
20
21
  export declare const parseDotEnv: (content: string) => Record<string, string>;
22
+ export { redactLargeBruTextBlocks, restoreRedactedBlocks };
23
+ export type { RedactedBlock, RedactionResult } from './formats/bru/utils/redact-large-text-blocks';
24
+ export { migrateSecretsJsonToEnvironments } from './utils/secretsJsonToEnvironments';
21
25
  export { BruParserWorker };
22
26
  export * from './types';
23
27
  export * from './constants';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqB3F,OAAO,eAAe,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAKjB,eAAO,MAAM,YAAY,YAAa,MAAM,YAAW,YAAY,KAA2C,GAO7G,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAa,MAAM,YAAW,YAAY,KAAuB,GAKtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB,SAAS,YAAW,gBAAgB,KAA2C,MAO3H,CAAC;AAWF,eAAO,MAAM,qBAAqB,YAAmB,MAAM,WAAW;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,QAAQ,GAAG,CAIlI,CAAC;AAEF,eAAO,MAAM,yBAAyB,eAAsB,GAAG,WAAW;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,KAAG,QAAQ,MAAM,CAGtH,CAAC;AAGF,eAAO,MAAM,eAAe,YAAa,MAAM,YAAW,YAAY,KAA2C,GAOhH,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBAAmB,eAAe,eAAe,GAAG,YAAW,gBAAgB,KAA2C,MAOzJ,CAAC;AAGF,eAAO,MAAM,WAAW,YAAa,MAAM,YAAW,YAAY,KAA2C,GAO5G,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,GAAG,YAAW,gBAAgB,KAA2C,MAOnH,CAAC;AAGF,eAAO,MAAM,gBAAgB,YAAa,MAAM,YAAW,YAAY,KAA2C,GAOjH,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,gBAAgB,YAAW,gBAAgB,KAA2C,MAOlI,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,OAAO,MAAM,EAAE,MAAM,CAElE,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAqB3F,OAAO,eAAe,MAAM,WAAW,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,8CAA8C,CAAC;AAG/G,eAAO,MAAM,YAAY,YAAa,MAAM,YAAW,YAAY,KAA2C,GAO7G,CAAC;AAEF,eAAO,MAAM,yBAAyB,YAAa,MAAM,YAAW,YAAY,KAAuB,GAKtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB,SAAS,YAAW,gBAAgB,KAA2C,MAO3H,CAAC;AAWF,eAAO,MAAM,qBAAqB,YAAmB,MAAM,WAAW;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,QAAQ,GAAG,CAIlI,CAAC;AAEF,eAAO,MAAM,yBAAyB,eAAsB,GAAG,WAAW;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,KAAG,QAAQ,MAAM,CAGtH,CAAC;AAGF,eAAO,MAAM,eAAe,YAAa,MAAM,YAAW,YAAY,KAA2C,GAOhH,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBAAmB,eAAe,eAAe,GAAG,YAAW,gBAAgB,KAA2C,MAOzJ,CAAC;AAGF,eAAO,MAAM,WAAW,YAAa,MAAM,YAAW,YAAY,KAA2C,GAO5G,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,GAAG,YAAW,gBAAgB,KAA2C,MAOnH,CAAC;AAGF,eAAO,MAAM,gBAAgB,YAAa,MAAM,YAAW,YAAY,KAA2C,GAOjH,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,gBAAgB,YAAW,gBAAgB,KAA2C,MAOlI,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,MAAM,KAAG,OAAO,MAAM,EAAE,MAAM,CAElE,CAAC;AAEF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
package/dist/types.d.ts CHANGED
@@ -16,4 +16,10 @@ export interface WorkerTask {
16
16
  export interface Lane {
17
17
  maxSize: number;
18
18
  }
19
+ export interface BrunoPresetsExtension {
20
+ request?: {
21
+ type?: string;
22
+ url?: string;
23
+ };
24
+ }
19
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
@@ -0,0 +1,38 @@
1
+ import type { Environment as BrunoEnvironment } from '@usebruno/schema-types/collection/environment';
2
+ type LegacySecretsJsonSecret = {
3
+ name?: string;
4
+ path?: string;
5
+ secretName?: string;
6
+ vaultName?: string;
7
+ enabled?: boolean;
8
+ };
9
+ export interface SecretsJsonData {
10
+ type?: string;
11
+ data?: {
12
+ environment: string;
13
+ type?: string;
14
+ secrets: LegacySecretsJsonSecret[];
15
+ }[];
16
+ cli?: {
17
+ type?: string;
18
+ };
19
+ }
20
+ export interface EnvironmentFileResult {
21
+ name: string;
22
+ environment: BrunoEnvironment;
23
+ changed: boolean;
24
+ }
25
+ /**
26
+ * Applies the secrets.json provider `type` to every environment's `externalSecrets`, moving each
27
+ * environment's matching secrets onto it. The provider type lands on every environment that
28
+ * doesn't already have `externalSecrets` — including ones with no matching secrets.json entry or
29
+ * only invalid secrets (those get the type with an empty `variables` list). Environments that
30
+ * already carry `externalSecrets` are returned unchanged, as is everything when no provider type
31
+ * can be resolved. Format-agnostic and pure; file IO is the caller's responsibility.
32
+ */
33
+ export declare const migrateSecretsJsonToEnvironments: ({ secretsJsonData, environments }: {
34
+ secretsJsonData: SecretsJsonData;
35
+ environments: BrunoEnvironment[];
36
+ }) => EnvironmentFileResult[];
37
+ export {};
38
+ //# sourceMappingURL=secretsJsonToEnvironments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretsJsonToEnvironments.d.ts","sourceRoot":"","sources":["../../src/utils/secretsJsonToEnvironments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,IAAI,gBAAgB,EAMhC,MAAM,+CAA+C,CAAC;AAGvD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,uBAAuB,EAAE,CAAA;KAAE,EAAE,CAAC;IACpF,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AA6DD;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;qBAI1B,eAAe;kBAClB,gBAAgB,EAAE;MAC9B,qBAAqB,EAyBxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@usebruno/filestore",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "license": "MIT",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -13,7 +13,7 @@
13
13
  "scripts": {
14
14
  "clean": "rimraf dist",
15
15
  "prebuild": "npm run clean",
16
- "build": "rollup -c && tsc --emitDeclarationOnly",
16
+ "build": "rollup -c && tsc --emitDeclarationOnly -p tsconfig.build.json",
17
17
  "watch": "rollup -c -w",
18
18
  "test": "jest",
19
19
  "test:watch": "jest --watch",
@@ -29,7 +29,8 @@
29
29
  "@types/jest": "^29.5.11",
30
30
  "@types/lodash": "^4.14.191",
31
31
  "@types/node": "^24.1.0",
32
- "@usebruno/schema-types": "0.4.0",
32
+ "@opencollection/types": "0.10.0",
33
+ "@usebruno/schema-types": "0.7.0",
33
34
  "babel-jest": "^29.7.0",
34
35
  "jest": "^29.2.0",
35
36
  "nanoid": "3.3.8",
@@ -45,9 +46,10 @@
45
46
  },
46
47
  "dependencies": {
47
48
  "@types/nanoid": "^2.1.0",
48
- "@usebruno/lang": "0.36.0",
49
+ "@usebruno/common": "0.24.0",
50
+ "@usebruno/lang": "0.38.0",
49
51
  "ajv": "^8.17.1",
50
- "lodash": "^4.17.21",
52
+ "lodash": "4.18.1",
51
53
  "yaml": "^2.3.4"
52
54
  }
53
55
  }
package/src/constants.ts CHANGED
@@ -1,3 +1,12 @@
1
1
  import type { CollectionFormat } from './types';
2
+ import type { ExternalSecretProviderType } from '@usebruno/schema-types/collection/environment';
2
3
 
3
4
  export const DEFAULT_COLLECTION_FORMAT: CollectionFormat = 'yml';
5
+
6
+ // Each provider type stores its secret reference under a different key.
7
+ export const SECRET_PROVIDER_IDENTIFIER_FIELDS: Record<ExternalSecretProviderType, 'path' | 'secretName' | 'vaultName'> = {
8
+ 'aws-secrets-manager': 'secretName',
9
+ 'azure-key-vault': 'vaultName',
10
+ 'hashicorp-vault-cloud': 'path',
11
+ 'hashicorp-vault-server': 'path'
12
+ };
@@ -8,11 +8,26 @@ import {
8
8
  jsonToCollectionBru as _jsonToCollectionBru
9
9
  } from '@usebruno/lang';
10
10
  import { getOauth2AdditionalParameters } from './utils/oauth2-additional-params';
11
+ import { uuid } from '../../utils';
11
12
 
12
13
  export const parseBruRequest = (data: string | any, parsed: boolean = false): any => {
13
14
  try {
14
15
  const json = parsed ? data : bruToJsonV2(data);
15
16
 
17
+ if (_.get(json, 'meta.type') === 'app') {
18
+ const seq = _.get(json, 'meta.seq');
19
+ const tags = _.get(json, 'meta.tags', []);
20
+ return {
21
+ type: 'app',
22
+ name: _.get(json, 'meta.name'),
23
+ seq: !_.isNaN(seq) ? Number(seq) : 1,
24
+ tags: Array.isArray(tags) ? tags : [],
25
+ settings: _.get(json, 'settings', {}),
26
+ app: { code: _.get(json, 'app.code', null) },
27
+ request: null
28
+ };
29
+ }
30
+
16
31
  let requestType = _.get(json, 'meta.type');
17
32
  switch (requestType) {
18
33
  case 'http':
@@ -38,11 +53,18 @@ export const parseBruRequest = (data: string | any, parsed: boolean = false): an
38
53
  'ws-request': 'ws.url',
39
54
  'default': 'http.url'
40
55
  };
56
+
57
+ const appData = _.get(json, 'app');
58
+ const app = appData
59
+ ? { code: _.get(appData, 'code', null), enabled: _.get(appData, 'enabled', false) === true }
60
+ : null;
61
+
41
62
  const transformedJson = {
42
63
  type: requestType,
43
64
  name: _.get(json, 'meta.name'),
44
65
  seq: !_.isNaN(sequence) ? Number(sequence) : 1,
45
66
  settings: _.get(json, 'settings', {}),
67
+ app,
46
68
  tags: Array.isArray(tags) ? tags : [],
47
69
  request: {
48
70
  // Preserving special characters in custom methods. Using _.upperCase strips special characters.
@@ -117,6 +139,22 @@ export const parseBruRequest = (data: string | any, parsed: boolean = false): an
117
139
 
118
140
  export const stringifyBruRequest = (json: any): string => {
119
141
  try {
142
+ // Standalone app item — emit only meta + the app code block.
143
+ if (_.get(json, 'type') === 'app') {
144
+ const seq = _.get(json, 'seq');
145
+ const bruJson: any = {
146
+ meta: {
147
+ name: _.get(json, 'name'),
148
+ type: 'app',
149
+ seq: !_.isNaN(seq) ? Number(seq) : 1,
150
+ tags: _.get(json, 'tags', [])
151
+ },
152
+ settings: _.get(json, 'settings', {}),
153
+ app: { code: _.get(json, 'app.code', '') }
154
+ };
155
+ return jsonToBruV2(bruJson);
156
+ }
157
+
120
158
  let type = _.get(json, 'type');
121
159
  switch (type) {
122
160
  case 'http-request':
@@ -221,6 +259,11 @@ export const stringifyBruRequest = (json: any): string => {
221
259
  bruJson.docs = _.get(json, 'request.docs', '');
222
260
  bruJson.examples = _.get(json, 'examples', []).map((e: any) => jsonExampleToBru(e));
223
261
 
262
+ const app = _.get(json, 'app');
263
+ if (app && (app.enabled === true || (app.code && app.code.length))) {
264
+ bruJson.app = { code: app.code || null, enabled: app.enabled === true };
265
+ }
266
+
224
267
  const bru = jsonToBruV2(bruJson);
225
268
  return bru;
226
269
  } catch (error) {
@@ -326,6 +369,15 @@ export const parseBruEnvironment = (bru: string): any => {
326
369
  _.each(json.variables, (v: any) => (v.type = 'text'));
327
370
  }
328
371
 
372
+ // bruToEnvJsonV2 emits the nested `externalSecrets: { type, variables: [{ name,
373
+ // <identifier>, enabled }] }`. The app/schema additionally expect a `uid` per variable.
374
+ if (json?.externalSecrets && Array.isArray(json.externalSecrets.variables)) {
375
+ json.externalSecrets.variables = json.externalSecrets.variables.map((v: any) => ({
376
+ uid: uuid(),
377
+ ...v
378
+ }));
379
+ }
380
+
329
381
  return json;
330
382
  } catch (error) {
331
383
  return Promise.reject(error);
@@ -0,0 +1,63 @@
1
+ const { parseBruEnvironment } = require('../index');
2
+
3
+ describe('parseBruEnvironment external secrets normalization', () => {
4
+ it('should normalize the external secrets block to the app shape with uid and enabled', () => {
5
+ const bru = `vars {
6
+ }
7
+ vars:externalsecrets:hashicorp-vault-server {
8
+ secret: secret/data/secret
9
+ password: secret/data/password
10
+ }
11
+ `;
12
+
13
+ const output = parseBruEnvironment(bru);
14
+
15
+ expect(output.externalSecrets.type).toBe('hashicorp-vault-server');
16
+ expect(output.externalSecrets.variables).toHaveLength(2);
17
+
18
+ output.externalSecrets.variables.forEach((variable) => {
19
+ expect(typeof variable.uid).toBe('string');
20
+ expect(variable.uid).toMatch(/^[a-zA-Z0-9]{21}$/);
21
+ expect(variable.enabled).toBe(true);
22
+ expect(variable).not.toHaveProperty('disabled');
23
+ });
24
+
25
+ expect(output.externalSecrets.variables.map(({ name, path, enabled }) => ({ name, path, enabled }))).toEqual([
26
+ { name: 'secret', path: 'secret/data/secret', enabled: true },
27
+ { name: 'password', path: 'secret/data/password', enabled: true }
28
+ ]);
29
+ });
30
+
31
+ it('should map a disabled external secret entry to enabled: false', () => {
32
+ const bru = `vars:externalsecrets:aws-secrets-manager {
33
+ active: my-active-secret
34
+ ~inactive: my-inactive-secret
35
+ }
36
+ `;
37
+
38
+ const output = parseBruEnvironment(bru);
39
+
40
+ expect(output.externalSecrets.type).toBe('aws-secrets-manager');
41
+ const variables = output.externalSecrets.variables;
42
+ expect(variables.map(({ name, secretName, enabled }) => ({ name, secretName, enabled }))).toEqual([
43
+ { name: 'active', secretName: 'my-active-secret', enabled: true },
44
+ { name: 'inactive', secretName: 'my-inactive-secret', enabled: false }
45
+ ]);
46
+ variables.forEach((variable) => {
47
+ expect(variable).not.toHaveProperty('disabled');
48
+ expect(variable.uid).toMatch(/^[a-zA-Z0-9]{21}$/);
49
+ });
50
+ });
51
+
52
+ it('should leave environments without external secrets unchanged', () => {
53
+ const bru = `vars {
54
+ host: localhost
55
+ }
56
+ `;
57
+
58
+ const output = parseBruEnvironment(bru);
59
+
60
+ expect(output.externalSecrets).toBeUndefined();
61
+ expect(output.variables).toEqual([{ name: 'host', value: 'localhost', enabled: true, secret: false, type: 'text' }]);
62
+ });
63
+ });