@strapi/data-transfer 5.12.0 → 5.12.2

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 (213) hide show
  1. package/dist/engine/errors.js +39 -0
  2. package/dist/engine/errors.js.map +1 -0
  3. package/dist/engine/errors.mjs +34 -0
  4. package/dist/engine/errors.mjs.map +1 -0
  5. package/dist/engine/index.js +797 -0
  6. package/dist/engine/index.js.map +1 -0
  7. package/dist/engine/index.mjs +792 -0
  8. package/dist/engine/index.mjs.map +1 -0
  9. package/dist/engine/validation/provider.js +19 -0
  10. package/dist/engine/validation/provider.js.map +1 -0
  11. package/dist/engine/validation/provider.mjs +17 -0
  12. package/dist/engine/validation/provider.mjs.map +1 -0
  13. package/dist/engine/validation/schemas/index.js +57 -0
  14. package/dist/engine/validation/schemas/index.js.map +1 -0
  15. package/dist/engine/validation/schemas/index.mjs +55 -0
  16. package/dist/engine/validation/schemas/index.mjs.map +1 -0
  17. package/dist/errors/base.js +13 -0
  18. package/dist/errors/base.js.map +1 -0
  19. package/dist/errors/base.mjs +11 -0
  20. package/dist/errors/base.mjs.map +1 -0
  21. package/dist/errors/constants.js +10 -0
  22. package/dist/errors/constants.js.map +1 -0
  23. package/dist/errors/constants.mjs +8 -0
  24. package/dist/errors/constants.mjs.map +1 -0
  25. package/dist/errors/providers.js +41 -0
  26. package/dist/errors/providers.js.map +1 -0
  27. package/dist/errors/providers.mjs +36 -0
  28. package/dist/errors/providers.mjs.map +1 -0
  29. package/dist/file/index.js +8 -0
  30. package/dist/file/index.js.map +1 -0
  31. package/dist/file/index.mjs +3 -0
  32. package/dist/file/index.mjs.map +1 -0
  33. package/dist/file/providers/destination/index.js +248 -0
  34. package/dist/file/providers/destination/index.js.map +1 -0
  35. package/dist/file/providers/destination/index.mjs +246 -0
  36. package/dist/file/providers/destination/index.mjs.map +1 -0
  37. package/dist/file/providers/destination/utils.js +63 -0
  38. package/dist/file/providers/destination/utils.js.map +1 -0
  39. package/dist/file/providers/destination/utils.mjs +60 -0
  40. package/dist/file/providers/destination/utils.mjs.map +1 -0
  41. package/dist/file/providers/index.js +10 -0
  42. package/dist/file/providers/index.js.map +1 -0
  43. package/dist/file/providers/index.mjs +3 -0
  44. package/dist/file/providers/index.mjs.map +1 -0
  45. package/dist/file/providers/source/index.js +288 -0
  46. package/dist/file/providers/source/index.js.map +1 -0
  47. package/dist/file/providers/source/index.mjs +286 -0
  48. package/dist/file/providers/source/index.mjs.map +1 -0
  49. package/dist/file/providers/source/utils.js +56 -0
  50. package/dist/file/providers/source/utils.js.map +1 -0
  51. package/dist/file/providers/source/utils.mjs +52 -0
  52. package/dist/file/providers/source/utils.mjs.map +1 -0
  53. package/dist/index.js +8 -5692
  54. package/dist/index.js.map +1 -1
  55. package/dist/index.mjs +8 -5674
  56. package/dist/index.mjs.map +1 -1
  57. package/dist/strapi/index.js +12 -0
  58. package/dist/strapi/index.js.map +1 -0
  59. package/dist/strapi/index.mjs +7 -0
  60. package/dist/strapi/index.mjs.map +1 -0
  61. package/dist/strapi/providers/index.js +16 -0
  62. package/dist/strapi/providers/index.js.map +1 -0
  63. package/dist/strapi/providers/index.mjs +7 -0
  64. package/dist/strapi/providers/index.mjs.map +1 -0
  65. package/dist/strapi/providers/local-destination/index.js +419 -0
  66. package/dist/strapi/providers/local-destination/index.js.map +1 -0
  67. package/dist/strapi/providers/local-destination/index.mjs +396 -0
  68. package/dist/strapi/providers/local-destination/index.mjs.map +1 -0
  69. package/dist/strapi/providers/local-destination/strategies/restore/configuration.js +52 -0
  70. package/dist/strapi/providers/local-destination/strategies/restore/configuration.js.map +1 -0
  71. package/dist/strapi/providers/local-destination/strategies/restore/configuration.mjs +49 -0
  72. package/dist/strapi/providers/local-destination/strategies/restore/configuration.mjs.map +1 -0
  73. package/dist/strapi/providers/local-destination/strategies/restore/entities.js +64 -0
  74. package/dist/strapi/providers/local-destination/strategies/restore/entities.js.map +1 -0
  75. package/dist/strapi/providers/local-destination/strategies/restore/entities.mjs +62 -0
  76. package/dist/strapi/providers/local-destination/strategies/restore/entities.mjs.map +1 -0
  77. package/dist/strapi/providers/local-destination/strategies/restore/index.js +126 -0
  78. package/dist/strapi/providers/local-destination/strategies/restore/index.js.map +1 -0
  79. package/dist/strapi/providers/local-destination/strategies/restore/index.mjs +122 -0
  80. package/dist/strapi/providers/local-destination/strategies/restore/index.mjs.map +1 -0
  81. package/dist/strapi/providers/local-destination/strategies/restore/links.js +60 -0
  82. package/dist/strapi/providers/local-destination/strategies/restore/links.js.map +1 -0
  83. package/dist/strapi/providers/local-destination/strategies/restore/links.mjs +58 -0
  84. package/dist/strapi/providers/local-destination/strategies/restore/links.mjs.map +1 -0
  85. package/dist/strapi/providers/local-source/assets.js +123 -0
  86. package/dist/strapi/providers/local-source/assets.js.map +1 -0
  87. package/dist/strapi/providers/local-source/assets.mjs +121 -0
  88. package/dist/strapi/providers/local-source/assets.mjs.map +1 -0
  89. package/dist/strapi/providers/local-source/configuration.js +39 -0
  90. package/dist/strapi/providers/local-source/configuration.js.map +1 -0
  91. package/dist/strapi/providers/local-source/configuration.mjs +37 -0
  92. package/dist/strapi/providers/local-source/configuration.mjs.map +1 -0
  93. package/dist/strapi/providers/local-source/entities.js +62 -0
  94. package/dist/strapi/providers/local-source/entities.js.map +1 -0
  95. package/dist/strapi/providers/local-source/entities.mjs +59 -0
  96. package/dist/strapi/providers/local-source/entities.mjs.map +1 -0
  97. package/dist/strapi/providers/local-source/index.js +154 -0
  98. package/dist/strapi/providers/local-source/index.js.map +1 -0
  99. package/dist/strapi/providers/local-source/index.mjs +152 -0
  100. package/dist/strapi/providers/local-source/index.mjs.map +1 -0
  101. package/dist/strapi/providers/local-source/links.js +26 -0
  102. package/dist/strapi/providers/local-source/links.js.map +1 -0
  103. package/dist/strapi/providers/local-source/links.mjs +24 -0
  104. package/dist/strapi/providers/local-source/links.mjs.map +1 -0
  105. package/dist/strapi/providers/remote-destination/index.js +392 -0
  106. package/dist/strapi/providers/remote-destination/index.js.map +1 -0
  107. package/dist/strapi/providers/remote-destination/index.mjs +390 -0
  108. package/dist/strapi/providers/remote-destination/index.mjs.map +1 -0
  109. package/dist/strapi/providers/remote-source/index.js +405 -0
  110. package/dist/strapi/providers/remote-source/index.js.map +1 -0
  111. package/dist/strapi/providers/remote-source/index.mjs +403 -0
  112. package/dist/strapi/providers/remote-source/index.mjs.map +1 -0
  113. package/dist/strapi/providers/utils.js +173 -0
  114. package/dist/strapi/providers/utils.js.map +1 -0
  115. package/dist/strapi/providers/utils.mjs +169 -0
  116. package/dist/strapi/providers/utils.mjs.map +1 -0
  117. package/dist/strapi/queries/entity.js +125 -0
  118. package/dist/strapi/queries/entity.js.map +1 -0
  119. package/dist/strapi/queries/entity.mjs +123 -0
  120. package/dist/strapi/queries/entity.mjs.map +1 -0
  121. package/dist/strapi/queries/index.js +10 -0
  122. package/dist/strapi/queries/index.js.map +1 -0
  123. package/dist/strapi/queries/index.mjs +5 -0
  124. package/dist/strapi/queries/index.mjs.map +1 -0
  125. package/dist/strapi/queries/link.js +298 -0
  126. package/dist/strapi/queries/link.js.map +1 -0
  127. package/dist/strapi/queries/link.mjs +295 -0
  128. package/dist/strapi/queries/link.mjs.map +1 -0
  129. package/dist/strapi/remote/constants.js +11 -0
  130. package/dist/strapi/remote/constants.js.map +1 -0
  131. package/dist/strapi/remote/constants.mjs +8 -0
  132. package/dist/strapi/remote/constants.mjs.map +1 -0
  133. package/dist/strapi/remote/flows/default.js +43 -0
  134. package/dist/strapi/remote/flows/default.js.map +1 -0
  135. package/dist/strapi/remote/flows/default.mjs +41 -0
  136. package/dist/strapi/remote/flows/default.mjs.map +1 -0
  137. package/dist/strapi/remote/flows/index.js +54 -0
  138. package/dist/strapi/remote/flows/index.js.map +1 -0
  139. package/dist/strapi/remote/flows/index.mjs +52 -0
  140. package/dist/strapi/remote/flows/index.mjs.map +1 -0
  141. package/dist/strapi/remote/handlers/constants.js +10 -0
  142. package/dist/strapi/remote/handlers/constants.js.map +1 -0
  143. package/dist/strapi/remote/handlers/constants.mjs +8 -0
  144. package/dist/strapi/remote/handlers/constants.mjs.map +1 -0
  145. package/dist/strapi/remote/handlers/index.js +12 -0
  146. package/dist/strapi/remote/handlers/index.js.map +1 -0
  147. package/dist/strapi/remote/handlers/index.mjs +4 -0
  148. package/dist/strapi/remote/handlers/index.mjs.map +1 -0
  149. package/dist/strapi/remote/handlers/pull.js +348 -0
  150. package/dist/strapi/remote/handlers/pull.js.map +1 -0
  151. package/dist/strapi/remote/handlers/pull.mjs +346 -0
  152. package/dist/strapi/remote/handlers/pull.mjs.map +1 -0
  153. package/dist/strapi/remote/handlers/push.js +400 -0
  154. package/dist/strapi/remote/handlers/push.js.map +1 -0
  155. package/dist/strapi/remote/handlers/push.mjs +398 -0
  156. package/dist/strapi/remote/handlers/push.mjs.map +1 -0
  157. package/dist/strapi/remote/handlers/utils.js +316 -0
  158. package/dist/strapi/remote/handlers/utils.js.map +1 -0
  159. package/dist/strapi/remote/handlers/utils.mjs +310 -0
  160. package/dist/strapi/remote/handlers/utils.mjs.map +1 -0
  161. package/dist/strapi/remote/index.js +10 -0
  162. package/dist/strapi/remote/index.js.map +1 -0
  163. package/dist/strapi/remote/index.mjs +5 -0
  164. package/dist/strapi/remote/index.mjs.map +1 -0
  165. package/dist/utils/components.js +178 -0
  166. package/dist/utils/components.js.map +1 -0
  167. package/dist/utils/components.mjs +171 -0
  168. package/dist/utils/components.mjs.map +1 -0
  169. package/dist/utils/diagnostic.js +51 -0
  170. package/dist/utils/diagnostic.js.map +1 -0
  171. package/dist/utils/diagnostic.mjs +49 -0
  172. package/dist/utils/diagnostic.mjs.map +1 -0
  173. package/dist/utils/encryption/decrypt.js +47 -0
  174. package/dist/utils/encryption/decrypt.js.map +1 -0
  175. package/dist/utils/encryption/decrypt.mjs +45 -0
  176. package/dist/utils/encryption/decrypt.mjs.map +1 -0
  177. package/dist/utils/encryption/encrypt.js +47 -0
  178. package/dist/utils/encryption/encrypt.js.map +1 -0
  179. package/dist/utils/encryption/encrypt.mjs +45 -0
  180. package/dist/utils/encryption/encrypt.mjs.map +1 -0
  181. package/dist/utils/encryption/index.js +10 -0
  182. package/dist/utils/encryption/index.js.map +1 -0
  183. package/dist/utils/encryption/index.mjs +3 -0
  184. package/dist/utils/encryption/index.mjs.map +1 -0
  185. package/dist/utils/index.js +20 -0
  186. package/dist/utils/index.js.map +1 -0
  187. package/dist/utils/index.mjs +15 -0
  188. package/dist/utils/index.mjs.map +1 -0
  189. package/dist/utils/json.js +96 -0
  190. package/dist/utils/json.js.map +1 -0
  191. package/dist/utils/json.mjs +94 -0
  192. package/dist/utils/json.mjs.map +1 -0
  193. package/dist/utils/middleware.js +14 -0
  194. package/dist/utils/middleware.js.map +1 -0
  195. package/dist/utils/middleware.mjs +12 -0
  196. package/dist/utils/middleware.mjs.map +1 -0
  197. package/dist/utils/providers.js +12 -0
  198. package/dist/utils/providers.js.map +1 -0
  199. package/dist/utils/providers.mjs +10 -0
  200. package/dist/utils/providers.mjs.map +1 -0
  201. package/dist/utils/schema.js +32 -0
  202. package/dist/utils/schema.js.map +1 -0
  203. package/dist/utils/schema.mjs +29 -0
  204. package/dist/utils/schema.mjs.map +1 -0
  205. package/dist/utils/stream.js +59 -0
  206. package/dist/utils/stream.js.map +1 -0
  207. package/dist/utils/stream.mjs +55 -0
  208. package/dist/utils/stream.mjs.map +1 -0
  209. package/dist/utils/transaction.js +93 -0
  210. package/dist/utils/transaction.js.map +1 -0
  211. package/dist/utils/transaction.mjs +91 -0
  212. package/dist/utils/transaction.mjs.map +1 -0
  213. package/package.json +5 -5
@@ -0,0 +1,154 @@
1
+ 'use strict';
2
+
3
+ var stream = require('stream');
4
+ var streamChain = require('stream-chain');
5
+ var entities = require('./entities.js');
6
+ var links = require('./links.js');
7
+ var configuration = require('./configuration.js');
8
+ var assets = require('./assets.js');
9
+ require('crypto');
10
+ require('lodash/fp');
11
+ var schema = require('../../../utils/schema.js');
12
+ require('events');
13
+ var providers = require('../../../utils/providers.js');
14
+
15
+ function _class_private_field_loose_base(receiver, privateKey) {
16
+ if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
17
+ throw new TypeError("attempted to use private field on non-instance");
18
+ }
19
+ return receiver;
20
+ }
21
+ var id = 0;
22
+ function _class_private_field_loose_key(name) {
23
+ return "__private_" + id++ + "_" + name;
24
+ }
25
+ const createLocalStrapiSourceProvider = (options)=>{
26
+ return new LocalStrapiSourceProvider(options);
27
+ };
28
+ var _diagnostics = /*#__PURE__*/ _class_private_field_loose_key("_diagnostics"), _reportInfo = /*#__PURE__*/ _class_private_field_loose_key("_reportInfo"), /**
29
+ * Reports an error to the diagnostic reporter.
30
+ */ _reportError = /*#__PURE__*/ _class_private_field_loose_key("_reportError"), /**
31
+ * Handles errors that occur in read streams.
32
+ */ _handleStreamError = /*#__PURE__*/ _class_private_field_loose_key("_handleStreamError");
33
+ class LocalStrapiSourceProvider {
34
+ async bootstrap(diagnostics) {
35
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics] = diagnostics;
36
+ this.strapi = await this.options.getStrapi();
37
+ this.strapi.db.lifecycles.disable();
38
+ }
39
+ async close() {
40
+ const { autoDestroy } = this.options;
41
+ providers.assertValidStrapi(this.strapi);
42
+ this.strapi.db.lifecycles.enable();
43
+ // Basically `!== false` but more deterministic
44
+ if (autoDestroy === undefined || autoDestroy === true) {
45
+ await this.strapi?.destroy();
46
+ }
47
+ }
48
+ getMetadata() {
49
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('getting metadata');
50
+ const strapiVersion = strapi.config.get('info.strapi');
51
+ const createdAt = new Date().toISOString();
52
+ return {
53
+ createdAt,
54
+ strapi: {
55
+ version: strapiVersion
56
+ }
57
+ };
58
+ }
59
+ async createEntitiesReadStream() {
60
+ providers.assertValidStrapi(this.strapi, 'Not able to stream entities');
61
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating entities read stream');
62
+ return streamChain.chain([
63
+ // Entities stream
64
+ entities.createEntitiesStream(this.strapi),
65
+ // Transform stream
66
+ entities.createEntitiesTransformStream()
67
+ ]);
68
+ }
69
+ createLinksReadStream() {
70
+ providers.assertValidStrapi(this.strapi, 'Not able to stream links');
71
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating links read stream');
72
+ return links.createLinksStream(this.strapi);
73
+ }
74
+ createConfigurationReadStream() {
75
+ providers.assertValidStrapi(this.strapi, 'Not able to stream configuration');
76
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating configuration read stream');
77
+ return configuration.createConfigurationStream(this.strapi);
78
+ }
79
+ getSchemas() {
80
+ providers.assertValidStrapi(this.strapi, 'Not able to get Schemas');
81
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('getting schemas');
82
+ const schemas = schema.schemasToValidJSON({
83
+ ...this.strapi.contentTypes,
84
+ ...this.strapi.components
85
+ });
86
+ return schema.mapSchemasValues(schemas);
87
+ }
88
+ createSchemasReadStream() {
89
+ return stream.Readable.from(Object.values(this.getSchemas()));
90
+ }
91
+ createAssetsReadStream() {
92
+ providers.assertValidStrapi(this.strapi, 'Not able to stream assets');
93
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating assets read stream');
94
+ const stream = assets.createAssetsStream(this.strapi);
95
+ stream.on('error', (err)=>{
96
+ _class_private_field_loose_base(this, _handleStreamError)[_handleStreamError]('assets', err);
97
+ });
98
+ return stream;
99
+ }
100
+ constructor(options){
101
+ Object.defineProperty(this, _reportInfo, {
102
+ value: reportInfo
103
+ });
104
+ Object.defineProperty(this, _reportError, {
105
+ value: reportError
106
+ });
107
+ Object.defineProperty(this, _handleStreamError, {
108
+ value: handleStreamError
109
+ });
110
+ Object.defineProperty(this, _diagnostics, {
111
+ writable: true,
112
+ value: void 0
113
+ });
114
+ this.name = 'source::local-strapi';
115
+ this.type = 'source';
116
+ this.options = options;
117
+ }
118
+ }
119
+ function reportInfo(message) {
120
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
121
+ details: {
122
+ createdAt: new Date(),
123
+ message,
124
+ origin: 'local-source-provider'
125
+ },
126
+ kind: 'info'
127
+ });
128
+ }
129
+ function reportError(message, error) {
130
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
131
+ details: {
132
+ createdAt: new Date(),
133
+ message,
134
+ error,
135
+ severity: 'fatal',
136
+ name: error.name
137
+ },
138
+ kind: 'error'
139
+ });
140
+ }
141
+ function handleStreamError(streamType, err) {
142
+ const { message, stack } = err;
143
+ const errorMessage = `[Data transfer] Error in ${streamType} read stream: ${message}`;
144
+ const formattedError = {
145
+ message: errorMessage,
146
+ stack,
147
+ timestamp: new Date().toISOString()
148
+ };
149
+ this.strapi?.log.error(formattedError);
150
+ _class_private_field_loose_base(this, _reportError)[_reportError](formattedError.message, err);
151
+ }
152
+
153
+ exports.createLocalStrapiSourceProvider = createLocalStrapiSourceProvider;
154
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/strapi/providers/local-source/index.ts"],"sourcesContent":["import { Readable } from 'stream';\nimport { chain } from 'stream-chain';\nimport type { Core, Struct } from '@strapi/types';\n\nimport type { IMetadata, ISourceProvider, ProviderType } from '../../../../types';\nimport type { IDiagnosticReporter } from '../../../utils/diagnostic';\nimport { createEntitiesStream, createEntitiesTransformStream } from './entities';\nimport { createLinksStream } from './links';\nimport { createConfigurationStream } from './configuration';\nimport { createAssetsStream } from './assets';\nimport * as utils from '../../../utils';\nimport { assertValidStrapi } from '../../../utils/providers';\n\nexport interface ILocalStrapiSourceProviderOptions {\n getStrapi(): Core.Strapi | Promise<Core.Strapi>; // return an initialized instance of Strapi\n\n autoDestroy?: boolean; // shut down the instance returned by getStrapi() at the end of the transfer\n}\n\nexport const createLocalStrapiSourceProvider = (options: ILocalStrapiSourceProviderOptions) => {\n return new LocalStrapiSourceProvider(options);\n};\n\nclass LocalStrapiSourceProvider implements ISourceProvider {\n name = 'source::local-strapi';\n\n type: ProviderType = 'source';\n\n options: ILocalStrapiSourceProviderOptions;\n\n strapi?: Core.Strapi;\n\n #diagnostics?: IDiagnosticReporter;\n\n constructor(options: ILocalStrapiSourceProviderOptions) {\n this.options = options;\n }\n\n async bootstrap(diagnostics?: IDiagnosticReporter): Promise<void> {\n this.#diagnostics = diagnostics;\n this.strapi = await this.options.getStrapi();\n this.strapi.db.lifecycles.disable();\n }\n\n #reportInfo(message: string) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n origin: 'local-source-provider',\n },\n kind: 'info',\n });\n }\n\n /**\n * Reports an error to the diagnostic reporter.\n */\n #reportError(message: string, error: Error) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n error,\n severity: 'fatal',\n name: error.name,\n },\n kind: 'error',\n });\n }\n\n /**\n * Handles errors that occur in read streams.\n */\n #handleStreamError(streamType: string, err: Error) {\n const { message, stack } = err;\n const errorMessage = `[Data transfer] Error in ${streamType} read stream: ${message}`;\n const formattedError = {\n message: errorMessage,\n stack,\n timestamp: new Date().toISOString(),\n };\n\n this.strapi?.log.error(formattedError);\n this.#reportError(formattedError.message, err);\n }\n\n async close(): Promise<void> {\n const { autoDestroy } = this.options;\n assertValidStrapi(this.strapi);\n this.strapi.db.lifecycles.enable();\n // Basically `!== false` but more deterministic\n if (autoDestroy === undefined || autoDestroy === true) {\n await this.strapi?.destroy();\n }\n }\n\n getMetadata(): IMetadata {\n this.#reportInfo('getting metadata');\n const strapiVersion = strapi.config.get<string>('info.strapi');\n const createdAt = new Date().toISOString();\n\n return {\n createdAt,\n strapi: {\n version: strapiVersion,\n },\n };\n }\n\n async createEntitiesReadStream(): Promise<Readable> {\n assertValidStrapi(this.strapi, 'Not able to stream entities');\n this.#reportInfo('creating entities read stream');\n return chain([\n // Entities stream\n createEntitiesStream(this.strapi),\n\n // Transform stream\n createEntitiesTransformStream(),\n ]);\n }\n\n createLinksReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream links');\n this.#reportInfo('creating links read stream');\n\n return createLinksStream(this.strapi);\n }\n\n createConfigurationReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream configuration');\n this.#reportInfo('creating configuration read stream');\n return createConfigurationStream(this.strapi);\n }\n\n getSchemas(): Record<string, Struct.Schema> {\n assertValidStrapi(this.strapi, 'Not able to get Schemas');\n this.#reportInfo('getting schemas');\n const schemas = utils.schema.schemasToValidJSON({\n ...this.strapi.contentTypes,\n ...this.strapi.components,\n });\n\n return utils.schema.mapSchemasValues(schemas);\n }\n\n createSchemasReadStream(): Readable {\n return Readable.from(Object.values(this.getSchemas()));\n }\n\n createAssetsReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream assets');\n this.#reportInfo('creating assets read stream');\n\n const stream = createAssetsStream(this.strapi);\n stream.on('error', (err) => {\n this.#handleStreamError('assets', err);\n });\n\n return stream;\n }\n}\n\nexport type ILocalStrapiSourceProvider = InstanceType<typeof LocalStrapiSourceProvider>;\n"],"names":["createLocalStrapiSourceProvider","options","LocalStrapiSourceProvider","bootstrap","diagnostics","strapi","getStrapi","db","lifecycles","disable","close","autoDestroy","assertValidStrapi","enable","undefined","destroy","getMetadata","reportInfo","strapiVersion","config","get","createdAt","Date","toISOString","version","createEntitiesReadStream","chain","createEntitiesStream","createEntitiesTransformStream","createLinksReadStream","createLinksStream","createConfigurationReadStream","createConfigurationStream","getSchemas","schemas","utils","contentTypes","components","createSchemasReadStream","Readable","from","Object","values","createAssetsReadStream","stream","createAssetsStream","on","err","handleStreamError","constructor","name","type","message","report","details","origin","kind","error","severity","streamType","stack","errorMessage","formattedError","timestamp","log","reportError"],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ import { Readable } from 'stream';
2
+ import { chain } from 'stream-chain';
3
+ import { createEntitiesStream, createEntitiesTransformStream } from './entities.mjs';
4
+ import { createLinksStream } from './links.mjs';
5
+ import { createConfigurationStream } from './configuration.mjs';
6
+ import { createAssetsStream } from './assets.mjs';
7
+ import 'crypto';
8
+ import 'lodash/fp';
9
+ import { schemasToValidJSON, mapSchemasValues } from '../../../utils/schema.mjs';
10
+ import 'events';
11
+ import { assertValidStrapi } from '../../../utils/providers.mjs';
12
+
13
+ function _class_private_field_loose_base(receiver, privateKey) {
14
+ if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
15
+ throw new TypeError("attempted to use private field on non-instance");
16
+ }
17
+ return receiver;
18
+ }
19
+ var id = 0;
20
+ function _class_private_field_loose_key(name) {
21
+ return "__private_" + id++ + "_" + name;
22
+ }
23
+ const createLocalStrapiSourceProvider = (options)=>{
24
+ return new LocalStrapiSourceProvider(options);
25
+ };
26
+ var _diagnostics = /*#__PURE__*/ _class_private_field_loose_key("_diagnostics"), _reportInfo = /*#__PURE__*/ _class_private_field_loose_key("_reportInfo"), /**
27
+ * Reports an error to the diagnostic reporter.
28
+ */ _reportError = /*#__PURE__*/ _class_private_field_loose_key("_reportError"), /**
29
+ * Handles errors that occur in read streams.
30
+ */ _handleStreamError = /*#__PURE__*/ _class_private_field_loose_key("_handleStreamError");
31
+ class LocalStrapiSourceProvider {
32
+ async bootstrap(diagnostics) {
33
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics] = diagnostics;
34
+ this.strapi = await this.options.getStrapi();
35
+ this.strapi.db.lifecycles.disable();
36
+ }
37
+ async close() {
38
+ const { autoDestroy } = this.options;
39
+ assertValidStrapi(this.strapi);
40
+ this.strapi.db.lifecycles.enable();
41
+ // Basically `!== false` but more deterministic
42
+ if (autoDestroy === undefined || autoDestroy === true) {
43
+ await this.strapi?.destroy();
44
+ }
45
+ }
46
+ getMetadata() {
47
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('getting metadata');
48
+ const strapiVersion = strapi.config.get('info.strapi');
49
+ const createdAt = new Date().toISOString();
50
+ return {
51
+ createdAt,
52
+ strapi: {
53
+ version: strapiVersion
54
+ }
55
+ };
56
+ }
57
+ async createEntitiesReadStream() {
58
+ assertValidStrapi(this.strapi, 'Not able to stream entities');
59
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating entities read stream');
60
+ return chain([
61
+ // Entities stream
62
+ createEntitiesStream(this.strapi),
63
+ // Transform stream
64
+ createEntitiesTransformStream()
65
+ ]);
66
+ }
67
+ createLinksReadStream() {
68
+ assertValidStrapi(this.strapi, 'Not able to stream links');
69
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating links read stream');
70
+ return createLinksStream(this.strapi);
71
+ }
72
+ createConfigurationReadStream() {
73
+ assertValidStrapi(this.strapi, 'Not able to stream configuration');
74
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating configuration read stream');
75
+ return createConfigurationStream(this.strapi);
76
+ }
77
+ getSchemas() {
78
+ assertValidStrapi(this.strapi, 'Not able to get Schemas');
79
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('getting schemas');
80
+ const schemas = schemasToValidJSON({
81
+ ...this.strapi.contentTypes,
82
+ ...this.strapi.components
83
+ });
84
+ return mapSchemasValues(schemas);
85
+ }
86
+ createSchemasReadStream() {
87
+ return Readable.from(Object.values(this.getSchemas()));
88
+ }
89
+ createAssetsReadStream() {
90
+ assertValidStrapi(this.strapi, 'Not able to stream assets');
91
+ _class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating assets read stream');
92
+ const stream = createAssetsStream(this.strapi);
93
+ stream.on('error', (err)=>{
94
+ _class_private_field_loose_base(this, _handleStreamError)[_handleStreamError]('assets', err);
95
+ });
96
+ return stream;
97
+ }
98
+ constructor(options){
99
+ Object.defineProperty(this, _reportInfo, {
100
+ value: reportInfo
101
+ });
102
+ Object.defineProperty(this, _reportError, {
103
+ value: reportError
104
+ });
105
+ Object.defineProperty(this, _handleStreamError, {
106
+ value: handleStreamError
107
+ });
108
+ Object.defineProperty(this, _diagnostics, {
109
+ writable: true,
110
+ value: void 0
111
+ });
112
+ this.name = 'source::local-strapi';
113
+ this.type = 'source';
114
+ this.options = options;
115
+ }
116
+ }
117
+ function reportInfo(message) {
118
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
119
+ details: {
120
+ createdAt: new Date(),
121
+ message,
122
+ origin: 'local-source-provider'
123
+ },
124
+ kind: 'info'
125
+ });
126
+ }
127
+ function reportError(message, error) {
128
+ _class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
129
+ details: {
130
+ createdAt: new Date(),
131
+ message,
132
+ error,
133
+ severity: 'fatal',
134
+ name: error.name
135
+ },
136
+ kind: 'error'
137
+ });
138
+ }
139
+ function handleStreamError(streamType, err) {
140
+ const { message, stack } = err;
141
+ const errorMessage = `[Data transfer] Error in ${streamType} read stream: ${message}`;
142
+ const formattedError = {
143
+ message: errorMessage,
144
+ stack,
145
+ timestamp: new Date().toISOString()
146
+ };
147
+ this.strapi?.log.error(formattedError);
148
+ _class_private_field_loose_base(this, _reportError)[_reportError](formattedError.message, err);
149
+ }
150
+
151
+ export { createLocalStrapiSourceProvider };
152
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/strapi/providers/local-source/index.ts"],"sourcesContent":["import { Readable } from 'stream';\nimport { chain } from 'stream-chain';\nimport type { Core, Struct } from '@strapi/types';\n\nimport type { IMetadata, ISourceProvider, ProviderType } from '../../../../types';\nimport type { IDiagnosticReporter } from '../../../utils/diagnostic';\nimport { createEntitiesStream, createEntitiesTransformStream } from './entities';\nimport { createLinksStream } from './links';\nimport { createConfigurationStream } from './configuration';\nimport { createAssetsStream } from './assets';\nimport * as utils from '../../../utils';\nimport { assertValidStrapi } from '../../../utils/providers';\n\nexport interface ILocalStrapiSourceProviderOptions {\n getStrapi(): Core.Strapi | Promise<Core.Strapi>; // return an initialized instance of Strapi\n\n autoDestroy?: boolean; // shut down the instance returned by getStrapi() at the end of the transfer\n}\n\nexport const createLocalStrapiSourceProvider = (options: ILocalStrapiSourceProviderOptions) => {\n return new LocalStrapiSourceProvider(options);\n};\n\nclass LocalStrapiSourceProvider implements ISourceProvider {\n name = 'source::local-strapi';\n\n type: ProviderType = 'source';\n\n options: ILocalStrapiSourceProviderOptions;\n\n strapi?: Core.Strapi;\n\n #diagnostics?: IDiagnosticReporter;\n\n constructor(options: ILocalStrapiSourceProviderOptions) {\n this.options = options;\n }\n\n async bootstrap(diagnostics?: IDiagnosticReporter): Promise<void> {\n this.#diagnostics = diagnostics;\n this.strapi = await this.options.getStrapi();\n this.strapi.db.lifecycles.disable();\n }\n\n #reportInfo(message: string) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n origin: 'local-source-provider',\n },\n kind: 'info',\n });\n }\n\n /**\n * Reports an error to the diagnostic reporter.\n */\n #reportError(message: string, error: Error) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n error,\n severity: 'fatal',\n name: error.name,\n },\n kind: 'error',\n });\n }\n\n /**\n * Handles errors that occur in read streams.\n */\n #handleStreamError(streamType: string, err: Error) {\n const { message, stack } = err;\n const errorMessage = `[Data transfer] Error in ${streamType} read stream: ${message}`;\n const formattedError = {\n message: errorMessage,\n stack,\n timestamp: new Date().toISOString(),\n };\n\n this.strapi?.log.error(formattedError);\n this.#reportError(formattedError.message, err);\n }\n\n async close(): Promise<void> {\n const { autoDestroy } = this.options;\n assertValidStrapi(this.strapi);\n this.strapi.db.lifecycles.enable();\n // Basically `!== false` but more deterministic\n if (autoDestroy === undefined || autoDestroy === true) {\n await this.strapi?.destroy();\n }\n }\n\n getMetadata(): IMetadata {\n this.#reportInfo('getting metadata');\n const strapiVersion = strapi.config.get<string>('info.strapi');\n const createdAt = new Date().toISOString();\n\n return {\n createdAt,\n strapi: {\n version: strapiVersion,\n },\n };\n }\n\n async createEntitiesReadStream(): Promise<Readable> {\n assertValidStrapi(this.strapi, 'Not able to stream entities');\n this.#reportInfo('creating entities read stream');\n return chain([\n // Entities stream\n createEntitiesStream(this.strapi),\n\n // Transform stream\n createEntitiesTransformStream(),\n ]);\n }\n\n createLinksReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream links');\n this.#reportInfo('creating links read stream');\n\n return createLinksStream(this.strapi);\n }\n\n createConfigurationReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream configuration');\n this.#reportInfo('creating configuration read stream');\n return createConfigurationStream(this.strapi);\n }\n\n getSchemas(): Record<string, Struct.Schema> {\n assertValidStrapi(this.strapi, 'Not able to get Schemas');\n this.#reportInfo('getting schemas');\n const schemas = utils.schema.schemasToValidJSON({\n ...this.strapi.contentTypes,\n ...this.strapi.components,\n });\n\n return utils.schema.mapSchemasValues(schemas);\n }\n\n createSchemasReadStream(): Readable {\n return Readable.from(Object.values(this.getSchemas()));\n }\n\n createAssetsReadStream(): Readable {\n assertValidStrapi(this.strapi, 'Not able to stream assets');\n this.#reportInfo('creating assets read stream');\n\n const stream = createAssetsStream(this.strapi);\n stream.on('error', (err) => {\n this.#handleStreamError('assets', err);\n });\n\n return stream;\n }\n}\n\nexport type ILocalStrapiSourceProvider = InstanceType<typeof LocalStrapiSourceProvider>;\n"],"names":["createLocalStrapiSourceProvider","options","LocalStrapiSourceProvider","bootstrap","diagnostics","strapi","getStrapi","db","lifecycles","disable","close","autoDestroy","assertValidStrapi","enable","undefined","destroy","getMetadata","reportInfo","strapiVersion","config","get","createdAt","Date","toISOString","version","createEntitiesReadStream","chain","createEntitiesStream","createEntitiesTransformStream","createLinksReadStream","createLinksStream","createConfigurationReadStream","createConfigurationStream","getSchemas","schemas","utils","contentTypes","components","createSchemasReadStream","Readable","from","Object","values","createAssetsReadStream","stream","createAssetsStream","on","err","handleStreamError","constructor","name","type","message","report","details","origin","kind","error","severity","streamType","stack","errorMessage","formattedError","timestamp","log","reportError"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var stream = require('stream');
4
+ var link = require('../../queries/link.js');
5
+
6
+ /**
7
+ * Create a Readable which will stream all the links from a Strapi instance
8
+ */ const createLinksStream = (strapi)=>{
9
+ const uids = [
10
+ ...Object.keys(strapi.contentTypes),
11
+ ...Object.keys(strapi.components)
12
+ ];
13
+ // Async generator stream that returns every link from a Strapi instance
14
+ return stream.Readable.from(async function* linkGenerator() {
15
+ const query = link.createLinkQuery(strapi);
16
+ for (const uid of uids){
17
+ const generator = query().generateAll(uid);
18
+ for await (const link of generator){
19
+ yield link;
20
+ }
21
+ }
22
+ }());
23
+ };
24
+
25
+ exports.createLinksStream = createLinksStream;
26
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sources":["../../../../src/strapi/providers/local-source/links.ts"],"sourcesContent":["import { Readable } from 'stream';\nimport type { Core } from '@strapi/types';\n\nimport type { ILink } from '../../../../types';\nimport { createLinkQuery } from '../../queries/link';\n\n/**\n * Create a Readable which will stream all the links from a Strapi instance\n */\nexport const createLinksStream = (strapi: Core.Strapi): Readable => {\n const uids = [...Object.keys(strapi.contentTypes), ...Object.keys(strapi.components)] as string[];\n\n // Async generator stream that returns every link from a Strapi instance\n return Readable.from(\n (async function* linkGenerator(): AsyncGenerator<ILink> {\n const query = createLinkQuery(strapi);\n\n for (const uid of uids) {\n const generator = query().generateAll(uid);\n\n for await (const link of generator) {\n yield link;\n }\n }\n })()\n );\n};\n"],"names":["createLinksStream","strapi","uids","Object","keys","contentTypes","components","Readable","from","linkGenerator","query","createLinkQuery","uid","generator","generateAll","link"],"mappings":";;;;;AAMA;;IAGaA,MAAAA,iBAAAA,GAAoB,CAACC,MAAAA,GAAAA;AAChC,IAAA,MAAMC,IAAO,GAAA;WAAIC,MAAOC,CAAAA,IAAI,CAACH,MAAAA,CAAOI,YAAY,CAAA;WAAMF,MAAOC,CAAAA,IAAI,CAACH,MAAAA,CAAOK,UAAU;AAAE,KAAA;;AAGrF,IAAA,OAAOC,eAASC,CAAAA,IAAI,CACjB,gBAAgBC,aAAAA,GAAAA;AACf,QAAA,MAAMC,QAAQC,oBAAgBV,CAAAA,MAAAA,CAAAA;QAE9B,KAAK,MAAMW,OAAOV,IAAM,CAAA;YACtB,MAAMW,SAAAA,GAAYH,KAAQI,EAAAA,CAAAA,WAAW,CAACF,GAAAA,CAAAA;YAEtC,WAAW,MAAMG,QAAQF,SAAW,CAAA;gBAClC,MAAME,IAAAA;AACR;AACF;AACF,KAAA,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,24 @@
1
+ import { Readable } from 'stream';
2
+ import { createLinkQuery } from '../../queries/link.mjs';
3
+
4
+ /**
5
+ * Create a Readable which will stream all the links from a Strapi instance
6
+ */ const createLinksStream = (strapi)=>{
7
+ const uids = [
8
+ ...Object.keys(strapi.contentTypes),
9
+ ...Object.keys(strapi.components)
10
+ ];
11
+ // Async generator stream that returns every link from a Strapi instance
12
+ return Readable.from(async function* linkGenerator() {
13
+ const query = createLinkQuery(strapi);
14
+ for (const uid of uids){
15
+ const generator = query().generateAll(uid);
16
+ for await (const link of generator){
17
+ yield link;
18
+ }
19
+ }
20
+ }());
21
+ };
22
+
23
+ export { createLinksStream };
24
+ //# sourceMappingURL=links.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.mjs","sources":["../../../../src/strapi/providers/local-source/links.ts"],"sourcesContent":["import { Readable } from 'stream';\nimport type { Core } from '@strapi/types';\n\nimport type { ILink } from '../../../../types';\nimport { createLinkQuery } from '../../queries/link';\n\n/**\n * Create a Readable which will stream all the links from a Strapi instance\n */\nexport const createLinksStream = (strapi: Core.Strapi): Readable => {\n const uids = [...Object.keys(strapi.contentTypes), ...Object.keys(strapi.components)] as string[];\n\n // Async generator stream that returns every link from a Strapi instance\n return Readable.from(\n (async function* linkGenerator(): AsyncGenerator<ILink> {\n const query = createLinkQuery(strapi);\n\n for (const uid of uids) {\n const generator = query().generateAll(uid);\n\n for await (const link of generator) {\n yield link;\n }\n }\n })()\n );\n};\n"],"names":["createLinksStream","strapi","uids","Object","keys","contentTypes","components","Readable","from","linkGenerator","query","createLinkQuery","uid","generator","generateAll","link"],"mappings":";;;AAMA;;IAGaA,MAAAA,iBAAAA,GAAoB,CAACC,MAAAA,GAAAA;AAChC,IAAA,MAAMC,IAAO,GAAA;WAAIC,MAAOC,CAAAA,IAAI,CAACH,MAAAA,CAAOI,YAAY,CAAA;WAAMF,MAAOC,CAAAA,IAAI,CAACH,MAAAA,CAAOK,UAAU;AAAE,KAAA;;AAGrF,IAAA,OAAOC,QAASC,CAAAA,IAAI,CACjB,gBAAgBC,aAAAA,GAAAA;AACf,QAAA,MAAMC,QAAQC,eAAgBV,CAAAA,MAAAA,CAAAA;QAE9B,KAAK,MAAMW,OAAOV,IAAM,CAAA;YACtB,MAAMW,SAAAA,GAAYH,KAAQI,EAAAA,CAAAA,WAAW,CAACF,GAAAA,CAAAA;YAEtC,WAAW,MAAMG,QAAQF,SAAW,CAAA;gBAClC,MAAME,IAAAA;AACR;AACF;AACF,KAAA,EAAA,CAAA;AAEJ;;;;"}